1. Linux基础指令入门指南
刚接触Linux系统的朋友总会对黑乎乎的终端窗口感到不知所措。作为从业15年的Linux系统管理员,我清楚地记得自己第一次输入ls命令时的兴奋感——原来不用图形界面也能高效操作电脑。本文将带你系统掌握最核心的Linux基础指令,这些命令就像瑞士军刀一样,能解决80%的日常操作需求。
我们重点讲解20个最常用的基础命令,涵盖文件操作、系统管理、文本处理等场景。每个命令都会配合实际工作场景演示,并附上我多年积累的实用技巧。这些命令在CentOS、Ubuntu等主流发行版中完全通用,学会后你可以轻松管理服务器、处理日志文件或搭建开发环境。
2. 文件与目录操作指令
2.1 导航与查看:ls/pwd/cd
ls命令是使用频率最高的指令之一。新手常犯的错误是直接输入ls查看当前目录,其实它有多个实用参数:
bash复制ls -l # 显示详细信息(权限、所有者、大小)
ls -a # 显示隐藏文件(以点开头的文件)
ls -lh # 人类可读的文件大小显示(KB/MB/GB)
我在排查磁盘空间问题时常用这个组合:
bash复制ls -lSh /var/log | head -10 # 按大小排序显示最大的10个日志文件
pwd(Print Working Directory)能显示当前所在路径。当你在多层符号链接目录中迷失时,这个命令能救命:
bash复制pwd -P # 显示物理路径(解析所有符号链接)
cd命令的这几个用法特别实用:
bash复制cd - # 返回上一个工作目录
cd ~ # 返回用户家目录
cd ../.. # 向上移动两级目录
经验:在脚本中使用
cd时务必检查返回值,否则后续命令可能在错误目录执行:bash复制cd /target/path || exit 1
2.2 文件操作:cp/mv/rm
cp命令复制文件时,这些参数能避免很多坑:
bash复制cp -a # 保留所有属性(相当于-dpR组合)
cp -i # 覆盖前提示确认(防误删)
cp -u # 只复制更新的文件
实际案例:备份网站配置时我会用:
bash复制cp -a /etc/nginx /backup/nginx_$(date +%F)
mv命令除了移动文件,还是重命名的标准方式。批量重命名时结合通配符:
bash复制mv *.txt *.bak # 将所有txt文件改为bak后缀
rm是危险的命令,建议先配置别名防误删:
bash复制alias rm='rm -i' # 加入~/.bashrc
rm -rf时更要三思,我曾见过有人误删根目录的惨剧
3. 系统信息查看指令
3.1 硬件信息:df/du/free
df查看磁盘空间时,推荐使用:
bash复制df -hT # -h人类可读格式,-T显示文件系统类型
du分析目录大小我最常用:
bash复制du -sh * | sort -h # 排序显示当前目录各文件/目录大小
发现某个MySQL日志文件占满磁盘的经典处理流程:
bash复制df -h # 确认磁盘使用率
du -sh /var/log/* # 定位大文件
> /var/log/mysql.log # 清空日志文件(比rm安全)
free查看内存时,注意available才是真实可用内存:
bash复制free -h
# 重点关注available列
3.2 进程管理:top/ps/kill
top的增强版htop更直观,但原版top有几个实用技巧:
code复制按1:显示所有CPU核心负载
按M:按内存使用排序
按P:按CPU使用排序
ps命令我最常用的组合:
bash复制ps auxf # 显示所有进程树形结构
ps -ef --forest # 另一种进程树显示方式
kill的正确使用姿势:
bash复制kill -l # 查看所有信号类型
kill -9 PID # 强制终止(最后手段)
killall -u www # 终止某用户的所有进程
4. 文本处理三剑客
4.1 grep文本搜索
grep是日志分析的利器:
bash复制grep -i error /var/log/syslog # 忽略大小写搜索
grep -r "connection timeout" /etc # 递归搜索目录
grep -A3 -B2 "panic" kernel.log # 显示匹配行前后内容
我常用的日志分析套路:
bash复制grep "502 Bad Gateway" nginx.log | cut -d'"' -f3 | sort | uniq -c | sort -nr
4.2 sed流编辑器
sed实现文本替换的几种方式:
bash复制sed 's/foo/bar/g' file.txt # 全局替换
sed -i.bak 's/old/new/' config # 直接修改文件并备份
sed '/^#/d' config # 删除所有注释行
批量修改配置文件案例:
bash复制sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf
4.3 awk文本分析
awk的典型应用场景:
bash复制awk '{print $1}' access.log # 打印第一列(IP地址)
awk -F: '{print $1,$6}' /etc/passwd # 指定冒号为分隔符
awk '$3 > 100 {print $0}' data.txt # 过滤第三列大于100的行
统计Nginx访问日志TOP IP:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
5. 网络与权限管理
5.1 网络工具:ping/netstat/curl
ping的进阶用法:
bash复制ping -c 5 -i 0.2 example.com # 发送5个包,间隔0.2秒
ping -M do -s 1500 target # 测试MTU大小
netstat查看网络状态:
bash复制netstat -tulnp # 查看所有监听端口
netstat -antp # 查看所有TCP连接
curl的实用参数:
bash复制curl -I https://example.com # 仅显示HTTP头
curl -o file.txt http://url # 下载文件
curl -x proxy:port http://url # 使用代理
5.2 权限管理:chmod/chown
chmod的数字表示法:
code复制0: --- 1: --x 2: -w- 3: -wx
4: r-- 5: r-x 6: rw- 7: rwx
设置目录权限的最佳实践:
bash复制chmod 755 dir # 目录常用权限
chmod 644 file # 文件常用权限
chown修改属主和属组:
bash复制chown user:group file # 同时修改属主和属组
chown -R www:www /var/www # 递归修改目录权限
6. 实用技巧与避坑指南
6.1 命令组合技巧
管道符|是Linux的灵魂,几个经典组合:
bash复制# 查找并删除7天前的日志
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
# 统计代码行数
find . -name "*.py" | xargs wc -l
# 实时监控日志新增内容
tail -f access.log | grep -i error
6.2 常见问题排查
-
命令找不到:
bash复制which command # 查看命令路径 echo $PATH # 检查PATH变量 -
权限被拒绝:
bash复制ls -l /path/to/file # 检查权限 sudo !! # 用sudo重新执行上条命令 -
磁盘空间不足:
bash复制df -h # 查看磁盘使用 du -xh / | sort -h | tail -10 # 找出最大的10个文件
6.3 效率提升技巧
-
使用
alias简化常用命令:bash复制alias ll='ls -alF' alias cls='clear' -
善用
history和!命令:bash复制history | grep ssh # 查找历史命令 !42 # 执行历史记录第42条命令 -
使用
tab键补全路径和命令,能减少50%的输入错误
掌握这些基础命令后,你会发现Linux终端比图形界面更高效。建议每天刻意练习这些命令,一个月后你会惊讶于自己的进步速度。记住,所有Linux高手都是从ls和cd开始的。