1. Linux命令基础概述
作为一名Linux系统管理员,我每天的工作都离不开命令行操作。很多人觉得Linux命令晦涩难懂,但实际上只要掌握基础核心命令,就能完成80%的日常运维工作。Linux命令就像一把瑞士军刀,虽然看起来简单,但组合使用能发挥巨大威力。
根据我的经验,新手常犯的错误是死记硬背命令参数。其实Linux命令设计有很强的逻辑性,大多数命令都遵循"命令 [选项] [参数]"的统一格式。比如ls -l /home这个命令,ls是列出目录内容,-l表示长格式显示,/home则是要查看的目录路径。
提示:Linux命令区分大小写,输入命令时要注意字母大小写。比如
LS和ls是完全不同的。
2. Linux命令分类解析
2.1 文件操作命令
文件操作是Linux中最基础也最常用的命令类型。掌握这些命令,你就能自如地管理文件系统:
ls:列出目录内容-l:长格式显示(包含权限、所有者、大小等信息)-a:显示隐藏文件(以.开头的文件)-h:人类可读的文件大小(如1K、234M)
cd:切换目录cd ~:返回用户主目录cd -:返回上一个工作目录cd ..:返回上级目录
cp:复制文件-r:递归复制目录-i:覆盖前提示确认
mv:移动或重命名文件- 重命名示例:
mv oldname newname - 移动示例:
mv file /target/directory
- 重命名示例:
rm:删除文件-r:递归删除目录-f:强制删除,不提示警告:
rm -rf /会删除系统所有文件,切勿尝试!
2.2 文本处理命令
处理文本文件是Linux的强项,这些命令能帮你高效处理日志、配置文件等:
cat:显示文件内容-n:显示行号- 合并文件:
cat file1 file2 > combined
grep:文本搜索-i:忽略大小写-v:反向匹配(显示不包含模式的行)-r:递归搜索目录- 示例:
grep "error" /var/log/syslog
sed:流编辑器- 替换文本:
sed 's/old/new/g' file - 删除行:
sed '5d' file(删除第5行)
- 替换文本:
awk:强大的文本分析工具- 打印特定列:
awk '{print $1}' file - 条件过滤:
awk '$3 > 100 {print $0}' file
- 打印特定列:
2.3 系统管理命令
这些命令帮助你监控和管理Linux系统:
ps:查看进程-aux:显示所有用户的所有进程-ef:完整格式显示进程信息
top:动态查看系统资源使用情况- 按
M:按内存排序 - 按
P:按CPU排序 - 按
q:退出
- 按
df:磁盘空间检查-h:人类可读格式- 示例:
df -h /home
free:内存使用情况-m:以MB为单位显示-g:以GB为单位显示
netstat:网络连接信息-tulnp:查看监听端口- 替代命令:
ss -tulnp(更现代的工具)
3. 实用命令组合技巧
3.1 管道与重定向
Linux最强大的特性之一是命令的组合使用:
|(管道):将一个命令的输出作为另一个命令的输入- 示例:
ps aux | grep nginx(查找nginx进程)
- 示例:
>:重定向输出到文件(覆盖)- 示例:
ls -l > filelist.txt
- 示例:
>>:重定向输出到文件(追加)- 示例:
echo "new line" >> file.txt
- 示例:
<:从文件读取输入- 示例:
sort < unsorted.txt > sorted.txt
- 示例:
3.2 常用命令组合
这些组合命令能显著提高工作效率:
统计当前目录文件数:
ls | wc -l查找并删除7天前的日志文件:
find /var/log -name "*.log" -mtime +7 -exec rm {} \;查看占用CPU最高的进程:
ps aux --sort=-%cpu | head -n 5实时监控日志文件:
tail -f /var/log/syslog批量重命名文件:
for file in *.txt; do mv "$file" "prefix_$file"; done
4. 环境变量与命令别名
4.1 环境变量配置
环境变量是Linux中的重要概念,可以自定义系统行为:
查看所有环境变量:
env查看特定变量:
echo $PATH添加PATH变量:
export PATH=$PATH:/new/path永久生效:将export命令添加到
~/.bashrc或~/.bash_profile
4.2 命令别名设置
别名可以简化常用命令:
查看当前别名:
alias设置别名:
alias ll='ls -alF'永久保存:将alias命令添加到
~/.bashrc常用别名建议:
alias grep='grep --color=auto' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias h='history' alias j='jobs -l'
5. 实用工具与技巧
5.1 终端复用工具
screen:终端复用器- 新建会话:
screen -S session_name - 分离会话:
Ctrl+a d - 恢复会话:
screen -r session_name
- 新建会话:
tmux:更现代的终端复用器- 新建窗口:
Ctrl+b c - 切换窗口:
Ctrl+b n(下一个)Ctrl+b p(上一个) - 垂直分割:
Ctrl+b % - 水平分割:
Ctrl+b "
- 新建窗口:
5.2 历史命令操作
查看历史命令:
history执行历史命令:
!n # 执行第n条历史命令 !! # 执行上一条命令 !string # 执行最近以string开头的命令搜索历史命令:
Ctrl+r # 反向搜索历史命令
5.3 其他实用技巧
快速返回家目录:
cd清空文件内容:
> filename创建多层目录:
mkdir -p dir1/dir2/dir3查看命令帮助:
man command command --help解压各种压缩包:
tar -xzvf file.tar.gz # .tar.gz tar -xjvf file.tar.bz2 # .tar.bz2 unzip file.zip # .zip
6. 常见问题排查
6.1 命令找不到
当出现"command not found"错误时:
- 检查命令拼写是否正确
- 检查命令是否安装:
which command - 检查PATH变量是否包含命令所在目录
- 可能需要安装软件包:
sudo apt install package_name # Debian/Ubuntu sudo yum install package_name # CentOS/RHEL
6.2 权限问题
遇到"Permission denied"错误:
- 检查文件权限:
ls -l filename - 使用sudo执行需要root权限的命令
- 修改文件权限:
chmod u+x script.sh # 给所有者添加执行权限 - 修改文件所有者:
sudo chown user:group filename
6.3 磁盘空间不足
当磁盘空间不足时:
- 检查磁盘使用情况:
df -h - 查找大文件:
du -sh * | sort -h - 清理日志文件:
sudo journalctl --vacuum-size=100M # 限制日志大小为100M - 查找并删除core dump文件:
find / -name "core.*" -exec rm {} \;
7. 学习资源推荐
7.1 在线文档
man手册:Linux自带的命令文档man ls- GNU Coreutils文档:核心命令的官方文档
- TLDP(The Linux Documentation Project):丰富的Linux文档资源
7.2 练习平台
- OverTheWire:通过游戏学习Linux命令
- Linux Journey:交互式Linux学习网站
- 本地虚拟机:安装VirtualBox和任意Linux发行版进行实践
7.3 进阶学习
- Shell脚本编程:将命令组合成自动化脚本
- 正则表达式:提升文本处理能力
- Vim编辑器:高效的文本编辑工具
学习Linux命令最重要的是多实践。我建议新手每天花15分钟在终端中练习,一个月后你会惊讶于自己的进步。记住,每个Linux专家都是从ls和cd开始的