1. Linux基础命令入门:为什么每个开发者都需要掌握
刚接触Linux时,我完全被黑底白字的终端窗口吓到了——没有图形界面,只能靠键盘输入各种神秘命令。但当我真正开始使用这些基础命令后,发现它们就像瑞士军刀一样,能解决各种意想不到的问题。无论是查看服务器日志、批量重命名文件,还是排查网络问题,掌握Linux基础命令都能让你事半功倍。
Linux命令行的强大之处在于它的组合性和可脚本化。通过管道(|)将简单命令连接起来,可以完成复杂任务。比如要统计当前目录下所有.py文件中"import requests"出现的次数,一行命令就能搞定:
bash复制grep -r "import requests" *.py | wc -l
这种效率是图形界面无法比拟的。作为开发者,即使你主要工作在Windows或macOS上,了解Linux命令也能让你:
- 更高效地操作远程服务器
- 编写自动化脚本
- 快速定位和解决问题
- 理解操作系统底层原理
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件与目录操作:Linux世界的基石
2.1 导航与查看:ls、pwd、cd
pwd(Print Working Directory)是最简单的命令之一,但它能告诉你当前所在位置。当你在复杂的目录结构中迷失时,这个命令就是你的指南针。
ls可能是使用频率最高的命令。几个实用参数:
-l:长格式显示,包含权限、所有者、大小等信息-a:显示隐藏文件(以.开头的文件)-h:人类可读的文件大小(如1K、234M)--color=auto:不同类型文件显示不同颜色
组合使用示例:
bash复制ls -lah --color=auto
cd用于切换目录,几个特殊符号:
~:用户主目录..:上级目录-:返回上一个工作目录
提示:在输入长目录名时,可以按Tab键自动补全,连按两次Tab会显示所有可能的补全选项。
2.2 文件操作:cp、mv、rm、touch
cp(copy)复制文件时,-r参数可以递归复制整个目录:
bash复制cp -r /path/to/source /path/to/destination
mv(move)既可以移动文件,也可以重命名文件。注意:Linux没有撤销命令,操作前最好先确认。
rm(remove)删除文件,危险但必要。几个重要参数:
-i:删除前确认-r:递归删除目录-f:强制删除(慎用!)
警告:永远不要执行
rm -rf /,这会删除系统所有文件!即使是rm -rf *也要先确认当前目录是否正确。
touch有两个主要用途:
- 创建空文件
- 更新文件的时间戳(常用于触发某些构建系统重新编译)
3. 文本处理三剑客:grep、awk、sed
3.1 grep:文本搜索利器
grep是Global Regular Expression Print的缩写,用于在文件中搜索特定模式。基本用法:
bash复制grep "pattern" filename
实用参数:
-i:忽略大小写-v:反向匹配(显示不包含模式的行)-n:显示行号-r:递归搜索目录-E:使用扩展正则表达式
示例:查找当前目录及子目录中所有Python文件中的"import"语句:
bash复制grep -rn "import" *.py
3.2 awk:文本处理瑞士军刀
awk是一种编程语言,擅长处理结构化文本(如日志文件)。基本结构:
bash复制awk 'pattern {action}' file
常见用法:
- 打印特定列:
awk '{print $1}' file(打印第一列) - 条件过滤:
awk '$3 > 100 {print $0}' file(第三列大于100的行) - 计算统计:
awk '{sum+=$1} END {print sum}' file(计算第一列总和)
3.3 sed:流编辑器
sed用于对文本进行流式编辑(不直接修改原文件)。常见用途:
- 替换文本:
sed 's/old/new/g' file - 删除行:
sed '5d' file(删除第5行) - 插入文本:
sed '3i\new line' file(在第3行前插入)
技巧:这三个工具可以组合使用,比如先用grep过滤出相关行,再用awk提取特定列,最后用sed进行格式调整。
4. 系统监控与管理命令
4.1 进程管理:ps、top、kill
ps查看进程信息,常用组合:
bash复制ps aux # 查看所有用户的所有进程
top是交互式的进程查看器,显示系统资源使用情况。按q退出,按M按内存排序,按P按CPU排序。
kill用于终止进程,常用信号:
SIGTERM(15):优雅终止(默认)SIGKILL(9):强制终止(慎用)
正确终止进程的步骤:
- 先用
ps找到进程ID - 尝试
kill PID(发送SIGTERM) - 如果进程不响应,再用
kill -9 PID
4.2 磁盘与内存:df、du、free
df显示磁盘空间使用情况:
bash复制df -h # 人类可读格式
du查看目录大小:
bash复制du -sh /path/to/dir # -s总结,-h人类可读
free查看内存使用:
bash复制free -h
4.3 网络工具:ping、netstat、ss
ping测试网络连通性:
bash复制ping example.com
netstat或更现代的ss查看网络连接:
bash复制ss -tulnp # 查看所有监听端口和连接
5. 权限与用户管理
5.1 文件权限:chmod、chown
Linux文件权限分为三组:所有者(u)、所属组(g)、其他用户(o)。每组有读(r)、写(w)、执行(x)权限。
chmod修改权限,两种表示法:
- 数字表示法:
chmod 755 file(rwxr-xr-x) - 符号表示法:
chmod u+x file(给所有者添加执行权限)
chown修改文件所有者和组:
bash复制chown user:group file
5.2 用户管理:sudo、passwd、useradd
sudo允许授权用户以root权限执行命令。配置在/etc/sudoers文件中(使用visudo命令编辑)。
passwd修改密码:
bash复制passwd # 修改当前用户密码
passwd username # root用户修改其他用户密码
useradd添加新用户:
bash复制useradd -m -s /bin/bash username # -m创建家目录,-s指定shell
6. 实用技巧与高级用法
6.1 命令组合与管道
Linux命令的强大之处在于可以组合使用。管道符|将一个命令的输出作为另一个命令的输入。
示例:查找占用CPU最高的进程
bash复制ps aux | sort -nk +3 | tail
6.2 重定向与文件描述符
>:覆盖输出到文件>>:追加到文件2>:重定向错误输出&>:重定向标准输出和错误输出
示例:将命令输出和错误都记录到文件
bash复制command &> output.log
6.3 后台运行与作业控制
&:在后台运行命令nohup:退出终端后继续运行jobs:查看后台作业fg:将作业调到前台bg:继续在后台运行暂停的作业
示例:在后台运行脚本并记录输出
bash复制nohup ./script.sh > output.log 2>&1 &
7. 常见问题排查思路
7.1 命令找不到:PATH问题
当输入命令出现"command not found"时,可能是:
- 命令未安装
- 命令不在PATH环境变量中
检查PATH:
bash复制echo $PATH
查找命令位置:
bash复制which command
whereis command
7.2 权限不足问题
遇到"Permission denied"时:
- 检查文件权限:
ls -l - 确认当前用户:
whoami - 考虑使用
sudo(如果有权限)
7.3 磁盘空间不足
排查步骤:
df -h查看哪个分区满了du -sh /path/*查找大目录- 清理不需要的文件或日志
8. 学习资源与进阶方向
8.1 内置帮助系统
大多数命令都有内置帮助:
man command:手册页command --help:简要帮助info command:GNU info文档
8.2 推荐学习资源
- 在线教程:LinuxCommand.org
- 交互式学习:OverTheWire Bandit游戏
- 书籍:《The Linux Command Line》
8.3 进阶方向
掌握基础命令后,可以学习:
- Shell脚本编程
- 正则表达式
- 系统性能调优
- 网络配置与安全
我在实际工作中发现,很多看似复杂的问题其实都可以用基础命令组合解决。比如有一次服务器磁盘突然满了,通过df -h定位到是/var/log目录,然后用du -sh /var/log/*发现是某个应用的日志文件暴增,最后用简单的truncate命令解决了问题,整个过程不超过5分钟。这种效率是图形界面工具难以企及的。
