菜鸟科技网

Linux系统命令有哪些常用功能?

Linux中的系统命令是用户与操作系统内核交互的核心工具,通过命令行界面(CLI)实现对文件管理、进程控制、网络配置、系统监控等功能的操作,这些命令通常位于/bin/usr/bin/sbin等目录下,通过Shell解释器(如Bash、Zsh)解析执行,本文将详细介绍Linux常用系统命令的分类、功能及使用方法,并结合实际场景说明其应用逻辑。

Linux系统命令有哪些常用功能?-图1
(图片来源网络,侵删)

文件与目录管理命令

文件管理是Linux操作的基础,常用命令包括lscdcpmvrmmkdirtouchcatmoreless等。

  • ls:列出目录内容,通过选项可显示详细信息,如-l以长格式显示(包含权限、所有者、大小、修改时间等),-a显示隐藏文件(以开头的文件),-h以人类可读格式显示文件大小(如KB、MB)。ls -lah会列出当前目录所有文件(包括隐藏文件),并以易读格式显示大小。

  • cd:切换当前工作目录。cd后接目标路径,如cd /home/user切换到/home/user目录;cd ..返回上级目录;cd ~切换到当前用户主目录;cd -在最近两次工作目录间切换。

  • cp:复制文件或目录。cp 源文件 目标文件实现文件复制,如cp file1.txt file2.txt-r选项用于递归复制目录,如cp -r dir1 dir2-p保留文件属性(权限、时间戳等)。

    Linux系统命令有哪些常用功能?-图2
    (图片来源网络,侵删)
  • mv:移动文件或目录,也可用于重命名。mv file1.txt dir1/将文件移动到目录;mv old_name.txt new_name.txt重命名文件。

  • rm:删除文件或目录。rm file.txt删除文件;-r递归删除目录(如rm -r dir);-f强制删除,不提示确认(慎用)。

  • mkdir:创建目录。mkdir new_dir创建单层目录;-p选项可创建多级嵌套目录,如mkdir -p parent/child

  • touch:创建空文件或更新文件时间戳。touch new_file.txt创建空文件;若文件已存在,则更新其访问和修改时间为当前时间。

    Linux系统命令有哪些常用功能?-图3
    (图片来源网络,侵删)
  • cat/more/less:查看文件内容。cat file.txt直接显示整个文件内容,适合小文件;more file.txt分页显示(按空格键翻页,q退出);less file.txt支持上下滚动、关键词搜索(),功能更强大。

文本处理命令

Linux擅长文本流处理,常用命令包括grepsedawksortuniqheadtail等。

  • grep:文本搜索工具。grep "pattern" file.txt在文件中搜索包含"pattern"的行,-i忽略大小写,-v反选(不包含匹配行的内容),-r递归搜索目录。grep -r "error" /var/log/在日志目录中搜索包含"error"的行。

  • sed:流编辑器,用于对文本进行编辑(替换、删除、插入等)。sed 's/old/new/g' file.txt将文件中所有"old"替换为"new"(s表示替换,g表示全局);-i选项直接修改文件,如sed -i 's/old/new/g' file.txt

  • awk:文本分析工具,按列处理文本。awk '{print $1, $3}' file.txt打印文件的第1列和第3列;-F选项指定分隔符,如awk -F: '{print $1}' /etc/passwd以冒号为分隔符,打印/etc/passwd文件的第一列(用户名)。

  • sort:对文本行排序。sort file.txt按字典序排序;-n按数字大小排序,-r降序排序,-k指定按某列排序,如sort -k 3,3n file.txt按第三列数字升序排序。

  • uniq:去除重复行。uniq file.txt需先对文件排序(sort file.txt | uniq);-d仅显示重复行,-c统计每行重复次数。

  • head/tail:查看文件开头或结尾部分。head -n 10 file.txt显示文件前10行;tail -n 10 file.txt显示文件末尾10行;-f选项实时跟踪文件变化(如tail -f /var/log/syslog查看系统日志实时更新)。

系统信息与监控命令

Linux提供了丰富的命令用于查看系统状态和资源使用情况。

  • uname:显示系统信息。uname -a显示所有信息(内核版本、主机名、系统架构等);-r显示内核版本,-m显示系统架构(如x86_64)。

  • top/htop:动态查看进程资源占用。top默认按CPU占用排序,实时更新进程列表(q退出);htoptop的增强版,支持彩色显示、鼠标操作、进程树视图等(需安装)。

  • ps:查看当前进程状态。ps aux显示所有进程的详细信息(用户、CPU占用、内存占用、命令等);-ef以BSD格式显示进程,grep结合可筛选特定进程,如ps aux | grep nginx查看nginx相关进程。

  • df/du:磁盘空间管理。df -h显示各文件系统的磁盘使用情况(-h以易读格式);du -sh *统计当前目录下各文件及子目录的大小(-s仅显示总计,-h易读格式)。

  • free:查看内存使用情况。free -h以易读格式显示总内存、已用、空闲、缓冲区等信息。

  • iostat/vmstat:系统性能监控工具(需安装sysstat包)。iostat -x 1每秒显示磁盘I/O统计信息;vmstat 1每秒显示进程、内存、 paging、I/O、CPU等摘要信息。

