Linux 常用命令分类总结:从入门到精通

作为技术工程师,在日常工作和项目开发中,Linux 系统是不可或缺的工具。熟练掌握 Linux 常用命令,能够大大提高工作效率,高效地管理和操作服务器、开发环境等。本文将对 Linux 常用命令进行分类总结,从基础到高级,帮助读者全面掌握 Linux 命令的使用。

一、基础命令

  1. 命令介绍 这些命令是 Linux 系统中最基础、最常用的操作指令,用于文件和目录的基本管理以及系统信息的查看等。例如:
  • ls :列出目录中的文件和文件夹。常用选项如 -l(详细列表)、-a(显示隐藏文件)、-h(以易读格式显示文件大小)等。例如,ls -l 可以查看文件的详细信息,包括权限、所有者、大小等;ls -a 可以显示包括隐藏文件(以.开头的文件)在内的所有文件。
  • cd :切换目录。使用 cd 目录名 可以进入指定目录,cd .. 返回上一级目录,cd ~ 返回用户主目录。
  • pwd :显示当前工作目录的绝对路径。在操作过程中,随时可以使用该命令查看当前所在位置。
  • mkdir :创建目录。mkdir 目录名 可创建一个新目录,mkdir -p 目录路径 可递归创建多级目录。
  • rm :删除文件或目录。rm 文件名 删除文件,rm -r 目录名 递归删除目录及其内容。需谨慎使用,删除后的数据难以恢复。
  • cp :复制文件或目录。cp 源文件 目标文件 复制文件,cp -r 源目录 目标目录 复制目录。
  • mv :移动或重命名文件或目录。mv 源文件 目标路径 将文件移动到指定位置,mv 原文件名 新文件名 对文件进行重命名。
  • cat :查看文件内容。cat 文件名 可显示文件内容,对于小文件快速查看内容较为方便。
  1. 使用场景与案例 在日常的文件和目录操作中,这些基础命令几乎每天都会用到。例如,在搭建项目环境时,需要创建项目的目录结构,使用 mkdir 逐级创建各个子目录;在整理文件时,根据需要将文件移动到不同的目录下,使用 mv 命令进行操作;查看文件内容时,使用 cat 快速了解文件的大致信息等。这些基础命令为后续更复杂的操作奠定了基础。

二、文件与目录操作命令

  1. 文件操作

    • touch :创建空文件。touch 文件名 可生成一个指定名称的空文件,常用于创建日志文件或作为其他操作的基础文件。
    • ln :创建链接文件。ln -s 目标文件 链接文件 可创建符号链接,类似于 Windows 中的快捷方式,方便对文件的快速访问和管理。
    • find :查找文件。find 查找路径 -name 文件名 可在指定路径下查找符合名称条件的文件,还可结合其他选项如 -type(指定文件类型)、-mtime(按照修改时间查找)等进行更精确的查找。例如,find /home -name "*.txt" 可在 /home 目录下查找所有后缀为.txt 的文件。
    • rename :批量重命名文件。rename 's/旧名模式/新名模式/' 目标文件 可按照指定的正则表达式模式对文件进行批量重命名,提高文件管理效率。
  2. 目录操作

    • tree :以树状图的形式显示目录结构。tree 目录名 可直观地展示目录及其子目录、文件的层次关系,方便对目录结构的整体把握。

