本文系统性地整理了 Linux 运维中常用的 150 个命令,涵盖文件管理、文本处理、系统监控、网络操作、用户权限管理等多个方面。这些命令是开发者和运维人员在日常工作中不可或缺的工具,掌握它们有助于提升效率与系统稳定性。
Linux 命令行是技术世界中最具力量的工具之一。无论是开发、运维,还是系统调试,命令行都扮演着重要角色。对于初学者来说,掌握 150 个核心命令 是构建 Linux 技能体系的坚实基础。本文将围绕这些命令展开,结合使用场景与技术原理,为大学生和初级开发者提供实用指导。
文件和目录操作命令
文件和目录操作是 Linux 系统管理中最基础的部分。掌握这些命令可以高效地处理文件和文件夹。
ls 是查看文件与目录内容的最常用命令,默认显示当前目录下的所有文件及统计信息,如权限、大小、时间等。cd 用于切换目录,支持绝对路径和相对路径,是导航 Linux 文件系统的基石。pwd 可以显示当前工作目录的绝对路径,对定位文件非常有帮助。
cp 可用于复制文件或目录,支持文件和目录的复制。mv 则用于移动文件或重命名,功能与复制类似,但操作结果永久性更强。rm 用于删除文件或目录,必须格外谨慎使用,因为删除后通常无法恢复。rmdir 专门用于删除空目录,不会删除非空目录,避免误操作。
touch 用于创建新文件或更新文件的时间戳,常用于生成空文件以便后续编辑或追踪修改记录。tree 命令可以以树状图形式展示目录结构,便于快速了解文件组织方式。basename 和 dirname 可用于提取文件名和目录名,常用于脚本处理路径时。
chattr 和 lsattr 用于设置和查看文件的扩展属性,适用于高级权限管理。file 命令用于识别文件类型,对文件格式判断非常有用。md5sum 用于生成和校验文件的 MD5 值,常用于验证文件完整性。
查看文件及内容处理命令
查看文件内容是开发者和运维人员的日常任务,掌握高效的命令可以极大提升效率。
cat 命令用于显示文件内容,支持多文件连接输出。tac 是 cat 的反向版本,显示文件内容的倒序排列。more 和 less 都是分页查看工具,less 更加灵活,支持上下滚动,适合查看大型日志文件。
head 和 tail 常用于快速查看文件的开头和结尾内容,tail -f 是监控日志文件的利器。cut 用于按字段或分隔符提取文件内容,适合数据清洗和解析。split 可用于将大文件分割成多个小文件,常用于备份或分发数据。
paste 用于将多个文件按列合并,适合数据对齐操作。sort 用于对文本内容进行排序,支持多种排序规则。uniq 用于删除重复行,通常与 sort 配合使用,以确保唯一性。
wc 用于统计文件的行数、单词数和字节数,是分析文件规模的常用命令。iconv 和 dos2unix 分别用于文件编码转换和格式转换,在处理跨平台文件时非常有用。
diff 和 vimdiff 用于比较文件差异,vimdiff 是可视化比较工具,适合代码审查。rev 可以将文件内容反向输出,在字符处理中非常实用。grep 和 egrep 用于文本搜索,支持正则表达式和模式匹配,是日志分析和数据筛选的利器。
join 用于连接两个文件中相同字段的行,适合数据库或日志合并。tr 可以用于字符转换和删除,在文本处理中非常灵活。vi 和 vim 是 Linux 下最常用的文本编辑器,功能丰富,适合代码编写和调试。
文件压缩及解压缩命令
文件压缩与解压缩是数据管理和存储优化的重要手段,能有效节省空间并提升传输效率。
tar 是最常用的归档工具,支持多文件打包和解压。gzip 用于压缩文件,压缩后的文件后缀为 .gz,常用于单个文件压缩。zip 则用于生成 ZIP 格式的压缩文件,支持跨平台文件传输。
unzip 和 gunzip 用于解压 ZIP 和 GZ 文件,是处理压缩数据的必备命令。这些工具在部署、备份和网络传输中具有广泛应用。
信息显示命令
系统信息的查看和监控对运维和开发至关重要,这些命令能帮助快速判断系统状态。
uname 用于显示系统信息,包括内核版本、主机名等。hostname 可用于查看或设置主机名,适合调试网络连接问题。dmesg 显示系统启动时的内核日志,在排查硬件或内核问题时非常有用。uptime 可以显示系统运行时间和负载,常用于性能监控。
stat 用于显示文件状态信息,包括文件权限、大小、时间戳等。du 和 df 分别用于显示目录和文件系统的磁盘使用情况,对优化存储非常有帮助。top 是实时系统监控工具,展示进程资源占用情况,类似于 Windows 的任务管理器。
free 用于查看内存和交换空间使用情况,是评估系统性能的关键命令。date 和 cal 用于显示和设置系统时间,支持多种格式输出。clear 用于清除终端屏幕,提升操作的清晰度。
history 可以查看用户执行过的命令,有助于调试和学习。time 用于测量命令的执行时间,对性能分析很有帮助。nc 是一个功能强大的网络工具,支持端口探测和数据传输,在调试和网络分析中非常实用。
搜索文件命令
文件搜索是 Linux 系统中常见的操作,这些命令能帮助快速定位文件。
which 用于查找可执行文件,在 $PATH 路径中搜索。find 是最强大的文件搜索工具,支持按文件名、大小、类型等条件查找,适合复杂场景。whereis 用于查找二进制文件、源代码和帮助文档,搜索速度快,但功能有限。
locate 则是基于数据库的快速查找,适合频繁搜索文件名的场景。其搜索速度远快于 find,是系统管理员的常用工具。
用户管理命令
用户管理是系统安全和权限控制的核心,这些命令帮助管理员维护用户账户和权限。
useradd 用于创建用户,配置信息保存在 /etc/passwd。usermod 用于修改用户属性,如密码、权限等。userdel 可删除用户账户,但不会删除其文件。groupadd 用于创建用户组,便于权限集中管理。
passwd 用于修改用户密码,支持加密和重置。chage 用于设置账号的密码有效期,适用于安全策略配置。id 可以显示用户的 UID、GID 和所属组,对权限检查非常有用。
su 用于切换用户身份,非 root 用户需要输入密码。visudo 是编辑 /etc/sudoers 文件的专用命令,确保配置安全。sudo 允许普通用户以 root 权限执行命令,避免直接使用 root 账号,提高系统安全性。
基础网络操作命令
网络操作是 Linux 系统与外部交互的基础,掌握这些命令有助于管理网络连接和配置。
telnet 和 ssh 是远程登录的常用工具,前者不加密,后者安全。scp 用于安全地复制文件,基于 SSH 协议,适合跨主机传输。wget 用于下载文件,支持断点续传和后台下载。
ping 可以测试网络连通性,常用于排查网络故障。route 用于查看和设置路由表,适合网络配置调试。ifconfig 和 ip(更现代的替代)用于查看和配置网络接口信息,支持 IP 地址、子网掩码、网关等参数设置。
ifup 和 ifdown 用于启动和关闭网卡,常用于网络故障恢复。netstat 用于查看网络连接状态,支持 TCP、UDP 和路由表信息。ss 是 netstat 的现代替代,速度更快、功能更全面,适合系统监控。
深入网络操作命令
网络调试与安全分析是运维的重要任务,这些命令用于深入网络操作和扫描。
nmap 是一个功能强大的网络扫描工具,能够探测主机、端口和服务,常用于网络渗透测试和安全审计。lsof 用于列出系统中打开的文件,包括网络连接和硬件设备,是排查连接问题的利器。
nslookup 和 dig 都是域名解析工具,dig 更加全面,支持 DNS 查询和解析调试。host 用于分析域名查询,与 dig 功能相似。traceroute 用于查看数据包的传输路径,是网络故障排查的常用工具。
tcpdump 是一个强大的网络数据包分析工具,支持实时抓包和过滤,常用于网络安全分析和调试。nc 是网络连接工具,支持端口扫描、数据传输和调试。
有关磁盘与文件系统的命令
磁盘和文件系统管理是系统运维的核心,这些命令能帮助管理员维护存储设备。
mount 用于挂载文件系统,支持本地和远程存储。umount 用于卸载文件系统,在挂载后操作时非常关键。fsck 用于检查和修复文件系统,常用于系统启动时的磁盘检测。
parted 用于磁盘分区,支持 GPT 分区方式,适用于大容量磁盘。mkfs 用于创建文件系统,支持多种格式如 ext4、vfat 等。partprobe 用于更新内核分区表信息,在磁盘更改后确保系统识别新分区。
e2fsck 是专门用于检查 ext 文件系统的工具,比 fsck 更加精确。mkswap 和 swapon 用于创建和启用交换分区,提升系统内存管理能力。sync 用于将内存缓冲区的数据写入磁盘,确保数据一致性。
resize2fs 用于调整 ext 文件系统的大小,适合扩容或缩减磁盘空间。这些命令是系统管理员维护磁盘和文件系统的重要工具。
系统权限及用户授权相关命令
权限管理是 Linux 系统安全性的重要保障,这些命令用于设置和查看权限。
chmod 用于修改文件权限,支持符号模式和数字模式。chown 用于修改文件所有者,适用于权限调整和用户分权。chgrp 用于修改文件所属组,便于权限集中管理。
umask 用于设置文件和目录的默认权限掩码,影响新创建文件的权限设置。whoami 用于显示当前用户身份,是权限检查的重要工具。who 和 w 显示当前登录的用户和他们正在执行的命令,帮助监控系统活动。
last 和 lastlog 用于查看用户登录历史,支持安全审计和故障排查。users 显示当前登录的所有用户,便于系统资源管理。finger 可以查看用户的登录信息,适用于远程管理。
内置命令及其它
内置命令是 shell 提供的基础功能,它们简化了日常操作并提供了强大工具。
echo 用于输出字符串或变量,常用于脚本调试和日志记录。printf 帮助格式化输出,适合日志和信息展示。rpm 用于管理 RPM 包,支持安装、升级、删除等操作。
yum 是基于 RPM 的包管理工具,支持自动依赖解析和安装,是 Red Hat 系发行版的标配。watch 用于周期性执行命令,适合监控系统状态。alias 和 unalias 用于设置和删除命令别名,提升操作效率并防止误操作。
export 和 unset 用于设置和删除环境变量,对脚本运行和系统配置至关重要。type 用于判断命令是内部命令还是外部可执行文件,是调试命令路径的必备工具。bc 是一个任意精度计算器,适合数学计算与脚本中数值处理。
系统管理与性能监视命令
系统性能监控和管理是 Linux 运维中不可或缺的一部分,这些命令能帮助管理员识别系统瓶颈和优化性能。
chkconfig 用于管理服务的启动项,适合 Red Hat 系系统。vmstat 可以显示虚拟内存状态,包括进程、内存、I/O 等信息。mpstat 用于查看 CPU 使用情况,支持多核 CPU 分析。
iostat 显示磁盘 I/O 统计,适合评估存储性能。sar 是一个全面的系统性能分析工具,支持多种维度的监控和报表生成。ipcs 和 ipcrm 用于查看和删除进程间通信资源,对系统调试和资源管理有帮助。
strace 和 ltrace 用于跟踪进程与内核、库函数的交互,是调试程序行为的神器。这些命令帮助系统管理员和开发者全面掌控系统的运行状态和性能瓶颈。
关机/重启/注销和查看系统信息的命令
系统管理命令包括关机、重启和注销,这些操作通常由管理员执行。
shutdown 可用于关机或重启系统,支持发送消息给用户。halt 用于关闭系统,适用于单机或特定场景。poweroff 确保系统完全关闭并切断电源,适合物理设备管理。
logout 和 exit 用于退出当前 Shell 会话,Ctrl + d 是快捷方式。这些命令在进行系统维护和安全操作时非常关键。
进程管理相关命令
进程管理是 Linux 系统的核心操作之一,这些命令用于监控和控制进程。
bg 将挂起的进程转为后台运行,适合长时间运行任务。fg 将后台进程转为前台运行,便于实时观察输出。jobs 用于查看后台任务列表,对调试脚本非常有用。
kill 用于终止进程,支持信号参数。killall 和 pkill 可用于终止指定名称的进程,避免手动查找进程 ID。这些命令是系统管理和调试的重要工具。
总结
Linux 命令行是现代系统管理与开发的核心工具,掌握 150 个常用命令 是提升效率和系统稳定性的关键。从文件管理到进程监控,每条命令都有其独特用途和最佳实践。通过合理使用这些命令,开发者和运维人员可以更高效地完成任务,同时减少人为错误和系统风险。
Linux 运维和开发不仅仅是对命令的熟悉,更需要对系统原理的理解。通过这些命令的实践,能够帮助读者建立扎实的系统运维基础,为未来的技术挑战做好准备。
关键字列表:
Linux, 运维, 命令, 文件管理, Shell脚本, 系统编程, 进程管理, Docker, 监控工具, 日志分析, 权限管理, 网络操作, 系统信息, 压缩解压, 磁盘管理, 环境变量, 系统性能, 服务管理, 用户管理, 高效运维, 脚本调试, 安全性, 分页查看, 数据处理, 路由表, 性能分析, 系统监控, 开发者技能, 专业运维