pwd - 显示当前工作目录
pwd
# /home/username
cd - 改变目录
cd /path/to/directory # 绝对路径
cd ../parent # 相对路径
cd ~ # 返回家目录
cd - # 返回上一个目录
ls - 列出目录内容
ls # 简单列出
ls -l # 长格式显示
ls -a # 显示隐藏文件
ls -lh # 人类可读的文件大小
ls -t # 按修改时间排序
ls -R # 递归列出子目录
ls --color=auto # 彩色显示
touch - 创建空文件或更新文件时间戳
touch filename.txt
touch -t 202301011200 filename.txt # 设置特定时间戳
cp - 复制文件或目录
cp file1 file2 # 复制文件
cp -r dir1 dir2 # 递归复制目录
cp -v file1 file2 # 显示详细信息
cp -p file1 file2 # 保留原始属性
cp -u file1 file2 # 仅当源文件更新时才复制
mv - 移动或重命名文件
mv oldname newname # 重命名
mv file /path/to/dir/ # 移动文件
mv -i file1 file2 # 覆盖前询问
mv -n file1 file2 # 不覆盖已存在文件
rm - 删除文件或目录
rm file # 删除文件
rm -r dir # 递归删除目录
rm -f file # 强制删除,不提示
rm -i file # 交互式删除
rm --preserve-root # 保护根目录(默认)
mkdir - 创建目录
mkdir dirname
mkdir -p parent/child # 创建多级目录
mkdir -m 755 dirname # 设置权限
rmdir - 删除空目录
rmdir dirname
rmdir -p parent/child # 删除多级空目录
cat - 连接文件并打印到标准输出
cat file.txt
cat -n file.txt # 显示行号
cat -b file.txt # 非空行显示行号
cat file1 file2 > combined # 合并文件
less/more - 分页查看文件
less filename
more filename
# 常用操作:
# 空格 - 下一页
# b - 上一页
# /pattern - 搜索
# q - 退出
head - 显示文件开头部分
head file.txt # 默认显示前10行
head -n 20 file.txt # 显示前20行
head -c 100 file.txt # 显示前100字节
tail - 显示文件结尾部分
tail file.txt # 默认显示最后10行
tail -n 20 file.txt # 显示最后20行
tail -f logfile # 实时跟踪文件变化
tail -F logfile # 跟踪文件名变化
nl - 显示文件内容并添加行号
nl file.txt
nl -b a file.txt # 包括空行
nl -w 3 file.txt # 设置行号宽度
find - 查找文件
find /path -name "*.txt" # 按名称查找
find . -type f -mtime -7 # 7天内修改的文件
find / -size +10M # 大于10MB的文件
find ~ -user username # 按用户查找
find /var/log -name "*.log" -exec rm {} \; # 查找并删除
find . -perm 644 # 按权限查找
locate - 快速查找文件(需先更新数据库)
locate filename
updatedb # 更新数据库
which - 显示命令的完整路径
which ls
# /bin/ls
whereis - 定位命令的二进制、源码和手册页
whereis python
# python: /usr/bin/python /usr/lib/python2.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz
grep - 文本搜索
grep "pattern" file.txt
grep -i "pattern" file.txt # 忽略大小写
grep -v "pattern" file.txt # 反向匹配
grep -r "pattern" /path # 递归搜索
grep -n "pattern" file.txt # 显示行号
grep -c "pattern" file.txt # 统计匹配行数
grep -E "regexp" file.txt # 扩展正则表达式
egrep "regexp" file.txt # 同上
awk - 强大的文本处理工具
awk '{print $1}' file.txt # 打印第一列
awk -F: '{print $1}' /etc/passwd # 指定分隔符
awk '/pattern/ {print $0}' file # 匹配模式
awk 'NR==3,NR==5' file.txt # 打印3-5行
awk '{sum+=$1} END{print sum}' file # 计算总和
sed - 流编辑器
sed 's/old/new/g' file.txt # 替换文本
sed -i 's/old/new/g' file.txt # 直接修改文件
sed '5d' file.txt # 删除第5行
sed '1,3d' file.txt # 删除1-3行
sed '/pattern/d' file.txt # 删除匹配行
sed -n '10,20p' file.txt # 打印10-20行
sed '3i\new line' file.txt # 在第3行前插入
sed '3a\new line' file.txt # 在第3行后追加
cut - 剪切文件内容
cut -d: -f1 /etc/passwd # 以:分隔,取第一列
cut -c1-5 file.txt # 取每行1-5字符
sort - 排序文件内容
sort file.txt # 按字母排序
sort -n file.txt # 按数字排序
sort -r file.txt # 逆序排序
sort -u file.txt # 去重排序
sort -k2 file.txt # 按第二列排序
sort -t: -k3n /etc/passwd # 以:分隔,按第三列数字排序
uniq - 报告或忽略重复行
uniq file.txt # 去除连续重复行
uniq -c file.txt # 计数重复行
uniq -d file.txt # 只显示重复行
uniq -u file.txt # 只显示唯一行
wc - 统计行数、单词数和字节数
wc file.txt # 行数 单词数 字节数 文件名
wc -l file.txt # 只统计行数
wc -w file.txt # 只统计单词数
wc -c file.txt # 只统计字节数
wc -m file.txt # 统计字符数
diff - 比较文件差异
diff file1 file2
diff -u file1 file2 # 统一格式输出
diff -r dir1 dir2 # 递归比较目录
diff -y file1 file2 # 并排比较
comm - 比较两个已排序文件
comm file1 file2 # 三列输出: 独有行 独有行 共有行
comm -12 file1 file2 # 只显示共有行
paste - 合并文件行
paste file1 file2 # 并排合并
paste -d, file1 file2 # 指定分隔符
paste -s file1 # 转置为单行
tr - 字符转换或删除
tr 'a-z' 'A-Z' < file.txt # 小写转大写
tr -d '\r' < file.txt # 删除回车符
tr -s ' ' < file.txt # 压缩连续空格
cmp - 逐字节比较文件
cmp file1 file2
md5sum/sha1sum - 计算校验和
md5sum file.txt
sha1sum file.txt
sha256sum file.txt
file - 确定文件类型
file filename
file -i filename # 显示MIME类型
chmod - 改变文件权限
chmod 755 file.txt # 数字模式
chmod u+x file.txt # 符号模式
chmod -R 755 dir # 递归修改
chmod a+r file.txt # 所有人可读
chmod g-w file.txt # 组用户不可写
chown - 改变文件所有者
chown user:group file.txt
chown -R user:group dir # 递归修改
chown :group file.txt # 只改组
chgrp - 改变文件所属组
chgrp group file.txt
chgrp -R group dir # 递归修改
umask - 设置默认权限掩码
umask 022 # 设置掩码
umask # 查看当前掩码
SUID/SGID/Sticky bit
chmod u+s file # 设置SUID
chmod g+s dir # 设置SGID
chmod +t dir # 设置Sticky bit
chmod 4755 file # 数字设置SUID
chmod 2755 dir # 数字设置SGID
chmod 1777 dir # 数字设置Sticky bit
uname - 显示系统信息
uname -a # 全部信息
uname -s # 内核名称
uname -n # 主机名
uname -r # 内核版本
uname -m # 硬件架构
hostname - 显示或设置主机名
hostname
hostname newname # 临时修改
uptime - 显示系统运行时间
uptime
# 12:34:56 up 10 days, 2:30, 3 users, load average: 0.00, 0.01, 0.05
date - 显示或设置系统时间
date # 当前时间
date +"%Y-%m-%d %H:%M:%S" # 格式化输出
date -s "2023-01-01 12:00:00" # 设置时间
date -d "1 day ago" # 相对时间
cal - 显示日历
cal
cal -3 # 显示前中后三个月
cal -y # 显示全年日历
cal 2023 # 显示特定年份
free - 显示内存使用情况
free -h # 人类可读格式
free -m # MB为单位
free -s 5 # 每5秒刷新
df - 显示磁盘空间使用
df -h # 人类可读格式
df -i # 显示inode信息
df -T # 显示文件系统类型
du - 显示目录空间使用
du -sh dir # 目录总大小
du -h --max-depth=1 / # 一级子目录大小
du -ah dir # 显示所有文件大小
top/htop - 动态显示进程信息
top
htop # 增强版top
# 常用操作:
# q - 退出
# k - 杀死进程
# M - 按内存排序
# P - 按CPU排序
ps - 显示进程状态
ps aux # 显示所有进程
ps -ef # 完整格式
ps -u username # 特定用户进程
ps -p PID # 特定PID进程
ps -o pid,comm,pcpu # 自定义输出
kill - 终止进程
kill PID # 默认发送TERM信号
kill -9 PID # 强制终止
kill -l # 列出所有信号
killall processname # 终止所有同名进程
pkill pattern # 按模式终止进程
nice/renice - 调整进程优先级
nice -n 10 command # 启动时设置优先级
renice 10 -p PID # 修改运行中进程优先级
nohup - 忽略挂起信号运行命令
nohup command & # 后台运行,忽略挂起
jobs/fg/bg - 作业控制
jobs # 列出后台作业
fg %1 # 将作业1调到前台
bg %1 # 将作业1调到后台
screen/tmux - 终端复用
screen # 启动新会话
screen -S name # 命名会话
screen -ls # 列出会话
screen -r ID # 恢复会话
# tmux类似但更强大
ifconfig/ip - 网络接口配置
ifconfig # 显示接口信息
ifconfig eth0 up # 启用接口
ifconfig eth0 192.168.1.100 # 设置IP
ip addr show # 现代替代命令
ip link set eth0 up
ip addr add 192.168.1.100/24 dev eth0
ping - 测试网络连通性
ping example.com
ping -c 4 example.com # 指定次数
ping -i 5 example.com # 指定间隔(秒)
ping -s 1000 example.com # 指定包大小
traceroute/tracepath - 跟踪路由
traceroute example.com
tracepath example.com # 不需要root权限
netstat/ss - 网络统计信息
netstat -tulnp # 监听端口
netstat -r # 路由表
netstat -s # 统计信息
ss -tulnp # 现代替代命令
dig/nslookup - DNS查询
dig example.com
dig example.com MX # 查询MX记录
nslookup example.com
host - DNS查询工具
host example.com
host -t MX example.com # 查询特定记录
whois - 域名信息查询
whois example.com
wget/curl - 下载工具
wget http://example.com/file
wget -c http://example.com/file # 断点续传
wget -r -l1 -p http://example.com # 递归下载
curl -O http://example.com/file
curl -o localname http://example.com/file
curl -L http://example.com # 跟随重定向
scp - 安全复制
scp file user@remote:/path # 上传
scp user@remote:/path/file . # 下载
scp -r dir user@remote:/path # 递归复制目录
scp -P 2222 file user@remote:/path # 指定端口
rsync - 远程同步工具
rsync -avz source/ user@remote:dest/ # 同步目录
rsync -avz -e "ssh -p 2222" source/ user@remote:dest/ # 指定端口
rsync -avz --delete source/ dest/ # 删除目标多余文件
rsync -avz --progress source/ dest/ # 显示进度
ssh - 安全外壳连接
ssh user@remote
ssh -p 2222 user@remote # 指定端口
ssh -i key.pem user@remote # 使用密钥认证
ssh -X user@remote # 启用X11转发
ssh -L 8080:localhost:80 user@remote # 本地端口转发
ssh -R 8080:localhost:80 user@remote # 远程端口转发
iptables - 包过滤工具
iptables -L # 列出规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH
iptables -A INPUT -j DROP # 默认拒绝
iptables-save > rules.v4 # 保存规则
iptables-restore < rules.v4 # 恢复规则
ufw - 简化防火墙配置 ```bash ufw enable # 启用 ufw allow 22/tcp # 允许