From e0ce9961325af9eda89d9bae45ec689f64c2a73e Mon Sep 17 00:00:00 2001 From: 7Wate Date: Mon, 8 Aug 2022 16:57:19 +0800 Subject: [PATCH] =?UTF-8?q?Linux=EF=BC=9A=E5=B8=B8=E7=94=A8=E5=91=BD?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/ops/Linux/基础/常用命令.md | 1157 +++++++------------------------ 1 file changed, 248 insertions(+), 909 deletions(-) diff --git a/wiki/ops/Linux/基础/常用命令.md b/wiki/ops/Linux/基础/常用命令.md index c9554027..7c231695 100644 --- a/wiki/ops/Linux/基础/常用命令.md +++ b/wiki/ops/Linux/基础/常用命令.md @@ -89,913 +89,252 @@ man sh 清空当前终端中已有的内容(清屏操作)。 -## 系统工作常用 - -### echo - -在终端设备上输出字符串或变量提取后的值,语法格式: - -```shell -echo [字符串] [$变量] -``` - -示例: - -```shell -echo HelloLinux -# 输出字符串 -# HelloLinux - -echo $SHELL -# 输出 变量 -# /bin/bash -``` - -### date - -用于显示或设置系统的时间与日期,语法格式: - -```shell -date [+指定的格式] -``` - -date 命令中的参数及其作用 - -| 参数 | 作用 | -| ---- | -------------------------------- | -| %S | 秒(00~59) | -| %M | 分钟(00~59) | -| %H | 小时(00~23) | -| %I | 小时(00~12) | -| %m | 月份(1~12) | -| %p | 显示出AM或PM | -| %a | 缩写的工作日名称(例如:Sun) | -| %A | 完整的工作日名称(例如:Sunday) | -| %b | 缩写的月份名称(例如:Jan) | -| %B | 完整的月份名称(例如:January) | -| %q | 季度(1~4) | -| %y | 简写年份(例如:20) | -| %Y | 完整年份(例如:2020) | -| %d | 本月中的第几天 | -| %j | 今年中的第几天 | -| %n | 换行符(相当于按下回车键) | -| %t | 跳格(相当于按下Tab键) | - -示例: - -```shell -date -# Sat Sep 5 09:13:45 CST 2020 - -date "+%Y-%m-%d %H:%M:%S" -# 2020-09-05 09:14:35 - -date -s "20201101 8:30:00" -# Sun Nov 1 08:30:00 CST 2020 - -date "+%j" -# 306 -``` - -### timedatectl - -用于设置系统的时间,英文全称为“time date control”,语法格式: - -```shell -timedatectl [参数] -``` - -timedatectl 命令中的参数以及作用 - -| 参数 | 作用 | -| -------------- | ------------ | -| status | 显示状态信息 | -| list-timezones | 列出已知时区 | -| set-time | 设置系统时间 | -| set-timezone | 设置生效时区 | - -示例: - -```shell -timedatectl status -# 查看系统时区 -# Local time: Sun 2020-09-06 19:51:22 CST -# Universal time: Sun 2020-09-06 11:51:22 UTC -# RTC time: Sun 2020-09-06 19:51:21 -# Time zone: Asia/Shanghai (CST, +0800) -#System clock synchronized: no -# NTP service: inactive -# RTC in local TZ: no - -# 手动设置时区上海 -timedatectl set-timezone Asia/Shanghai - -# 手动修改系统日期 -timedatectl set-time 2021-05-18 - -# 修改时间 -timedatectl set-time 9:30 -``` - -### reboot - -重启系统 - -### poweroff - -关闭系统 - -### wget - -wget 命令用于在终端命令行中下载网络文件,英文全称为“web get”,语法格式: - -```shell -wget [参数] 网址 -``` - - wget命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------------------------------ | -| -b | 后台下载模式 | -| -P | 下载到指定目录 | -| -t | 最大尝试次数 | -| -c | 断点续传 | -| -p | 下载页面内所有资源,包括图片、视频等 | -| -r | 递归下载 | - -示例: - -```shell -wget www.7wate.com - -# Resolving www.7wate.com (www.7wate.com)... 182.118.11.21 -# Connecting to www.7wate.com (www.7wate.com)|182.118.11.21|:80... connected. -# HTTP request sent, awaiting response... 200 OK -``` - -### ps - -ps 命令用于查看系统中的进程状态,英文全称为“processes”,语法格式: - -```shell -ps [参数] -``` - -ps 命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ---------------------------------- | -| -a | 显示所有进程(包括其他用户的进程) | -| -u | 用户以及其他详细信息 | -| -x | 显示没有控制终端的进程 | - -- **R(运行)**:进程正在运行或在运行队列中等待。 - -- **S(中断)**:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。 - -- **D(不可中断)**:进程不响应系统异步信号,即便用kill命令也不能将其中断。 - -- **Z(僵死)**:进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4() 系统函数后将进程释放。 - -- **T(停止)**:进程收到停止信号后停止运行。 - -除了上面5种常见的进程状态,还有可能是高优先级(<)、低优先级(N)、被锁进内存(L)、包含子进程(s)以及多线程(l)这5种补充形式。 - -示例 - -| USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND | -| ------------ | -------- | ------------ | ---------- | ------------------------ | -------------------------- | -------- | -------- | ------------ | ----------------- | -------------- | -| 进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 | - -### pstree - -pstree 命令用于以**树状图的形式展示**进程之间的关系,英文全称为“process tree”。 - -### top - -top 命令用于**动态地监视进程活动及系统负载**等信息。 - -### nice - -nice命令用于调整进程的优先级,语法格式: - -```shell -nice 优先级数字 服务名称 -``` - -示例: - -```shell -nice -n -20 bash -``` - -### pidof - -pidof 命令用于查询某个指定服务进程的 PID 号码值,语法格式: - -```shell -pidof [参数] 服务名称 -``` - -每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程。 - -```shell -pidof sshd -# 2156 -``` - -### kill - -kill 命令用于终止某个指定 PID 值的服务进程,语法格式: - -```shell -kill [参数] 进程的PID -``` - -示例: - -```shell -kill 2156 -kill -9 2156 -# 参数-9,表示最高级别地强制杀死进程 -``` - -### killall - -killall 命令用于终止某个指定名称的服务所对应的全部进程,语法格式: - -```shell -killall [参数] 服务名称 -``` - -示例: - -```shell -pidof httpd -# 13581 13580 13579 13578 13577 13576 -killall httpd -pidof httpd -``` - -## 系统状态检测 - -### ifconfig - -ifconfig 命令用于获取网卡配置与网络状态等信息,英文全称为“interface config”,语法格式: - -```shell -ifconfig [参数] [网络设备] -``` - -使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet 参数后面的 IP 地址、ether 参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量。 - -### uname - -uname 命令用于查看系统内核版本与系统架构等信息,英文全称为“unix name”,语法格式: - -```shell -uname [-a] -``` - -示例: - -```shell -uname -a -# Linux linuxprobe.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux - -# 查看系统版本 -cat /etc/redhat-release -# Red Hat Enterprise Linux release 8.0 (Ootpa) -``` - -### uptime - -uptime 命令用于查看系统的负载信息,它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况,负载值越低越好。输入该命令后按回车键执行即可。 - -示例: - -```shell -uptime -# 22:49:55 up 10 min, 1 users, load average: 0.01, 0.19, 0.18 -``` - -### free - -free命令用于显示当前系统中内存的使用量信息,语法格式: - -```shell -free [-h] -``` - -执行 free -h 命令后的输出信息 - -| | 内存总量 | 已用量 | 空闲量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | 可用量 | -| ----- | -------- | ------ | ------ | ---------------- | ---------------- | ------------ | --------- | -| | total | used | free | shared | buffers | buff/cache | available | -| Mem: | 1.9Gi | 1.4Gi | 99Mi | 20Mi | 450Mi | 348Mi | | -| Swap: | 2.0Gi | 80Mi | 1.9Gi | | | | | - -### who - -who 命令用于查看当前登入主机的用户终端信息,执行who命令的结果: - -| 登陆的用户名 | 终端设备 | 登陆到系统的时间 | -| ------------ | -------- | ----------------------- | -| root | tty2 | 2020-07-24 06:26 (tty2) | - -### last - -last 命令用于调取主机的被访记录。 - -```shell -last -# root pts/1 192.168.10.1 Tue May 18 10:30 - 11:03 (00:32) -# root tty2 tty2 Fri Jul 24 06:26 gone - no logout -# reboot system boot 4.18.0-80.el8.x8 Fri Jul 24 05:59 still running -# root tty2 tty2 Tue Jul 21 05:19 - down (00:00) -# reboot system boot 4.18.0-80.el8.x8 Tue Jul 21 05:16 - 05:19 (00:02) - -# wtmp begins Tue Jul 21 05:16:47 2020 -``` - -### ping - -ping 命令用于测试主机之间的网络连通性,语法格式: - -```shell -ping [参数] 主机地址 -``` - -ping 命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------------ | -| -c | 总共发送次数 | -| -l | 指定网卡名称 | -| -i | 每次间隔时间(秒) | -| -W | 最长等待时间(秒) | - -### tracepath - -tracepath 命令用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式: - -```shell -tracepath [参数] 域名 -``` - -示例: - -```shell -tracepath www.7wate.com -``` - -### netstat - -netstat命令用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为“network status”,语法格式为: - -```shell -netstat [参数] -``` - -netstat 命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------------------ | -| -a | 显示所有连接中的Socket | -| -p | 显示正在使用的Socket信息 | -| -t | 显示TCP协议的连接状态 | -| -u | 显示UDP协议的连接状态 | -| -n | 使用IP地址,不使用域名 | -| -l | 仅列出正在监听的服务状态 | -| -i | 显示网卡列表信息 | -| -r | 显示路由表信息 | - -示例: - -```shell -# 显示详细的网络状况 -netstat -a - -# 显示网卡列表 -netstat -i -``` - -### history - -history命令用于显示执行过的最近 1000 条命令记录,语法格式为: - -```shell -history [-c] -``` - -示例: - -```shell -history - -# 1 ifconfig -# 2 uname -a -# 3 cat /etc/redhat-release -# 4 uptime -# 5 free -h -# 6 who -# 7 last - -!7 -# 执行第七条命令 - -history -c -# 清空当前用户在本机上执行的 Linux 命令历史记录信息 -``` - -### sosreport - -sosreport 命令用于收集系统配置及架构信息并输出诊断文档,输入该命令后按回车键执行即可。 - -当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,抑或让他们能提前了解某些复杂问题。 - -## 文件查找定位 - -### pwd - -pwd命令用于显示用户当前所处的工作目录,英文全称为“print working directory”。 - -### cd - -cd命令用于切换当前的工作路径,英文全称为“change directory”,语法格式: - -```shell -cd [参数] [目录] -``` - -示例: - -```shell -# 退回上一步目录 -cd - - -# 退回上级目录 -cd .. - -# 进入当前用户目录 -cd ~ -``` - -### ls - -ls命令用于显示目录中的文件信息,英文全称为“list”,语法格式: - -```shell -ls [参数] [文件名称] -``` - -### tree - -tree 命令用于以树状图的形式列出目录内容及结构。 - -```shell -tree -``` - -### find - -find命令用于按照指定条件来查找文件所对应的位置,语法格式: - -```shell -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 …… {}\; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) | - -示例: - -```shell -find /etc -name "host*" -print -# /etc/host.conf -# /etc/hosts -# /etc/hosts.allow -# /etc/hosts.deny -# /etc/avahi/hosts -# /etc/hostname -``` - -### locate - -locate 命令用于按照名称快速搜索文件所对应的位置,第一次使用 locate 命令之前,记得先执行 updatedb 命令来生成索引数据库,然后再进行查找。 - -语法格式: - -```shell -locate 文件名称 -``` - -示例: - -```shell -locate whereis -# /usr/bin/whereis -# /usr/share/bash-completion/completions/whereis -# /usr/share/man/man1/whereis.1.gz -``` - -### whereis - -whereis 命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式: - -```shell -whereis 命令名称 -``` - -示例: - -```shell -whereis ls -# ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz -whereis pwd -# pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz -``` - -### which - -which 命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式: - -```shell -which 命令名称 -``` - -示例: - -```shell -which locate -# /usr/bin/locate -which whereis -# /usr/bin/whereis -``` - -## 文件文本编辑 - -### cat - -cat命令用于查看纯文本文件(内容较少的),英文全称为“concatenate”,语法格式: - -```shell -cat [参数] 文件名称 -``` - -常用参数: - -| -n | 显示行数(空行也编号) | -| --------- | --------------------------------------- | -| -s | 显示行数(多个空行算一个编号) | -| -b | 显示行数(空行不编号) | -| -E | 每行结束处显示$符号 | -| -T | 将TAB字符显示为 ^I符号 | -| -v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 | -| -e | 等价于”-vE”组合 | -| -t | 等价于”-vT”组合 | -| -A | 等价于 -vET组合 | -| --help | 显示帮助信息 | -| --version | 显示版本信息 | - -### more - -more 命令用于查看纯文本文件(内容较多的),语法格式: - -```shell -more [参数] 文件名称 -``` - -常用参数: - -| -num | 指定每屏显示的行数 | +## 系统 + +### 内置命令 + +| 命令 | 功能 | +| ------- | ------------------------------------------------------ | +| alias | 设置别名。 | +| bc | 命令行科学计算器 | +| clear | 清除屏幕,简称清屏。 | +| date | 查看或设置系统时间。 | +| echo | 打印变量,或直接输出指定的字符串 | +| eject | 弹出光驱。 | +| exec | 调用并执行指令的命令。 | +| export | 设置或者显示环境变量。 | +| history | 查看命令执行的历史纪录。 | +| nc | 功能强大的网络工具。 | +| printf | 将结果格式化输出到标准输出。 | +| rpm | 管理 rpm 包的命令。 | +| time | 计算命令执行时间。 | +| type | 用于判断另外一个命令是否是内置命令。 | +| unalias | 取消系统别名。 | +| unset | 删除变量或函数。 | +| watch | 周期性的执行给定的命令,并将命令的输出以全屏方式显示。 | +| xargs | 将标准输入转换成命令行参数。 | +| yum | 自动化简单化地管理 rpm 包的命令。 | + +### 系统信息 + +| 命令 | 功能 | +| -------- | -------------------------------- | +| cal | 查看日历等时间信息。 | +| date | 显示与设置系统时间。 | +| df | 报告文件系统磁盘空间的使用情况。 | +| dmesg | 显示开机信息,用于诊断系统故障。 | +| du | 计算磁盘空间使用情况。 | +| free | 查看系统内存。 | +| hostname | 显示或者设置当前系统的主机名。 | +| stat | 显示文件或文件系统的状态。 | +| top | 实时显示系统资源使用情况。 | +| uname | 显示操作系统相关信息的命令。 | +| uptime | 显示系统运行时间及负载。 | + +### 用户信息 + +| 命令 | 功能 | +| ------- | ------------------------------------------------------ | +| finger | 查找并显示用户信息。 | +| last | 显示登入系统的用户。 | +| lastlog | 显示系统中所有用户最近一次登录信息。 | +| users | 显示当前登录系统的所有用户的用户列表。 | +| w | 显示已经登陆系统的用户列表,并显示用户正在执行的指令。 | +| who | 显示目前登录系统的用户信息。 | +| whoami | 显示当前有效的用户名称,相当于执行 id -un 命令。 | + +### 权限处理 + +| 命令 | 功能 | +| ----- | ---------------------------- | +| chmod | 改变文件或目录权限。 | +| chown | 改变文件或目录的属主和属组。 | +| chgrp | 更改文件用户组。 | +| umask | 显示或设置权限掩码。 | + +### 进程管理 + +| 命令 | 功能 | +| ----------- | ------------------------------------------------------------ | +| bg | 将一个在后台暂停的命令,变成继续执行 (在后台执行)。 | +| crontab | 定时任务命令。 | +| fg | 将后台中的命令调至前台继续运行。 | +| init | 切换运行级别。 | +| jobs | 查看当前有多少在后台运行的命令。 | +| kill | 终止进程。 | +| killall | 通过进程名终止进程。 | +| nice/renice | 调整程序运行的优先级。 | +| nohup | 忽略挂起信号运行指定的命令。 | +| pgrep | 查找匹配条件的进程。 | +| pkill | 通过进程名终止进程。 | +| ps | 显示进程的快照。 | +| pstree | 树形显示进程。 | +| runlevel | 查看系统当前运行级别。 | +| service | 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。 | + + + +### 系统管理 + +| 命令 | 功能 | | --------- | ------------------------------------------------------------ | -| -l | more在通常情况下把 **^L** 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 | -| -f | 计算实际的行数,而非自动换行的行数 | -| -p | 先清除屏幕再显示文本文件的剩余内容 | -| -c | 与-p相似,不滚屏,先显示内容再清除旧内容 | -| -s | 多个空行压缩成一行显示 | -| -u | 禁止下划线 | -| +/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 | -| +num | 从第 num 行开始显示 | - -### head - -head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行。 - -```shell -head [参数] [文件] -``` - -常用参数: - -| -n | 后面接数字,代表显示几行的意思 | -| ---- | ------------------------------ | -| -c | 指定显示头部内容的字符数 | -| -v | 总是显示文件名的头信息 | -| -q | 不显示文件名的头信息 | - -### tail - -tail 命令用于查看纯文本文件的后*N*行或持续刷新文件的最新内容,语法格式: - -```shell -tail [参数] 文件名称 -``` - -### tr - -tr 命令用于替换文本内容中的字符,英文全称为“transform”,支持正则匹配。语法格式: - -```shell -tr [原始字符] [目标字符] -``` - -### wc - -wc 命令用于统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语法格式: - -```shell -wc [参数] 文件名称 -``` - -wc 命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------ | -| -l | 只显示行数 | -| -w | 只显示单词数 | -| -c | 只显示字节数 | - -### stat - -stat命令用于查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式: - -```shell -stat 文件名称 -``` - -常用参数: - -| -L | 支持符号链接 | -| --------- | ------------------ | -| -f | 显示文件系统的信息 | -| -t | 以简洁的方式输出 | -| --help | 显示命令帮助信息 | -| --version | 显示命令版本信息 | - -### grep - -grep命令用于按行提取文本内容,语法格式: - -```shell -grep [参数] 文件名称 -``` - -参数及其作用 - -| 参数 | 作用 | -| ---- | ---------------------------------------------- | -| -b | 将可执行文件(binary)当作文本文件(text)来搜索 | -| -c | 仅显示找到的行数 | -| -i | 忽略大小写 | -| -n | 显示行号 | -| -v | 反向选择——仅列出没有“关键词”的行。 | - -### cut - -cut 令用于按“列”提取文本内容,语法格式: - -```shell -cut [参数] 文件名称 -``` - -常用参数: - -| -b | 以字节为单位进行分割 ,仅显示行中指定直接范围的内容 | -| --------------- | -------------------------------------------------- | -| -c | 以字符为单位进行分割 , 仅显示行中指定范围的字符 | -| -d | 自定义分隔符,默认为制表符”TAB” | -| -f | 显示指定字段的内容 , 与-d一起使用 | -| -n | 取消分割多字节字符 | -| --complement | 补足被选择的字节、字符或字段 | -| --out-delimiter | 指定输出内容是的字段分割符 | - -### diff - -diff 命令用于比较多个文件之间内容的差异,英文全称为“different”,语法格式: - -```shell -diff [参数] 文件名称A 文件名称B -``` - -常用参数: - -| -a | diff预设只会逐行比较文本文件 | -| ----------------------- | ------------------------------------------------------------ | -| -b | 不检查空格字符的不同 | -| -W | 在使用-y参数时,指定栏宽 | -| -x | 不比较选项中所指定的文件或目录 | -| -X | 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件 | -| -y | 以并列的方式显示文件的异同之处 | -| --help | 查看帮助信息 | -| --left-column | 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容 | -| --suppress-common-lines | 在使用-y参数时,仅显示不同之处 | - -### uniq - -uniq命令用于去除文本中连续的重复行,英文全称为“unique”,语法格式: - -```shell -uniq [参数] 文件名称 -``` - -常用参数: - -| -c | 打印每行在文本中重复出现的次数 | -| ---- | ------------------------------------------ | -| -d | 只显示有重复的纪录,每个重复纪录只出现一次 | -| -u | 只显示没有重复的纪录 | - -### sort - -sort命令用于对文本内容进行再排序,语法格式: - -```shell -sort [参数] 文件名称 -``` - -常用参数: - -| -b | 忽略每行前面开始出的空格字符 | -| ------------- | ------------------------------------------------------ | -| -c | 检查文件是否已经按照顺序排序 | -| -d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符 | -| -f | 排序时,将小写字母视为大写字母 | -| -i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符 | -| -m | 将几个排序号的文件进行合并 | -| -M | 将前面3个字母依照月份的缩写进行排序 | -| -n | 依照数值的大小排序 | -| -o <输出文件> | 将排序后的结果存入制定的文件 | -| -r | 以相反的顺序来排序 | -| -t <分隔字符> | 指定排序时所用的栏位分隔字符 | -| -k | 指定需要排序的栏位 | - -## 文件目录管理 - -### touch - -touch 命令用于创建空白文件或设置文件的时间,语法格式: - -```shell -touch [参数] 文件名称 -``` - -常用参数: - -| -a | 改变档案的读取时间记录 | -| ----------- | ------------------------------------------ | -| -m | 改变档案的修改时间记录 | -| -r | 使用参考档的时间记录,与 --file 的效果一样 | -| -c | 不创建新文件 | -| -d | 设定时间与日期,可以使用各种不同的格式 | -| -t | 设定档案的时间记录,格式与 date 命令相同 | -| --no-create | 不创建新文件 | -| --help | 显示帮助信息 | -| --version | 列出版本讯息 | - -### mkdir - -mkdir 命令用于创建空白的目录,英文全称为“make directory”,语法格式: - -```shell -mkdir [参数] 目录名称 -``` - -常用参数: - -| -p | 递归创建多级目录 | -| ---- | ---------------------------- | -| -m | 建立目录的同时设置目录的权限 | -| -z | 设置安全上下文 | -| -v | 显示目录的创建过程 | - -### cp - -cp 命令用于复制文件或目录,英文全称为“copy”,语法格式: - -```shell -cp [参数] 源文件名称 目标文件名称 -``` - -常用参数: - -| -f | 若目标文件已存在,则会直接覆盖原文件 | -| ---- | ------------------------------------------------------------ | -| -i | 若目标文件已存在,则会询问是否覆盖 | -| -p | 保留源文件或目录的所有属性 | -| -r | 递归复制文件和目录 | -| -d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 | -| -l | 对源文件建立硬连接,而非复制文件 | -| -s | 对源文件建立符号连接,而非复制文件 | -| -b | 覆盖已存在的文件目标前将目标文件备份 | -| -v | 详细显示cp命令执行的操作过程 | -| -a | 等价于“dpr”选项 | - -### mv - -mv 命令用于剪切或重命名文件,英文全称为“move”,语法格式: - -```shell -mv [参数] 源文件名称 目标文件名称 -``` - -### rm - -rm 命令用于删除文件或目录,英文全称为“remove”,语法格式: - -```shell -rm [参数] 文件 名称 -``` - -参数及其作用 - -| 参数 | 作用 | -| ---- | ---------- | -| -f | 强制执行 | -| -i | 删除前询问 | -| -r | 删除目录 | -| -v | 显示过程 | - -### dd - -dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式: - -```shell -dd if=参数值of=参数值count=参数值bs=参数值 -``` - -参数及其作用 - -| 参数 | 作用 | -| ----- | -------------------- | -| if | 输入的文件名称 | -| of | 输出的文件名称 | -| bs | 设置每个“块”的大小 | -| count | 设置要复制“块”的个数 | - -示例 - -```shell -dd if=/dev/zero of=560_file count=1 bs=560M -# 1+0 records in -# 1+0 records out -# 587202560 bytes (587 MB, 560 MiB) copied, 1.28667 s, 456 MB/s -``` - -### file - -file 命令用于查看文件的类型,语法格式: - -```shell -file 文件名称 -``` - -### tar - -tar命令用于对文件进行打包压缩或解压,语法格式: - -```shell -tar 参数 文件名称 -``` - -参数及其作用 - -| 参数 | 作用 | -| ---- | ---------------------- | -| -c | 创建压缩文件 | -| -x | 解开压缩文件 | -| -t | 查看压缩包内有哪些文件 | -| -z | 用Gzip压缩或解压 | -| -j | 用bzip2压缩或解压 | -| -v | 显示压缩或解压的过程 | -| -f | 目标文件名 | -| -p | 保留原始的权限与属性 | -| -P | 使用绝对路径来压缩 | +| chkconfig | 管理 Linux 系统开机启动项。 | +| iostat | 统计系统 IO。 | +| ipcrm | 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 | +| ipcs | 用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 | +| ltrace | 命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。 | +| mpstat | 显示各个可用 CPU 的状态统计。 | +| sar | 全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU 中断和网络等性能数据。 | +| strace | 用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 | +| vmstat | 虚拟内存统计。 | + +### 系统操作 + +| 命令 | 功能 | +| -------- | ---------------------- | +| exit | 退出当前登录的 Shell。 | +| halt | 关机。 | +| logout | 退出当前登录的 Shell。 | +| poweroff | 关闭电源。 | +| shutdown | 关机。 | + +## 用户管理 + +### 基础操作 + +| 命令 | 功能 | +| -------- | ------------------------------------------------------------ | +| chage | 修改用户密码有效期限。 | +| groupadd | 添加用户组。 | +| id | 查看用户的 uid,gid 及归属的用户组。 | +| passwd | 修改用户密码。 | +| su | 切换用户身份。 | +| sudo | 以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。 | +| useradd | 添加用户。 | +| userdel | 删除用户。 | +| usermod | 修改系统已经存在的用户属性。 | +| visudo | 编辑 / etc/sudoers 文件的专属命令。 | + +## 网络管理 + +### 基础操作 + +| 命令 | 功能 | +| -------- | -------------------------------------------- | +| ifconfig | 查看、配置、启用或禁用网络接口的命令。 | +| ifdown | 关闭网卡。 | +| ifup | 启动网卡。 | +| netstat | 查看网络状态。 | +| ping | 测试主机之间网络的连通性。 | +| route | 显示和设置 linux 系统的路由表。 | +| scp | 全拼 secure copy,用于不同主机之间复制文件。 | +| ss | 查看网络状态。 | +| ssh | 使用 SSH 加密协议远程登录。 | +| telnet | 使用 TELNET 协议远程登录。 | +| wget | 命令行下载文件。 | + +### 进阶操作 + +| 命令 | 功能 | +| ---------- | -------------------------------------------------------- | +| dig | 查找 DNS 解析过程。 | +| host | 查询 DNS 的命令。 | +| lsof | 全名 list open files,也就是列举系统中已经被打开的文件。 | +| mail | 发送和接收邮件。 | +| mutt | 邮件管理命令。 | +| nmap | 网络扫描命令。 | +| nslookup | 交互式查询互联网 DNS 服务器的命令。 | +| tcpdump | 命令行的抓包工具。 | +| traceroute | 追踪数据传输路由状况。 | + +## 磁盘管理 + +### 基础操作 + +| 命令 | 功能 | +| --------- | --------------------------------------------------------- | +| dd | 转换或复制文件。 | +| dump | ext2/3/4 文件系统备份工具。 | +| dumpe2fs | 导出 ext2/ext3/ext4 文件系统信息。 | +| e2fsck | 检查 ext2/ext3/ext4 类型文件系统。 | +| fdisk | 磁盘分区命令,适用于 2TB 以下磁盘分区。 | +| fsck | 检查并修复 Linux 文件系统。 | +| mkfs | 格式化创建 Linux 文件系统。 | +| mkswap | 创建 Linux 交换分区。 | +| mount | 挂载文件系统。 | +| parted | 磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。 | +| partprobe | 更新内核的硬盘分区表信息。 | +| resize2fs | 调整 ext2/ext3/ext4 文件系统大小。 | +| swapoff | 关闭交换分区。 | +| swapon | 启用交换分区。 | +| sync | 将内存缓冲区内的数据写入磁盘。 | +| umount | 卸载文件系统。 | + +## 文件和目录 + +### 基础操作 + +| 命令 | 功能 | +| -------- | ------------------------------------------------------------ | +| basename | 显示文件名或目录名。 | +| cd | 全拼 change directory,功能是从当前工作目录切换到指定的工作目录。 | +| chattr | 改变文件的扩展属性。 | +| cp | 全拼 copy,其功能为复制文件或目录。 | +| dirname | 显示文件或目录路径。 | +| file | 显示文件的类型。 | +| find | 查找的意思,用于查找目录及目录下的文件。 | +| ls | 全拼 list,功能是列出目录的内容及其内容属性信息。 | +| lsattr | 查看文件扩展属性。 | +| md5sum | 计算和校验文件的 MD5 值。 | +| mkdir | 全拼 make directories,其功能是创建目录。 | +| mv | 全拼 move,其功能是移动或重命名文件。 | +| pwd | 全拼 print working directory,其功能是显示当前工作目录的绝对路径。 | +| rename | 用于重命名文件。 | +| rm | 全拼 remove,其功能是删除一个或多个文件或目录。 | +| rmdir | 全拼 remove empty directories,功能是删除空目录。 | +| touch | 创建新的空文件,改变已有文件的时间戳属性。 | +| tree | 功能是以树形结构显示目录下的内容。 | + +### 文件处理 + +| 功能 | 命令 | +| ---------- | ------------------------------------------------------------ | +| cat | 全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 | +| cut | 将文件的每一行按指定分隔符分割并输出。 | +| diff | 全拼 difference,比较文件的差异,常用于文本文件。 | +| dos2unix | 将 DOS 格式文件转换成 UNIX 格式。 | +| grep/egrep | 过滤字符串,三剑客老三。 | +| head | 显示文件内容的头部。 | +| iconv | 转换文件的编码格式。 | +| join | 按两个文件的相同字段合并。 | +| less | 分页显示文件内容,more 命令的相反用法。 | +| more | 分页显示文件内容。 | +| paste | 按行合并文件内容。 | +| rev | 反向输出文件内容。 | +| sort | 对文件的文本内容排序。 | +| split | 分割文件为不同的小片段。 | +| tac | tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。 | +| tail | 显示文件内容的尾部。 | +| tr | 替换或删除字符。 | +| uniq | 去除重复行。oldboy | +| vi/vim | 命令行文本编辑器。 | +| vimdiff | 命令行可视化文件比较工具,常用于文本文件。 | +| wc | 统计文件的行数、单词数或字节数。 | + +### 文件检索 + +| 命令 | 功能 | +| ------- | ------------------------------------------------------------ | +| find | 从磁盘遍历查找文件或目录。 | +| locate | 从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。 | +| whereis | 查找二进制命令,按环境变量 PATH 路径查找。 | +| which | 查找二进制命令,按环境变量 PATH 路径查找。 | + +### 文件解压缩 + +| 命令 | 功能 | +| ----- | ---------------- | +| gzip | gzip 压缩工具。 | +| tar | 打包压缩。oldboy | +| unzip | 解压文件。 | +| zip | 压缩工具。 | \ No newline at end of file