一、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系统掌控者!