三、文本处理命令

  1. 文本查看

    • less :分页查看文件内容。与 cat 相比,less 更适合查看大文件,使用 less 文件名 打开文件后,可通过上下箭头或空格键翻页,按 q 键退出查看。
    • more :与 less 类似,也是分页查看文件内容,但功能相对较少,翻页操作不如 less 灵活。
    • head :查看文件的开头部分。head -n 文件名 默认显示文件的前 10 行内容,通过 -n 选项可指定显示的行数,例如 head -5 文件名 显示前 5 行。
    • tail :查看文件的结尾部分。tail -n 文件名 默认显示文件的后 10 行内容,同样可通过 -n 选项调整显示行数。此外,tail -f 文件名 可实时查看文件的尾部新增内容,常用于监控日志文件的更新。
  2. 文本编辑与处理

    • grep :在文件中查找符合条件的字符串。grep "查找内容" 文件名 可在指定文件中查找包含 "查找内容" 的行,配合选项如 -i(忽略大小写)、-n(显示行号)、-r(递归查找目录)等可实现更强大的查找功能。例如,grep -i "error" /var/log/messages 可在 /var/log/messages 文件中忽略大小写查找包含 "error" 的行。
    • sed :流编辑器,用于对文本进行编辑和处理。sed 's/原字符串/新字符串/g' 文件名 可将文件中所有匹配的原字符串替换为新字符串,还可实现删除、插入等操作。
    • awk :强大的文本处理工具,按照指定的模式对文本进行处理和分析。awk '{print $n}' 文件名 可打印文件中每行的第 n 个字段,结合条件判断等语句可完成复杂的文本处理任务。
    • cut :截取文本中的字段。cut -d "分隔符" -f 字段号 文件名 可按照指定的分隔符提取文件中相应字段的内容,例如 cut -d ":" -f 1,3 /etc/passwd 可提取 /etc/passwd 文件中用户名和用户 ID 字段。
    • sort :对文本内容进行排序。sort 文件名 默认按字典顺序对文件中的行进行排序,配合 -n(按数值排序)、-r(逆序排序)等选项可实现不同的排序需求。
    • uniq :去除文本中相邻的重复行。uniq 文件名 可对已经排序后的文件内容进行重复行的去除。
    • wc :统计文件中的行数、字数和字节数。wc -l 文件名 统计文件的行数,wc -w 统计字数,wc -c 统计字节数,帮助了解文件的大致规模和内容量。

四、系统信息与资源管理命令

  1. 系统信息查看

    • uname :查看系统的基本信息。uname -a 可显示系统内核版本、主机名、处理器架构等所有信息,uname -s 仅显示操作系统名称,uname -r 显示内核版本号。
    • hostname :查看和设置主机名。hostname 命令单独使用可查看当前主机名,使用 hostname 新主机名 可临时设置主机名(需具有管理员权限)。
    • uptime :显示系统运行时间、当前时间、登录用户数以及系统负载情况。通过该命令可了解系统的整体运行状态。
    • top :实时显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用率、进程 ID、进程名称等信息。在 top 界面中,可通过按键进行排序、过滤等操作,方便对系统性能进行监控和分析。
    • free :查看系统的内存使用情况。free -h 以易读的格式(如 MB、GB)显示系统的总内存、已用内存、空闲内存以及缓存和缓冲区的大小,帮助了解内存资源的分配和使用状态。
    • df :查看文件系统的磁盘空间使用情况。df -h 显示各个挂载点的磁盘总容量、已用空间、可用空间以及使用百分比等信息,便于对磁盘空间进行管理和监控。
    • du :查看文件或目录所占用的磁盘空间大小。du -sh 目录名 可查看指定目录的总大小(以易读格式显示),du -h 目录名 则可详细显示目录下每个子文件和子目录的大小。
  2. 进程管理

    • ps :查看当前系统的进程快照。ps aux 可显示系统中所有进程的详细信息,包括用户、进程 ID、CPU 和内存使用率、进程名称等。通过该命令可快速了解系统中正在运行的进程情况。
    • kill :向进程发送信号,用于终止进程。kill -9 进程 ID 可强制终止指定的进程,kill -15 进程 ID 则是向进程发送终止信号,让进程正常退出。
    • pkill :根据进程名称等条件杀死进程。pkill 进程名 可直接终止所有匹配名称的进程,操作相对方便,但需谨慎使用以免误杀重要进程。
    • killall :与 pkill 类似,也是根据进程名称终止进程。killall 进程名 会向所有同名进程发送信号,实现批量终止进程的效果。
    • top :除了查看系统资源占用情况外,在 top 界面中还可以通过输入相应指令对进程进行操作,如结束进程、改变进程优先级等,实现对进程的动态管理。

