Linux 常用命令
01. 常用的RPM软件包命令
| 命令 | 含义 |
|---|---|
| rpm -ivh filename.rpm | 安装软件 |
| rpm -Uvh filename.rpm | 升级软件 |
| rpm -e filename.rpm | 卸载软件 |
| rmp -qpi filename.rpm | 查看软件的描述信息 |
| rmp -qpl filename.rpm | 列出软件的文件信息 |
| rpm -qf filename | 查询文件属于哪个RPM |
02. 包管理工具apt-get常用命令
apt : Advanced Package Tool
一般使用这个命令时,需要权限,前面加上 sudo
| 命令 | 含义 |
|---|---|
| sudo apt-get update | 更新本地包数据库列表 |
| sudo apt-get upgrade | 仅升级已安装的软件包 |
| sudo apt-get dist-upgrade | 可添加或删除程序包,以满足新的依赖 |
| apt-cache search 搜索内容 | 查找/搜索软件包 |
| apt-cache show 包名 | 查看某个软件包的信息 |
| dpkg -s 包名 | 显示包的当前安装状态 |
- 从软件仓库安装包
| 命令 | 含义 |
|---|---|
| sudo apt-get install 包名 | 安装软件包 |
| sudo apt-get install 包1 包2 …… | 安装所有列出的包 |
| sudo apt-get install -y 包名 | 无需提示直接安装 |
- 从本地文件系统直接安装包
| 命令 | 含义 |
|---|---|
| sudo dpkg -i 包名.deb | 从本地系统直接安装包 |
- 移除已安装的包
| 命令 | 含义 |
|---|---|
| sudo apt-get remove 包名 | 移除已安装的包 |
| sudo apt-get autoremove | 自动移除已知不需要的包 |
03. 服务管理工具systemctl常用命令
- 管理服务
| 命令 | 含义 |
|---|---|
| systemctl start foo.service | 启动服务 |
| systemctl restart foo.service | 重启服务 |
| systemctl stop foo.service | 停止服务 |
| systemctl reload foo.service | 重新加载配置文件(不终止服务) |
| systemctl status foo.service | 查看服务状态 |
- 设置开机启动信息
| 命令 | 含义 |
|---|---|
| systemctl enable foo.service | 开机自动启动 |
| systemctl disable foo.service | 开机不自动启动 |
| systemctl is-enabled foo.service | 查看特定服务是否为开机自动启动 |
| systemctl list-unit-files –type=service | 查看各个级别下服务的启动与禁止情况 |
注:.service 后缀可以省略
04. 帮助命令man常用信息
- man命令中常用按键以及用途
| 按键 | 用途 |
|---|---|
| 空格键 | 向下翻一页 |
| PaGe down | 向下翻一页 |
| PaGe up | 向上翻一页 |
| home | 直接前往首页 |
| end | 直接前往尾页 |
| / | 从上至下搜索某个关键词,如 /linux |
| ? | 从下至上搜索某个关键词,如 ?linux |
| n | 定位到下一个搜索到的关键词 |
| N | 定位到上一个搜索到的关键词 |
| q | 退出帮助文档 |
- man命令帮助信息的结构以及意义
| 结构名称 | 代表意义 |
|---|---|
| NAME | 命令的名称 |
| SYNOPSIS | 参数的大致使用方法 |
| DESCRIPTION | 介绍说明 |
| EXAMPLES | 演示(附带简单说明) |
| OVERVIEW | 概述 |
| DEFAULTS | 默认的功能 |
| OPTIONS | 具体的可用选项(带介绍) |
| ENVIRONMENT | 环境变量 |
| FILES | 用到的文件 |
| SEE ALSO | 相关的资料 |
| HISTORY | 维护历史与联系方式 |
05. 常用系统工作命令
- echo 命令
用途:在终端输出字符串或变量提取后的值
格式:echo [字符串|$变量]

- date 命令
用途:显示及设置系统的时间或日期
格式:date [选项] [+指定的格式]
| 参数 | 作用 |
|---|---|
| %t | 跳格[Tab键] |
| %H | 小时(00~23) |
| %I(大写i) | 小时(00~12) |
| %M | 分钟(00~59) |
| %S | 秒(00~59) |
| %j | 今年中的第几天 |

- reboot命令
用途:重启系统
格式:reboot [选项] 需要管理员权限,sudo
| 选项 | 含义 |
|---|---|
| w | 仅作模拟重启系统,只有记录,不会真重启 |
| f | 强制重启 |
- poweroff命令
用途:关闭系统
格式:poweroff 需要管理员权限,sudo
- wget命令
用途:在终端中下载网络文件
格式:wget [参数] 下载地址
| 参数 | 作用 |
|---|---|
| -b | 后台下载模式 |
| -P | 下载到指定目录 |
| -t | 最大尝试次数 |
| -c | 断点续传 |
| -p | 下载页面内所有资源,包括图片、视频等 |
| -r | 递归下载 |

