Unix 系统常用内置工具命令指南
一、文件与目录操作
1. 基础操作
# 列出文件
ls [选项] [文件/目录]
-l 详细列表(权限、所有者、大小等)
-a 显示所有文件(包括隐藏文件)
-h 人类可读的大小格式
-t 按修改时间排序
-r 反向排序
# 示例
ls -laht # 详细列表显示所有文件(包括隐藏文件)
# 查看当前目录
pwd # 打印工作目录
# 切换目录
cd [目录]
cd ~ # 切换到home目录
cd .. # 切换到上级目录
cd - # 切换到上一个目录
# 创建/删除目录
mkdir [选项] 目录名
-p 创建多级目录(自动创建父目录)
mkdir -p project/{src,test,docs}
rmdir 目录名 # 删除空目录
# 复制文件/目录
cp [选项] 源文件 目标文件
-r 递归复制目录
-i 交互模式(覆盖前询问)
-v 显示详细信息
cp -ri source_dir/ dest_dir/
# 移动/重命名
mv [选项] 源文件 目标文件
-i 交互模式
mv oldname newname # 重命名
mv file dir/ # 移动到目录
# 删除文件/目录
rm [选项] 文件/目录
-r 递归删除
-f 强制删除(不询问)
-i 交互模式
rm -rf directory/ # 强制递归删除目录(谨慎使用!)
2. 文件查看与编辑
# 查看文件内容
cat [选项] 文件
-n 显示行号
-b 显示非空行号
cat file1 file2 > combined # 合并文件
less 文件 # 分页查看(支持搜索:/pattern)
more 文件 # 分页查看(基本功能)
head -n 10 文件 # 查看前10行
tail -n 20 文件 # 查看后20行
-f # 实时跟踪文件变化(日志监控)
# 文本编辑器
vi/vim 文件 # vi编辑器
nano 文件 # 简单文本编辑器
二、文本处理工具
1. grep - 文本搜索
grep [选项] 模式 文件
-i 忽略大小写
-r 递归搜索目录
-n 显示行号
-v 反向匹配(显示不包含模式的行)
-E 扩展正则表达式(等同egrep)
-l 只显示文件名
-c 统计匹配行数
# 示例
grep -rin "error" /var/log/
grep -E "^[A-Z]" file.txt # 使用正则表达式
2. sed - 流编辑器
sed [选项] '命令' 文件
-e 执行多个命令
-i 直接修改文件(原处编辑)
-n 抑制默认输出
# 常用命令
sed 's/old/new/g' file # 替换所有old为new
sed '2,5d' file # 删除2-5行
sed -n '10,20p' file # 打印10-20行
sed 's/^/# /' file > newfile # 每行开头添加注释
sed -i.bak 's/foo/bar/g' file # 替换并备份原文件
3. awk - 文本分析处理
awk [选项] '模式 {动作}' 文件
-F 指定字段分隔符(默认空格)
-v 定义变量
# 示例
awk '{print $1}' file # 打印第一列
awk -F: '{print $1}' /etc/passwd # 以:分隔,打印第一列
awk '$3 > 100 {print $0}' file # 第三列大于100的行
awk '{sum+=$1} END{print sum}' # 求和
awk 'NR%2==1' file # 打印奇数行
三、系统信息与监控
1. 系统状态
# 进程查看
ps [选项]
aux 查看所有进程详细信息
-ef 全格式列表
ps aux | grep nginx
top # 实时进程监控(交互式)
htop # 增强版top(需安装)
# 系统信息
uname -a # 显示所有系统信息
whoami # 当前用户名
hostname # 主机名
uptime # 系统运行时间及负载
# 内存与磁盘
free -h # 内存使用情况(人类可读)
df -h # 磁盘空间(人类可读)
du -sh dir/ # 目录大小
-h # 人类可读
-s # 总计
--max-depth=N # 限制目录深度
2. 网络工具
ifconfig # 网络接口信息(旧版)
ip addr # 网络接口信息(新版)
netstat -tulpn # 网络连接状态
-t TCP连接
-u UDP连接
-l 监听端口
-p 显示进程信息
-n 数字形式显示
ping 主机 # 测试网络连通性
-c 4 # 发送4个包
traceroute 主机 # 路由跟踪
# 远程连接
ssh 用户@主机
scp 本地文件 用户@主机:路径 # 安全复制
四、权限管理
# 文件权限
chmod [选项] 权限 文件
u=rwx,g=rx,o= # 符号模式
755 # 数字模式(rwxr-xr-x)
-R # 递归修改
# 示例
chmod u+x script.sh # 给所有者添加执行权限
chmod 644 file.txt # rw-r--r--
chmod -R 755 directory/ # 递归修改目录权限
chown 用户:组 文件 # 修改所有者
-R # 递归修改
chgrp 组 文件 # 修改所属组
五、搜索与查找
1. find - 文件查找
find [路径] [选项] [表达式]
-name "pattern" # 按名称查找
-type f/d # 文件类型(f文件,d目录)
-size +10M # 大小大于10M
-mtime -7 # 7天内修改过
-user username # 按用户
-exec command {} \; # 对找到的文件执行命令
# 示例
find . -name "*.log" -type f
find /home -size +100M -exec ls -lh {} \;
find . -mtime +30 -delete # 删除30天前的文件
2. locate - 快速文件查找
locate pattern # 快速查找(基于数据库)
updatedb # 更新locate数据库
3. which/whereis - 命令查找
which command # 显示命令的完整路径
whereis command # 显示命令的二进制、源和手册页位置
六、压缩与归档
# tar - 归档工具
tar [选项] 文件
-c 创建归档
-x 解压归档
-v 详细输出
-f 指定文件名
-z 使用gzip压缩/解压
-j 使用bzip2压缩/解压
-J 使用xz压缩/解压
# 示例
tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压gzip包
tar -cjvf archive.tar.bz2 dir/ # 创建bzip2压缩包
七、管道与重定向
# 管道(|)- 连接命令
command1 | command2 # 将command1的输出作为command2的输入
# 示例
ps aux | grep python | wc -l
cat file.txt | sort | uniq
# 重定向
> file # 输出重定向(覆盖)
>> file # 输出重定向(追加)
2> file # 错误输出重定向
&> file # 所有输出重定向
# 示例
ls > files.txt
echo "new line" >> file.txt
command 2> error.log
command &> output.log
八、其他实用工具
# 排序与去重
sort [选项] 文件
-n 数值排序
-r 反向排序
-u 去重
-k 指定排序列
uniq [选项] 文件
-c 统计重复次数
-d 只显示重复行
# 示例
sort file.txt | uniq -c
# 行计数
wc [选项] 文件
-l 行数
-w 单词数
-c 字符数
# 比较文件
diff file1 file2 # 比较文件差异
cmp file1 file2 # 逐字节比较
# 任务控制
& # 后台运行
jobs # 查看后台作业
fg %n # 前台运行作业n
bg %n # 后台运行作业n
Ctrl+Z # 暂停任务
Ctrl+C # 终止任务
九、组合使用示例
# 1. 查找并处理文件
find /var/log -name "*.log" -type f -mtime +7 -exec gzip {} \;
# 2. 统计代码行数
find . -name "*.py" -type f | xargs wc -l
# 3. 监控日志变化
tail -f /var/log/syslog | grep -i error
# 4. 进程管理组合
ps aux | grep -v grep | grep nginx | awk '{print $2}' | xargs kill -9
# 5. 文件分析
awk -F, '{print $1}' data.csv | sort | uniq -c | sort -nr
注意事项
谨慎使用:
rm -rf、
chmod 777、
dd等危险命令
使用别名:在
.bashrc中设置安全别名
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
测试命令:在不熟悉的命令前加
echo先查看效果
备份重要数据:执行可能破坏数据的操作前先备份
查看手册:使用
man command或
command --help获取详细帮助
这个指南覆盖了Unix/Linux系统中90%的日常操作需求。掌握这些工具的组合使用可以大大提高工作效率。