Linux命令
VI和VIM
Linux系统会内置vi文本编辑器
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便变成的功能特别丰富。
VI和VIM的三种模式

正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]按键来移动光标,你可以使用[删除字符]和[删除整行]来处理档案内容,也可以使用[复制、粘贴]来处理文件数据。
插入模式
按下 i、I、o、O、a、A、r、R等任何一个字母之后才会进入编辑模式,一般来说按 i 即可
命令行模式
在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
先按ESC,再输入冒号: 进入此模式
[
](https://blog.csdn.net/Augenstern_QXL/article/details/122291032)
VIM快捷键
复制粘贴
删除
查找
设置文件的行号
定位
编辑 /etc/profile 文件,在一般模式下使用快捷键到该文档的最末行[G]和最首行[gg]
一般模式下输入大写G
一般模式下输入小写的gg
将光标移动到 3 行,在一般模式下输入 3,再输入shift+g
撤销
快捷键图
关机重启
用户登录和注销
用户管理
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
添加用户
基本语法:
useradd 用户名 1
我们使用 root 用户进入 home 文件夹,查看当前的用户列表
添加一个用户 milan,默认该用户的家目录在 /home/milan
细节说明:
当创建用户成功后,会自动的创建和用户同名的家目录。
也可以通过 useradd -d 指定目录 指定用户名,给新创建的用户指定家目录。
指定/修改密码
基本用法:
passwd 用户名 1
给 milan 指定密码
设置milan的密码为milan
登录米兰的账号
pwd 为显示当前用户所在的目录
删除用户
基本语法:
userdel 用户名 1
- 删除用户milan,但是要保留家目录userdel milan

milan的目录还在
- 删除用户以及用户主目录userdel -r milan(这个操作一定要谨慎)

查询用户
基本语法:
id 用户名 1
请查询root信息: id root
切换用户
基本语法:
su - 用户名 1
切换到milan用户:su - milan
说明:
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
- 当需要返回到原来用户时,使用 exit/logout指令
查看当前用户信息
基本语法:
whoami/who am I
显示第一次登录的用户
用户组
类似于角色,系统可以对有共性的多个用户进行统一的管理
1、新增组
指令:groupadd 组名
2、删除组
指令:groupdel 组名
3、增加用户时直接加上组
指令:useradd -g 用户组 用户名
4、修改用户的组
基本语法:usermod -g 用户组 用户名
5、用户和组相关文件
/etc/passwd文件:用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow文件:口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件:组的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
[
](https://blog.csdn.net/Augenstern_QXL/article/details/122291032)
实用指令
运行级别
运行级别 说明
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 系统重启
常用的运行级别是3和5,也可以指定默认运行级别。
命令:
init[0123456]
通过 init 来切换不同的运行级别,比如由5图形界面切换到3无图形界面
如何找回root密码
不同版本找回密码的方式不一样
韩顺平教育—linux找回root密码.docx
帮助指令
man获得帮助信息
- man 获得帮助信息
- 基本语法:man[帮助或配置文件] (功能描述:获得帮助信息)
- 例如查看ls 命令的帮助信息:man ls
- 在Linux下隐藏文件是 . 开头的
help指令
基本语法:
help 命令 1
功能描述:获得shell内置命令的帮助信息
help cd 等
文件目录类
pwd指令
ls指令
基本语法:
ls [选项] [目录或是文件]
常用选项:
- ls -a :显示当前目录所有的文件和目录,包括隐藏的
- ls -l :以列表的方式显示信息
cd指令
基本语法:cd [参数 ] (功能描述:切换到指定目录)
- cd ~ 或者 cd : 回到自己的家目录
- cd .. 回到当前目录的上一级目录
mkdir指令
mkdir指令用于创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项:-p 创建多级目录
rmdir指令
rmdir指令删除空目录
基本语法:rmdir [选项] 要删除的空目录
使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除。如果需要删除非空目录,需要使用
rm -rf 要删除的目录(这个操作请超级谨慎)
touch指令
cp指令
cp指令拷贝文件到指定目录
基本语法:cp [选项] source dest
- source 代表你要拷贝的是哪个文件
- dest 代表把文件拷贝到哪个地方去
常用选项:-r 递归复制整个文件夹(其实就是Windows系统的复制文件夹)
- 将 /home/hello.txt 拷贝到 /home/bbb 目录下
rm指令
rm指令移除文件或目录
基本语法:rm [选项] 要删除的文件或目录
常用选项:
- -r 递归删除整个文件夹
- -f 强制删除不提示
- 将 /home/hello.txt 删除
rm /home/hello.txt 1
- 递归删除整个文件夹 /home/bbb
rm -rf /home/bbb [删除整个文件夹,不提示] 1
强制删除不提示的方法:带上-f 参数即可
mv指令
mv 移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
两个文件在同一个目录,oldNameFile 代表旧的文件名,newNameFile 代表新的文件名
mv /temp/movefile /targetFolder (功能描述:移动文件)
两个文件不在同一个目录,将/temp/movefile 文件移动到 /targetFolder 目录
将 /home/cat.txt 文件重新命名为 pig.txt
mv cat.txt pig.txt
1
将 /home/pig.txt 文件移动到 /root 目录下
mv /home/pig.txt /root
cat指令
cat查看文件内容 cat查看更安全
基本语法:cat [选项] 要查看的文件
常用选项:-n :显示行号
- 查看 /etc/profile 文件内容,并显示行号
cat -n /etc/profile
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 |more
cat -n/etc/profile | more
more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键(交互的指令),如下:
基本语法: more 要查看的文件
| 操作 | 功能说明 |
|---|---|
| 空格键space | 代表向下翻一页 |
| Enter | 代表向下翻一行 |
| q | 代表立刻离开more,不再显示该文件内容 |
| Ctrl+F | 向下滚动一屏 |
| Ctrl+B | 返回上一屏 |
| = | 输出当前行的行号 |
| :f | 输出文件名和当前行的行号 |
less指令
less指令用来分屏查看文件内容,它的内容与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件
| 操作 | 功能说明 |
|---|---|
| 空格键space | 代表向下翻一页 |
| [pagedown] | 代表向下翻一行 |
| [pageup] | 代表向上翻一行 |
| /字串 | 向下搜寻[字串]的功能,n:向下查找,N:向上查找 |
| ?字串 | 向上搜寻[字串]的功能,n:向下查找,N:向上查找 |
| q | 离开less这个程序 |
echo指令
echo输出内容到控制台
基本语法: echo [选项] [输出内容]
- 使用 echo 指令输出环境变量,比如输出 $PATH 、主机名$HOSTNAME
head指令
head用于显示文件的开头部分,默认情况下 head 指令显示文件的前10行内容。
基本语法:
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
查看 /etc/profile 的前5行代码
head -n 5 /etc/profile
tail指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前10行内容
基本语法:
tail 文件 (功能描述:查看文件尾10行内容)
tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
查看/etc/profile 最后5行代码
tail -n 5 /etc/profile
实时监控 mydate.txt,看看文件是否有变化(Ctrl+C来停止监控)
tail -f /home/mydate.txt
>指令和>>指令
输出重定向 (覆盖)
>> 追加
基本语法:
ls -l > 文件 (功能描述:列表的内容写入文件中(覆盖写))
ls -al>>文件 (功能描述:列表的内容追加到文件末尾)
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容”>>文件 (功能描述:将内容追加到文件)
将 /home 目录下的文件列表,写入到 /home/info.txt 中,覆盖写入
ls -l/home > /home/info.txt [如果info.txt没有,则会自动创建
ln指令
软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法:ln -s [原文件或目录][软链接名] (功能描述:给原文件创建一个软链接)
在 /home 目录下创建一个软链接 myroot,链接到 /root 目录
ln -s/root /home/myroot
删除软链接 myroot
rm /home/myroot
history指令
查看已经执行过历史命令,也可以执行历史指令
基本语法:history (功能描述:查看已经执行过的历史命令)
显示所有历史命令
history 1
显示最近使用过的10个指令
history 10 1
执行历史编号为5的指令
!5
时间日期类
设置当前日期
date指令显示当前日期
基本语法:
date (功能描述:显示当前时间)
date+%Y (功能描述:显示当前年份)
date+%m (功能描述:显示当前月份)
date+%d (功能描述:显示当前是哪一天)
date+”+%Y-%m-%d%H:%M:%S” (功能描述:显示年月日时分秒)
设置日期
基本语法:date -s 字符串时间
- 设置系统当前时间,比如设置成 2020-11-23 10:09:09
cal指令
cal指令用于查看日历
基本语法:cal[选项] (功能描述:不加选项,显示本月日历)
- 显示当前日历
cal 1
- 显示2020年日历
搜索查找类
find指令
find 指令将从指定目录向下递归地遍历其各个子目录,将蛮族调节的文件或者目录显示在终端
基本语法: find [搜索范围] [选项]
选项如下:
| 选项 | 功能 |
|---|---|
| -name<查询方式> | 按照指定的文件名查找模式查找文件 |
| -user<用户名> | 查找属于指定用户名所有文件 |
| -size<文件大小> | 按照指定的文件大小查找文件 |
按照文件名:根据名称查找 /home 目录下的 hello.txt 文件
find/home -name hello.txt
按照拥有者:查找/opt目录下,用户名称为 root的文件
find /opt -user root
查找整个 linux 系统下大于 200M 的文件 (+n 大于 -n 小于 n 等于,单位有 k,M,G)
find / -size +200M
locate指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。 locate 指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须顶起更新 locate 时刻。
基本语法:locate 搜索文件
特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
使用 locate 指令快速定位 hello.txt 文件所在目录
Witch指令
which 指令,可以查看某个指令在哪个目录下,比如 ls 指令在哪个目录
which ls
grep指令和管道符号 |
grep 过滤查找,管道符 “|” ,表示将前一个命令的处理结果输出传递给后面的命令处理,两者通常结合使用
基本语法:grep[选项] 查找内容 源文件
选项说明:
| 选项 | 功能 |
|---|---|
| -n | 显示匹配行及行号 |
| -i | 忽略字母大小写 |
- 在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
cat /home/hello.txt | grep “yes”
grep -n “yes” /home/hello.txt
压缩和解压类
gzip / gunzip 指令
gzip 用于压缩文件,gunzip 用于解压
基本用法:
gzip 文件 (功能描述:压缩文件,只能将文件压缩为 *.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
将 /home 下的 hello.txt 文件进行压缩
gzip /home/hello.txt
将 /home 下的 hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz
zip/unzip指令
zip 用于压缩文件,unzip用于解压,这个在项目打包发布中很有用
基本语法:
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
常用选项: -r 递归压缩,即压缩目录
unzip [选项] XXX.zip (功能描述:解压缩文件)
常用选项:-d<目录> 指定解压后文件的存放目录
将 /home 下的所有文件/文件夹进行压缩成 myhome.zip
zip -r myhome.zip /home/ [将home目录及其包含的文件和子文件夹都压缩]
1
将 myhome.zip 解压到 /opt/tmp 目录下
mkdir /opt/tmp
unzip -d/opt/tmp /home/myhome.zip
tar指令
tar指令是打包指令,最后打包后的文件是 .tar.gz 的文件
基本语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式 .tar.gz)
| 选项 | 功能 |
|---|---|
| -c | 产生.tar打包文件 |
| -v | 显示详细信息 |
| -f | 指定压缩后的文件名 |
| -z | 打包同时压缩 |
| -x | 解压.tar文件 |
压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
将 /home 的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将 pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
将 myhome.tar.gz 解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -zxvf/home/myhome.tar.gz



