Linux作为一款开源的类Unix操作系统,凭借其稳定性、安全性和灵活性,在服务器、嵌入式系统以及开发领域得到了广泛应用,熟练掌握Linux常用命令是高效操作Linux系统的基础,本文将详细介绍Linux中最常用且实用的命令,涵盖文件管理、目录操作、文本处理、系统监控、网络配置等多个方面,帮助用户快速上手并提升工作效率。

在文件管理方面,ls
命令是最基础的命令之一,用于列出目录中的文件和子目录,通过添加不同选项,可以实现多样化的显示效果,例如ls -l
以长格式显示文件详细信息(包括权限、所有者、大小、修改时间等),ls -a
显示包括隐藏文件在内的所有文件(以开头的文件为隐藏文件),ls -h
以人类可读的格式显示文件大小(如K、M、G)。cp
命令用于复制文件或目录,cp file1 file2
将file1复制为file2,cp -r dir1 dir2
递归复制整个目录(-r
选项用于目录复制)。mv
命令则用于移动文件或目录,同时也可用于重命名文件,例如mv oldname newname
将文件重命名,mv file1 dir1/
将文件移动到指定目录。rm
命令用于删除文件或目录,rm file
删除文件,rm -r dir
递归删除目录及其内容,rm -f file
强制删除文件而不提示,需谨慎使用,避免误删重要文件。
目录操作中,cd
命令用于切换当前工作目录,cd /path/to/directory
切换到指定路径,cd ..
返回上一级目录,cd ~
切换到当前用户的主目录,cd -
返回上一次所在的目录。mkdir
命令用于创建新目录,mkdir newdir
创建单个目录,mkdir -p parentdir/newdir
递归创建多级目录(-p
选项可自动创建不存在的父目录)。pwd
命令用于显示当前工作目录的完整路径,方便用户确认当前位置。
文本处理是Linux操作的强项,cat
命令用于查看文件内容,cat file
直接显示整个文件内容,cat -n file
并附带行号,对于大文件,less
命令更为实用,less file
分页显示文件内容,支持上下翻页、搜索(/keyword
)、跳转行号等交互操作。grep
命令用于文本搜索,grep "pattern" file
在文件中搜索包含指定模式的行,grep -i "pattern" file
忽略大小写搜索,grep -r "pattern" dir/
递归搜索目录下的所有文件。sed
流编辑器用于文本替换和编辑,sed 's/old/new/g' file
将文件中所有"old"替换为"new",sed -i 's/old/new/g' file
直接在文件中修改(-i
选项表示原地修改)。awk
是一款强大的文本分析工具,awk '{print $1}' file
打印每行的第一列,awk -F: '{print $1,$6}' /etc/passwd
以冒号为分隔符打印/etc/passwd文件的第一列和第六列(用户名和家目录)。
系统监控命令帮助用户实时了解系统运行状态。top
命令动态显示系统进程、CPU使用率、内存占用等信息,按P
键按CPU使用率排序,按M
键按内存使用率排序,按q
键退出。htop
是top
的增强版,提供更直观的界面和更多交互功能,部分系统可能需要单独安装。free
命令用于查看内存使用情况,free -h
以人类可读格式显示内存和交换分区的使用量。df
命令用于查看磁盘空间使用情况,df -h
显示各分区的总容量、已用空间、可用空间及使用百分比。ps
命令用于查看当前进程状态,ps aux
显示所有进程的详细信息,ps -ef
以BSD格式显示进程,grep
结合ps
可筛选特定进程,如ps aux | grep nginx
查看nginx相关进程。