- ps命令
用途:查看系统中的进程状态(通常结合管道使用)
格式:ps [参数]
| 参数 | 作用 |
|---|---|
| -a | 显示所有进程(包括其他用户的进程) |
| -u | 用户以及其他详细信息 |
| -x | 显示没有控制终端的进程 |

- top命令
用途:动态地监视进程活动与系统负载等信息(相当于强化版的Windows任务管理器)
格式:top

前五行为系统整体的统计信息,其代表的含义如下:
1)第1行:系统时间、运行时间、登陆终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
2)第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
3)第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
4)第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量
5)第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量
- pidof命令
用途:查询某个指定服务进程的PID值(每个进程的进程号码值PID是唯一的,因此可以通过PID来区分不同的进程)
格式:pidof [参数] [服务名称]

- kill命令
用途:终止某个指定PID的服务进程
格式:kill [参数] [进程PID]

- killall命令
用途:终止某个指定名称的服务所对应的全部进程
格式:killall [参数] [进程名称]

06. 系统状态检测命令
- ifconfig命令
用途:获取网卡配置与网络状态等信息
格式:ifconfig [网络设备] [参数]
注:主要查看的是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(MAC地址)以及RX、TX的接收数据包与发送数据包的个数及累计流量等

- uname命令
用途:查看系统内核与系统版本等信息
格式:uname [-a]
注:一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。

如果要查看当前系统版本的详细信息,则需要查看相关文件
1)RedHat : redhat-release
2)Ubuntu : lsb-release

- uptime命令
用途:查看系统的负载信息
格式:uptime
注:显示的信息为 当前系统时间、系统已运行时间、启用终端数量、平均负载值(最近1分钟、5分钟、15分钟)等信息

- free命令
用途:显示当前系统中内存的使用量信息
格式:free [-h]
-h参数以更人性化的方式输出当前内存的实时使用量信息

- who命令
用途:查看当前登入主机的用户终端信息
格式:who [参数]

- last命令
用途:查看所有系统的登录记录
格式:last [参数]

- history命令
用途:显示历史执行过的命令
格式:history [-c]
注:-c 参数会清空所有的命令历史记录

注:默认显示1000条记录,可以自定义 /etc/profile 文件中 HISTSIZE 的变量值,历史命令会保存在用户家目录中的 .bash_history 文件中

- sosreport命令
用途:收集系统配置及架构信息并输出诊断文档
格式:sosreport
注:当Linux系统出现故障时,可以使用此命令将信息收集,会生成文档和校验码,发送给技术支持人员即可
07. 工作目录切换命令
- pwd命令
用途:显示用户当前所处的工作目录
格式:pwd [选项]

- cd命令
用途:切换工作路径
格式:cd [目录名称]
| 常用形式 | 含义 |
|---|---|
| cd - | 返回到上一次所处的目录 |
| cd .. | 进入上级目录 |
| cd ~ | 切换到当前用户的home目录 |
| cd ~username | 切换到其他用户的home目录 |

- ls命令
用途:显示目录中的文件信息
格式:ls [选项] [文件]
注:可以添加不同参数来查看想看到的信息
| 常用参数 | 含义 |
|---|---|
| -a | 查看全部文件(包括隐藏文件) |
| -l | 查看文件的属性、大小等详细信息 |
| -s | 查看文件的大小 |
| -h | 配合 -l 或 -s 参数显示文件的大小(k、M、G),方便我们感知 |
| -d | 用来查看目录的权限与属性信息 |

08. 文本文件编辑命令
- cat命令
用途:查看纯文本文件(内容较少的)
格式:cat [选项] [文件]
注:-n 参数可以显示文件的行号

- more命令
用途:查看纯文本文件(内容较多的)
格式:more [选项] 文件
注:可以使用空格键或回车键向下翻页

- head命令
用途:查看出文本文档的前N行
格式:head [选项] [文件]

- tail命令
用途:查看纯文本文档的后N行或持续刷新内容
格式:tail [选项] [文件]
注:tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为 tail -f 文件名

- tr命令
用途:替换文本文件中的字符
格式:tr [原始字符] [目标字符]
注:可以配合cat命令和管道符一起使用

- wc命令
用途:统计指定文本的行数、字数、字节数
格式:wc [参数] 文本
| 参数 | 作用 |
|---|---|
| -l | 只显示行数 |
| -w | 只显示单词数 |
| -c | 只显示字节数 |