五、网络命令

  1. 网络配置与测试

    • ifconfig :查看和配置网络接口。ifconfig 命令可显示所有网络接口的配置信息,包括 IP 地址、子网掩码、广播地址等;使用 ifconfig 网络接口名 IP地址 可配置指定接口的 IP 地址(需要管理员权限)。不过在较新的 Linux 系统中,该命令逐渐被 ip 命令所替代。
    • ip :更强大、更灵活的网络配置命令。ip addr 可查看网络接口的地址信息,ip link 用于设置接口状态(如 up、down),ip route 管理路由规则等,功能涵盖了网络配置的多个方面。
    • ping :测试网络连通性。ping 目标 IP地址 向目标主机发送 ICMP 回显请求,根据返回的应答信息判断网络是否通畅以及网络延迟情况。
    • netstat :显示网络连接、路由表、接口统计等网络相关信息。netstat -an 可查看所有监听和非监听的网络连接状态,包括端口号、协议类型、连接状态等;netstat -rn 显示路由表信息。不过该命令在一些系统中也逐渐被 ss 命令所替代。
    • traceroute :追踪数据包的传输路径。traceroute 目标 IP地址 可显示数据包从本地主机到目标主机所经过的路由器和网络跳数,帮助分析网络路由情况和排查网络故障。
    • nslookup :查询域名的 DNS 信息。nslookup 域名 可查看该域名对应的 IP 地址、DNS 服务器等信息,用于检查域名解析是否正常。
    • dig :更全面和灵活的 DNS 查询工具。与 nslookup 类似,但功能更加强大,可查询 DNS 记录的各种类型,如 A 记录、MX 记录、TXT 记录等,并且输出格式更易于解析。
  2. 文件传输与远程登录

    • scp :基于 SSH 协议进行文件的远程安全复制。scp 本地文件 用户名@远程主机:远程路径 可将本地文件复制到远程主机,反之也可从远程主机复制文件到本地,过程中会对数据进行加密传输,保证文件传输的安全性。
    • rsync :更高效、灵活的文件同步工具。rsync -avz 本地目录 用户名@远程主机:远程目录 可实现本地与远程目录的同步,具有增量传输、保持文件属性、压缩传输等优点,适用于大容量数据的备份和同步。
    • ftp/sftp :文件传输协议和安全文件传输协议。ftp 是传统的文件传输方式,但安全性较低;sftp 基于 SSH 协议,提供了加密的文件传输服务,通过 sftp 用户名@远程主机 登录远程主机后,可进行文件的上传、下载、删除等操作。
    • ssh :安全外壳协议,用于远程登录到其他计算机。ssh 用户名@远程主机 可通过加密的通道连接到远程主机,在远程主机上执行命令和操作,实现了远程管理的安全性和便捷性。

六、软件包管理命令

  1. 基于 Debian 的系统(如 Ubuntu)

    • apt :高级软件包管理工具。

      • apt update :更新软件包列表,确保系统知道最新的软件包版本信息。
      • apt upgrade :升级系统中已安装的所有软件包到最新版本。
      • apt install 软件包名 :安装指定的软件包。
      • apt remove 软件包名 :卸载指定的软件包。
      • apt search 关键词 :搜索与关键词相关的软件包。
      • apt show 软件包名 :显示软件包的详细信息,包括版本、描述、依赖关系等。
    • dpkg :低级软件包管理工具,直接操作.deb 格式的软件包文件。

      • dpkg -i 软件包文件名.deb :安装或升级指定的.deb 软件包文件。
      • dpkg -r 软件包名 :移除已安装的软件包。
      • dpkg -l :列出系统中所有已安装的软件包。
  2. 基于 Red Hat 的系统(如 CentOS)

    • yum :Yellowdog Updater Modified,软件包管理器。

      • yum install 软件包名 :安装指定的软件包。
      • yum remove 软件包名 :卸载指定的软件包。
      • yum update 软件包名 :更新指定的软件包到最新版本,不带软件包名则更新所有软件包。
      • yum search 关键词 :搜索相关的软件包。
      • yum list :列出所有可安装和已安装的软件包。
    • dnf :作为 yum 的下一代版本,功能与 yum 类似,但在依赖解决和性能方面有所改进。使用方法与 yum 基本相同,如 dnf install 软件包名 安装软件包等。

    • rpm :Red Hat Package Manager,低级软件包管理工具,操作.rpm 格式的软件包文件。

      • rpm -ivh 软件包文件名.rpm :安装.rpm 软件包文件。
      • rpm -e 软件包名 :卸载已安装的软件包。
      • rpm -qa :查询系统中所有已安装的软件包。

