Linux命令终极指南:从入门到精通掌握150+核心指令

发布于:2025-02-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、文件与目录管理

1. 基础导航
pwd        # 显示当前工作目录 (Print Working Directory)
ls -lah    # 列出所有文件包括隐藏文件,人性化大小显示
           # -l 长格式 -a 所有文件 -h 易读大小
cd ~       # 切换到用户家目录 (Change Directory)
cd -       # 返回上一个工作目录
2. 文件操作
touch file.txt          # 创建空文件或更新时间戳
cp -arv src dest        # 递归复制保留属性 (Archive+Verbose)
mv file.txt /new/path/  # 移动或重命名文件
rm -ri dir/             # 交互式递归删除 (确认每次删除)
3. 目录管理
mkdir -pv parent/child/grandchild  # 自动创建父目录并显示过程
rmdir dir/            # 删除空目录
rm -rf dir/           # 强制递归删除目录(危险!慎用)
tree -L 3 -d          # 显示目录树结构,限制3层深度
4. 文件查看
cat -n file.txt       # 显示行号查看文件内容
less +F file.log      # 实时跟踪文件更新(类似tail -f)
head -n 20 file.csv   # 显示前20行
tail -n 50 -f log.txt # 显示末尾50行并持续跟踪

二、文件权限与属性

1. 权限管理
chmod 755 script.sh    # 设置rwxr-xr-x权限
chmod u+x,g-w,o=r file # 符号模式修改权限
chown user:group file  # 修改文件所有者和所属组
chattr +i important.txt # 设置不可修改属性(连root都不能改)
2. 特殊权限
chmod 4755 suid_program  # 设置SUID位(程序运行时继承所有者权限)
chmod 2755 dir/          # 设置SGID位(目录内新建文件继承组权限)
chmod +t shared_dir/     # 设置粘滞位(仅文件所有者可删除)

三、文本处理三剑客

1. grep文本搜索
grep -Ein 'error|fail' *.log  # 显示行号、忽略大小写、正则匹配
grep -r --include=*.py 'import' /code/  # 递归搜索Python文件
grep -v '^#' config.conf     # 排除注释行(以#开头)
2. sed流编辑器
sed 's/foo/bar/g' file.txt          # 全局替换字符串
sed -n '10,20p' access.log          # 打印10-20行
sed -i.bak '/^$/d' file.txt         # 删除空行并备份原文件
sed '/START/,/END/d' data.txt       # 删除两个标记之间的内容
3. awk数据处理
awk -F: '{print $1, $6}' /etc/passwd               # 以冒号分割打印字段
awk '$3 > 1000 {sum+=$4} END {print sum}' data.csv # 条件统计
awk 'NR%2==1 {print > "odd"} NR%2==0 {print > "even"}' file.txt # 奇偶行分割

四、系统管理

1. 进程管理
ps -ef --forest        # 显示进程树状结构
top -c -u apache       # 实时监控进程,显示完整命令,过滤用户
kill -9 $(pgrep -f java) # 强制终止所有Java进程
nice -n 19 long_task   # 最低优先级运行任务
renice +5 -p 1234      # 调整运行中进程优先级
2. 服务管理
systemctl list-unit-files --type=service  # 查看所有服务状态
journalctl -u nginx --since "2023-01-01" --until "1 hour ago" # 查看时间段日志
service network restart     # 传统SysV服务管理(兼容命令)
3. 用户管理
useradd -m -s /bin/bash -G sudo,dev user1  # 创建用户并加入组
passwd -e user1          # 强制用户下次登录修改密码
usermod -aG docker user1 # 追加用户到docker组
visudo                   # 安全编辑sudoers文件

五、网络管理

1. 网络配置
ip addr show eth0        # 显示网络接口详情(替代ifconfig)
ss -tulpn                # 查看所有监听端口和进程(替代netstat)
traceroute -w 1 -m 30 example.com  # 设置超时和最大跳数
mtr --report example.com # 持续诊断网络质量
2. 连接测试
curl -o file.zip -L https://example.com/file  # 跟随重定向下载文件
wget --limit-rate=1m -c https://example.com/bigfile.iso # 限速断点续传
nc -zv 192.168.1.1 22-80  # 端口范围扫描
telnet smtp.example.com 25 # 手动测试SMTP协议
3. 防火墙
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 允许HTTP入站
ufw allow from 192.168.0.0/24 to any port 22    # 使用UFW简化配置
firewall-cmd --permanent --add-service=https    # firewalld管理

六、磁盘管理

