Linux作为一款开源的类Unix操作系统,凭借其稳定性、安全性和灵活性在服务器、嵌入式系统以及开发领域占据重要地位,熟练掌握Linux经典命令是高效使用Linux系统的基础,这些命令涵盖了文件管理、权限控制、进程管理、网络配置等多个方面,下面将详细介绍常用的Linux经典命令及其使用场景。

在文件和目录管理方面,ls
命令是最基础的命令之一,用于列出目录中的文件和子目录,通过添加不同选项,可以实现多样化的显示效果,例如ls -l
以长格式显示文件详细信息(包括权限、所有者、大小、修改时间等),ls -a
显示所有文件(包括隐藏文件),ls -h
以人类可读的格式显示文件大小(如K、M、G)。cd
命令用于切换当前工作目录,cd ..
返回上级目录,cd ~
切换到当前用户的主目录,cd -
在最近两次工作目录之间切换。pwd
命令用于显示当前工作目录的完整路径。mkdir
用于创建新目录,mkdir -p
可以递归创建多级目录(例如mkdir -p a/b/c
会自动创建不存在的父目录)。rm
命令用于删除文件或目录,rm -f
强制删除而不提示,rm -r
递归删除目录及其内容,需谨慎使用。cp
命令用于复制文件或目录,cp -r
复制目录,cp -p
保留文件属性(如权限、时间戳)。mv
命令用于移动文件或目录,也可用于重命名(例如mv oldname newname
)。touch
命令用于创建空文件或更新文件的时间戳。
查看命令中,cat
用于查看文件内容并输出到终端,适合查看小文件。more
和less
用于分页查看大文件,more
只能向前翻页,less
支持前后翻页、搜索等功能(使用搜索关键词,n
跳转到下一个匹配项)。head
和tail
用于查看文件开头或末尾的内容,head -n 10 file
显示文件前10行,tail -n 10 file
显示文件末尾10行,tail -f
可用于实时监控文件内容变化(如日志文件)。grep
是强大的文本搜索命令,grep "keyword" file
在文件中搜索包含关键词的行,grep -i
忽略大小写,grep -v
反向匹配(显示不包含关键词的行),grep -r
递归搜索目录中的所有文件。
权限管理命令涉及Linux系统的安全机制。chmod
用于修改文件或目录的权限,权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1,例如chmod 755 file
设置所有者权限为rwx(7),所属组和其他用户权限为r-x(5)。chown
用于修改文件或目录的所有者,chown user:group file
同时修改所有者和所属组,chown -R
递归修改目录及其内容的所有者。chgrp
用于修改文件的所属组,例如chgrp group file
。
系统信息和管理命令中,top
和htop
用于实时监控系统进程和资源占用,top
按CPU使用率排序,htop
以彩色界面提供更直观的交互操作(支持鼠标操作、进程树显示等)。ps
命令用于查看当前进程状态,ps aux
显示所有进程的详细信息,ps -ef
以全格式显示进程。kill
和killall
用于终止进程,kill PID
通过进程ID终止进程,killall process_name
通过进程名终止所有相关进程。df
用于查看磁盘空间使用情况,df -h
以人类可读格式显示,du
用于查看目录或文件大小,du -sh *
显示当前目录下各文件和目录的总大小。free
用于查看内存使用情况,free -h
以人类可读格式显示。uname
显示系统信息,uname -a
显示所有信息(内核版本、系统架构等)。
网络配置命令中,ifconfig
和ip
用于查看和配置网络接口,ifconfig
显示网络接口信息,ip addr show
显示更详细的IP地址信息。ping
用于测试网络连通性,ping www.baidu.com
向目标主机发送ICMP请求包。netstat
和ss
用于查看网络连接状态,netstat -tuln
显示所有监听端口,ss -tuln
是netstat
的替代工具,显示速度更快。wget
和curl
用于下载文件,wget www.example.com/file.zip
下载文件,curl -O www.example.com/file.zip
同样支持下载,curl
还可用于发送HTTP请求(如API测试)。ssh
用于远程登录服务器,ssh username@hostname
通过用户名和主机名建立安全连接。

文本处理命令中,sort
用于对文件内容进行排序,sort -n
按数字排序,sort -r
反向排序,sort -k 2
按第二列排序。uniq
用于去除重复行,需配合sort
使用(sort file | uniq
)。cut
用于提取文本列,cut -d ":" -f 1 /etc/passwd
以冒号为分隔符提取第一列(用户名)。sed
是流编辑器,用于文本替换,sed 's/old/new/g' file
将文件中所有"old"替换为"new"。awk
是强大的文本分析工具,awk -F ":" '{print $1}' /etc/passwd
以冒号为分隔符打印第一列。
以下是一些常用命令的快速参考表格:
命令 | 功能描述 | 常用选项 |
---|---|---|
ls | 列出目录内容 | -l(长格式)、-a(显示隐藏文件) |
cd | 切换目录 | ..(上级目录)、~(主目录) |
cp | 复制文件或目录 | -r(递归)、-p(保留属性) |
mv | 移动/重命名文件或目录 | 无 |
rm | 删除文件或目录 | -f(强制)、-r(递归) |
grep | 文本搜索 | -i(忽略大小写)、-v(反向匹配) |
chmod | 修改权限 | 755(rwxr-xr-x)、644(rw-r--r--) |
ps | 查看进程 | aux(所有进程)、-ef(全格式) |
ping | 测试网络连通性 | -c(次数)、-i(间隔) |
ssh | 远程登录 | -p(端口)、-i(密钥文件) |
相关问答FAQs
Q1: 如何查找包含特定关键词的文件?
A1: 可以使用find
命令结合grep
实现,在当前目录及其子目录中查找包含"error"关键词的所有.txt文件,可执行命令:find . -name "*.txt" -exec grep -l "error" {} \;
。find . -name "*.txt"
查找所有.txt文件,-exec grep -l "error" {} \;
对每个文件执行grep搜索,-l
选项表示仅输出包含匹配的文件名。
Q2: 如何查看系统运行的端口及对应的进程?
A2: 可以使用netstat
或ss
命令,使用netstat -tulnp
可以查看所有监听的TCP和UDP端口及其对应的PID和进程名;使用ss -tulnp
效果相同,但显示速度更快,如果需要查看特定端口(如80端口),可添加过滤条件:netstat -tulnp | grep :80
。
