命令行的核心地位

Linux命令行操作大全从基础到高级

Linux命令行是操作系统的灵魂所在。不同于图形界面,命令行提供了原子级控制能力自动化潜力。据统计,90%的服务器管理任务通过命令行完成,掌握命令行工具可提升300%以上的运维效率。本教程将系统化梳理核心命令,结合实践场景揭示底层逻辑。

一、文件系统操作(基础篇)

1.1 目录导航与查看

bash

pwd 显示当前工作目录(理解绝对路径与相对路径)

ls -la -l显示详细信息 -a显示隐藏文件(含.开头的配置文件)

cd ~/Documents ~代表用户主目录,Linux路径分隔符为/

深入理解:`ls`输出的文件颜色编码(蓝色=目录/绿色=可执行文件)是权限系统的可视化表达,建议养成`ls -l`习惯以观察权限信息。

1.2 文件操作四要素

bash

cp -r dir1 dir2 -r递归复制目录(注意目录斜杠用法)

mv file.txt /backup 移动文件(跨设备移动实质是复制+删除)

rm -i .log -i删除前确认,防误删关键数据

touch {1..5}.txt 批量创建文件({}是通配扩展)

操作建议:生产环境慎用`rm -rf`!可配置`alias rm='rm -i'`或使用`trash-cli`工具实现回收站机制。

二、文本处理三剑客

2.1 grep:模式匹配利器

bash

grep -n "error" /var/log/syslog -n显示行号

grep -E "[0-9]{3}-[0-9]{4}" contacts.txt -E支持正则表达式

zgrep "404" access.log.gz 直接搜索压缩文件

高阶技巧:`grep -v`排除匹配行,结合`| grep -v debug`可过滤日志噪声。

2.2 sed:流式文本编辑器

bash

sed 's/foo/bar/g' file.txt 全局替换字符串

sed -n '5,10p' config.conf 仅打印5-10行

sed -i.bak '/^/d' nginx.conf 删除注释行并备份原文件

深入原理:sed基于行缓冲处理机制,适合大文件处理,其命令`a/i/c`可实现行增/改。

2.3 awk:结构化数据处理

bash

awk -F: '{print $1,$6}' /etc/passwd -F定义分隔符

awk '$3 > 1000 {count++} END {print count}' data.csv 条件统计

实战案例:分析Nginx日志:

`awk '{print $1}' access.log | sort | uniq -c | sort -nr` 统计IP访问频次

三、系统监控与进程管理

3.1 实时监控工具

bash

top -o %MEM 按内存排序进程(Shift+P=CPU/Shift+M=内存)

htop 增强版top(支持鼠标操作和树状视图)

iotop -o 监控磁盘I/O(定位高IO进程)

优化建议:服务器环境使用`nmon`或`glances`获取更全面的性能快照。

3.2 进程控制命令

bash

ps aux | grep nginx 查看进程详细信息(STAT列含义:R=运行/S=休眠)

kill -9 1234 强制终止进程(-15为优雅终止首选)

nice -n 19 convert image.jpg 启动低优先级进程

四、网络操作与通信

4.1 网络诊断工具

bash

ping -c 4 基础连通性测试(-c指定次数)

traceroute -T 8.8.8.8 路由跟踪(-T使用TCP协议)

nc -zv 192.168.1.1 22 端口连通性检查(替代telnet)

排障流程:网络不通时按`ping本地IP→ping网关→ping公网DNS`顺序排查。

4.2 安全传输与远程

bash

scp -P 2222 ~/file user@host:/backup 指定端口传输

rsync -avz progress /data user@backup:/mirror 增量同步

ssh -D 1080 user@server 创建SOCKS代理隧道

安全建议:SSH禁用root登录,使用密钥认证,修改默认端口可降低90%暴力破解风险。

五、权限与用户管理

5.1 权限模型解析

bash

chmod u=rwx,g=rx,o= file.sh 字母模式授权

chmod 750 backup/ 数字模式(7=rwx/5=r-x/0=)

chown -R user:group /data 递归修改属主和属组

权限数字含义:`4=r/2=w/1=x`,如`chmod 700`等价于`rwx`。

5.2 sudo与用户管理

bash

useradd -m -s /bin/bash dev_user -m创建家目录 -s指定shell

usermod -aG docker dev_user 追加用户到docker组

visudo 安全编辑sudo权限

安全实践:通过`/etc/sudoers.d/`分文件管理sudo权限,避免直接修改主配置文件。

六、Shell进阶技巧

6.1 管道与重定向

bash

cat log.txt | tee >(grep error) >(grep warn) > /dev/null

dd if=/dev/zero of=test.img bs=1M count=1024 2>&1 | logger

原理剖析:管道`|`实质是进程间通信,重定向`>`会覆盖文件,`>>`追加内容。

6.2 任务控制

bash

sleep 30m && poweroff & 后台运行任务

fg %1 调回前台任务

disown -h %1 剥离任务关联(终端关闭仍运行)

七、自动化与脚本编程

7.1 Shell脚本基础

bash

!/bin/bash

变量使用

BACKUP_DIR="/backup/$(date +%F)

条件判断

[ -d "$BACKUP_DIR" ] mkdir -p "$BACKUP_DIR

循环处理

for file in .log; do

gzip "$file

done

调试技巧:运行`bash -x script.sh`可打印执行过程,`set -e`令脚本遇错立即退出。

7.2 定时任务管理

bash

crontab -e

每天3点备份

0 3 /opt/scripts/backup.sh

最佳实践:脚本中始终使用绝对路径,通过`MAILTO`设置错误邮件通知。

命令行的哲学

Linux命令行的精髓在于组合创造无限可能。建议:

1. 掌握`man`和`tldr`查阅文档

2. 使用`alias`简化常用命令(如`alias ll='ls -alF'`)

3. 遵循最小权限原则操作

4. 重要操作前执行`echo`模拟命令输出

> 数据统计:Linux内核包含超过1400个系统调用,而命令行工具通过组合可生成数十万种有效操作序列。这种工具链思维正是Unix哲学"KISS原则"(Keep It Simple, Stupid)的终极体现。

通过本教程的系统学习,您已掌握Linux核心命令的80%高频使用场景。真正的精通源于实践——从写一个日志分析脚本开始,让命令行成为您思维的自然延伸。