1. Linux命令基础概述
作为一名使用Linux系统超过十年的老用户,我至今记得第一次在终端输入ls命令时看到目录内容整齐列出的震撼。Linux命令行的魅力在于其简洁高效的设计哲学——每个命令都像瑞士军刀上的工具,单一功能做到极致,通过管道组合却能完成复杂任务。对于刚接触Linux的新手来说,掌握基础命令是打开这个开源世界大门的钥匙。
Linux命令主要分为以下几类:文件操作(如ls、cp、mv)、文本处理(grep、awk、sed)、系统管理(ps、top、df)、网络操作(ping、curl、ssh)等。这些命令大多遵循命令 [选项] [参数]的基本格式,选项通常以-或--开头。例如ls -l /home会以长格式列出home目录内容。
新手常见误区:Linux命令区分大小写,
LS和ls是完全不同的;选项组合时短格式可以合并,如ls -l -a可简写为ls -la
2. 文件操作核心命令详解
2.1 目录导航与查看
pwd显示当前工作目录,是迷路时的指南针。cd改变目录,支持相对路径(../parent)和绝对路径(/usr/local)。特殊符号~代表用户主目录,-返回上次目录。
ls命令的实用选项组合:
ls -lh:人类可读的文件大小显示(KB/MB)ls -lt:按修改时间排序,最新文件在前ls -R:递归列出子目录内容ls --color=auto:不同类型文件彩色显示
2.2 文件操作三剑客
cp复制文件时,-r选项递归复制目录,-i启用覆盖确认。实测cp -a保留所有属性是最安全的复制方式。
mv移动/重命名文件时要注意:
- 跨文件系统移动实际是"复制+删除"操作
- 批量重命名可用
rename命令或for循环配合mv
rm删除命令要格外小心:
rm -rf / # 灾难性命令!会强制递归删除根目录建议设置别名保护:
alias rm='rm -i' # 每次删除前确认2.3 文件权限管理
chmod修改权限的数字表示法:
- 4=读(r),2=写(w),1=执行(x)
- 755表示:所有者rwx,组用户rx,其他用户rx
chown改变文件所有者:
chown user:group file # 同时修改所有者和组3. 文本处理黄金组合
3.1 grep文本搜索
grep是文本搜索的瑞士军刀:
grep -r "pattern" /path递归搜索目录grep -i忽略大小写grep -v反向匹配(显示不包含模式的行)grep -A3 -B2显示匹配行前后内容
3.2 sed流编辑器
sed适合批量文本替换:
sed -i 's/old/new/g' file.txt # 原地替换文件内容 sed '/pattern/d' file # 删除匹配行3.3 awk文本分析
awk适合结构化文本处理:
awk -F: '{print $1}' /etc/passwd # 打印所有用户名 awk '$3 > 1000 {print $0}' file # 打印第三列大于1000的行4. 系统监控与管理
4.1 进程管理
ps aux显示所有进程,常用组合:
ps -ef | grep nginx查找特定进程pstree -p树状显示进程关系
top实时监控系统:
- 按
M按内存排序,P按CPU排序 1显示所有CPU核心详情shift + >/<改变排序字段
4.2 磁盘与内存
df -h查看磁盘使用情况,注意/分区剩余空间。du -sh *查看当前目录各文件/目录大小。
free -h显示内存使用:
- available列表示可用内存(含buffers/cache)
watch -n 1 free -h每秒刷新内存信息
5. 网络相关命令
5.1 连接测试
ping检查网络连通性:
ping -c 4 example.com # 发送4个包后停止telnet测试端口连通性:
telnet example.com 80 # 测试80端口5.2 网络调试
curl是强大的网络工具:
curl -I example.com # 仅显示HTTP头 curl -o file.zip http://example.com/file.zip # 下载文件netstat查看网络状态:
netstat -tulnp # 查看监听中的TCP/UDP端口及对应进程6. 实用技巧与避坑指南
6.1 命令组合艺术
管道|将前命令输出作为后命令输入:
ps aux | grep nginx | awk '{print $2}' | xargs kill -9命令替换` `或$():
tar -czf backup-$(date +%Y%m%d).tar.gz /path6.2 历史命令优化
history查看命令历史,配合!快速执行:
!!上一条命令!$上条命令的最后一个参数!n执行历史记录中第n条命令
设置历史记录增强:
export HISTTIMEFORMAT="%F %T " # 记录时间戳 export HISTSIZE=10000 # 内存中保存历史数量 export HISTFILESIZE=20000 # 历史文件记录数量6.3 常见问题排查
问题:命令找不到(command not found) 解决:
- 检查命令是否存在:
which command - 检查PATH变量:
echo $PATH - 可能需要安装软件包
问题:Permission denied 解决:
- 检查文件权限:
ls -l - 尝试用sudo执行
- 检查SELinux状态:
getenforce
7. 进阶学习路径
掌握基础命令后,建议深入学习:
- Shell脚本编程(变量、循环、条件判断)
- 正则表达式(增强grep/sed/awk能力)
- SSH密钥管理与端口转发
- 日志分析(journalctl、tail、grep组合)
- 性能分析(vmstat, iostat, sar)
我个人的学习建议是:每天掌握3个新命令,通过man阅读手册页,并在实际工作中应用。遇到问题时,先思考如何用命令行解决,这能快速提升熟练度。记住,Linux命令行不是用来死记硬背的,理解其设计哲学才能灵活运用。