览于刘遄老师的《Linux就该这么学》所做的思维导图,主要记录的是一些常用的Linux命令,它们与系统工作、系统状态、工作目录、文件、目录、打包压缩与搜索等主题相关,是一些比较常用的命令。
思维导图(双击图片可放大):
文章目录
常用系统工作命令
echo
用于在终端输出字符串或变量提取后的值
格式:echo [字符串|$变量]
data
用于显示及设置系统时间或日期
格式:data [选项] [+指定的格式]
参数 | 作用 |
---|---|
%t | 跳格[Tab键] |
%H | 小时(00~23) |
%I | 小时(00~12) |
%M | 分钟(00~59) |
%S | 秒(00~59) |
%j | 今年中的第几天 |
reboot
用于重启系统
格式:reboot
poweroff
用于关闭系统
格式:poweroff
wget
用于在终端下载网络文件
格式:wget [参数] 下载地址
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-p | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
ps
用于查看系统中的进程状态
格式:ps [参数]
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
Linux 系统中有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止
- R(运行):进程正在运行或在运行队列中等待。
- S(中断 ): 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
- D(不可中断 ): 进程不响应系统异步信号,即便用 kill 命令也不能将其中断
- Z(僵死 ): 进程已经终止,但进程描述符依然存在,直到父进程调用 wait40系统函数后将进程释放
- T(停止 ): 进程收到停止信号后停止运行
当执行ps aux
命令后通常会看到进程状态
top
用于动态地监视进程活动与系统负载等信息
格式:top
top 命令执行结果的前 5行为系统整体的统计信息,其所代表的含义如下:
- 第1行:系统时间、运行时间、登录终端数、系统负载(数值越小意味着负载越低)。
- 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
- 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
- 第5行: 虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量
pidof
用于查询某个指定服务进程的PID值
格式:pidof [参数] [服务名称]
每个进程的进程号码值(PID)是唯一的,可以通过PID来区分不同的进程
pidof sshd
kill
用于终止某个指定PID的服务进程
格式:kill [参数][进程PID]
killall
用于终止某个指定名称的服务所对应的全部进程
格式:killall [参数] [进程名称]
系统状态监测命令
ifconfig
用于获取网卡配置与网络状态等信息,主要查看的是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量
格式:ifconfig [网络设备] [参数]
uptime
用于查看系统的负载信息,可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载等信息,负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5
格式:uptime
free
用于显示当前系统中内存的使用量信息
格式:free [-h]
who
用于查看当前登入主机的用户终端信息
格式:who [参数]
last
用于查看所有系统的登录信息
格式:last [参数]
history
用于显示历史执行过的命令
格式:history [-c]
sosreport
用于收集系统配置及架构信息并输出诊断文档
格式:sosreport
工作目录切换命令
pwd
用于显示用户当前所处的工作目录
格式:pwd [选项]
cd
用于切换工作路径
格式:cd [目录名称]
- cd -:返回上一次所处的目录
- cd…:进入上级目录
- cd~:切换到当前目录的家目录
- cd ~username:切换到其他用户的家目录1
ls
用于显示目录中的文件信息
格式:ls [选项] [文件]
常用ls命令:(很常用!!!)
ls -l:列出目录下的所有文件和子目录
的详细信息,包括权限、所有者、大小、创建日期等。
ls -ld:仅列出指定目录
的详细信息,并显示该目录本身的权限和属性,而不列出该目录中的文件。不显示隐藏文件。
ls -a:列出指定目录下
的所有文件和子目录,包括以".“开头的隐藏文件和目录。如果未指定目录,则默认使用当前工作目录。不显示详细信息。
ls -al:列出指定目录下
的所有文件和子目录的详细信息,包括以”."开头的隐藏文件和目录。如果未指定目录,则默认使用当前工作目录。该命令会显示文件或目录的权限、所有者、大小、创建日期等详细信息。
linux目录下有work1文件
文本文件编辑命令
cat
用于查看纯文本文件(内容较少)
格式:cat [选项] [文本]
cat -n 文件:查看文件显示行号
more
用于查看纯文本文件(内容较多),命令下方有百分号提示已阅读的内容,使用空格键翻页
格式:more [选项] 文件
head
用于查看纯文本文档的钱前N行
格式:head [选项] [文件]
tail
用于查看纯文本文档的后N行或持续刷新内容,使用tail -f 文件名
可实时查看最新日志文件
格式:tail [选项] [文件]
tr
用于替换文本文件中的字符
可以使用cat命令
读取待处理文本,然后通过管道符
把这些文本内容传递给tr命令进行替换操作即可
格式:tr [原始字符] [目标字符]
wc
用于统计指定文件的行数、字数、字节数
格式:wc [参数] 文本
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
可用于查看passwd文件的用户数量
wc -l /etc/passwd
stat
用于查看文件的具体存储信息和时间等信息
格式:stat 文件名称
cut
用于按“列”提取文本字符
格式:cut [参数] 文本
diff
用于比较多个文本文件的差异
格式:diff [参数] 文件
参数 | 作用 |
---|---|
–brief | 显示比较后的结果,判断文件是否相同 |
-c | 描述文件内容具体不同 |
文件目录管理命令
touch
用于创建空白文件或设置文件的时间
格式:touch [选项] [文件]
参数 | 作用 |
---|---|
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
mkdir
用于创建空白的目录
格式:mkdir [选项] 目录
参数:
使用-p参数来递归创建出具有嵌套层关系的文件目录
cp
用于复制文件或目录
格式:cp [选项] 源文件 目标文件
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录 ) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
mv
用于剪切文件,如果在同一个目录中对文件进行剪切操作,也就是对其进行重命名
格式:mv [选项] 源文件 [目标路径|目标文件名]
rm
删除文件或目录
格式:rm [选项] 文件
参数 | 作用 |
---|---|
-f | 强制删除 |
-r | 删除目录 |
dd
用于按照指定大小和个数的数据块来复制文件或转换文件
格式:dd[参数]
参数 | 作用 |
---|---|
if | 输人的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
file
用于查看文件的类型
格式:file 文件名
打包压缩与搜索命令
tat
用于对文件进行打包压缩或解压
格式:tar [选项] [文件]
一般情况下打包压缩:tar -czvf 压缩包名称.tar.gz
一般情况下解压:tar -xzvf 压缩包名称.tar.gz
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
grep
用于在文本中执行关键词搜索,并显示匹配的结果
格式:grep [选项] [文件]
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当做文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择–仅列出没有“关键词”的行 |
find
用于按照指定条件里查找文件
格式:find [查找路径] 查找条件
操作
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode 为完全匹配,-mode 为包含即可 ) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtimr -n +n | 匹配修改内容的时间 (-n指n天以内,+n 指n天以前) |
-atime -n +n | 匹配访问文件的时间 (-n指n天以内,n 指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内, 指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件 f1 新但比 f2 日的文件 |
–type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件 ) |
-size | 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于50KB 的文件) |
-prune | 忽略某个目录 |
-exec … {} ; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) |