常用命令

返回 Linux


文件与目录

# 查看
ls -lh              # 详细列表,人类可读大小
ls -la              # 包含隐藏文件
tree -L 2           # 树形结构,深度 2
 
# 导航
pwd                 # 当前路径
cd -                # 切换到上一个目录
 
# 创建 / 删除
mkdir -p a/b/c      # 递归创建目录
rm -rf dir          # 强制递归删除
cp -r src/ dst/     # 递归复制
mv old new          # 移动 / 重命名
 
# 查找
find /var/log -name "*.log" -mtime -7    # 7 天内修改的 .log
find . -type f -size +100M               # 大于 100M 的文件
find . -name "*.java" -exec grep -l "TODO" {} \;

文件查看

cat file.txt                  # 全部输出
less file.txt                 # 分页查看(q 退出)
head -20 file.txt             # 前 20 行
tail -50 file.txt             # 后 50 行
tail -f /var/log/app.log      # 实时追踪日志
 
# 统计
wc -l file.txt                # 行数
wc -c file.txt                # 字节数

文本处理

# grep 搜索
grep -r "keyword" /etc/        # 递归搜索
grep -n "ERROR" app.log        # 显示行号
grep -v "DEBUG" app.log        # 反向过滤
grep -E "ERROR|WARN" app.log   # 正则匹配
 
# awk
awk '{print $1, $3}' file.txt                  # 打印第 1、3 列
awk -F: '{print $1}' /etc/passwd               # 指定分隔符
awk 'NR>=10 && NR<=20' file.txt                # 第 10-20 行
awk '{sum+=$1} END{print sum}' nums.txt        # 求和
 
# sed
sed 's/foo/bar/g' file.txt                     # 替换(输出到终端)
sed -i 's/foo/bar/g' file.txt                  # 原地替换
sed -n '5,10p' file.txt                        # 打印第 5-10 行
sed '/^#/d' config.conf                        # 删除注释行
 
# sort / uniq
sort -k2 -n file.txt          # 按第 2 列数字排序
sort -rn nums.txt             # 逆序数字排序
sort file.txt | uniq -c       # 统计重复行次数

压缩与归档

# tar
tar -czf archive.tar.gz dir/         # 压缩
tar -xzf archive.tar.gz              # 解压到当前目录
tar -xzf archive.tar.gz -C /opt/     # 解压到指定目录
tar -tzf archive.tar.gz              # 查看内容
 
# zip / unzip
zip -r archive.zip dir/
unzip archive.zip -d /opt/

磁盘与存储

df -h                         # 磁盘使用(人类可读)
du -sh /var/log               # 目录占用大小
du -sh * | sort -rh | head    # 当前目录下各子项大小排序
lsblk                         # 块设备列表
mount | grep "^/dev"          # 已挂载设备

系统信息

uname -a                      # 内核版本
hostname                      # 主机名
uptime                        # 运行时间与负载
date '+%Y-%m-%d %H:%M:%S'    # 格式化时间
timedatectl                   # 时区信息
env                           # 环境变量
echo $PATH

管道与重定向

command > out.txt             # 覆盖写入
command >> out.txt            # 追加写入
command 2> err.txt            # 错误输出重定向
command &> all.txt            # 标准输出 + 错误都重定向
command1 | command2           # 管道
command1 && command2          # 前者成功才执行后者
command1 || command2          # 前者失败才执行后者

相关文档