用户与权限管理命令

Linux是多用户系统,权限管理是核心安全机制。

  • useradd/userdel:添加/删除用户。sudo useradd -m new_user创建新用户并创建主目录(-m);sudo userdel -r new_user删除用户及其主目录(-r)。

  • passwd:修改用户密码,普通用户可修改自己的密码,管理员可修改任意用户密码(如sudo passwd username)。

  • chmod:修改文件权限,权限分为读(r=4)、写(w=2)、执行(x=1),可通过数字或符号表示。chmod 755 file.txt设置所有者权限为rwx(7),组和其他用户权限为r-x(5);chmod u+x script.sh为所有者添加执行权限。

  • chown:修改文件所有者。sudo chown user:group file.txt将文件所有者改为user,所属组改为group;-R选项递归修改目录及子文件的所有者。

  • su/sudo:切换用户。su - username切换到指定用户(加载其环境变量);sudo command以管理员权限执行命令(需配置sudoers文件)。

网络配置与调试命令

Linux网络功能强大,常用命令包括ifconfig/ippingnetstatsscurlwget等。

  • ifconfig/ip:查看/配置网络接口。ifconfig显示网络接口信息(IP、MAC地址等);ip addr showiproute2工具包的命令,功能更全面(逐步替代ifconfig)。sudo ip addr add 192.168.1.100/24 dev eth0eth0接口配置IP地址。

  • ping:测试网络连通性。ping www.baidu.com发送ICMP包测试与目标主机的连通性,-c指定发送包数量(如ping -c 4 www.baidu.com)。

  • netstat/ss:查看网络连接状态。netstat -tuln显示所有监听端口(-tTCP,-uUDP,-l仅显示监听端口,-n以数字形式显示地址和端口);ss -tulnnetstat的替代品,速度更快,信息更全。

  • curl/wget:下载网络资源。curl -O http://example.com/file.zip下载文件并保持原文件名;wget -r -np http://example.com/dir/递归下载目录内容(-r递归,-np不遍历父目录)。

进程管理命令

  • jobs:查看后台任务。Ctrl+Z可将前台进程放入后台,jobs显示当前会话的后台任务(如[1]+ Stopped vim)。

  • bg/fg:切换进程前后台。bg %1将任务1转为后台运行;fg %1将任务1调回前台。

  • kill/pkill:终止进程。kill PID通过进程ID终止进程;-9选项强制终止(如kill -9 1234);pkill nginx通过进程名终止所有nginx进程。

软件包管理命令

不同Linux发行版使用不同的包管理工具:

发行版 包管理工具 示例命令
Debian/Ubuntu apt sudo apt update更新索引,sudo apt install nginx安装nginx
CentOS/RHEL yum/dnf sudo yum update更新,sudo yum install httpd安装Apache
Arch Linux pacman sudo pacman -Syu更新系统,sudo pacman -s vim安装vim

压缩与归档命令

  • tar:打包/解包工具。tar -czf archive.tar.gz dir/将目录打包为gzip压缩的归档文件;-x解包,-v显示过程,-f指定文件名,如tar -xzf archive.tar.gz解压gzip文件。

  • zip/unzip:处理zip格式。zip -r archive.zip dir/递归压缩目录;unzip archive.zip解压zip文件。

相关问答FAQs

Q1: 如何查看Linux系统当前运行的所有进程及其详细信息?
A1: 可使用ps命令结合grep筛选进程。ps aux显示所有进程的详细信息(包括用户、PID、CPU占用、内存占用、命令等);若需查看特定进程(如nginx),可执行ps aux | grep nginx,该命令会列出所有包含"nginx"的进程行。tophtop命令可动态实时显示进程资源占用情况,htop还支持进程树视图和交互式操作(如终止进程),功能更直观。

Q2: Linux中如何批量重命名多个文件?
A2: 批量重命名可结合mv命令和循环实现,将当前目录下所有.txt文件扩展名改为.bak,可执行:for file in *.txt; do mv "$file" "${file%.txt}.bak"; done${file%.txt}会删除变量$file末尾的.txt,再拼接.bak实现重命名,若需更复杂的重命名(如修改文件名前缀),可使用rename命令(需安装,不同发行版语法略有差异),例如rename 's/^old/new/' *将所有文件名以"old"开头的改为以"new"开头。

分享:
扫描分享到社交APP
上一篇
下一篇