Heibaiying-Linux-Commands-CheatSheet
Linux 常用Shell 命令
一、Linux 目录结构
目录名称 | 应放置文件的内容 |
---|---|
/boot | 开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备与接口 |
/etc | 配置文件 |
/home | 用户主目录 |
/bin | 存放单用户模式下还可以操作的命令 |
/lib | 开机时用到的函数库,以及 |
/sbin | 开机过程中需要的命令 |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
二、帮助命令
想要查看某个命令的帮助信息,可以使用
按键 | 用处 |
---|---|
空格键 | 向下翻一页 |
PaGe down | 向下翻一页 |
PaGe up | 向上翻一页 |
home | 直接前往首页 |
end | 直接前往尾页 |
/ | 从上至下搜索某个关键词,如“/linux” |
? | 从下至上搜索某个关键词,如“?linux” |
n | 定位到下一个搜索到的关键词 |
N | 定位到上一个搜索到的关键词 |
q | 退出帮助文档 |
三、Yum 相关命令
命令 | 列出所有仓库 |
---|---|
yum repolist all | 列出所有仓库 |
yum list all | 列出仓库中所有软件包 |
查看软件包信息 | |
安装软件包 | |
重新安装软件包 | |
升级软件包 | |
移除软件包 | |
yum clean all | 清除所有仓库缓存 |
yum check-update | 检查可更新的软件包 |
yum grouplist | 查看系统中已经安装的软件包组 |
安装指定的软件包组 | |
移除指定的软件包组 | |
查询指定的软件包组信息 |
四、服务相关命令
服务的启动、重启、停止、重载、查看状态等常用命令如下:
作用 | ||
---|---|---|
service foo start | systemctl start foo.service | 启动服务 |
service foo restart | systemctl restart foo.service | 重启服务 |
service foo stop | systemctl stop foo.service | 停止服务 |
service foo reload | systemctl reload foo.service | 重新加载配置文件(不终止服务) |
service foo status | systemctl status foo.service | 查看服务状态 |
服务开机启动、不启动、查看各级别下服务启动状态等常用命令:
作用 | ||
---|---|---|
chkconfig foo in | systemctl enable foo.service | 开机自动启动 |
chkconfig foo off | systemctl disable foo.service | 开机不自动启动 |
chkconfig foo | systemctl is-enable foo.service | 查看特定服务是否为开启自动启动 |
chkconfig –list | systemctl list-unit-files –type=service | 查看各个级别下服务的启动与禁用情况 |
五、常用系统命令
1. echo
[root@hadoop001 ~]# echo hello
hello
[root@hadoop001 ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_201
2. date
参数 | 作用 |
---|---|
%t | 跳格 |
%H | 小时(00 ~ 23) |
%I | 小时(00 ~ 12) |
%M | 分钟(00 ~ 59) |
%S | 秒(00 ~ 59) |
%j | 今年中的第几天 |
按照默认格式查看当前时间:
[root@hadoop001 ~]# date
2019年 07月 02日 星期二 14:07:34 CST
按照“年
[root@hadoop001 ~]# date "+%Y-%m-%d %H:%M:%S"
2019-07-02 14:07:52
设置系统时间:
[root@hadoop001 ~]# date -s "20190702 14:10:10"
2019年 07月 02日 星期二 14:10:10 CST
3. reboot
4. poweroff
5. wget
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
示例下载百度首页的内容到/usr/baidu
目录下:
[root@hadoop001 usr]# wget -r -p www.baidu.com -P /usr/baidu
6. ps
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
在
R ( 运行) :进程正在运行或在运行队列中等待。S ( 中断) :进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。D ( 不可中断) :进程不响应系统异步信号,即便用kill 命令也不能将其中断。Z ( 僵死) :进程已经终止,但进程描述符依然存在, 直到父进程调用wait4() 系统函数后将进程释放。T ( 停止) :进程收到停止信号后停止运行。
示例如下:
[root@hadoop001 usr]# ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2688 0.0 0.0 110092 856 tty1 Ss+ 13:45 0:00 /sbin/agetty --
root 3679 0.0 0.1 115572 2216 pts/0 Ss 13:52 0:00 -bash
root 12471 0.0 0.1 155360 1888 pts/0 R+ 14:17 0:00 ps -u
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程的所有者 | 进程 |
运算器占用率 | 内存占用率 | 虚拟内存使用量 |
占用的固定内存量 |
所在终端 | 进程状态 | 被启动的时间 | 实际使用 |
命令名称与参数 |
7. top
top - 14:21:25 up 35 min, 1 user, load average: 0.00, 0.02, 0.05
Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 1882148 total, 1316728 free, 203592 used, 361828 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497748 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3680 root 20 0 113444 1776 1344 S 0.3 0.1 0:06.45 bash
13685 root 20 0 161880 2200 1560 R 0.3 0.1 0:00.09 top
1 root 20 0 193696 6656 4180 S 0.0 0.4 0:03.10 systemd
第
第
第98.7 id
意味着有
第
第
8. pidof
9. kill
10. killall
六、状态检测命令
1. ifconfig
2. uname
[root@hadoop001 ~]# uname -a
Linux hadoop001 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
如果要查看当前系统版本的详细信息,可以使用如下命令:
[root@hadoop001 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
3. uptime
[root@hadoop001 ~]# uptime
14:32:06 up 46 min, 1 user, load average: 0.00, 0.01, 0.05
4. free
free -h
命令后的输出信息如下:
内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | |
---|---|---|---|---|---|---|
total | used | free | shared | buffers | cached | |
Mem: | 1.8G | 198M | 1.3G | 8.5M | 353M | 1.4G |
Swap: | 2.0G | 0B | 2.0G |
5. who
6. last
7. history
!序号
的方式来重复执行某条命令。
8. sosreport
yum install sos
命令来安装
七、目录相关命令
1. pwd
显示当前所在的路径信息。
2. cd
切换到指定目录,cd -
命令返回到上一次所处的目录。
3. ls
显示当前路径下的文件信息。想要查看文件的详细信息可以使用ls -l
,也可以简写为ll
。
八、文件编辑命令
1. cat
-n
,代表带行号显示。
2. more
3. head
head -n 20 hdfs-site.xml
4. tail
head -n 20 hdfs-site.xml
5. stat
[root@hadoop001 hadoop]# stat hdfs-site.xml
文件:"hdfs-site.xml"
大小:1021 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:3305180 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 1106/ UNKNOWN) Gid:( 4001/ UNKNOWN)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-07-02 14:50:22.700674460 +0800
最近更改:2019-04-30 16:06:24.421716553 +0800
最近改动:2019-04-30 16:06:24.423716557 +0800
创建时间:-
6. diff
- 使用
-c
参数来详细比较出多个文件的差异之处 ; - 使用
--brief
参数来确认两个文件是否不同。
diff -c diff_A.txt diff_B.txt
diff --brief diff_A.txt diff_B.txt
九、文件管理命令
1. touch
参数 | 作用 |
---|---|
-a | 仅修改读取时间(atime) |
-m | 仅修改修改时间(mtime) |
-d | 同时修改 |
[root@hadoop001 hadoop]# touch -d "2018-08-08 08:08" hdfs-site.xml
2. mkdir
-p
,代表递归创建:
mkdir -p a/b/c/d/e
3. cp
cp [选项] 源文件 目标文件
。 常用参数如下:
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于 |
4. mv
mv [选项] 源文件 [目标路径|目标文件名]
。 如果在同一个目录中对一个文件进行剪切操作,等价于对其进行重命名:
mv yarn-site.xml hello.xml
5. rm
-f
:参数来强制删除;-r
:参数递归删除文件夹。
6. file
[root@hadoop001 hadoop]# file yarn-site.xml
yarn-site.xml: XML 1.0 document, UTF-8 Unicode text
十、压缩与搜索命令
1. tar
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用 |
-j | 用 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
常用打包命令:tar -czvf 压缩包名称.tar.gz 要打包的目录
;
常用解压命令:tar -xzvf 压缩包名称.tar.gz
。
2. grep
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有关键词的行。 |
[root@hadoop001 hadoop]# cat core-site.xml | grep hadoop -n
22: <value>hdfs://hadoop001:8020</value>
25: <name>hadoop.proxyuser.root.hosts</name>
29: <name>hadoop.proxyuser.root.groups</name>
3. find
find [查找路径] 寻找条件 操作
。 常用命令如下:
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限( |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间( |
-atime -n +n | 匹配访问文件的时间( |
-ctime -n +n | 匹配修改文件权限的时间( |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件 |
–type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小( |
-prune | 忽略某个目录 |
-exec …… {}; | 后面可跟用于进一步处理搜索结果的命令 |
获取到指定目录中所有以
find /etc -name "host*" -print
十一、用户管理相关命令
1. useradd
/home
目录中,默认的/bin/bash
,默认会创建一个与该用户同名的基本用户组。常用配置如下:
参数 | 作用 |
---|---|
-d | 指定用户的家目录(默认为 |
-e | 账户的到期时间,格式为 |
-u | 指定该用户的默认 |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认 |
[root@hadoop001 ~]# id heibaiying
uid=1000(heibaiying) gid=1000(heibaiying) 组=1000(heibaiying)
- 管理员
UID 为0 :系统的管理员用户。 - 系统用户
UID 为1 ~ 999:Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。 - 普通用户
UID 从1000 开始:是由管理员创建的用于日常工作的用户。
2. groupadd
3. usermod
创建后用户的信息保存在/etc/passwd
文件中,可以直接对其进行编辑来修改用户参数,或使用
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 参数 |
-e | 账户的到期时间,格式为 |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的 |
[root@hadoop001 ~]# usermod -u 9999 heibaiying
[root@hadoop001 ~]# id heibaiying
uid=9999(heibaiying) gid=1000(heibaiying) 组=1000(heibaiying)
4. passwd
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码,如 |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
[root@hadoop001 ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
5. userdel
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
十二、文件权限相关命令
使用 ll
命令可以查看到文件的详细属性,各个属性的含义如下:

文件类型可以分为以下几类:
- -:普通文件。
- d:目录文件。
- l:链接文件。
- b:块设备文件。
- c:字符设备文件。
- p:管道文件。
1. chmod

[root@hadoop001 ~]# ll test.txt
-rw-r--r--. 1 root root 0 7月 3 14:49 test.txt
[root@hadoop001 ~]# chmod 760 test.txt
[root@hadoop001 ~]# ll test.txt
-rwxrw----. 1 root root 0 7月 3 14:49 test.txt
2. chown
[root@hadoop001 ~]# stat test.txt
......
权限:(0760/-rwxrw----) Uid:( 0/ root) Gid:( 0/ root)
......
[root@hadoop001 ~]# chown heibaiying:heibaiying test.txt
[root@hadoop001 ~]# stat test.txt
......
权限:(0760/-rwxrw----) Uid:( 9999/heibaiying) Gid:( 1000/heibaiying)
......
3. 软硬链接
硬链接(hard link
软链接(也称为符号链接
参数 | 作用 |
---|---|
-s | 创建符号链接(如果不带 |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
十三、Vim 编辑器常用命令
- 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
- 输入模式:正常的文本录入。
- 末行模式:保存或退出文档,以及设置编辑环境。

命令 | 作用 |
---|---|
dd | 删除(剪切)光标所在整行 |
5dd | 删除(剪切)从光标处开始的 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步的操作 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
末行模式中可用的命令如下:
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文档的修改内容) |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
执行该命令 | |
跳转到该行 | |
:s/one/two | 将当前光标所在行的第一个 |
:s/one/two/g | 将当前光标所在行的所有 |
:%s/one/two/g | 将全文中的所有 |
在文本中从下至上搜索该字符串 | |
在文本中从上至下搜索该字符串 |
使用a
键与 i
键分别是在光标后面一位和光标当前位置切换到输入模式,而 o
键则是在光标的下面再创建一个空行,此时可敲击 a
键进入到输入模式。
十四、输入输出重定向
输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。同时输出重定向又分为标准输出重定向和错误输出重定向。
- 标准输入重定向(STDIN,文件描述符为
0 ) :默认从键盘输入,也可从其他文件或命令中输入。 - 标准输出重定向(STDOUT,文件描述符为
1 ) :默认输出到屏幕。 - 错误输出重定向(STDERR,文件描述符为
2 ) :默认输出到屏幕。
输入重定向中用到的符号及其作用如下:
符号 | 作用 |
---|---|
命令 |
将文件作为命令的标准输入 |
命令 |
从标准输入中读入,直到遇见分界符才停止 |
命令 |
将文件 |
输出重定向中用到的符号及其作用如下:
符号 | 作用 |
---|---|
命令 |
将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 |
将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 |
将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 |
将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 |
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) |