导读:本文面向刚接触Linux服务器或桌面环境的用户,以及需要快速查阅命令的运维人员。文中整理了40个高频Linux命令,覆盖文件操作、权限管理、进程控制、网络诊断和系统信息查看等日常场景。阅读后你将掌握每个命令的核心用法、常见参数和典型输出,并能在真实环境中独立完成基本的系统管理与故障排查。

核心结论
Linux命令虽多,但日常工作中真正高频使用的约40个。这40个命令按功能可分为八类:文件与目录操作(ls、cd、cp、mv、rm、mkdir、pwd、touch、find)、文件内容查看(cat、less、head、tail、grep、wc)、权限与用户管理(chmod、chown、useradd、passwd、whoami、su、sudo)、进程管理(ps、top、kill、jobs、fg、bg)、系统信息(uname、df、du、free、uptime、dmesg)、网络工具(ping、curl、wget、ifconfig/ip、netstat/ss)、压缩归档(tar、zip/unzip)以及软件包管理(apt/yum/dnf)。掌握这些命令,就能覆盖绝大多数Linux日常操作。
前置条件与适用环境
- 操作系统版本:本文命令适用于主流Linux发行版,包括Debian、Ubuntu(使用apt)、CentOS/RHEL/Rocky(使用yum或dnf)、openSUSE(使用zypper)。命令本身在绝大多数发行版中通用,但包管理器命令有差异。
- 权限要求:涉及系统配置、安装软件或修改其他用户文件时,需要root权限,通常使用sudo提权。普通用户命令(如ls、cd)无需特殊权限。
- 依赖说明:部分命令(如ifconfig、netstat)在较新系统中可能未预装,需要单独安装net-tools包;建议优先使用ip和ss命令。
- 备份建议:执行rm、mv、chmod等危险操作前,请确认目标路径,必要时先备份数据。对于生产环境,建议先在测试机验证命令效果。
完整操作步骤
以下按功能分类列出40个命令,每个命令给出典型用法和预期结果。请逐步在终端中执行,观察输出以加深理解。
1. 文件与目录操作(10个)
这些命令是Linux使用的基础,用于浏览、创建、复制和删除文件。
# 列出当前目录内容,-l显示详细信息,-a显示隐藏文件
ls -la
# 切换目录,cd ..返回上级目录
cd /var/log
# 显示当前工作目录的绝对路径
pwd
# 创建目录,-p可一次创建多级目录
mkdir -p /tmp/test/sub
# 创建空文件或更新时间戳
touch newfile.txt
# 复制文件,-r递归复制目录
cp file1.txt file2.txt
cp -r dir1/ dir2/
# 移动或重命名文件
mv oldname.txt newname.txt
# 删除文件,-r删除目录,-f强制删除不提示
rm -rf /tmp/test
# 查找文件,按名称在当前目录及子目录查找
find /etc -name "*.conf"
# 查看文件类型
file /usr/bin/ls
执行ls -la后,你会看到权限、所有者、大小、修改时间等信息。find命令在大型目录中可能较慢,建议限定搜索路径。
2. 文件内容查看与处理(6个)
用于阅读、筛选和分析文本文件。
# 查看整个文件内容
cat /etc/hostname
# 分页查看,空格翻页,q退出
less /var/log/syslog
# 查看文件前10行,-n指定行数
head -n 20 /etc/passwd
# 查看文件后10行,-f实时跟踪文件新增内容
tail -f /var/log/nginx/access.log
# 按正则表达式过滤行
grep "error" /var/log/messages
# 统计行数、单词数、字节数
wc -l /etc/passwd
tail -f常用于实时查看日志,按Ctrl+C停止。grep支持-i忽略大小写,-r递归搜索目录。
3. 权限与用户管理(7个)
Linux是多用户系统,权限控制至关重要。
# 修改文件权限,r=4,w=2,x=1,755表示所有者可读写执行,组和其他人可读执行
chmod 755 script.sh
# 修改文件所有者,-R递归
chown root:root /var/www
# 添加用户
useradd -m -s /bin/bash newuser
# 设置或修改用户密码
passwd newuser
# 显示当前登录用户名
whoami
# 切换用户,-表示加载目标用户环境
su - root
# 以root权限执行命令
sudo apt update
chmod也可使用符号模式,如chmod u+x file添加执行权限。sudo执行时可能需要输入当前用户密码。
4. 进程管理(5个)
查看和控制正在运行的程序。
# 查看所有进程,aux显示详细信息
ps aux
# 动态显示进程状态,按q退出
top
# 结束进程,-9强制终止
kill -9 12345
# 将进程放到后台暂停
Ctrl+Z
# 查看后台任务
jobs
# 将后台任务调到前台
fg %1
ps aux输出中,PID列是进程号。top界面中按P按CPU排序,按M按内存排序。kill需要指定PID,可通过ps或pgrep获取。
5. 系统信息与资源查看(5个)
了解系统版本、硬件和资源使用情况。
# 查看内核版本和系统架构
uname -a
# 查看磁盘分区使用情况,-h以人类可读格式显示
df -h
# 查看目录占用空间,-sh汇总大小
du -sh /var/lib/mysql
# 查看内存使用情况
free -h
# 查看系统运行时间、负载
owner uptime
注意:uptime命令没有owner前缀,正确命令为uptime。free -h中的-h参数将内存大小转换为GB显示。df -h适合检查磁盘是否写满。
6. 网络工具(5个)
测试网络连通性、下载文件和查看网络连接。
# 测试主机连通性,-c指定次数
ping -c 4 baidu.com
# 下载文件,-O保存为远程文件名
curl -O https://example.com/file.tar.gz
# 下载文件,-o指定本地文件名
wget -O myfile.zip https://example.com/file.zip
# 查看网络接口配置(部分系统需安装net-tools)
ifconfig
# 查看IP地址(推荐使用ip命令)
ip addr show
# 查看网络连接和监听端口
ss -tlnp
ss命令替代了netstat,-t显示TCP,-l显示监听,-n显示端口号,-p显示进程。
7. 压缩归档(2个)
打包和压缩文件用于备份或传输。
# 创建tar.gz压缩包,-c创建,-z使用gzip,-v显示过程,-f指定文件名
tar -czvf backup.tar.gz /home/user/data
# 解压tar.gz包,-x解压,-z使用gzip,-v显示过程,-f指定文件
tar -xzvf backup.tar.gz -C /tmp/restore
# 创建zip包
zip -r archive.zip folder/
# 解压zip包
unzip archive.zip -d /tmp/unzip_dir
注意:tar -C指定解压目标目录,zip -r递归包含子目录。
8. 软件包管理(2个命令,但覆盖主流发行版)
安装、更新和移除软件。
# Debian/Ubuntu 使用apt
sudo apt update && sudo apt install nginx
# CentOS/RHEL 使用yum(老版本)或dnf(新版本)
sudo yum install nginx
sudo dnf install nginx
apt update会更新软件源索引,之后再install才能获取最新版本。不同发行版包管理命令不同,请根据系统选择。
常见报错与解决方法
报错现象1:Permission denied
原因:当前用户对目标文件或目录没有写权限。例如在/home/other目录下创建文件。检查命令:ls -ld /home/other查看目录权限。修复方法:使用sudo提权执行,或切换到有权限的用户(su – username),或修改目录权限(chmod),但生产环境不建议随意放宽权限。
报错现象2:command not found
原因:命令未安装或不在PATH环境变量中。例如输入ifconfig提示未找到。检查命令:which ifconfig确认命令是否存在。修复方法:使用apt install net-tools(Debian/Ubuntu)或yum install net-tools(CentOS)。对于自定义脚本,检查PATH是否包含其所在目录。
报错现象3:No space left on device
原因:磁盘分区已满。检查命令:df -h查看各分区使用率。修复方法:使用du -sh /var/log/*找出大文件,清理日志或临时文件;删除旧的内核包(apt autoremove);扩展LVM分区或添加新磁盘。注意:不要随意删除系统目录下不熟悉的文件。
报错现象4:进程无法终止
原因:进程处于D状态(不可中断睡眠)或普通kill信号被忽略。检查命令:ps aux | grep 进程名查看状态。修复方法:先尝试kill -15(SIGTERM)正常终止,无效时使用kill -9(SIGKILL)强制终止。对于僵尸进程(Z状态),需终止其父进程或重启系统。
生产环境配置与避坑建议
在生产环境中,这些命令的使用需要更加谨慎。以下经验来自实际运维场景:
- rm -rf 的危险性:执行rm -rf前,务必确认当前目录和参数正确。建议先使用ls -la查看目标内容,或使用mv将文件移动到/tmp/trash作为软删除。在脚本中,对rm命令加入条件判断,防止变量为空导致误删根目录。
- chmod 的权限最小化原则:不要随意使用chmod 777。对于网站文件,建议目录755、文件644;对于可执行脚本,使用755即可。如果必须修改属主,使用chown root:root之后,再用chmod设置合适权限。
- 输出重定向的坑:使用>覆盖文件内容,>>追加内容。在cron脚本中,将标准输出和错误输出分别记录:command >> /var/log/myscript.log 2>&1。避免使用> /dev/null 2>&1丢弃所有输出,否则排障困难。
- find 与 -exec 的注意点:find . -name “*.log” -exec rm {} \; 可以批量删除,但建议先用不带-exec的命令列出结果,确认无误后再执行。使用-ok代替-exec会在删除前逐一询问。
- 管道与xargs的配合:当find结果过多时,xargs会分批处理。例如find /tmp -type f -print0 | xargs -0 rm -f,使用-print0和-0避免文件名中的空格导致错误。
- 历史命令安全:在输入含密码的命令(如mysql -p密码)时,密码会记录在~/.bash_history中。建议使用export HISTCONTROL=ignorespace,并在命令前加空格来避免记录。更安全的方法是使用配置文件或环境变量传递密码。
- 回滚策略:对于配置文件的修改,先备份原文件(cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak)。对于软件升级,记录旧版本号,使用包管理器回滚(apt install nginx=版本号)。对于数据库操作,操作前做逻辑备份(mysqldump)。
常见问题 FAQ
1. 如何查看Linux系统版本和内核信息?
使用uname -a查看内核版本和架构。查看发行版信息,Debian/Ubuntu使用cat /etc/os-release,CentOS/RHEL使用cat /etc/redhat-release。这些命令无需root权限。
2. 如何安全地删除大文件或目录?
先使用du -sh /path/to/dir确认大小。删除文件用rm -f 文件名,删除目录用rm -rf 目录名。但生产环境建议先mv到/tmp目录,观察一段时间确认无影响后再删除。如果文件正在被进程占用,删除后空间不会立即释放,需要重启进程或使用lsof +L1查找已删除但仍打开的文件。
3. grep命令如何搜索多个关键词?
使用grep -E “error|warning” /var/log/messages,-E启用扩展正则表达式,竖线表示或。或者使用grep -e error -e warning。如果搜索结果太多,可以结合head或tail限制输出行数。
4. 如何查看某个端口是否被占用?
使用ss -tlnp | grep :8080,-t显示TCP,-l显示监听,-n显示端口号,-p显示进程名称和PID。如果ss不可用,使用netstat -tlnp。注意需要root权限才能看到完整的进程信息。
5. tar命令如何只解压特定文件?
使用tar -xzvf backup.tar.gz -C /tmp/restore path/to/file,即指定文件在包内的路径。先使用tar -tzvf backup.tar.gz列出包内容,找到目标文件的完整路径,然后解压时带上该路径。注意路径必须与包内完全一致。
6. 为什么kill -9杀不掉进程?
kill -9发送SIGKILL信号,理论上会立即终止进程。但若进程处于D状态(不可中断睡眠,通常是等待IO),内核可能无法响应,直到IO完成。此时只能等待,或检查磁盘、网络存储是否故障。僵尸进程(Z状态)不能被kill,因为其已退出,需处理父进程。
总结与检查清单
完成上述命令的学习后,在生产环境使用前,请对照以下清单验证掌握情况:
- 能够使用ls、cd、pwd、mkdir、cp、mv、rm、find完成日常文件管理,且不会误删关键数据。
- 能够使用cat、less、tail -f、grep快速定位日志中的错误信息。
- 理解chmod的数值含义(755/644等),并能正确设置文件和目录权限。
- 能够使用ps、top查看系统负载,使用kill终止异常进程。
- 会使用df -h和du -sh检查磁盘空间,并清理临时文件。
- 能够使用ping、curl、ss测试网络连通性和服务端口。
- 掌握tar打包和解压,并知道如何用zip处理Windows交换文件。
- 知道当前系统使用的包管理器(apt/yum/dnf),并能正确安装软件。
- 执行任何修改命令前,已确认当前用户权限和备份状态。
以上40个命令构成了Linux操作的核心骨架。建议在虚拟机或容器中反复练习,直到形成肌肉记忆。遇到不确定的参数,使用man命令查看官方手册,例如man ls。在真实生产环境中,命令的准确性和预判能力比速度更重要。