- stat命令
用途:查看文件的具体存储信息和时间等信息
格式:stat 文件名称
注:此命令会显示文件的三种时间状态 Access 、Modify 、 Change
| 状态 | 含义 |
|---|---|
| Access | 文件的读取时间 |
| Modify | 文件内容的修改时间 |
| Change | 文件权限或属性的更改时间 |

- cut命令
用途:按“列”提取文本字符
格式:cut [参数] 文本
| 参数 | 含义 |
|---|---|
| -f | 查看的列数 |
| -d | 设置间隔符 |

- diff命令
用途:比较多个文本文件的差异
格式:diff [参数] 文件
| 参数 | 含义 |
|---|---|
| –brief | 确认两个文件是否不同 |
| -c | 详细比较多个文件的差异之处 |

09. 文件目录管理命令
- touch命令
用途:创建空白文件或设置文件的时间
格式:touch [选项] [文件]
| 参数 | 含义 |
|---|---|
| -a | 仅修改“读取时间”(atime) |
| -m | 仅修改“修改时间”(mtime) |
| -d | 同时修改atime与mtime |
注:文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)、文件的读取时间(atime)


- mkdir命令
用途:创建空白的目录
格式:mkdir [选项] 目录
注:-p参数可以递归创建出具有嵌套叠层关系的文件目录

- cp命令
用途:复制文件或目录
格式:cp [选项] 源文件 目标文件
注:复制操作分为三种情况
1)如果目标文件是目录,则会把源文件复制到该目录中
2)如果目标问价也是普通文件,则会询问是否要覆盖它
3)如果目标文件不存在,则执行正常的复制操作
| 参数 | 含义 |
|---|---|
| -p | 保留原始文件的属性 |
| -d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
| -r | 递归持续复制(用于目录) |
| -i | 若目标文件存在则询问是否覆盖 |
| -a | 相当于-pdr(p、d、r为上面的参数) |

- mv命令
用途:剪切文件或将文件重命名
格式:mv [选项] 源文件 [目标路径/目标文件名]

- rm命令
用途:删除文件或目录
格式:rm [选项] 文件
| 参数 | 含义 |
|---|---|
| -f | 不需要反复确认信息,强制删除 |
| -r | 用于删除目录 |

- dd命令
用途:按照指定大小和个数的数据块来复制文件或转换文件
格式:dd [参数]
注:dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。还可以在复制过程中转换其中的数据。/dev/zero 是一个设备文件,它充满哲学色彩,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据。
| 参数 | 含义 |
|---|---|
| if | 输入的文件名称 |
| of | 输出的文件名称 |
| bs | 设置每个“块”的大小 |
| count | 设置要复制“块”的个数 |

注:还可以使用dd命令来压制出光盘镜像文件,将它编程一个可立即使用的iso镜像

- file命令
用途:查看文件的类型
格式:file 文件名

10. 打包压缩与搜索命令
- tar命令
用途:对文件进行打包压缩或解压
格式:tar [选项] [文件]
注:在Linux系统中,常见的文件格式比较多,其中主要使用的是 .tar、**.tar.gz或.tar.bz2**格式
| 参数 | 含义 |
|---|---|
| -c | 创建压缩文件 |
| -x | 解开压缩文件 |
| -t | 查看压缩包内有哪些文件 |
| -z | 用Gzip压缩或解压 |
| -j | 用bzip2压缩或解压 |
| -v | 显示压缩或解压的过程 |
| -f | 目标文件名 |
| -p | 保留原始的权限与属性 |
| -P(大写) | 使用绝对路径来压缩 |
| -C | 指定解压到的目录 |
注:一般常使用 tar -czvf压缩包名称**.tar.gz要打包的目录,使用tar xzvf解压缩.tar.gz**的压缩包


- grep命令
用途:在文本中执行关键词搜索,并显示匹配的结果
格式:grep [选项] [文件]
| 参数 | 含义 |
|---|---|
| -b | 将可执行文件(binary)当作文本文件(text)来搜索 |
| -c | 仅显示找到的行数 |
| -i | 忽略大小写 |
| -n | 显示行号 |
| -v | 反向选择—-仅列出没有“关键词”的行 |

- find命令
用途:按照指定条件来查找文件
格式:find [查找路径] 寻找条件 操作
| 参数 | 含义 |
|---|---|
| -name | 匹配名称 |
| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
| -user | 匹配所有者 |
| -group | 匹配所有组 |
| -mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
| -atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
| -ctime -n +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 ······ {} \ | 后面可跟用于进一步处理搜索结果的命令 |
