1. Linux命令行基础认知
第一次接触Linux终端的新手往往会被黑底白字的界面吓到。其实这个看似简陋的界面,正是Linux强大力量的源泉。我在运维岗位工作8年,每天有60%的工作都是在终端完成的。与图形界面相比,命令行操作效率能提升3倍以上。
终端(terminal)和Shell是两个容易混淆的概念。简单来说:
- 终端是输入输出的界面窗口
- Shell是解释命令的程序(常见的有bash、zsh等)
- 命令则是我们输入的具体指令
刚入门时建议先掌握20个最高频的命令,这些命令能覆盖80%的日常操作场景。下面我会按照使用场景分类讲解,每个命令都附上我在实际工作中总结的实用技巧。
2. 文件与目录操作
2.1 基础导航命令
pwd - 显示当前所在路径。这个看似简单的命令在复杂的目录跳转后特别有用,我习惯在重要操作前先用它确认位置。
ls - 列出目录内容。几个实用参数:
-l显示详细信息(权限、大小等)-a显示隐藏文件(以点开头的文件)-h人类可读的文件大小(如K/M/G)-t按修改时间排序
经验:
ls -lht是我最常用的组合,能清晰看到最新修改的大文件。
cd - 切换目录。特殊路径:
..上级目录~用户家目录-返回上一个目录
2.2 文件操作三剑客
cp 复制文件时有个隐藏坑:默认会保留原文件权限,这可能导致安全问题。建议总是加上-p参数:
bash复制cp -p source.txt backup/
mv 移动/重命名文件。注意它也可以用来快速备份:
bash复制mv important.log{,.bak} # 等价于 mv important.log important.log.bak
rm 删除文件要格外小心。建议新手先使用-i交互模式:
bash复制rm -i *.tmp
血泪教训:永远不要在root用户下执行
rm -rf /,这会删除整个系统!
2.3 文件查看与分析
cat 查看小文件内容。对于大文件,应该用less命令(支持上下翻页):
bash复制less /var/log/syslog
head/tail 查看文件开头/结尾。监控日志时特别有用:
bash复制tail -f /var/log/nginx/access.log # -f参数会实时跟踪文件变化
wc 统计文件信息。我常用它快速统计代码行数:
bash复制wc -l *.py # 统计所有python文件的行数
3. 系统监控与进程管理
3.1 资源监控
top 是系统监控的瑞士军刀。关键数据解读:
- load average:1分钟/5分钟/15分钟平均负载
- %CPU:CPU使用率
- %MEM:内存使用率
按M按内存排序,P按CPU排序,q退出。
free 查看内存使用情况。建议加上-h参数:
bash复制free -h
df 查看磁盘空间。我常用的组合:
bash复制df -hT # -h人类可读,-T显示文件系统类型
3.2 进程管理
ps 查看进程信息。最实用的组合:
bash复制ps aux | grep nginx # 查看nginx相关进程
kill 终止进程。先用ps找到PID,然后:
bash复制kill -9 1234 # -9表示强制终止
注意:强制终止可能导致数据丢失,应先尝试普通kill(不加-9)
4. 网络相关命令
4.1 连接检测
ping 测试网络连通性。常用参数:
bash复制ping -c 4 example.com # 只发送4个包
telnet 测试端口连通性(需先安装):
bash复制telnet example.com 80
4.2 网络配置
ifconfig 查看网络接口信息(新系统可能要用ip addr)。
netstat 查看网络连接状态。实用组合:
bash复制netstat -tulnp # 查看所有监听端口
5. 权限管理
5.1 用户与组
whoami 查看当前用户名。
id 查看用户详细信息(所属组等)。
sudo 以root权限执行命令。配置技巧:
bash复制# 编辑sudoers文件(使用visudo命令更安全)
visudo
# 添加以下内容允许用户执行特定命令
username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
5.2 文件权限
chmod 修改权限。数字模式更直观:
bash复制chmod 755 script.sh # 所有者rwx,组和其他rx
chown 修改所有者。递归修改目录:
bash复制chown -R user:group /path/to/dir
6. 实用工具集
6.1 文本处理
grep 文本搜索神器。我每天必用的命令:
bash复制grep -rin "error" /var/log/ # -r递归,-i忽略大小写,-n显示行号
awk 强大的文本处理工具。提取特定列:
bash复制ps aux | awk '{print $1,$2,$11}' # 显示用户名、PID和命令
sed 流编辑器。批量替换文本:
bash复制sed -i 's/old/new/g' file.txt # -i直接修改文件
6.2 压缩解压
tar 打包命令。记住这个万能组合:
bash复制tar -czvf archive.tar.gz /path/to/dir # 创建压缩包
tar -xzvf archive.tar.gz # 解压
7. 命令使用技巧
7.1 提高效率的方法
-
命令历史:
history查看历史命令!123执行历史记录中第123条命令Ctrl+R反向搜索历史命令
-
别名设置(添加到~/.bashrc):
bash复制alias ll='ls -alh'
alias myip='curl ipinfo.io/ip'
- 通配符使用:
bash复制rm *.log # 删除所有log文件
cp file{,.bak} # 创建备份文件
7.2 常见问题排查
-
命令找不到:
- 检查命令是否安装
- 检查PATH环境变量
- 使用
which command查找命令位置
-
权限不足:
- 检查文件权限(ls -l)
- 尝试使用sudo
- 检查SELinux状态(getenforce)
-
磁盘空间不足:
- 使用
df -h查看 - 使用
du -sh *查找大文件 - 清理日志文件(/var/log/)
- 使用
8. 学习路线建议
根据我带新人的经验,建议按这个顺序学习:
- 先掌握基础文件操作(ls/cd/cp/mv/rm)
- 学习文本查看命令(cat/less/head/tail)
- 掌握进程管理(ps/top/kill)
- 学习权限管理(chmod/chown/sudo)
- 逐步掌握grep/awk/sed等高级工具
每天花10分钟练习这些命令,一个月后你会发现自己已经能高效完成大多数系统操作。记住:Linux命令就像乐器,需要持续练习才能熟练掌握。