1. Linux基础指令入门指南
作为一名在Linux环境下摸爬滚打多年的老码农,我深知命令行操作是每个开发者必须跨过的第一道门槛。记得刚接触Linux时,面对黑底白字的终端窗口,那种手足无措的感觉至今难忘。今天我就带大家系统梳理Linux最核心的基础指令,这些命令就像瑞士军刀上的基础工具,虽然简单但能解决80%的日常操作需求。
我们主要面向三类读者:刚接触Linux的新手开发者、需要复习基础命令的中级用户,以及Windows转Linux的迁移用户。掌握这些命令后,你将能够独立完成文件管理、系统监控、文本处理等基础操作,为后续学习更高级的Shell脚本和系统编程打下坚实基础。
2. Linux文件系统操作指令精解
2.1 目录导航与查看
pwd(Print Working Directory)是我每天使用频率最高的命令之一。它像是一个可靠的GPS,随时告诉你当前所处的目录位置。特别是在多级目录跳转后,这个命令能避免"我在哪"的迷茫。
ls命令则是你的文件浏览器,通过不同参数可以获取不同维度的信息:
bash复制ls -l # 长格式显示(权限、所有者、大小等)
ls -a # 显示隐藏文件(以.开头的文件)
ls -lh # 人类可读的文件大小显示(KB/MB/GB)
经验之谈:养成使用
ls -l的习惯,文件权限信息对后续操作至关重要。如果看到满屏的白色文字不适,可以试试ls --color=auto开启彩色显示。
2.2 文件操作四件套
cp命令的经典用法:
bash复制cp source.txt dest.txt # 基本复制
cp -r dir1 dir2 # 递归复制目录
cp -v *.txt backup/ # 显示详细过程
mv命令的三种典型场景:
- 文件重命名:
mv old.txt new.txt - 移动文件:
mv file.txt /target/path/ - 批量移动:
mv *.png images/
rm是危险的命令,特别是rm -rf组合。建议新手先在命令前加上echo测试:
bash复制echo rm -rf *.log # 先查看哪些文件会被删除
touch除了创建空文件,更实用的功能是更新时间戳:
bash复制touch access.log # 如果文件存在则更新mtime
2.3 目录管理技巧
创建嵌套目录的正确姿势:
bash复制mkdir -p project/{src,doc,test} # 一次性创建多级目录结构
删除目录时的安全操作:
bash复制rmdir empty_dir # 只能删除空目录
rm -ri target_dir # 交互式删除,每个删除请求都确认
3. 文件内容查看与处理
3.1 文本查看三剑客
cat的进阶用法:
bash复制cat -n server.log # 显示行号
cat file1 file2 > combined # 合并文件
less才是查看大文件的正确方式:
- 空格键:向下翻页
- b键:向上翻页
- /keyword:搜索内容
- q键:退出
head和tail的实用组合:
bash复制tail -f /var/log/syslog # 实时监控日志更新
head -n 20 large_file.csv # 查看文件前20行
3.2 文本搜索与过滤
grep是文本处理的瑞士军刀:
bash复制grep -i "error" *.log # 忽略大小写搜索
grep -r "main" ./src # 递归搜索目录
grep -v "#" config.ini # 反选匹配行
find命令的复杂查询示例:
bash复制find /home -name "*.jpg" -size +1M -mtime -7 # 查找7天内修改过的>1MB的jpg
4. 系统监控与进程管理
4.1 系统状态速查
df和du的黄金组合:
bash复制df -h # 查看磁盘剩余空间
du -sh * # 查看当前目录各文件/目录大小
du -h --max-depth=1 # 查看一级子目录大小
free内存查看的正确姿势:
bash复制free -h # 人类可读格式
watch -n 1 free -h # 每秒刷新显示
4.2 进程管理实战
ps命令的常用组合:
bash复制ps aux | grep nginx # 查看nginx相关进程
ps -ef --forest # 树形显示进程关系
kill信号发送的注意事项:
bash复制kill -9 PID # 强制终止(最后手段)
kill -15 PID # 优雅终止(首选)
top实时监控的实用技巧:
- 按M:按内存排序
- 按P:按CPU排序
- 按1:显示多核CPU详情
- 按q:退出
5. 网络相关基础命令
5.1 网络状态检测
ping的基础与高级用法:
bash复制ping -c 4 google.com # 指定发送包数
ping -i 0.5 target # 设置间隔时间为0.5秒
ifconfig(已逐渐被ip命令取代):
bash复制ifconfig eth0 # 查看指定网卡信息
ifconfig eth0 up # 启用网卡
5.2 网络连接分析
netstat的典型应用场景:
bash复制netstat -tuln # 查看监听中的端口
netstat -anp # 查看所有连接及对应进程
curl的基础使用方法:
bash复制curl -I https://example.com # 仅显示HTTP头
curl -o page.html http://example.com # 保存到文件
6. 用户权限管理
6.1 用户与组操作
useradd创建用户的完整流程:
bash复制sudo useradd -m -s /bin/bash newuser # 创建用户并生成家目录
sudo passwd newuser # 设置密码
usermod的常用场景:
bash复制sudo usermod -aG sudo newuser # 将用户加入sudo组
sudo usermod -L newuser # 锁定用户账号
6.2 文件权限控制
chmod的数字与符号表示法:
bash复制chmod 755 script.sh # rwxr-xr-x
chmod u+x backup.py # 给所有者添加执行权限
chown的递归修改:
bash复制sudo chown -R user:group /path/to/dir # 递归修改所有者和组
7. 实用工具与小技巧
7.1 压缩解压大全
tar的经典组合:
bash复制tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压gzip包
tar -cjvf archive.tar.bz2 dir/ # 创建bz2压缩包
zip和unzip的基本用法:
bash复制zip -r backup.zip /data # 递归压缩
unzip -l archive.zip # 查看压缩包内容
7.2 终端效率工具
history的实用技巧:
bash复制!vim # 执行最近一条vim开头的命令
!! # 重复上一条命令
alias提高效率的示例:
bash复制alias ll='ls -alF'
alias grep='grep --color=auto'
8. 常见问题排错指南
8.1 权限问题排查
"Permission denied"的典型解决方案:
- 检查文件权限:
ls -l problematic_file - 检查文件所有者:
ls -l /path/ - 检查SELinux状态:
getenforce
8.2 命令找不到处理
command not found的可能原因:
- 命令未安装:
which command_name - PATH环境变量问题:
echo $PATH - 命令拼写错误:
apropos keyword
8.3 磁盘空间不足
快速定位大文件的方法:
bash复制du -ahx / | sort -rh | head -10 # 查找根目录下最大的10个文件
9. 命令组合与高级技巧
9.1 管道的神奇力量
统计日志中错误出现的次数:
bash复制grep -i "error" app.log | wc -l
找出占用CPU最高的进程:
bash复制ps aux | sort -nk +3 | tail -5
9.2 重定向的妙用
将输出和错误分别记录:
bash复制command > output.log 2> error.log
快速创建多级目录和文件:
bash复制mkdir -p project/{src,test,doc} && touch project/src/main.py
10. 学习路径建议
对于想系统学习Linux命令的朋友,我建议按照以下顺序渐进:
- 先掌握
ls/cd/pwd/mkdir/rm等基础文件操作 - 然后学习
cat/less/grep等文本处理命令 - 接着掌握
ps/top/df等系统监控命令 - 最后学习
awk/sed/find等高级工具
每天刻意练习3-5个命令,配合--help和man手册查阅,一个月后你会发现自己已经能流畅地在终端中完成大部分日常工作。记住,Linux命令的学习没有捷径,唯手熟尔。