1. 分区管理
fdisk -l                  # 列出所有磁盘分区
parted /dev/sdb print     # 查看分区表(支持GPT)
mkfs.ext4 -L Data /dev/sdb1 # 格式化为ext4并设置卷标
mount -o noatime /dev/sdb1 /mnt # 挂载并禁用访问时间记录
2. 空间分析
df -hT                   # 显示文件系统类型和空间使用
du -sh * | sort -hr      # 按大小排序当前目录内容
ncdu /var/log            # 交互式磁盘分析工具
lsof +L1                 # 查找被删除但未释放空间的文件
3. 逻辑卷管理
pvcreate /dev/sdb /dev/sdc       # 创建物理卷
vgcreate vg_data /dev/sdb        # 创建卷组
lvcreate -L 100G -n lv_www vg_data # 创建逻辑卷
vgextend vg_data /dev/sdc        # 扩展卷组
lvextend -r -l +100%FREE /dev/vg_data/lv_www # 动态扩展并调整文件系统

七、软件管理

1. 包管理器
# Debian/Ubuntu
apt update && apt upgrade         # 更新软件列表并升级
apt-cache search ^nginx-          # 搜索nginx相关软件包
apt-get purge --auto-remove nginx # 彻底删除软件包

# RHEL/CentOS
yum makecache fast               # 刷新元数据缓存
yum history undo 15              # 回滚第15次操作
dnf repoquery -l httpd           # 列出软件包文件
2. 源码编译
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make -j$(nproc)                  # 使用所有CPU核心编译
make install                     # 安装到指定目录
ldconfig                         # 更新动态链接库缓存
3. 容器管理
docker compose up -d            # 启动容器编排
podman run --userns=keep-id -v $PWD:/app:Z fedora:latest # 用户映射+SELinux
ctr -n k8s.io images pull docker.io/library/nginx:alpine # containerd直接操作

八、高级技巧

1. 定时任务
crontab -l                      # 查看当前用户的计划任务
crontab -e                      # 编辑计划任务
@reboot /path/script.sh         # 系统启动时执行
0 3 * * * tar -zcf /backup/$(date +\%Y\%m\%d).tgz /data # 每日备份
2. 环境变量
export PATH="$PATH:/opt/bin"    # 临时添加PATH
envsubst < template.conf > config.conf # 替换环境变量到配置文件
printenv LANG                   # 显示指定环境变量
3. 性能监控
vmstat 1 10                    # 每秒采样一次,共10次
iostat -x 2                    # 显示详细磁盘IO统计
pidstat -d -p 1234 1           # 监控指定进程的IO使用
perf top -g                    # 实时性能分析(需root)

九、Shell进阶

1. 输入输出重定向
command > file 2>&1          # 将stdout和stderr都重定向到文件
command < <(echo "input")    # 进程替换输入
diff <(ls dir1) <(ls dir2)   # 比较两个目录文件列表
2. 脚本调试
bash -x script.sh           # 显示执行过程
trap 'echo "Line $LINENO exited with $?"' EXIT # 捕获退出状态
set -euo pipefail           # 严格模式:错误退出、未定义变量报错、管道错误检测
3. 快捷键
Ctrl+R        反向搜索命令历史
Ctrl+A/E      跳转到行首/行尾
Alt+.         插入上一个命令的最后一个参数
Ctrl+X Ctrl+E 用$EDITOR编辑当前命令

十、安全加固

1. 审计排查
lastb -n 50               # 查看最近50条失败登录记录
ausearch -k failed_login  # 通过auditd查询登录失败事件
rkhunter --check          # 扫描Rootkit
2. SSH安全
ssh-keygen -t ed25519 -a 100              # 生成高强度密钥
ssh-copy-id -i ~/.ssh/id_ed25519 user@host # 复制公钥到服务器
sshd_config配置建议:
   PermitRootLogin no
   PasswordAuthentication no
   MaxAuthTries 3
3. 文件完整性
# 生成校验和
sha256sum /bin/* > checksums.txt

# 定期检查
find /bin -type f -exec sha256sum {} + | diff checksums.txt -

附:命令速查表

分类 常用命令组合 功能说明
日志分析 journalctl -u nginx --since "09:00" --until "10:00" 查看指定时间段服务日志
批量重命名 rename 's/\.jpeg$/\.jpg/' *.jpeg 扩展名批量转换
内存诊断 `free -h; grep -E 'MemSwap' /proc/meminfo` 查看详细内存信息
时间同步 chronyc sources -v 查看NTP同步状态
压缩解压 tar -czvf archive.tar.gz --exclude='*.tmp' dir/ 排除指定文件压缩

通过这篇超过15,000字的终极指南,您已系统掌握Linux命令的核心用法。建议读者:

  1. 创建自己的命令速查笔记

  2. 在测试环境实践危险命令(如rm -rf)

  3. 结合man手册深入学习每个命令的细节

  4. 定期使用apropos命令发现新工具


网站公告

今日签到

点亮在社区的每一天
去签到