七、用户与权限管理命令

  1. 用户管理

    • useradd :创建新用户。useradd 用户名 可创建一个新用户,还可通过选项指定用户的主目录、用户 ID 等信息,如 useradd -m -d /home/custom_dir 用户名 可为用户创建指定的主目录。
    • usermod :修改用户属性。usermod -s 登录 shell 用户名 可更改用户的登录 shell 类型,usermod -G 用户组 用户名 可修改用户的所属附加用户组等。
    • userdel :删除用户。userdel 用户名 删除指定用户,若用户主目录存在且需要同时删除,可使用 userdel -r 用户名
    • passwd :设置或更改用户密码。passwd 用户名 可为指定用户设置或修改密码,普通用户只能更改自己的密码,管理员可更改任意用户的密码。
    • su :切换用户身份。su 用户名 可切换到指定用户的身份进行操作,需输入目标用户的密码(除非是以 root 用户切换且目标用户无密码设置等情况)。
    • sudo :以超级用户或其他用户权限执行命令。通过在 /etc/sudoers 文件中配置权限,普通用户可以使用 sudo 命令 以更高的权限(如 root 权限)执行指定的命令,避免了频繁切换用户和输入 root 密码,提高了系统安全性。
  2. 用户组管理

    • groupadd :创建新的用户组。groupadd 用户组名 即可创建一个用户组,可通过 -g 选项指定组 ID。
    • groupmod :修改用户组属性。groupmod -n 新组名 原组名 可更改用户组的名称,groupmod -g 新 GID 组名 修改用户组的组 ID。
    • groupdel :删除用户组。groupdel 用户组名 可删除指定的用户组,但需确保该组中无用户存在且无相关文件关联等情况。
  3. 文件权限与所有者管理

    • chmod :更改文件或目录的权限。权限分为读(r)、写(w)、执行(x)三种,分别对应数字 4、2、1。用户类别分为文件所有者(u)、所属用户组(g)、其他用户(o)以及所有类别(a)。使用方法:

      • 符号模式 :如 chmod u+rwx,g+rx,o+r 文件名 表示给文件所有者增加读写执行权限,给所属用户组增加读执行权限,给其他用户增加读权限。
      • 数字模式 :如 chmod 755 文件名,其中 7(4+2+1)表示所有者有读写执行权限,5(4+0+1)表示所属用户组和其他用户有读执行权限。
    • chown :更改文件或目录的所有者。chown 新所有者 用户名:组名 文件名 可将文件的所有者更改为指定的用户和组,例如 chown user1:user_group 文件名 将文件的所有者设为 user1,所属用户组设为 user_group。

    • chgrp :更改文件或目录的所属用户组。chgrp 新组名 文件名 可单独更改文件的所属用户组。

