Linux命令从入门到精通:20个核心命令详解

发布时间:2026/10/26 10:43:11
Linux命令从入门到精通:20个核心命令详解

1. Linux命令概述:从入门到精通的必备工具集

第一次接触Linux终端时,那个闪烁的光标和黑底白字的界面让我感到既神秘又恐惧。但当我输入第一个ls命令并看到目录内容整齐列出时,那种掌控感至今难忘。Linux命令是操作系统的神经末梢,通过它们可以直接与内核对话,完成从文件管理到系统监控的所有任务。

与图形界面相比,命令行操作具有不可替代的优势:它消耗资源极少(在树莓派等设备上尤为明显),可以编写脚本实现自动化(我每周用cron自动备份重要数据),还能通过SSH远程管理服务器(去年台风天我就是在家里用终端修复了机房的服务器)。更重要的是,几乎所有Linux发行版都遵循相同的命令规范,一旦掌握就能通用。

根据我的经验,Linux命令学习可以分为三个阶段:

  • 基础阶段:掌握20个左右高频命令(如ls、cd、grep等),能完成基本文件操作
  • 进阶阶段:理解管道和重定向,组合使用命令处理复杂任务
  • 专家阶段:编写Shell脚本,开发自定义命令和自动化流程

提示:不要试图一次性记住所有命令参数,实际使用中90%的场景只需要掌握每个命令的2-3个常用选项即可。我的建议是随身携带命令速查表(后文会提供),遇到具体需求时再查阅细节。

2. 文件操作命令:日常工作的基石

2.1 目录导航与查看

ls命令是我使用频率最高的命令之一,经过多年使用,我总结出几个实用技巧:

ls -lh # 人性化显示文件大小(KB/MB/GB) ls -lt # 按修改时间排序,最新文件在前 ls -d */ # 只显示子目录

cd命令的快捷操作能大幅提升效率:

cd - # 返回上一个目录(调试时特别有用) cd ~ # 回到用户主目录 cd ../.. # 向上移动两级目录

2.2 文件操作四件套

  1. cp:复制文件时,我强烈建议始终使用-i交互模式避免覆盖重要文件

    cp -i source.txt dest/ # 覆盖前询问 cp -r dir1 dir2 # 递归复制目录
  2. mv:除了移动文件,这也是最常用的重命名命令

    mv oldname.txt newname.txt
  3. rm:这个命令需要格外小心,我的工作电脑就配置了alias rm='rm -i'

    rm -rf dir/ # 强制删除目录及其内容(慎用!)
  4. touch:创建空文件或更新文件时间戳

    touch newfile.txt

血泪教训:曾经在服务器上误输入rm -rf / home/backup(/后面多打了个空格),差点酿成大祸。现在我的~/.bashrc里永久添加了alias rm='rm -I --preserve-root'。

2.3 文件查看与搜索

find命令功能强大但语法复杂,这些是我最常用的组合:

find . -name "*.log" -mtime +30 -delete # 删除30天前的日志文件 find /var -size +10M -exec ls -lh {} \; # 查找大于10MB的文件

grep是文本搜索的瑞士军刀,配合正则表达式更加强大:

grep -r "error" /var/log/ # 递归搜索目录 grep -n --color=auto "TODO" *.py # 显示行号并高亮

3. 系统管理命令:掌控你的Linux环境

3.1 进程管理三板斧

  1. ps:查看进程信息

    ps aux | grep nginx # 查看nginx相关进程 ps -eo pid,ppid,cmd,%mem --sort=-%mem | head # 查看内存占用前10的进程
  2. top/htop:实时监控系统资源

    top -u www-data # 只监控指定用户的进程
  3. kill:终止进程

    kill -9 1234 # 强制终止PID为1234的进程 pkill -f "python script.py" # 根据名称终止进程

3.2 网络配置与诊断

ifconfig虽然经典但正在被ip命令取代,新系统建议使用:

ip addr show # 显示网络接口信息 ip route # 查看路由表

网络诊断组合拳:

ping -c 4 example.com # 发送4个测试包 traceroute example.com # 追踪网络路径 netstat -tulnp | grep 80 # 检查80端口占用情况 ss -plnt # 比netstat更现代的替代方案

3.3 包管理命令对比

不同发行版的包管理命令差异很大,这是我整理的对照表:

