ls | 列出目录内容 | -a:显示所有文件(含隐藏) -l:长格式显示 -h:易读大小单位 -t:按修改时间排序 | ls -lht(按时间倒序+长格式) ls -rt(按时间正序) |
echo | 打印文本内容 | -n:不加换行符 -e:解析转义符(如\n) | echo -e "a\nb\nc"(换行打印) echo "hello world" |
printf | 格式化打印数据 | %s:字符串 %d:整数 %f:浮点数 %-ns:左对齐(n为宽度) | printf "%-10s %s\n" 姓名 张三 printf "%.1f" 1.333(保留1位小数) |
cat | 查看/拼接文件 | -n:显示所有行号 -E:显示行尾$ -b:显示非空行行号 | cat file(查看文件) cat >a.txt <<EOF(写入内容) |
tac | 倒序按行输出文件 | 无常用选项 | tac a.txt(倒序查看文件) |
rev | 反转每行字符 | 无常用选项 | echo "123" | rev(输出321) |
wc | 统计行数/字符/字节 | -l:统计行数 -L:最长行长度 -c:统计字节数 | wc -l file(统计文件行数) echo "hello" | wc -L(统计字符串长度) |
cp | 复制文件/目录 | -r:递归复制目录 -f:强制复制 -p:保留文件属性 | cp -rf test /opt(复制目录) cp a.txt tmp(复制文件) |
mkdir | 创建目录 | -p:递归创建多级目录 -v:显示创建过程 | mkdir -p /opt/test/abc(多级目录) mkdir {a..c}(连续目录) |
mv | 移动文件/重命名 | -v:显示移动过程 -b:目标存在则备份 | mv a.txt b.txt(重命名) mv a.txt opt(移动文件) |
rename | 批量重命名文件 | 支持通配符匹配 | rename .htm .html *.htm(批量改后缀) rename foo foo0 foo?(补0命名) |
dirname | 提取路径的目录部分 | 无常用选项 | dirname /usr/bin/(输出/usr)dirname stdio.h(输出.) |
basename | 提取路径的文件名 | -s:删除文件后缀 -a:支持多个参数 | basename /usr/bin/sort(输出sort) basename file.txt .txt(输出file) |
du | 查看文件/目录磁盘占用 | -h:易读格式(K/M/G) -s:只显示总大小 --exclude:排除文件 | du -sh /opt(查看目录总大小) du -sh --exclude=test opt(排除文件) |
cut | 截取文本列/字符 | -d:指定分隔符 -f:指定字段 -c:指定字符位置 | cut -d: -f2 /etc/passwd(冒号分隔取第2列) echo "abc" | cut -c1-2(截取前2个字符) |
tr | 替换/删除字符 | -d:删除指定字符 -s:压缩重复字符 -t:字符转换 | tr a-z A-Z(小写转大写) tr -d '\n'(删除换行符) |
stat | 显示文件系统状态 | -c:自定义输出格式 -t:简洁显示 | stat file(查看文件完整信息) stat -c %y file(只看修改时间) |
seq | 生成数字序列 | -w:等宽补0 -s:指定分隔符 -f:格式化输出 | seq -w 03(输出01 02 03) seq -s '+' 5(输出1+2+3+4+5) |
shuf | 生成随机序列 | -i:指定数字范围 -o:结果写入文件 | shuf -i 5-10(随机输出5-10的数字) seq 5 | shuf(打乱1-5) |
sort | 文本排序 | -n:数字排序 -r:倒序排序 -k:按字段排序 -u:去重 | sort -n -k2 file(按第2列数字排序) sort -u file(去重排序) |
uniq | 去除相邻重复行 | -c:统计重复次数 -d:只显示重复行 -u:只显示唯一行 | sort file | uniq -c(统计重复次数) sort file | uniq -u(显示唯一行) |
tee | 输出并写入文件 | -a:追加写入(不覆盖) | echo 123 | tee -a a.log(追加写入日志) |
join | 按字段合并两个文件 | -t:指定分隔符 -o:指定显示字段 | join file1 file2(按相同字段合并) join -o 1.2 2.2 file1 file2(显示指定字段) |
paste | 按行合并文件 | -d:指定分隔符 -s:平行合并 | paste -d "+" file1 file2(+号分隔合并) paste -s file1(平行显示文件内容) |
head | 输出文件前几行 | -n:指定行数 -c:指定字节数 | head -n 50 file(显示前50行) |
tail | 输出文件后几行 | -n:指定行数 -f:实时跟踪文件 | tail -n 50 file(显示后50行) tail -f log(实时跟踪日志) |
find | 查找文件/目录 | -name:按名称查找 -type:按类型查找 -size:按大小查找 -exec:执行命令 | find . -name "*.log"(查找log文件) find . -type f -delete(删除普通文件) |
xargs | 传递参数执行命令 | -i:用{}占位 -0:处理含空格文件名 -n:指定最大参数数 | find | xargs rm(批量删除文件)echo "1 2 3" | xargs -n1(行转列) |
nl | 显示文件行号 | -b t:空行不显示行号 -n ln:左对齐行号 | nl -b t a.txt(空行不显示行号) |
date | 查看/设置系统时间 | +%F:日期(YYYY-MM-DD) +%T:时间(HH:MM:SS) -d:相对时间 | date +%F%T(显示当前时间) date -d "-1 day" +%F(显示前一天) |
wget | 非交互式网络下载 | -c:断点续传 -O:指定输出文件 -b:后台下载 | wget -c url -O file(断点续传) wget --spider url(检测链接) |
curl | HTTP/HTTPS请求/下载 | -o:指定输出文件 -I:查看响应头 -d:POST请求数据 | curl -I url(查看响应头) curl -o file url(下载文件) |
scp | 基于SSH远程拷贝 | -r:递归拷贝目录 -P:指定SSH端口 -p:保留文件属性 | scp -P 22 file root@ip:/dst(远程上传) scp -r root@ip:src /dst(远程下载) |
rsync | 文件同步(本地/远程) | -avz:归档+压缩+显示过程 --delete:同步删除 --exclude:排除文件 | rsync -avz src dst(本地同步) rsync -avz src root@ip:dst(远程同步) |
nohup | 后台挂起运行程序 | 无常用选项 | nohup bash test.sh &>test.log &(后台运行脚本) |
iconv | 字符编码转换 | -f:原始编码 -t:目标编码 -o:输出到文件 | iconv -f gbk -t utf8 old.txt -o new.txt(GBK转UTF8) |
sshpass | 非交互SSH登录/传输 | -p:指定SSH密码 -e:从环境变量取密码 | sshpass -p 123 ssh root@ip(非交互登录) sshpass -p 123 scp file root@ip:dst |
tar | 压缩/解压文件/目录 | -z:gz压缩/解压 -j:bz2压缩解压 -c:创建压缩包 -x:解压 -C:指定解压目录 | tar zcvf file.tar.gz dir(gz压缩) tar zxvf file.tar.gz -C opt(解压到指定目录) |
netstat | 查看网络连接/端口 | -tulnp:查看所有监听端口 -antp:查看所有TCP连接 | netstat -tulnp(查看监听端口) |
ss | 查看Socket(比netstat快) | -tulnp:查看监听端口 -o:显示计时器 | ss -tulnp(查看监听端口) ss -o state established(查看已建立连接) |
lsof | 查看打开的文件/端口 | -i:查看端口占用 -p:查看进程打开的文件 -f:递归搜索 | lsof -i :80(查看80端口占用) lsof etc/passwd(查看哪个进程打开文件) |
ps | 查看进程快照 | aux:BSD格式(常用) -ef:全格式 -L:查看线程 | ps aux(查看所有进程) ps -Lfp pid(查看进程线程) |
top | 实时监控进程/系统资源 | -Hp:查看进程线程 -u:查看指定用户进程 -d:指定刷新间隔 | top(实时监控) top -Hp pid(查看进程线程) |
free | 查看内存使用率 | -h:易读格式(K/M/G) -s:指定刷新间隔 | free -h(查看内存使用) |
df | 查看磁盘空间使用 | -h:易读格式 -t:指定文件系统类型 -i:查看inode信息 | df -h(查看磁盘使用) df -t xfs(查看xfs格式磁盘) |
ip | 查看/配置网络/路由 | addr:查看网卡地址link:查看网卡状态route:查看路由表 | ip addr(查看网卡地址) ip route(查看路由表) |
nc | 端口测试/网络传输 | -z:端口扫描 -v:显示详细信息 -u:UDP协议 | nc -zv ip 22(检测22端口是否开放) nc -l 1234(监听1234端口) |
time | 统计命令执行耗时 | 无常用选项 | time ls(统计ls执行时间) |
eval | 执行字符串为Shell命令 | 无常用选项 | eval "a=1 b=2"(执行赋值命令) |