网络配置与排查命令是网络管理的基础。ifconfig
或ip
命令用于查看和配置网络接口,ifconfig
显示网络接口信息,ifconfig eth0 up/down
启用或禁用网卡,ip addr show
显示更详细的网络地址信息(推荐使用ip
命令,作为ifconfig
的替代)。ping
命令用于测试网络连通性,ping www.baidu.com
向目标主机发送ICMP请求包,显示往返时间。netstat
用于查看网络连接、路由表、接口统计等信息,netstat -an
显示所有连接的监听状态和端口,netstat -tuln
显示当前监听的TCP和UDP端口。ssh
命令用于远程登录Linux服务器,ssh username@remote_ip
以指定用户身份登录远程主机,首次登录时会提示保存主机密钥。scp
命令用于在本地和远程主机之间安全复制文件,scp localfile username@remote_ip:/remote/path
将本地文件复制到远程主机,scp -r username@remote_ip:/remote/path localdir
递归复制远程目录到本地。
压缩与解压命令在日常操作中频繁使用。tar
命令用于打包和解包文件,tar -czf archive.tar.gz dir/
将目录打包并gzip压缩,tar -xzf archive.tar.gz
解压gzip格式的tar包,tar -cjf archive.tar.bz2 dir/
使用bzip2压缩,tar -xjf archive.tar.bz2
解压bzip2格式的tar包。zip
和unzip
用于处理.zip格式的压缩文件,zip -r archive.zip dir/
递归压缩目录,unzip archive.zip
解压.zip文件。
用户与权限管理是Linux系统安全的核心。chmod
命令用于修改文件或目录的权限,chmod 755 file
设置文件所有者可读写执行,组用户和其他用户可读执行(权限数字表示:r=4,w=2,x=1),chmod u+x file
为文件所有者添加执行权限。chown
命令用于修改文件所有者,chown user:group file
将文件所有者改为user,所属组改为group,chown -R user:group dir/
递归修改目录及其内容的所有者。useradd
和userdel
用于添加和删除用户,useradd username
创建新用户,userdel -r username
删除用户及其主目录(-r
选项同时删除家目录)。
软件安装与管理方面,不同发行版使用不同的包管理工具,基于Debian/Ubuntu的系统使用apt
,sudo apt update
更新软件包列表,sudo apt install package
安装软件包,sudo apt remove package
卸载软件包,基于RHEL/CentOS的系统使用yum
或dnf
(CentOS 8+),sudo yum update
更新系统,sudo yum install package
安装软件包,sudo yum remove package
卸载软件包,编译安装源码包时,通常使用./configure
配置编译选项,make
编译源码,sudo make install
安装编译后的程序。

以下是一些常用命令的快速参考表格:
命令分类 | 命令 | 常用选项及功能描述 |
---|---|---|
文件管理 | ls | -l(长格式),-a(显示隐藏文件),-h(人类可读) |
cp | -r(递归复制目录),-f(强制复制) | |
mv | 移动文件/目录,重命名文件 | |
rm | -r(递归删除目录),-f(强制删除) | |
目录操作 | cd | ..(上级目录),~(主目录),-(上一次目录) |
mkdir | -p(递归创建多级目录) | |
pwd | 显示当前工作目录完整路径 | |
文本处理 | cat | -n(显示行号) |
less | 分页显示文件,支持搜索和跳转 | |
grep | -i(忽略大小写),-r(递归搜索) | |
sed | -i(原地修改),s/old/new/g(替换文本) | |
系统监控 | top | 动态显示进程和资源使用情况 |
free | -h(人类可读格式显示内存) | |
df | -h(人类可读格式显示磁盘空间) | |
网络命令 | ping | 测试网络连通性 |
netstat | -tuln(显示监听端口),-an(显示所有连接) | |
ssh | username@remote_ip(远程登录) | |
压缩解压 | tar | -czf(打包并gzip压缩),-xzf(解压gzip包) |
zip/unzip | -r(递归压缩目录) | |
权限管理 | chmod | 755(设置权限),u+x(添加执行权限) |
chown | -R(递归修改所有者),user:group(设置所有者和组) |
相关问答FAQs:
-
问:如何查找系统中包含特定关键词的文件?
答:可以使用find
命令结合grep
进行搜索,在当前目录及其子目录中查找包含"error"关键词的.txt文件,可执行:find . -type f -name "*.txt" -exec grep -l "error" {} \;
。find . -type f -name "*.txt"
查找所有.txt文件,-exec grep -l "error" {} \;
对每个文件执行grep搜索,-l
选项表示仅输出包含匹配内容的文件名。 -
问:如何查看系统最后10行日志文件?
答:可以使用tail
命令查看文件的末尾内容,查看系统日志文件/var/log/syslog的最后10行,可执行:tail -n 10 /var/log/syslog
,默认情况下,tail
命令显示最后10行,-n
选项可指定行数;若需实时监控日志文件的更新内容,可使用tail -f /var/log/syslog
,-f
选项表示持续显示新增内容。