一、Linux命令行基础与核心概念
1.1 Shell:用户与内核的桥梁
Linux命令行操作的核心是Shell——命令解释器,它接收用户输入的命令,将其翻译成内核可执行的指令。主流Shell包括:
Bash (Bourne-Again Shell):Linux默认Shell,功能强大
Zsh:强大的交互式Shell,支持高级补全
Fish:友好的交互式Shell,语法高亮
1.2 终端模拟器:命令的入口
现代Linux通过终端模拟器访问Shell:
GNOME Terminal(默认)
Konsole(KDE)
Terminator(支持分屏)
Alacritty(GPU加速)
1.3 命令结构解析
bash
command [options] [arguments]
命令:执行的操作(如
ls
)选项:修改命令行为(
-l
,--all
)参数:操作对象(文件名/目录名)
1.4 环境变量与配置文件
bash
# 查看所有环境变量 env # 设置临时变量 export PATH=$PATH:/new/path # 永久生效(写入~/.bashrc) echo 'export VAR="value"' >> ~/.bashrc source ~/.bashrc
1.5 命令帮助系统
bash
man ls # 完整手册 ls --help # 快速帮助 info coreutils # 详细文档 whatis ls # 简要说明
二、文件与目录操作(30+核心指令)
2.1 导航与查看
bash
pwd # 打印当前目录 ls -lath # 详细列表(含隐藏文件) tree -L 2 # 树状结构(2级深度) cd - # 返回上次目录
2.2 文件操作
bash
# 创建删除 touch file.txt # 创建空文件 mkdir -p project/{src,doc} # 递归创建目录 rm -ri dir/ # 交互式递归删除 # 复制移动 cp -av source/ dest/ # 归档模式复制 mv *.txt ~/docs/ # 批量移动 # 链接管理 ln -s target link_name # 创建软链接
2.3 内容查看
bash
cat -n file.txt # 显示行号 less +F log.log # 实时跟踪模式 tail -f -n 100 app.log # 跟踪最后100行 head -c 500 data.bin # 查看前500字节
2.4 文件查找
bash
find /var/log -name "*.log" -mtime -7 -size +1M # 查找7天内修改过且大于1MB的日志文件 locate -i "*.DOCX" # 快速搜索(需updatedb)
三、文本处理大师班
3.1 基础处理
bash
grep -Ei "error|fail" syslog # 忽略大小写搜索错误 sed 's/foo/bar/g' file.txt # 全局替换 awk '{print $1 "\t" $5}' data.csv # 打印指定列
3.2 高级文本操作
bash
# 排序去重 sort -u names.txt | tee unique_names.txt # 列处理 cut -d':' -f1,7 /etc/passwd # 提取用户名和Shell # 差异比较 diff -u file1 file2 > patch.diff # 生成补丁
3.3 正则表达式实战
bash
# 匹配IP地址 grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log # 提取邮箱 grep -Pio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b' contacts.txt
四、权限与所有权深度解析
4.1 权限模型
bash
-rwxr-xr-- 1 user group 4096 Jan 12 10:30 script.sh
类型:
-
(文件),d
(目录),l
(链接)权限:
rwx
(所有者),r-x
(组),r--
(其他)
4.2 权限管理命令
bash
chmod u+x,g-w,o= script.sh # 符号模式 chmod 764 file.txt # 数字模式 chown user:group file # 修改所有者 chgrp developers project/ # 修改组
4.3 特殊权限
bash
chmod +t /shared/ # 设置粘滞位 chmod u+s /usr/bin/backup # 设置SUID chmod g+s /team/docs # 设置SGID
五、进程管理全攻略
5.1 进程监控
bash
ps aux --sort=-%mem | head -10 # 内存占用TOP10 top -c -u apache # 监控apache进程 htop # 增强型监控
5.2 进程控制
bash
kill -9 1843 # 强制终止进程 pkill -f "python app.py" # 按名称终止 killall -e chrome # 终止所有匹配进程
5.3 后台作业
bash
tar -czf backup.tar.gz /data & # 后台运行 jobs -l # 查看后台作业 fg %1 # 切换到前台 bg %2 # 继续后台运行
六、网络管理实战指南
6.1 网络配置
bash
ip addr show eth0 # 显示IP信息 ip route add default via 192.168.1.1 # 添加默认路由 nmcli device wifi list # 列出WiFi网络
6.2 连接测试
bash
ping -c 4 google.com # 发送4个包 traceroute -T 8.8.8.8 # TCP方式跟踪 mtr --report www.baidu.com # 持续路由跟踪
6.3 端口与服务
bash
netstat -tulpn # 查看监听端口 ss -s # 查看连接统计 lsof -i :80 # 查看80端口进程
6.4 文件传输
bash
scp -P 2222 file.txt user@server:/backup/ rsync -avz --progress ~/photos/ user@nas:/media/ wget -c https://example.com/large.iso # 断点续传
七、系统监测与性能优化
7.1 资源监控
bash
free -h # 人性化内存显示 vmstat 5 10 # 每5秒采样,共10次 iostat -dx 2 # 磁盘I/O详细统计 iftop -i eth0 # 实时带宽监控
7.2 性能分析
bash
uptime # 负载平均值 sar -u -r -d 1 3 # 综合性能快照 dmesg -T | grep -i "error" # 查看内核错误
7.3 存储管理
bash
df -Th # 文件系统类型+使用率 du -sh * | sort -rh | head -10 # 目录大小TOP10 lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT # 块设备信息
八、软件包管理权威指南
8.1 APT (Debian/Ubuntu)
bash
sudo apt update # 更新源信息 sudo apt install nginx # 安装软件 apt-cache search "^php8" # 正则搜索包 sudo apt purge --auto-remove package # 完全卸载
8.2 YUM/DNF (RHEL/CentOS)
bash
sudo dnf groupinstall "Development Tools" sudo yum history undo 23 # 回滚第23次操作
8.3 通用包管理
bash
# Snap sudo snap install vscode --classic # Flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # 源码编译 ./configure --prefix=/opt make -j$(nproc) sudo make install
九、Shell进阶技巧大全
9.1 输入输出重定向
bash
command > file.log 2>&1 # 标准/错误输出重定向 diff <(ls dir1) <(ls dir2) # 进程替换
9.2 管道高级用法
bash
# 并行处理 find . -type f -print0 | xargs -0 -P 4 -I{} convert {} {}.jpg # 复杂组合 grep -r "pattern" . | awk -F: '{print $1}' | sort | uniq -c
9.3 环境定制
bash
# 别名设置 alias ll='ls -alF' alias update='sudo apt update && sudo apt upgrade' # 函数定义 mkcd() { mkdir -p "$1" && cd "$1"; }
十、系统管理高级命令
10.1 用户管理
bash
sudo useradd -m -G developers -s /bin/bash alice sudo passwd -e alice # 强制下次登录改密码 sudo usermod -aG docker bob # 添加辅助组
10.2 计划任务
bash
# Cron示例 0 3 * * * /backup/script.sh # 每天3点执行 @reboot /scripts/startup.sh # 启动时执行 # Systemd定时器 systemctl --user list-timers # 查看用户级定时器
10.3 日志分析
bash
journalctl -u nginx --since "2023-01-01" --until "1 hour ago" logrotate -f /etc/logrotate.conf # 手动执行日志轮转
十一、安全防护关键命令
11.1 防火墙管理
bash
sudo ufw allow 22/tcp # 开放SSH端口 sudo firewall-cmd --permanent --add-service=http sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
11.2 SSH安全
bash
ssh-keygen -t ed25519 -f ~/.ssh/server_key ssh-copy-id -i ~/.ssh/id_rsa.pub user@host sudo nano /etc/ssh/sshd_config # 禁用密码登录
11.3 安全扫描
bash
sudo lynis audit system # 系统安全审计 sudo rkhunter --checkall # rootkit检测 chkrootkit # 基础rootkit检查
十二、故障排查与恢复
12.1 启动问题修复
bash
# GRUB编辑启动参数 linux /vmlinuz root=/dev/sda2 single init=/bin/bash # 文件系统修复 fsck /dev/sdb1 -y
12.2 性能瓶颈定位
bash
strace -p 1234 -c # 进程系统调用统计 perf top -p 2345 # CPU热点函数 iotop -oPa # 实时磁盘I/O
12.3 系统救援
bash
# 使用Live CD挂载分区 sudo mount /dev/sda2 /mnt sudo chroot /mnt
附录:常用命令速查表
类别 | 命令 | 功能描述 |
---|---|---|
文件 | file |
检测文件类型 |
stat |
显示文件详细信息 | |
文本 | wc |
统计行数/单词数/字节数 |
tr |
字符替换/删除 | |
系统 | uname -a |
显示系统信息 |
dmidecode |
查看硬件信息 | |
网络 | dig +short example.com |
DNS查询 |
nc -zv 192.168.1.1 80 |
端口扫描 | |
开发 | gdb |
GNU调试器 |
objdump |
反汇编二进制文件 |
提示:使用
tldr
命令获取实用示例(需安装):bash
tldr tar
结语:Linux命令行的艺术
掌握Linux命令行如同获得数字世界的超能力。本文涵盖的100+核心命令只是起点,真正的精通需要:
持续实践:在安全环境大胆尝试命令组合
深入理解:通过
man
和源码探究实现原理自动化思维:将重复操作脚本化(Bash/Python)
社区参与:关注GitHub上的开源工具更新
随着云原生和AI时代的到来,Linux命令行技能的价值愈发凸显。从简单的文件操作到Kubernetes集群管理,命令行始终是IT专业人士的终极武器。
"在Linux中,你不是用户,而是系统建筑师。" —— 佚名
扩展学习:
[Linux命令行与Shell脚本编程大全(第3版)]
[ExplainShell.com - 命令解析网站]
[Linux Performance - Brendan Gregg的博客]
[Command Line Fu - 命令技巧分享平台]
掌握这些命令,你将成为真正的Linux系统掌控者!