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 命令的强大功能,实现自动化运维和复杂任务处理,提升在软件开发、服务器管理等领域的综合能力。

相关推荐
南极浮冰10 分钟前
【无标题】
linux·人工智能·python
小孙姐16 分钟前
Linux-Day02.Linux指令
linux·运维·服务器
@BreCaspian26 分钟前
Kazam产生.movie.mux后恢复视频为.mp4
linux·ubuntu·音视频
搞不懂语言的程序员38 分钟前
Linux Epool的作用
linux·服务器
jzy37111 小时前
主机管理优化方案:安全加固、资源整合与跨团队协作
linux·tomcat
Neng_Miao1 小时前
文件与目录操作命令
linux·运维
倔强的石头1061 小时前
【Linux指南】软件安装全解析:从源码到包管理器的进阶之路
linux·运维·服务器
爱地球的曲奇1 小时前
Linux环境下(Ubuntu)Fortran语言如何安装配置NetCDF
linux·ubuntu·netcdf
freshman_y1 小时前
15个命令上手Linux!
linux·运维·服务器
highersister1 小时前
Linux 设备模型框架 kobject 和 kset
linux