Linux作为服务器和开发环境的主流操作系统,掌握其必备命令是高效工作的基础,以下从文件管理、系统监控、网络配置、文本处理、软件管理五个维度,详细解析常用命令的核心功能与使用场景,并附操作示例和注意事项。

文件与目录管理命令
文件操作是Linux日常使用中最频繁的任务,以下命令覆盖了创建、移动、查看、删除等核心需求:
-
ls(列出目录内容)
基础用法:ls
仅显示当前目录文件名。
常用选项:-l
:显示详细信息(权限、所有者、大小、修改时间),例如ls -l /home
会列出home目录下所有文件的权限位为drwxr-xr-x
的目录结构。-a
:显示隐藏文件(以开头的文件),如ls -a
会显示.bashrc
等配置文件。-h
:配合-l
以人类可读格式显示文件大小(如1K、234M),例如ls -lh
将文件大小从字节转换为更直观的单位。
-
cd(切换目录)
cd /var/log
:切换到系统日志目录。cd ..
:返回上级目录。cd ~
或cd
:直接返回用户主目录(如/home/username
)。cd -
:在最近两次访问的目录间切换,例如从/etc
切换到/usr
后,cd -
会返回/etc
。
-
cp(复制文件/目录)
(图片来源网络,侵删)cp file1.txt file2.txt
:复制文件并重命名。cp -r dir1/ dir2/
:递归复制整个目录(必须加-r
选项)。cp -p file.txt /backup/
:保留文件权限、时间戳等属性,适合备份重要配置文件。
-
mv(移动/重命名文件)
mv oldname.txt newname.txt
:重命名文件。mv /tmp/file.log /var/log/
:将文件移动到目标目录。mv dir1/ dir2/
:若dir2不存在,则重命名dir1为dir2;若dir2存在,则将dir1移动到dir2下。
-
rm(删除文件/目录)
rm file.txt
:删除文件(不可恢复,需谨慎)。rm -r dir/
:递归删除目录及其内容。rm -f file.txt
:强制删除,忽略不存在的文件提示(如rm -f *.tmp
批量删除临时文件)。
-
mkdir(创建目录)
mkdir newdir
:创建单层目录。mkdir -p parent/child/grandchild
:递归创建多级目录(若父目录不存在则自动创建)。
-
touch(创建空文件/更新时间戳)
(图片来源网络,侵删)touch newfile.txt
:创建空文件(若文件存在则更新其访问和修改时间为当前时间)。
系统监控与信息查询命令
排查服务器问题时,需快速掌握系统资源使用情况:
-
top(动态监控进程)
实时显示进程的CPU、内存占用,按P
按CPU排序、M
按内存排序、q
退出,例如发现java
进程占用CPU过高时,可通过top -p <PID>
单独监控该进程。 -
df(磁盘空间使用)
df -h
:以人类可读格式显示各分区使用情况(如/dev/sda1
已用80%)。df -i
:查看inode使用量,适用于文件数量多但单个文件小的场景(如日志目录)。
-
free(内存使用)
free -h
:显示内存和交换分区使用情况,buff/cache
列需关注,表示可回收的缓存内存。
-
ps(查看进程状态)
ps aux
:显示所有进程的详细信息,USER
列显示进程所有者,%CPU
和%MEM
分别对应CPU和内存占用率。ps -ef | grep nginx
:查找与nginx相关的进程。
-
uname(系统信息)
uname -a
:显示内核版本、主机名等信息,例如Linux ubuntu 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
。
网络配置与诊断命令
网络问题排查依赖以下命令定位故障点:
-
ping(测试网络连通性)
ping -c 4 8.8.8.8
:发送4个ICMP包测试与Google DNS的连通性,time
列显示往返时间。
-
ifconfig(网络接口配置)
ifconfig eth0
:查看网卡eth0的IP地址(如inet 192.168.1.100
)、子网掩码等。ifconfig eth0 up/down
:启用或禁用网卡。
-
netstat(网络连接状态)
netstat -tuln
:显示监听的TCP(t
)和UDP(u
)端口,n
表示以数字形式显示地址(避免DNS解析延迟)。netstat -an | grep ESTABLISHED
:查看已建立的TCP连接。
-
ss(替代netstat的命令)
ss -tulnp
:功能与netstat -tuln
类似,但速度更快,p
选项显示进程ID和名称。
-
curl(网络请求工具)
curl -I http://example.com
:获取HTTP响应头,检查服务是否正常(如状态码200)。curl -o file.zip http://example.com/file.zip
:下载文件并指定保存名。
文本处理命令
日志分析和配置修改常用以下命令高效处理文本:
-
cat(查看文件内容)
cat /etc/passwd
:直接显示文件全部内容(适合小文件)。cat -n file.txt
:显示行号,便于定位错误。
-
less(分页查看文件)
less /var/log/syslog
:支持上下翻页()、搜索(/keyword
)、退出(q
),适合大文件查看。
-
grep(文本搜索)
grep "error" /var/log/nginx/error.log
:搜索包含"error"的行。grep -v "warning" file.txt
:排除包含"warning"的行。grep -n "root" /etc/passwd
:显示匹配行的行号。
-
sed(流编辑器)
sed 's/old/new/g' file.txt
:全局替换文件中的"old"为"new"(原文件不变,需重定向保存)。sed -i 's/127.0.0.1/192.168.1.1/g' config.conf
:直接修改原文件。
-
awk(文本分析工具)
awk '{print $1, $NF}' /var/log/access.log
:打印每行的第1列和最后一列(如IP和请求路径)。awk -F: '{print $1}' /etc/passwd
:以冒号为分隔符,仅显示用户名列。
软件管理命令
不同发行版使用不同的包管理工具:
-
Debian/Ubuntu(apt)
sudo apt update
:更新软件包列表。sudo apt install nginx
:安装Nginx。sudo apt remove nginx
:卸载Nginx(保留配置文件)。
-
CentOS/RHEL(yum/dnf)
sudo yum update
:更新所有软件包。sudo yum install httpd
:安装Apache。sudo yum erase httpd
:完全卸载Apache。
-
编译安装(source)
tar -xvf source.tar.gz && cd source && ./configure && make && sudo make install
:适用于从源码编译安装软件(如Nginx、MySQL)。
常用命令速查表
功能分类 | 命令 | 常用选项及示例 |
---|---|---|
文件管理 | ls | -l (详细信息)、-a (隐藏文件) |
cp | -r (递归目录)、-p (保留属性) |
|
系统监控 | top | P (CPU排序)、M (内存排序) |
df | -h (人类可读)、-i (inode使用) |
|
网络诊断 | ping | -c 4 (指定包数) |
ss | -tulnp (监听端口及进程) |
|
文本处理 | grep | -n (显示行号)、-v (排除匹配) |
sed | s/old/new/g (全局替换) |
|
软件管理 | apt/yum | install (安装)、remove (卸载) |
相关问答FAQs
Q1: 如何快速查找大文件并清理磁盘空间?
A1: 使用find
命令按大小查找文件,例如find /var -type f -size +100M
查找/var目录下超过100MB的文件,结合du -sh *
查看目录大小,定位后通过rm
删除无用文件(如日志),若磁盘inode耗尽,需用find / -type f -name "*.tmp"
删除临时文件。
Q2: 如何后台运行命令并查看输出?
A2: 使用nohup
命令使进程在退出终端后仍运行,例如nohup python script.py > output.log 2>&1 &
,其中>
将标准输出重定向到output.log,2>&1
将错误输出合并到标准输出,&
表示后台运行,后续可通过tail -f output.log
实时查看日志。