八、压缩与解压缩命令

  1. 常用压缩工具

    • tar :归档工具,常与压缩功能结合使用。

      • tar -cvf 归档文件名.后缀 要归档的文件或目录 :创建归档文件,如 tar -cvf archive.tar file1 dir1 将 file1 和 dir1 打包成 archive.tar 文件。
      • tar -xvf 归档文件名.后缀 :解压归档文件,tar -xvf archive.tar 可将 archive.tar 文件解压到当前目录。
      • tar -tvf 归档文件名.后缀 :查看归档文件中的内容列表。
    • gzip :对文件进行压缩,将文件压缩为.gz 格式。

      • gzip 文件名 :将文件压缩成.gz 格式,原文件会被删除,如 gzip file.txt 生成 file.txt.gz。
      • gzip -d 文件名.gz :解压.gz 格式文件。
    • bzip2 :提供更高的压缩率,将文件压缩为.bz2 格式。

      • bzip2 文件名 :压缩文件为.bz2 格式,原文件删除。
      • bzip2 -d 文件名.bz2 :解压.bz2 格式文件。
    • zip/unzip :支持对文件和目录进行压缩和解压,生成.zip 格式文件。

      • zip -r 压缩文件名.zip 要压缩的文件或目录 :压缩文件或目录,如 zip -r archive.zip dir1 将 dir1 目录压缩成 archive.zip 文件。
      • unzip 压缩文件名.zip :解压.zip 文件到当前目录,可使用 -d 选项指定解压目录。
  2. 压缩与解压缩操作案例 在实际工作中,压缩与解压缩操作非常常见。例如,将项目代码目录进行打包压缩后上传至服务器进行部署,使用 tar -zcvf project.tar.gz project_dir 可将 project_dir 目录及其内容压缩成 project.tar.gz 文件(其中 -z 表示使用 gzip 压缩算法);在服务器上解压该文件时,使用 tar -zxvf project.tar.gz 将代码解压到指定位置,方便后续的安装和配置操作。对于一些下载的压缩文件,如软件安装包等,根据不同压缩格式选择相应的解压工具进行解压后使用。

九、磁盘管理命令

  1. 磁盘分区与格式化

    • fdisk :传统的磁盘分区工具,用于对磁盘进行分区操作。通过 fdisk 磁盘设备名 进入分区界面,可查看分区表、创建新分区、删除分区等,操作过程需要输入相应的指令(如 n 创建新分区、d 删除分区、w 保存分区表等),分区完成后需要对新分区进行格式化才能使用。
    • parted :更加强大的磁盘分区工具,支持对大容量磁盘进行操作,功能类似于 fdisk,但界面和操作方式有所不同。例如,parted 磁盘设备名 进入 parted 模式,可进行分区的创建、调整大小、删除等操作。
    • mkfs :用于对分区进行格式化,指定文件系统类型。如 mkfs.ext4 分区设备名 可将分区格式化为 ext4 文件系统,常见的文件系统类型还有 ext3、xfs、ntfs 等。
  2. 磁盘挂载与卸载

    • mount :挂载磁盘分区或外部存储设备(如 U 盘、光盘等)到指定的挂载点。mount 分区设备名 挂载点 可将分区挂载到指定目录,挂载后即可通过该目录访问分区中的文件。此外,还可通过修改 /etc/fstab 文件实现磁盘的自动挂载,在系统启动时自动挂载指定的分区到对应的挂载点。
    • umount :卸载已挂载的磁盘分区或设备。umount 挂载点 即可安全地卸载磁盘,避免数据丢失和文件系统损坏。

