1. Linux系统基本命令概述
作为一名Linux系统管理员,掌握基础命令是日常工作的必备技能。Linux命令就像工具箱里的各种工具,每个都有其特定用途。与图形界面操作不同,命令行操作更加高效、灵活,特别是在服务器管理和自动化脚本编写方面具有不可替代的优势。
Linux命令通常由命令本身、选项和参数三部分组成。例如在ls -l /home这个命令中,ls是命令主体,-l是选项,/home是参数。这种结构设计使得Linux命令既简洁又功能强大。
提示:Linux命令区分大小写,输入命令时务必注意字母大小写。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件与目录操作命令
2.1 目录导航与查看
pwd命令用于显示当前工作目录的完整路径。这个看似简单的命令在实际工作中非常实用,特别是在复杂的目录结构中快速定位自己的位置。
ls命令可能是使用频率最高的命令之一。基本用法是列出当前目录下的文件和子目录。通过添加不同选项可以获取更多信息:
ls -l:以长格式显示文件详细信息ls -a:显示所有文件,包括隐藏文件ls -lh:以人类可读的格式显示文件大小
cd命令用于切换工作目录。几个常用技巧:
cd ~:返回用户主目录cd ..:返回上级目录cd -:返回上一个工作目录
2.2 文件操作命令
cp命令用于复制文件或目录。使用时需要注意:
cp file1 file2:复制file1到file2cp -r dir1 dir2:递归复制目录- 复制大文件时建议使用
-v选项显示进度
mv命令兼具移动和重命名功能:
mv oldname newname:重命名文件mv file dir/:移动文件到目录
rm命令用于删除文件,使用时需格外小心:
rm -i:交互式删除,会提示确认rm -r:递归删除目录rm -f:强制删除,不提示
警告:
rm -rf /这样的命令会删除系统所有文件,绝对不要尝试!
3. 文件内容查看与处理
3.1 基本查看命令
cat命令是最简单的文件内容查看工具:
cat file:显示文件全部内容cat -n file:显示行号- 适合查看小文件,大文件建议使用
less
less和more都是分页查看工具:
less file:可上下滚动查看/keyword:在less中搜索关键词q:退出查看
head和tail分别查看文件开头和结尾:
head -n 10 file:查看前10行tail -f logfile:实时监控日志文件变化
3.2 文本处理三剑客
grep是强大的文本搜索工具:
grep "pattern" file:搜索包含模式的行grep -i:忽略大小写grep -v:反向匹配grep -r:递归搜索目录
sed是流编辑器,适合批量修改:
sed 's/old/new/g' file:替换文本sed -i:直接修改文件内容sed '/pattern/d':删除匹配行
awk是强大的文本分析工具:
awk '{print $1}':打印第一列awk -F':':指定分隔符- 支持复杂编程逻辑
4. 系统信息与进程管理
4.1 系统信息查询
uname命令显示系统信息:
uname -a:显示所有信息uname -r:显示内核版本
df和du查看磁盘使用情况:
df -h:人类可读的磁盘空间du -sh dir:查看目录大小
free查看内存使用:
free -h:以MB/GB显示free -m:以MB显示
top和htop实时监控系统状态:
- 显示CPU、内存、进程信息
htop需要额外安装,界面更友好
4.2 进程管理命令
ps查看进程状态:
ps aux:显示所有进程ps -ef:另一种显示格式- 常与grep配合使用:
ps aux | grep nginx
kill终止进程:
kill PID:终止指定进程kill -9 PID:强制终止killall name:终止所有同名进程
nohup和&实现后台运行:
command &:后台运行nohup command &:退出终端仍运行
5. 权限与用户管理
5.1 文件权限管理
chmod修改文件权限:
chmod 755 file:数字模式chmod u+x file:符号模式chmod -R:递归修改
chown修改文件所有者:
chown user:group filechown -R:递归修改
umask设置默认权限:
umask 022:新建文件默认644,目录755
5.2 用户与组管理
useradd添加用户:
useradd -m username:创建用户及主目录useradd -g groupname username:指定主组
passwd设置密码:
passwd username:为用户设置密码- 普通用户只能修改自己的密码
usermod修改用户属性:
usermod -aG groupname username:追加附加组usermod -s /bin/bash username:修改登录shell
groupadd创建组:
groupadd groupnamegroupdel删除组
6. 网络相关命令
6.1 网络配置与测试
ifconfig或ip查看网络配置:
ifconfig:传统命令ip addr show:新版推荐
ping测试网络连通性:
ping example.comping -c 4:指定次数
netstat查看网络状态:
netstat -tulnp:查看监听端口netstat -rn:查看路由表
ss是netstat的现代替代:
ss -tulnp:功能类似但更快
6.2 文件传输命令
scp安全拷贝文件:
scp file user@host:/path:上传scp user@host:/path/file .:下载
wget和curl下载文件:
wget URL:简单下载curl -O URL:功能更强大
rsync高效同步文件:
rsync -avz src/ dest/--delete:保持完全同步
7. 软件包管理
7.1 基于Debian的系统
apt是Ubuntu/Debian的包管理工具:
apt update:更新软件源apt upgrade:升级已安装包apt install package:安装软件apt remove package:卸载软件
dpkg处理本地deb包:
dpkg -i package.deb:安装dpkg -l:列出已安装包
7.2 基于RHEL的系统
yum或dnf是CentOS/RHEL的包管理:
yum install packageyum remove packageyum update
rpm处理本地rpm包:
rpm -ivh package.rpmrpm -qa:查询已安装
8. Shell使用技巧
8.1 命令历史与补全
history查看命令历史:
!number:执行历史命令!!:重复上条命令Ctrl+R:反向搜索历史
Tab键自动补全:
- 命令补全
- 文件路径补全
- 参数补全(部分命令支持)
8.2 重定向与管道
>和>>重定向输出:
command > file:覆盖写入command >> file:追加写入
2>重定向错误输出:
command 2> error.log
管道|连接多个命令:
command1 | command2- 可以串联多个管道
8.3 环境变量
echo $VAR查看变量:
echo $PATH:查看PATH变量
export设置环境变量:
export VAR=value- 添加到
~/.bashrc永久生效
alias创建命令别名:
alias ll='ls -l'- 添加到
~/.bashrc永久保存
9. 实用组合命令示例
9.1 日常维护组合
查找并删除旧日志文件:
bash复制find /var/log -name "*.log" -mtime +30 -exec rm {} \;
统计当前目录文件数量:
bash复制ls -l | grep "^-" | wc -l
9.2 系统监控组合
监控CPU使用率最高的进程:
bash复制ps -eo pcpu,pid,user,args | sort -k1 -nr | head -10
查找大文件:
bash复制find / -type f -size +100M -exec ls -lh {} \;
9.3 网络诊断组合
查看ESTABLISHED连接数:
bash复制netstat -an | grep ESTABLISHED | wc -l
检查多个主机连通性:
bash复制for host in {1..10}; do ping -c1 192.168.1.$host && echo "192.168.1.$host is up"; done
10. 学习资源与进阶建议
10.1 内置帮助系统
man命令查看手册:
man ls:查看ls命令手册/keyword:在man页面中搜索q:退出
--help选项获取简要帮助:
ls --help- 通常比man更简洁
info命令查看GNU文档:
info coreutils- 某些命令有更详细的info文档
10.2 在线学习资源
推荐学习网站:
- Linux Documentation Project
- Ubuntu官方文档
- Arch Linux Wiki(通用性强)
推荐书籍:
- 《Linux命令行与shell脚本编程大全》
- 《鸟哥的Linux私房菜》
10.3 实践建议
- 在虚拟机或云服务器上实践
- 从简单任务开始,如文件管理
- 逐步尝试编写shell脚本自动化任务
- 参与开源项目,阅读他人脚本
- 建立自己的命令备忘清单
掌握Linux命令需要时间和实践。建议每天学习几个新命令,并在实际工作中应用。遇到问题时,善用man和网络搜索,大多数常见问题都有现成解决方案。随着经验积累,你会逐渐发现命令行操作比图形界面更高效、更强大。