操作Debian/Ubuntu (apt)RHEL/CentOS (yum/dnf)Arch (pacman)
更新索引sudo apt updatesudo yum check-updatesudo pacman -Sy
安装软件sudo apt install nginxsudo yum install nginxsudo pacman -S nginx
删除软件sudo apt remove nginxsudo yum remove nginxsudo pacman -R nginx
搜索软件apt search keywordyum search keywordpacman -Ss keyword

4. 高效工作流:组合命令与脚本基础

4.1 管道与重定向魔法

管道(|)是我最爱的Linux特性之一,它能将多个命令串联起来:

cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -nr

这条命令链可以统计日志中出现404错误的URL及其出现次数,按频率排序。

重定向技巧:

command > output.txt 2>&1 # 将标准输出和错误都重定向到文件 command >> log.txt 2>> error.log # 追加模式,输出和错误分开保存

4.2 Shell脚本入门

一个实用的备份脚本示例:

#!/bin/bash # 简单备份脚本 BACKUP_DIR="/backup" DATE=$(date +%Y%m%d) TARGET_DIR="$HOME/documents" if [ ! -d "$BACKUP_DIR" ]; then mkdir -p "$BACKUP_DIR" fi tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$TARGET_DIR" && \ echo "Backup completed successfully" || \ echo "Backup failed" >&2

给脚本添加执行权限:

chmod +x backup.sh

4.3 实用命令组合示例

  1. 批量重命名文件:

    # 将所有.jpg文件前缀改为vacation_ for file in *.jpg; do mv "$file" "vacation_$file"; done
  2. 监控日志变化:

    tail -f /var/log/nginx/access.log | grep --line-buffered "500"
  3. 快速创建测试文件:

    dd if=/dev/zero of=testfile bs=1M count=100 # 创建100MB的测试文件

5. 安全与权限管理

5.1 用户与组管理

创建用户并设置密码:

sudo useradd -m -s /bin/bash newuser sudo passwd newuser

将用户加入sudo组:

sudo usermod -aG sudo newuser

5.2 文件权限详解

理解chmod的数字表示法:

7 = 4(r) + 2(w) + 1(x) 6 = 4(r) + 2(w) 5 = 4(r) + 1(x)

常用权限设置:

chmod 600 private.key # 只有所有者可读写 chmod 755 script.sh # 所有者可读写执行,其他人可读执行 chmod 777 /tmp/test # 所有人可读写执行(不安全,仅示例)

5.3 SSH安全配置

编辑/etc/ssh/sshd_config提高安全性:

PermitRootLogin no PasswordAuthentication no # 强制使用密钥登录 AllowUsers yourusername

重启SSH服务:

sudo systemctl restart sshd

6. 性能监控与故障排查

6.1 实时监控工具

vmstat示例(每2秒刷新一次):

vmstat 2

iostat查看磁盘I/O:

iostat -dx 2

6.2 日志分析技巧

查看最近系统日志:

journalctl -xe --no-pager | tail -20

分析高负载原因:

uptime; free -h; df -h; top -bn1 | head -10

6.3 内存泄漏排查

查看内存使用情况:

free -h cat /proc/meminfo

追踪进程内存变化:

valgrind --leak-check=full ./your_program

7. 命令速查表与学习资源

7.1 常用命令速查表

类别命令常用选项说明
文件ls-l, -h, -a列出目录内容
文件cp-r, -i复制文件/目录
文本grep-r, -n, -i文本搜索
系统psaux查看进程
网络netstat-tulnp网络连接
权限chmod755, 644修改权限

7.2 推荐学习路径

  1. 交互式学习:

    • man命令查看手册(如man ls)
    • tldr工具提供简化版命令示例
  2. 在线资源:

    • Linux Documentation Project (tldp.org)
    • Arch Linux Wiki (wiki.archlinux.org)
  3. 实践建议:

    • 每天学习1个新命令并实际应用
    • 建立自己的命令笔记库
    • 尝试用命令行完成日常所有操作

我个人的学习心得是:Linux命令就像乐高积木,单个命令功能有限,但组合起来就能构建复杂系统。刚开始可能会觉得记忆负担重,但坚持一个月后,你会发现自己在终端中的效率已经远超图形界面。最重要的是保持实践——我至今仍保持着每周至少发现一个新命令或新用法的习惯。