Linux命令101
包含101个运维工作中最常用的Linux命令,按功能分类整理,每个命令包含简介、常用参数和典型用法示例。
系统监控类命令
- top
- ps
- df
- free
- netstat
- iostat
- uptime
- sar
- vmstat
- ifconfig
1. top - 实时显示系统中各个进程的资源占用状况
-
简介:提供系统整体运行状态的实时视图,包括CPU、内存使用和进程信息。
- 参数:
-b:批处理模式,适合脚本使用-n:指定更新次数-d:设置更新间隔时间(秒)
- 用法:
top -b -n 1 > top_output.txt # 批处理模式运行一次并保存结果 top -d 2 # 每2秒更新一次显示
2. ps - 报告当前系统的进程状态
-
简介:快照式显示当前系统进程信息。
- 参数:
aux:显示所有进程,包括其他用户的-e:显示所有进程-f:全格式显示-u:按用户筛选
- 用法:
ps aux | grep nginx # 查找nginx相关进程 ps -ef | grep sshd # 查找sshd相关进程
3. df - 报告文件系统的磁盘空间使用情况
-
简介:显示文件系统磁盘空间使用情况。
- 参数:
-h:以易读格式(如GB、MB)显示-i:显示inode信息-T:显示文件系统类型
- 用法:
df -h /data # 查看/data目录所在分区的使用情况 df -i /home # 查看/home目录的inode使用情况
4. free - 显示系统的内存使用情况
-
简介:报告系统内存使用情况,包括物理内存和交换空间。
- 参数:
-h:以易读格式显示-m:以MB为单位显示-s:设置刷新间隔时间(秒)
- 用法:
free -h # 显示系统内存使用情况 free -m -s 2 # 每2秒刷新一次,以MB为单位显示
5. netstat - 显示网络连接、路由表、接口统计等
-
简介:网络状态统计工具,显示网络连接、路由表等信息。
- 参数:
-a:显示所有连接和监听端口-t:显示TCP连接-u:显示UDP连接-n:以数字形式显示地址和端口-r:显示路由表
- 用法:
netstat -tuln # 查看所有监听的TCP和UDP端口 netstat -rn # 查看路由表信息
6. iostat - 监控系统的输入/输出设备负载
-
简介:报告中央处理单元(CPU)的使用情况和磁盘I/O统计信息。
- 参数:
-x:显示扩展统计信息-d:仅显示设备统计-k:以KB为单位显示-m:以MB为单位显示
- 用法:
iostat -x 2 5 # 每2秒报告一次,共报告5次,显示扩展统计 iostat -d /dev/sda # 仅显示指定设备的统计信息
7. uptime - 显示系统运行时间、用户数和负载平均值
-
简介:显示系统运行时间、当前时间、用户数和系统负载平均值。
-
参数:无常用参数
-
用法:
uptime # 显示系统运行时间等信息
8. sar - 系统活动报告
-
简介:收集、报告和保存系统活动信息。
- 参数:
-u:CPU使用率报告-r:内存使用率报告-d:磁盘使用率报告-n:网络使用率报告
- 用法:
sar -u 2 5 # 每2秒收集一次CPU使用率,共收集5次 sar -r # 报告内存使用率
9. vmstat - 报告虚拟内存使用情况
-
简介:报告虚拟内存、进程、CPU等系统状态信息。
- 参数:
-a:显示可用内存-m:显示slab信息-s:显示各种内存统计
- 用法:
vmstat 2 5 # 每2秒报告一次,共报告5次系统状态 vmstat -a # 显示可用内存信息
10. ifconfig - 配置和显示网络接口信息
-
简介:配置和查询网络接口的参数。
- 参数:
up:激活网络接口down:停用网络接口address:设置IP地址
- 用法:
ifconfig eth0 # 查看eth0接口的配置 ifconfig eth0 up # 激活eth0接口
文件管理类命令
- ls
- cp
- mv
- rm
- mkdir
- rmdir
- touch
- cat
- grep
- find
11. ls - 列出目录内容
-
简介:列出指定目录中的内容。
- 参数:
-l:长格式显示-a:显示包括隐藏文件在内的所有文件-h:以易读格式显示文件大小-t:按修改时间排序
- 用法:
ls -l /home/user # 以长格式列出/home/user目录内容 ls -la # 列出当前目录所有文件,包括隐藏文件
12. cp - 复制文件和目录
-
简介:复制文件或目录。
- 参数:
-r:递归复制目录-p:保留原文件属性-f:强制复制,覆盖目标文件时不提示
- 用法:
cp file1.txt file2.txt # 复制文件 cp -r dir1/ dir2/ # 复制目录
13. mv - 移动或重命名文件
-
简介:移动文件或重命名文件。
- 参数:
-f:强制移动,覆盖目标文件时不提示-i:交互模式,在覆盖前提示确认-u:仅在源文件比目标文件新时才移动
- 用法:
mv file.txt newfile.txt # 重命名文件 mv file.txt /tmp/ # 移动文件到/tmp目录
14. rm - 删除文件或目录
-
简介:删除文件或目录。
- 参数:
-f:强制删除,忽略不存在的文件,不提示确认-i:交互模式,在删除前提示确认-r:递归删除目录及内容
- 用法:
rm -f file.txt # 强制删除文件 rm -rf dir/ # 递归强制删除目录
15. mkdir - 创建目录
-
简介:创建目录。
- 参数:
-p:递归创建目录,父目录不存在时自动创建-m:设置目录权限
- 用法:
mkdir newdir # 创建新目录 mkdir -p /path/to/dir # 创建多级目录
16. rmdir - 删除目录
-
简介:删除空目录。
- 参数:
-p:递归删除目录,父目录变为空时也删除
- 用法:
rmdir emptydir # 删除空目录 rmdir -p dir/subdir # 递归删除空目录
17. touch - 更改文件的时间戳或创建空文件
-
简介:更新文件的时间戳,或创建空文件。
- 参数:
-c:不创建文件,仅在文件存在时更新时间戳-t:指定时间戳
- 用法:
touch newfile.txt # 创建新空文件 touch -t 202307010000 file.txt # 设置文件时间戳为2023-07-01 00:00
18. cat - 连接文件并打印到标准输出
-
简介:显示文件内容或连接多个文件。
- 参数:
-n:显示行号-b:对非空行显示行号-s:压缩连续的空行-v:显示控制字符
- 用法:
cat file.txt # 显示文件内容 cat file1.txt file2.txt > combined.txt # 合并文件内容
19. grep - 在文件中搜索指定的字符串
-
简介:在文件中搜索匹配指定模式的行。
- 参数:
-i:忽略大小写-v:反向匹配,显示不匹配的行-n:显示匹配行的行号-r:递归搜索目录
- 用法:
grep "pattern" file.txt # 在文件中搜索包含"pattern"的行 grep -r "error" /var/log/ # 递归搜索日志文件中的"error"
20. find - 在文件系统中搜索文件
-
简介:按照指定条件在文件系统中搜索文件。
- 参数:
-name:按文件名搜索-type:按文件类型搜索(f-文件,d-目录)-mtime:按修改时间搜索-size:按文件大小搜索-exec:对找到的文件执行指定命令
- 用法:
find /etc -name "*.conf" # 在/etc目录下查找所有.conf文件 find /var/log -mtime -7 # 查找最近7天内修改过的文件
用户管理类命令
- useradd
- usermod
- userdel
- passwd
- su
- sudo
- id
- who
- last
- finger
21. useradd - 创建新用户
-
简介:创建新的用户账户。
- 参数:
-u:指定用户ID-g:指定主组-G:指定附加组-d:指定主目录-s:指定登录Shell
- 用法:
useradd -m newuser # 创建新用户并自动创建主目录 useradd -g users -G admin,dev newuser # 指定主组和附加组
22. usermod - 修改用户账户设置
-
简介:修改用户账户配置。
- 参数:
-l:更改用户名-d:更改主目录-g:更改主组-G:更改附加组-s:更改登录Shell-L:锁定用户账户-U:解锁用户账户
- 用法:
usermod -g developers user1 # 更改用户主组 usermod -L user1 # 锁定用户账户
23. userdel - 删除用户账户
-
简介:删除用户账户及其主目录。
- 参数:
-r:删除用户主目录及邮件箱
- 用法:
userdel -r olduser # 删除用户及主目录
24. passwd - 修改用户密码
-
简介:更改用户密码。
- 参数:
-l:锁定用户账户-u:解锁用户账户-e:立即过期用户密码,强制下次登录时更改-d:删除用户密码
- 用法:
passwd user1 # 更改user1的密码 passwd -l user2 # 锁定user2账户
25. su - 切换用户
-
简介:切换当前用户身份。
- 参数:
-:完整切换环境,等同于-l-c:执行指定命令后退出-s:指定使用的Shell
- 用法:
su - root # 切换到root用户,加载root环境 su -c "ls /root" user2 # 以user2身份执行ls命令
26. sudo - 以超级用户或其他用户身份执行命令
-
简介:允许授权用户以其他用户(通常是root)身份执行命令。
- 参数:
-i:以目标用户身份启动交互Shell-l:列出允许执行的命令-u:指定以哪个用户身份执行-b:在后台执行命令-v:延长sudo权限时间
- 用法:
sudo apt update # 以root权限执行命令 sudo -u user2 ls /home/user2 # 以user2身份执行命令
27. id - 打印用户和组信息
-
简介:显示用户的UID、GID和所属组信息。
- 参数:
-u:仅显示用户ID-g:仅显示主组ID-G:显示所有组ID-n:以名称而非ID显示
- 用法:
id user1 # 显示user1的用户和组信息 id -Gn user1 # 显示user1所属的所有组名称
28. who - 显示当前登录的用户
-
简介:显示当前登录到系统的用户信息。
- 参数:
-H:显示表头信息-u:显示用户进程信息-q:快速显示所有登录用户-b:显示系统上次启动时间
- 用法:
who -u # 显示登录用户及其进程信息 who -b # 显示系统上次启动时间
29. last - 显示过去登录的用户
-
简介:显示系统的用户登录历史和系统运行时间信息。
- 参数:
-n:限制显示的记录数量-x:包括系统运行和关机记录-f:指定包含登录记录的文件
- 用法:
last -n 5 # 显示最近5条登录记录 last reboot # 显示系统启动和关机记录
30. finger - 查看用户信息
-
简介:显示系统用户的相关信息,如登录名、真实姓名、终端、登录时间等。
- 参数:
-l:长格式显示详细信息-s:短格式显示-p:不显示用户计划文件(.plan)
- 用法:
finger user1 # 显示user1的用户信息 finger -l user1 # 详细显示user1的信息
网络管理类命令
- ping
- ssh
- scp
- rsync
- wget
- curl
- ifconfig(已在系统监控类列出)
- ip
- netstat(已在系统监控类列出)
- traceroute
31. ping - 测试网络连接
-
简介:向网络主机发送ICMP回显请求消息,用于测试网络连接。
- 参数:
-c:发送指定数量的回显请求后停止-i:设置发送回显请求的时间间隔(秒)-s:设置发送数据包的大小(字节)
- 用法:
ping -c 4 google.com # 向google.com发送4个ICMP请求 ping -s 1024 8.8.8.8 # 发送1024字节的数据包到8.8.8.8
32. ssh - 远程登录到另一台计算机
-
简介:安全地远程登录到另一台计算机执行命令或开启会话。
- 参数:
-p:指定远程主机的SSH端口-i:指定用于身份认证的私钥文件-L:指定本地端口转发-R:指定远程端口转发
- 用法:
ssh user@remote_host # 远程登录到主机 ssh -p 2222 user@host # 指定自定义SSH端口
33. scp - 安全地复制文件
-
简介:基于SSH安全地复制文件。
- 参数:
-r:递归复制目录-C:启用压缩-P:指定远程主机的SSH端口
- 用法:
scp file.txt user@remote:/path/ # 上传文件到远程主机 scp user@remote:/path/file.txt . # 从远程主机下载文件
34. rsync - 快速高效地同步文件
-
简介:快速同步文件和目录到本地或远程系统。
- 参数:
-a:归档模式,等同于-rlptgoD(递归、保持符号链接等)-z:压缩传输数据-v:详细模式,显示传输过程-h:以易读格式显示文件大小-n:模拟传输过程,不实际传输文件
- 用法:
rsync -avz /local/dir/ user@remote:/remote/dir/ # 同步本地目录到远程 rsync -avz user@remote:/remote/dir/ /local/dir/ # 从远程同步到本地
35. wget - 从网络下载文件
-
简介:网络下载工具,支持HTTP、HTTPS、FTP协议。
- 参数:
-O:指定本地保存的文件名-q:安静模式,不显示输出-c:断点续传-r:递归下载-P:指定下载到的目录
- 用法:
wget http://example.com/file.zip # 下载文件 wget -O newname.zip http://example.com/file.zip # 指定保存文件名
36. curl - 传输数据的工具
-
简介:客户端URL工具,支持多种协议,用于数据传输。
- 参数:
-o:指定输出文件名-O:使用远程文件名保存-L:跟随重定向-H:添加自定义HTTP头部-d:发送POST数据-X:指定请求方法(如GET、POST、PUT等)
- 用法:
curl -o page.html http://example.com # 下载网页并保存为page.html curl -X POST -d "param1=value1¶m2=value2" http://example.com/api # 发送POST请求
37. ip - 显示和操作路由、网络设备等
-
简介:显示和操作路由、网络设备、接口等网络设置。
- 参数:
addr:显示和操作IP地址link:显示和操作设备route:显示和操作路由表neigh:显示和操作邻居表(ARP表)
- 用法:
ip addr show # 显示网络接口IP地址信息 ip link set dev eth0 up # 激活网络接口
38. traceroute - 跟踪数据包的路由路径
-
简介:跟踪数据包从本地主机到目标主机所经过的路由。
- 参数:
-n:不解析地址,直接以IP显示-q:指定每跳发送的查询包数量-w:指定等待响应的时间(秒)
- 用法:
traceroute google.com # 跟踪到google.com的路由路径 traceroute -n 8.8.8.8 # 跟踪到8.8.8.8的路由,显示IP而非域名
文本处理类命令
- sed
- awk
- cut
- paste
- sort
- uniq
- head
- tail
- nl
- wc
39. sed - 流编辑器,用于处理文本
-
简介:流编辑器,用于对文本进行基本的转换操作。
- 参数:
-n:安静模式,仅输出处理结果-i:直接修改文件-e:指定编辑命令
- 用法:
sed 's/old/new/g' file.txt # 将文件中的"old"替换为"new" sed -i '1d' file.txt # 删除文件的第一行
40. awk - 文本处理和报告生成工具
-
简介:强大的文本处理语言,适用于格式化文本数据。
- 参数:
-F:指定字段分隔符-v:定义变量-f:指定包含Awk程序的脚本文件
- 用法:
awk '{print $1}' file.txt # 打印文件的第1列 awk -F: '{print $1}' /etc/passwd # 以":"为分隔符打印第1列
41. cut - 从文件中剪切字节、字符和字段
-
简介:剪切文件的指定部分。
- 参数:
-d:指定字段分隔符-f:指定要保留的字段-c:指定要保留的字符位置-b:指定要保留的字节位置
- 用法:
cut -d: -f1 /etc/passwd # 以":"为分隔符,提取/etc/passwd的第1个字段 cut -c1-10 file.txt # 提取文件前10个字符
42. paste - 合并文件的行
-
简介:将多个文件的行并排放置,可以进行简单的列合并。
- 参数:
-d:指定分隔符-s:合并所有行到一行
- 用法:
paste file1.txt file2.txt # 合并两个文件的对应行 paste -d',' file1.txt file2.txt > merged.txt # 用逗号分隔合并行
43. sort - 对文本文件进行排序
-
简介:对文本文件的行进行排序。
- 参数:
-n:按照数值大小排序-r:反向排序-k:指定排序的键(列)-t:指定字段分隔符-u:去除重复行
- 用法:
sort file.txt # 按字母顺序排序文件 sort -n -k3 data.txt # 按第3列数值排序
44. uniq - 去除重复行
-
简介:报告或忽略文件中的重复行。
- 参数:
-c:显示每行出现的次数-d:仅显示重复的行-u:仅显示唯一的行
- 用法:
uniq file.txt # 去除相邻的重复行 sort file.txt | uniq -c # 统计每行出现的次数
45. head - 显示文件的开头部分
-
简介:显示文件的开头内容,默认显示前10行。
- 参数:
-n:指定显示的行数-q:不显示文件名-v:始终显示文件名
- 用法:
head -n 5 file.txt # 显示文件的前5行 head -q file1.txt file2.txt # 显示两个文件的前10行,不显示文件名
46. tail - 显示文件的末尾部分
-
简介:显示文件的末尾内容,默认显示最后10行,支持实时跟踪(类似日志监视)。
- 参数:
-n:指定显示的行数-f:实时显示追加的内容(常用于监视日志)-q:不显示文件名-v:始终显示文件名
- 用法:
tail -n 100 file.txt # 显示文件的最后100行 tail -f /var/log/nginx/access.log # 实时监视访问日志
47. nl - 给文件行添加编号
-
简介:将文件的内容输出,并给行添加编号。
- 参数:
-w:指定编号占用的宽度-s:指定编号与文本之间的分隔符-v:指定起始编号-b:指定编号方式(a-所有行,t-非空行)
- 用法:
nl file.txt # 给文件所有行添加编号 nl -b t file.txt # 仅给非空行添加编号
48. wc - 打印字节数、字数和行数
-
简介:统计文件的字节数、字数和行数。
- 参数:
-c:显示字节数-w:显示字数(以空格分隔)-l:显示行数-m:显示字符数(多字节字符支持)
- 用法:
wc -l file.txt # 统计文件的行数 wc -w file.txt # 统计文件的字数
压缩归档类命令
- tar
- gzip
- gunzip
- zip
- unzip
- bzip2
- bunzip2
- 7z
- xz
- unxz
49. tar - 归档文件
-
简介:归档工具,支持多种压缩格式。
- 参数:
-c:创建归档文件-x:解压归档文件-f:指定归档文件名-v:详细模式,显示处理过程-z:gzip压缩-j:bzip2压缩-J:xz压缩-t:列出归档文件内容
- 用法:
tar -czvf archive.tar.gz dir/ # 创建gzip压缩归档 tar -xzvf archive.tar.gz # 解压gzip归档
50. gzip - 压缩文件
-
简介:使用LZ77算法压缩文件。
- 参数:
-d:解压-f:强制覆盖现有文件-k:保留原文件-r:递归压缩目录-v:详细模式
- 用法:
gzip file.txt # 压缩文件,生成file.txt.gz gzip -d file.txt.gz # 解压文件
51. gunzip - 解压gzip压缩的文件
-
简介:解压gzip格式的压缩文件。
-
参数与gzip类似
-
用法:
gunzip file.txt.gz # 解压文件
52. zip - 压缩文件
-
简介:使用ZIP格式压缩文件。
- 参数:
-r:递归压缩目录-q:安静模式,不显示输出-d:从压缩文件中删除指定文件-u:更新压缩文件中的文件
- 用法:
zip -r archive.zip dir/ # 压缩目录到archive.zip zip -u archive.zip newfile.txt # 将新文件添加到已有的压缩文件
53. unzip - 解压zip压缩的文件
-
简介:解压ZIP格式的压缩文件。
- 参数:
-l:列出压缩文件内容-o:覆盖现有文件时不提示-n:不解压已存在的文件-d:指定解压目录
- 用法:
unzip archive.zip # 解压压缩文件 unzip archive.zip -d /tmp/ # 指定解压到/tmp目录
54. bzip2 - 压缩文件
-
简介:使用Burrows-Wheeler变换算法进行高压缩比压缩。
- 参数:
-d:解压-f:强制覆盖现有文件-k:保留原文件-v:详细模式
- 用法:
bzip2 file.txt # 压缩文件,生成file.txt.bz2 bzip2 -d file.txt.bz2 # 解压文件
55. bunzip2 - 解压bzip2压缩的文件
-
简介:解压bzip2格式的压缩文件。
-
参数与bzip2类似
-
用法:
bunzip2 file.txt.bz2 # 解压文件
56. 7z - 使用7-zip算法压缩和解压文件
-
简介:7-zip格式的压缩和解压工具,支持多种压缩格式。
- 参数:
a:添加文件到压缩文件x:解压文件,保留完整路径e:解压文件,忽略路径-m:设置压缩方法-mx:设置压缩级别(0-9)-p:设置密码
- 用法:
7z a archive.7z dir/ # 压缩目录到archive.7z 7z x archive.7z # 解压压缩文件
57. xz - 压缩文件
-
简介:使用XZ Utils提供的高压缩比格式。
- 参数:
-d:解压-f:强制覆盖现有文件-k:保留原文件-v:详细模式-z:压缩(默认操作)
- 用法:
xz file.txt # 压缩文件,生成file.txt.xz xz -d file.txt.xz # 解压文件
58. unxz - 解压xz压缩的文件
-
简介:解压xz格式的压缩文件。
-
参数与xz类似
-
用法:
unxz file.txt.xz # 解压文件
进程管理类命令
- ps(已在系统监控类列出)
- top(已在系统监控类列出)
- kill
- killall
- pkill
- nice
- renice
- nohup
- bg
- fg
59. kill - 向进程发送信号
-
简介:向进程发送指定信号。
- 参数:
-l:列出所有信号名称-s:指定发送的信号-SIG:指定信号(如SIGKILL、SIGTERM)
- 用法:
kill 1234 # 向PID为1234的进程发送SIGTERM信号 kill -9 1234 # 向PID为1234的进程发送SIGKILL信号
60. killall - 向匹配进程名称的所有进程发送信号
-
简介:按进程名称向所有匹配的进程发送信号。
- 参数:
-i:交互模式,发送前提示确认-q:安静模式,不显示输出-r:解释正则表达式为模式-s:指定发送的信号-v:详细模式
- 用法:
killall nginx # 向所有nginx进程发送SIGTERM killall -9 nginx # 向所有nginx进程发送SIGKILL
61. pkill - 通过名称查找并终止进程
-
简介:根据进程名称或其他属性查找并发送信号到进程。
- 参数:
-f:完整匹配命令行-g:指定进程组ID-u:指定用户-signal:指定发送的信号
- 用法:
pkill nginx # 向所有nginx进程发送SIGTERM pkill -9 -u user1 process # 向user1的特定进程发送SIGKILL
62. nice - 运行具有修改过调度优先级的程序
-
简介:设置进程的CPU调度优先级。
- 参数:
-n:指定优先级(-20到19,数值越小优先级越高)
- 用法:
nice -n 10 command # 以较低优先级运行命令
63. renice - 调整进程的优先级
-
简介:更改正在运行的进程的调度优先级。
- 参数:
-n:指定优先级增量-p:指定进程ID-u:指定用户-g:指定组
- 用法:
renice +5 -p 1234 # 将PID为1234的进程优先级降低5
64. nohup - 忽略挂起信号运行命令
-
简介:使命令忽略挂起信号(SIGHUP),用于在用户退出后继续运行进程。
- 参数:
- 无特殊参数,直接后接要运行的命令
- 用法:
nohup command > output.txt 2>&1 & # 后台运行命令,输出保存到文件
65. bg - 将作业置于后台执行
-
简介:将当前暂停的作业置于后台执行。
-
参数:无常用参数
-
用法:
bg %1 # 将作业1置于后台执行
66. fg - 将作业置于前台执行
-
简介:将后台作业置于前台执行。
-
参数:无常用参数
-
用法:
fg %1 # 将作业1置于前台执行
权限管理类命令
- chmod
- chown
- chgrp
- umask
- sudo(已在用户管理类列出)
- su(已在用户管理类列出)
- id(已在用户管理类列出)
- groups
- newgrp
- gpasswd
67. chmod - 更改文件或目录的访问权限
-
简介:更改文件或目录的访问权限。
- 参数:
-f:安静模式,不显示错误信息-R:递归更改目录权限-v:详细模式,显示修改的文件
- 用法:
chmod 644 file.txt # 设置文件权限为rw-r--r-- chmod -R 755 dir/ # 递归设置目录权限为rwxr-xr-x
68. chown - 更改文件或目录的所有者和组
-
简介:更改文件或目录的所有者和组。
- 参数:
-f:安静模式,不显示错误信息-R:递归更改目录权限-v:详细模式,显示修改的文件--reference:参照指定文件的权限进行修改
- 用法:
chown user1 file.txt # 更改文件所有者为user1 chown user1:group1 file.txt # 同时更改所有者和组
69. chgrp - 更改文件或目录的组
-
简介:更改文件或目录的组。
- 参数:
-f:安静模式,不显示错误信息-R:递归更改目录权限-v:详细模式,显示修改的文件--reference:参照指定文件的权限进行修改
- 用法:
chgrp group1 file.txt # 更改文件的组为group1
70. umask - 设置新建文件的默认权限
-
简介:设置或报告当前Shell的文件创建掩码。
- 参数:
- 无参数:显示当前umask值
XXX:设置新的umask值(三位八进制数)
- 用法:
umask 022 # 设置默认umask为022(文件默认权限644,目录755)
71. groups - 打印用户所属的组
-
简介:显示用户所属的组列表。
- 参数:
- 无参数:显示当前用户的组
- 用户名:显示指定用户的组
- 用法:
groups user1 # 显示user1所属的组
72. newgrp - 登录到新的组
-
简介:更改当前Shell的组身份。
- 参数:
- 组名:要切换到的组
- 用法:
newgrp group1 # 切换当前Shell的组为group1
73. gpasswd - 管理组账户
-
简介:管理组账户,包括添加/删除组成员、更改组密码等。
- 参数:
-a:添加用户到组-d:从组中删除用户-A:设置组管理员-g:更改组的GID-o:仅用于系统组-r:删除组
- 用法:
gpasswd -a user1 group1 # 添加user1到group1 gpasswd -d user1 group1 # 从group1中删除user1
搜索功能增强类命令
- grep(已在文件管理类列出)
- egrep
- fgrep
- awk(已在文本处理类列出)
- sed(已在文本处理类列出)
- sort(已在文本处理类列出)
- uniq(已在文本处理类列出)
- cut(已在文本处理类列出)
- paste(已在文本处理类列出)
- join
74. egrep - 扩展grep功能,支持更多正则表达式
-
简介:扩展版本的grep,支持更多的正则表达式语法(如
|、+、()等)。 -
参数与grep类似
-
用法:
egrep 'error|warning' file.log # 查找包含"error"或"warning"的行
75. fgrep - 固定字符串的grep搜索
-
简介:固定字符串版本的grep,不解释正则表达式中的特殊字符。
-
参数与grep类似
-
用法:
fgrep '.*' file.txt # 查找包含字面字符串".*"的行
76. join - 连接文件的行
-
简介:基于共同字段连接两个文件的行,类似SQL的JOIN操作。
- 参数:
-t:指定字段分隔符-a:显示未匹配的行(1表示第一个文件,2表示第二个文件)-o:指定输出格式-1:指定第一个文件中用于连接的字段-2:指定第二个文件中用于连接的字段
- 用法:
join -t: file1.txt file2.txt # 以":"为分隔符连接两个文件
开发工具类命令
- gcc
- make
- gdb
- valgrind
- git
- svn
- wget(已在网络管理类列出)
- curl(已在网络管理类列出)
- python
- perl
- java
77. gcc - GNU项目C和C++编译器
-
简介:GNU编译系统,支持多种编程语言的编译。
- 参数:
-o:指定输出文件名-c:仅编译,不链接-g:包含调试信息-Wall:启用所有警告-I:指定头文件搜索路径-L:指定库文件搜索路径-l:链接库
- 用法:
gcc -o program source.c # 编译C源文件生成可执行文件 gcc -c source.c # 仅编译,生成.o文件
78. make - 控制编译过程的工具
-
简介:根据Makefile文件控制编译和安装过程。
- 参数:
-f:指定Makefile文件-C:切换到指定目录执行-n:仅打印执行的命令,不实际执行-j:并行编译,指定同时使用的CPU数量
- 用法:
make -j4 # 使用4个CPU核心并行编译 make install # 安装编译后的程序
79. gdb - GNU调试器
-
简介:功能强大的调试器,用于调试C、C++等程序。
- 参数:
-batch:批处理模式-ex:执行指定命令-args:指定程序参数
- 用法:
gdb ./program # 调试可执行文件 gdb -ex "run" ./program # 启动调试并立即运行程序
80. valgrind - 内存调试、内存泄漏检测等工具
-
简介:内存分析工具,用于检测内存泄漏、非法内存访问等问题。
- 参数:
--leak-check:指定内存泄漏检查级别(yes、full等)--track-origins:跟踪未初始化值的来源--suppressions:指定抑制文件
- 用法:
valgrind --leak-check=full ./program # 详细检查内存泄漏
81. git - 分布式版本控制系统
-
简介:分布式版本控制系统,用于代码版本管理和协作。
- 参数:
clone:克隆远程仓库add:添加文件到暂存区commit:提交变更push:推送变更到远程仓库pull:从远程仓库拉取变更
- 用法:
git clone https://github.com/user/repo.git # 克隆远程仓库 git add file.txt # 添加文件到暂存区 git commit -m "message" # 提交变更
82. svn - 集中式版本控制系统
-
简介:集中式版本控制系统,用于代码版本管理和协作。
- 参数:
checkout:检出远程仓库add:添加文件到版本控制commit:提交变更update:更新本地工作副本status:显示本地修改状态
- 用法:
svn checkout http://svn.example.com/repo # 检出远程仓库 svn add file.txt # 添加文件到版本控制 svn commit -m "message" # 提交变更
83. python - Python编程语言解释器
-
简介:Python编程语言的解释器。
- 参数:
-c:执行命令字符串-m:运行指定模块-v:详细模式,显示导入过程-V:显示版本信息
- 用法:
python -c "print('Hello')" # 执行Python命令
84. perl - Perl编程语言解释器
-
简介:Perl编程语言的解释器。
- 参数:
-e:执行命令字符串-n:假设循环while (<>)围绕您的脚本-p:同-n,并打印$_变量-w:启用警告
- 用法:
perl -e "print 'Hello';" # 执行Perl命令
85. java - Java编程语言解释器
-
简介:Java虚拟机,用于运行Java程序。
- 参数:
-cp或-classpath:指定类路径-D:设置系统属性-version:显示Java版本信息-jar:执行JAR包
- 用法:
java -cp . MyClass # 运行Java类 java -jar myapp.jar # 运行JAR包
其他实用命令
- alias
- unalias
- history
- man
- info
- help
- time
- which
- whereis
- hostname
- date
- cal
- bc
- echo
- printf
- exit
- uname
- ping(已在网络管理类列出)
86. alias - 创建命令别名
-
简介:创建命令别名,简化复杂命令。
- 参数:
- 无参数:显示所有当前别名
alias name='command':创建别名
- 用法:
alias ll='ls -l' # 创建ll别名
87. unalias - 删除命令别名
-
简介:删除之前创建的命令别名。
- 参数:
- 别名名称:要删除的别名
- 用法:
unalias ll # 删除ll别名
88. history - 查看和操作命令历史
-
简介:显示或操作Shell命令历史记录。
- 参数:
-c:清除历史记录-w:将历史写入历史文件-r:从历史文件读取历史-n:显示历史记录数量
- 用法:
history # 显示命令历史 history | grep ssh # 查找历史中的ssh命令
89. man - 显示在线手册页
-
简介:显示指定命令的在线帮助手册。
- 参数:
-f:等同于whatis,简要描述命令-k:等同于apropos,按关键词搜索手册页-w:显示手册页文件的位置
- 用法:
man ls # 显示ls命令的手册页 man -k grep # 搜索功能相关的手册页
90. info - 显示信息页面
-
简介:显示指定命令的info格式文档。
- 参数:
--dir:指定info目录--subdir:指定子目录--standalone:不要追加节点
- 用法:
info ls # 显示ls命令的信息页面
91. help - 显示内置命令的帮助信息
-
简介:显示Shell内置命令的帮助信息。
- 参数:
- 命令名称:要查看帮助的命令
- 用法:
help cd # 显示cd命令的帮助信息
92. time - 测量命令执行时间
-
简介:测量命令的执行时间。
- 参数:
-p:以POSIX格式输出-f:指定输出格式-o:指定输出文件
- 用法:
time ls -R # 测量ls -R命令的执行时间
93. which - 查找命令的绝对路径
-
简介:查找并显示命令的绝对路径。
- 参数:
-a:显示所有匹配的路径
- 用法:
which ls # 查找ls命令的路径
94. whereis - 定位命令的可执行文件、源代码和手册页
-
简介:查找命令的可执行文件、源代码和手册页位置。
- 参数:
-b:仅查找可执行文件-m:仅查找手册页-s:仅查找源代码
- 用法:
whereis ls # 查找ls命令的相关文件
95. hostname - 显示或设置系统的主机名
-
简介:显示或设置当前系统的主机名。
- 参数:
-i:显示主机的IP地址-d:显示域名-f:显示完全限定域名-s:显示短主机名
- 用法:
hostname # 显示当前主机名 hostname -i # 显示主机IP地址
96. date - 显示和设置系统日期与时间
-
简介:显示或设置系统的日期和时间。
- 参数:
+%F:以YYYY-MM-DD格式显示日期+%T:以HH:MM:SS格式显示时间--date:显示指定的日期时间--set:设置系统日期时间
- 用法:
date # 显示当前日期时间 date '+%Y-%m-%d %H:%M:%S' # 自定义格式显示日期时间
97. cal - 显示日历
-
简介:显示日历。
- 参数:
年:指定年份月 年:指定月份和年份
- 用法:
cal # 显示当前月日历 cal 2023 # 显示2023年全年日历
98. bc - 计算器
-
简介:命令行计算器,支持浮点运算和编程。
- 参数:
-l:加载数学库,启用额外的数学函数-i:交互模式-q:安静模式,启动时不显示欢迎信息
- 用法:
echo "1+2" | bc # 计算1+2 bc -l # 以交互模式启动
99. echo - 输出文本
-
简介:输出指定的文本。
- 参数:
-n:不输出末尾的换行符-e:启用对反斜杠转义字符的处理-E:禁用对反斜杠转义字符的处理(默认)
- 用法:
echo "Hello" # 输出Hello echo -e "Hello\nWorld" # 输出多行文本
100. printf - 格式化输出
-
简介:格式化输出文本。
- 参数:
- 格式字符串:指定输出格式(如
%s、%d等) - 参数:按照格式字符串指定的顺序提供
- 格式字符串:指定输出格式(如
- 用法:
printf "Number: %d\n" 100 # 格式化输出数字
101. exit - 退出Shell
-
简介:退出当前Shell会话。
- 参数:
- 状态码:指定退出状态(0表示成功,非0表示错误)
- 用法:
exit # 退出当前Shell exit 0 # 以状态码0退出