Linux系统操作宝典:常用命令全解析(超全版)

Linux常用命令大全(非常全面):开发者必备系统操作指南

一、文件与目录管理命令

1.1 基础操作类

ls命令:文件列表展示的核心工具,支持多种参数组合。常用参数包括-l(长格式显示权限/所有者/大小等信息)、-a(显示隐藏文件)、-h(人类可读文件大小)。例如ls -lah /etc可查看系统配置目录的详细信息。

cd命令:目录切换的快捷方式,支持相对路径与绝对路径。特殊路径符号..(上级目录)、~(用户家目录)、-(上次所在目录)可提升操作效率。例如cd ~/projects快速进入用户项目目录。

pwd命令:显示当前工作目录的绝对路径,在脚本调试中尤为重要。结合$(pwd)可实现路径变量的动态获取。

1.2 文件操作类

cp命令:文件复制工具,支持递归复制目录(-r参数)。高级用法包括保留文件属性(-p)、仅复制更新文件(-u)。例如cp -rp /backup/* /restore/可完整备份目录结构。

mv命令:兼具文件移动与重命名功能。跨设备移动时建议配合-v参数显示操作详情,避免数据传输异常。

rm命令:需谨慎使用的删除工具,-r参数递归删除目录,-f强制删除无提示。安全建议:使用rm -i交互式删除或通过alias rm='rm -i'设置别名。

touch命令:创建空文件或更新文件时间戳。在自动化脚本中常用于检查文件是否存在,例如touch /tmp/lockfile创建进程锁文件。

1.3 目录操作类

mkdir命令:创建目录,-p参数可自动创建父目录。例如mkdir -p /var/log/nginx/{access,error}一次性创建多级目录结构。

rmdir命令:仅删除空目录,安全但功能有限。实际开发中更常用rm -r删除非空目录。

find命令:强大的文件搜索工具,支持按名称(-name)、类型(-type)、时间(-mtime)等条件筛选。例如find /home -name "*.log" -mtime +7 -delete可自动清理7天前的日志文件。

二、系统信息查看命令

2.1 硬件信息类

lscpu命令:显示CPU架构信息,包括核心数、线程数、缓存大小等关键参数。在性能优化时可用于确认CPU资源。

free命令:内存使用监控工具,-h参数显示易读单位。结合watch -n 1 free -h可实时监控内存变化。

df命令:磁盘空间使用情况报告,-h参数优化显示。生产环境中常用df -i查看inode使用情况,预防因文件数量过多导致的磁盘问题。

2.2 进程管理类

ps命令:进程状态查看工具,-ef参数显示完整进程信息。与grep结合可精准定位进程,例如ps -ef | grep nginx查找nginx相关进程。

top命令:动态系统监控工具,按M按内存排序、P按CPU排序。替代工具htop提供更友好的交互界面和颜色标识。

kill命令:终止进程的标准方式,-9参数强制终止。安全建议:先尝试-15(SIGTERM)正常终止,无效时再使用-9(SIGKILL)。

三、网络相关命令

3.1 连接测试类

ping命令:网络连通性测试工具,-c参数指定发送包数量。生产环境建议限制包数量(如ping -c 4 example.com),避免持续发送影响网络。

netstat命令:网络连接状态查看,-tulnp参数显示TCP/UDP监听端口及对应进程。替代工具ss(Socket Statistics)性能更优。

3.2 数据传输类

scp命令:安全文件复制工具,基于SSH协议。例如scp /local/file.txt user@remote:/path/实现本地到远程的文件传输。

rsync命令:增量同步工具,支持本地和远程同步。-a参数保留文件属性,--delete参数删除目标端多余文件。例如rsync -avz --delete /source/ user@remote:/backup/实现精确备份。

四、权限管理命令

4.1 基础权限类

chmod命令:修改文件权限,支持数字模式(如755)和符号模式(如u+x)。生产环境建议使用符号模式精确控制权限。

chown命令:修改文件所有者,-R参数递归修改目录权限。例如chown -R nginx:nginx /var/www/将网站目录所有权赋予nginx用户。

4.2 高级权限类

sudo命令:以超级用户权限执行命令,-i参数切换至root用户。安全建议:通过/etc/sudoers文件精确配置用户权限,避免滥用ALL权限。

setfacl命令:设置细粒度访问控制列表(ACL),突破传统权限系统的限制。例如setfacl -m u:developer:rwx /project/为特定用户赋予目录读写执行权限。

五、文本处理命令

5.1 查看类

cat命令:显示文件内容,-n参数显示行号。大文件查看建议使用lessmore分页工具。

head/tail命令:分别显示文件开头和结尾内容。-n参数指定行数,-f参数实时追踪文件更新(如日志监控)。

5.2 过滤类

grep命令:文本搜索工具,-i忽略大小写,-r递归搜索目录。高级用法包括正则表达式匹配(如grep -E "[0-9]{3}-[0-9]{4}"搜索电话号码格式)。

awk命令:强大的文本分析工具,支持字段分割和条件处理。例如awk '{print $1,$3}' logfile提取日志文件的第一和第三列。

sed命令:流编辑器,支持文本替换和删除。例如sed -i 's/old/new/g' file.txt全局替换文件内容。

六、压缩与归档命令

6.1 压缩类

gzip/gunzip命令:高效压缩工具,生成.gz后缀文件。压缩比适中,保留原始文件需使用-c参数重定向输出。

bzip2/bunzip2命令:更高压缩比的工具,生成.bz2后缀文件。压缩速度较慢,适合存储归档。

6.2 归档类

tar命令:归档工具,-c创建归档,-x解压归档,-z调用gzip压缩,-j调用bzip2压缩。例如tar -czvf archive.tar.gz /data/创建gzip压缩的归档文件。

zip/unzip命令:跨平台兼容的压缩工具,支持密码保护(-e参数)。例如zip -r -e secret.zip /sensitive/创建加密的递归压缩包。

七、系统服务管理命令

7.1 SysVinit系统

service命令:管理SysVinit服务,例如service nginx restart重启web服务。现代系统建议使用systemctl替代。

7.2 systemd系统

systemctl命令:现代Linux系统的服务管理工具,支持start/stop/status等子命令。例如systemctl enable nginx设置服务开机自启。

journalctl命令:查看systemd日志,-u参数指定服务单元,-f参数实时追踪日志。例如journalctl -u nginx -f监控nginx服务日志。

八、开发相关命令

8.1 包管理类

apt命令(Debian系):apt install安装软件包,apt search搜索软件,apt remove卸载软件。建议定期执行apt update && apt upgrade更新系统。

yum/dnf命令(RHEL系):yum install安装软件,yum groupinstall安装软件组。Fedora系统使用更快的dnf替代yum

8.2 版本控制类

git命令:分布式版本控制工具,clone克隆仓库,commit提交变更,push推送代码。生产环境建议配置git config --global core.editor vim指定编辑器。

svn命令:集中式版本控制工具,checkout检出代码,update同步更新。在企业遗留系统中仍有应用。

九、安全相关命令

9.1 防火墙类

iptables命令:Netfilter防火墙规则管理工具,-A添加规则,-D删除规则。例如iptables -A INPUT -p tcp --dport 22 -j ACCEPT允许SSH连接。

firewalld命令(RHEL7+):动态防火墙管理工具,支持区域(zone)概念。例如firewall-cmd --add-service=http --permanent永久开放HTTP服务。

9.2 审计类

last命令:查看用户登录历史,结合-n参数限制显示行数。例如last -n 10显示最近10次登录记录。

auditd服务:Linux审计框架,可记录文件访问、系统调用等事件。通过/etc/audit/audit.rules文件配置审计规则。

十、实用技巧与建议

  1. 命令组合:善用管道(|)和重定向(>/>>)构建高效工作流。例如cat access.log | awk '{print $1}' | sort | uniq -c统计访问IP频率。

  2. 历史命令:通过history命令查看执行记录,!n快速重复第n条命令。建议设置HISTSIZE=10000扩大历史记录容量。

  3. 别名设置:在~/.bashrc中定义常用命令别名,例如alias ll='ls -lah'简化操作。

  4. 手册查阅:遇到不熟悉的命令时,使用man 命令名查看详细手册。例如man ssh了解SSH配置选项。

  5. 安全实践:定期执行sudo apt update && sudo apt upgrade -y更新系统,使用fail2ban防止暴力破解,配置SSH密钥认证替代密码登录。

本指南系统梳理了Linux系统操作的核心命令,覆盖从基础文件管理到高级安全配置的全场景。开发者可通过持续实践掌握这些工具,结合具体业务需求构建高效的工作流程。建议结合官方文档(如man手册)深入学习参数细节,在实际项目中逐步提升系统管理能力。