十、其他实用命令

  1. 定时任务与计划作业

    • cron :Linux 系统中的定时任务服务,通过编辑 crontab 文件来设置定时任务。

      • crontab -e :编辑当前用户的 crontab 文件,在文件中按照 "分 时 日 月 周 指定命令" 的格式设置定时任务。例如,30 2 * * * /usr/bin/backup_script.sh 表示每天凌晨 2 点 30 分执行备份脚本 /usr/bin/backup_script.sh。
      • crontab -l :查看当前用户的 crontab 文件内容。
    • at :用于执行一次性的计划任务,任务在指定的时间执行一次。at 时间(如 at 18:00)进入 at 命令界面,输入要执行的命令后按 Ctrl+D 保存,系统会在指定时间执行这些命令。

  2. 系统时间管理

    • date :显示和设置系统日期与时间。date 单独使用可查看当前系统时间,使用 date -s "日期时间"(如 date -s "2025-08-06 10:30:00")可设置系统时间为指定的时间(需要具有管理员权限)。此外,还可通过该命令查看日期和时间的特定格式信息,如 date "+%Y-%m-%d"` 可仅显示日期部分。
    • timedatectl :在使用 systemd 的系统中,用于查看和设置系统时间、时区以及 NTP(网络时间协议)同步等。timedatectl status 可查看系统时间相关状态信息,timedatectl set-timezone 时区名(如 Asia/Shanghai)设置系统时区,timedatectl set-ntp true 启用 NTP 同步,确保系统时间的准确性。
  3. 日志查看与分析

    • dmesg :查看内核环形缓冲区中的系统消息日志,这些日志通常与硬件设备、内核模块加载等系统底层事件相关。dmesg 命令可帮助排查硬件兼容性问题、驱动加载问题等。
    • syslog :系统日志服务,将系统各服务和应用程序的日志信息记录到指定文件中(默认在 /var/log/ 目录下)。不同的日志文件记录不同类型的信息,如 auth.log 记录认证相关事件、daemon.log 记录系统服务日志等。通过查看这些日志文件,可了解系统和服务的运行状况,分析故障原因。
    • journalctl :在 systemd 系统中,用于查询和查看系统日志。journalctl -u 服务名 可查看指定服务的日志,journalctl -b 查看本次启动的日志,journalctl --since "时间"(如 `journalctl --since "2025-08-05 08:00:00")查看从指定时间以后产生的日志,方便对日志进行精确筛选和分析。
  4. Shell 脚本编写基础

    • 脚本创建与执行

      • 使用文本编辑器(如 vi 或 vim)创建一个以.sh 为后缀的文件,如 script.sh,在文件中以 #!/bin/bash 开头,表示指定脚本使用的解释器为 bash。
      • 编写脚本内容,可以包含 Linux 命令、变量定义、条件判断、循环结构等。
      • 保存文件后,使用 chmod +x script.sh 给脚本赋予可执行权限,然后通过 ./script.sh 执行脚本。
    • 变量与参数使用

      • 在脚本中定义变量:var_name="value",使用变量时用 ${var_name}$var_name
      • 脚本参数:$0 表示脚本名称,$1$2 等表示传递给脚本的第一个、第二个参数,$# 表示参数个数,$@ 表示所有参数。
    • 条件语句与循环结构

      • 条件语句if [ 条件 ]; then ... elif [ 条件 ]; then ... else ... fi 用于根据条件执行不同的命令块。
      • 循环结构for 变量 in 列表; do ... done 遍历列表中的元素;while [ 条件 ]; do ... done 在条件为真时循环执行命令;until [ 条件 ]; do ... done 在条件为假时循环执行命令。通过编写 Shell 脚本,可以将一系列复杂的 Linux 命令组合起来,实现自动化的批量操作和任务调度,大大提高工作效率,减少重复性工作。

掌握 Linux 常用命令对于技术工程师来说至关重要,本文对各类命令进行了详细的分类总结,从基础操作到高级管理,涵盖了文件、文本、系统、网络、软件包、用户权限、磁盘以及实用工具等多个方面的命令。通过不断学习和实践这些命令,读者可以在日常工作中更加高效地使用 Linux 系统,解决各种技术问题和任务需求。同时,熟练运用 Shell 脚本编写技巧,可进一步发挥 Linux 命令的强大功能,实现自动化运维和复杂任务处理,提升在软件开发、服务器管理等领域的综合能力。

相关推荐
被遗忘的旋律.1 小时前
Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
linux·驱动开发·笔记
轻松Ai享生活1 小时前
minidump vs core dump
linux
轻松Ai享生活2 小时前
详细的 Linux 常用文件系统介绍
linux
张童瑶2 小时前
Linux 离线安装lrzsz(rz、sz上传下载小插件)
linux·运维·centos
十五年专注C++开发3 小时前
通信中间件 Fast DDS(二) :详细介绍
linux·c++·windows·中间件·fastdds
YC运维4 小时前
Linux服务测试题(DNS,NFS,DHCP,HTTP)
linux·网络
zhanghongyi_cpp5 小时前
linux的conda配置与应用阶段的简单指令备注
linux·python·conda
Cuit小唐5 小时前
VsCode使用SFTP连接Linux
linux·ide·vscode
青草地溪水旁8 小时前
`lock()` 和 `unlock()` 线程同步函数
linux·c++·c
2401_858286118 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程