1. Linux基础命令入门从零开始掌握终端操作刚接触Linux时命令行界面往往让人望而生畏。但作为Linux系统的核心交互方式命令行操作是每个使用者必须掌握的技能。与图形界面相比命令行更加高效、灵活能够完成许多图形界面无法实现的操作。特别是在服务器管理、自动化脚本编写等场景下命令行几乎是唯一的选择。我刚开始学习Linux时也曾被各种命令和参数搞得晕头转向。但经过一段时间的实践后发现只要掌握了20%的核心命令就能应对80%的日常需求。本章将重点介绍这些最基础、最常用的Linux命令帮助初学者快速上手。提示学习Linux命令时不要死记硬背。理解每个命令的设计逻辑和常用参数在实践中不断尝试才是掌握的关键。2. 文件与目录操作命令2.1 导航与查看pwd、ls、cdpwdPrint Working Directory命令可能是最简单的Linux命令但它非常实用。它能显示当前所在目录的完整路径特别是在多级目录结构中操作时能帮助你确认自己的位置。$ pwd /home/username/projectsls命令用于列出目录内容是使用频率最高的命令之一。它的常用参数包括-l以长格式显示包含文件权限、所有者、大小等信息-a显示所有文件包括隐藏文件以.开头的文件-h以人类可读的格式显示文件大小如K、M、G$ ls -lah total 24K drwxr-xr-x 4 user user 4.0K Jun 10 10:30 . drwxr-xr-x 5 user user 4.0K Jun 8 14:15 .. -rw-r--r-- 1 user user 220 Jun 8 14:15 .bash_logout -rw-r--r-- 1 user user 3.7K Jun 8 14:15 .bashrccdChange Directory用于切换目录。几个特殊符号需要记住..上级目录~用户主目录-前一个工作目录$ cd /var/log # 切换到绝对路径 $ cd ../.. # 向上移动两级目录 $ cd ~/Downloads # 切换到主目录下的Downloads目录2.2 文件操作cp、mv、rmcp命令用于复制文件或目录。复制目录时需要加上-r参数递归复制。-i参数可以在覆盖前提示确认避免误操作。$ cp file1.txt file2.txt # 复制文件 $ cp -r dir1 dir2 # 复制目录mv命令有两个主要功能移动文件和重命名文件。它的参数与cp类似。$ mv oldname.txt newname.txt # 重命名 $ mv file.txt /tmp/ # 移动文件rm命令用于删除文件或目录是一个非常危险的命令。使用时要特别注意-r递归删除目录-f强制删除不提示永远不要执行rm -rf /这样的命令它会删除系统所有文件$ rm file.txt # 删除文件 $ rm -r directory/ # 删除目录警告使用rm命令时要格外小心特别是在root权限下。建议先使用ls确认要删除的文件再执行rm操作。2.3 文件查看cat、less、head、tailcat命令是最简单的文件查看工具适合查看小文件。它会一次性输出文件全部内容。$ cat /etc/hosts 127.0.0.1 localhostless命令更适合查看大文件支持上下翻页、搜索等功能。进入less后常用操作有空格向下翻页b向上翻页/pattern搜索q退出$ less /var/log/sysloghead和tail分别显示文件开头和结尾部分默认显示10行。-n参数可以指定行数。$ head -n 20 access.log # 显示前20行 $ tail -f error.log # 实时监控日志文件变化3. 系统信息查询命令3.1 系统状态uname、df、free、topuname命令显示系统基本信息常用参数-a显示所有信息-r显示内核版本$ uname -a Linux myserver 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linuxdf命令显示磁盘空间使用情况-h参数以易读格式显示。$ df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 798M 1.7M 796M 1% /run /dev/nvme0n1p2 457G 78G 356G 18% /free命令显示内存使用情况-m参数以MB为单位显示。$ free -m total used free shared buff/cache available Mem: 7982 1523 4098 89 2360 6113 Swap: 2047 0 2047top命令是Linux下最常用的性能监控工具可以实时显示系统资源占用情况。运行后按q退出按M按内存排序按P按CPU排序。3.2 进程管理ps、killps命令用于查看进程状态。常用组合ps aux可以显示所有用户的所有进程。$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169316 13004 ? Ss Jun10 0:09 /sbin/initkill命令用于终止进程。先用ps找到进程ID然后用kill终止。$ kill 1234 # 正常终止进程 $ kill -9 1234 # 强制终止进程技巧使用pgrep和pkill可以通过进程名查找和终止进程比pskill更方便。4. 网络相关命令4.1 网络配置ifconfig、ip、pingifconfig是传统的网络接口配置工具虽然逐渐被ip命令取代但仍然广泛使用。$ ifconfig eth0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255ip命令是更现代的网络配置工具功能更强大。$ ip addr show # 显示IP地址 $ ip route # 显示路由表ping命令用于测试网络连通性是排查网络问题的第一工具。$ ping google.com PING google.com (172.217.164.110) 56(84) bytes of data. 64 bytes from fra16s48-in-f14.1e100.net (172.217.164.110): icmp_seq1 ttl115 time12.3 ms4.2 网络连接netstat、ss、telnetnetstat命令显示网络连接、路由表、接口统计等信息。常用参数-tTCP连接-uUDP连接-l监听中的连接-p显示进程信息-n显示数字地址$ netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshdss命令是netstat的现代替代品语法类似但速度更快。$ ss -tulnptelnet命令可以测试TCP端口连通性虽然telnet协议本身不安全但作为测试工具很有用。$ telnet example.com 80 Trying 93.184.216.34... Connected to example.com. Escape character is ^].5. 用户与权限管理5.1 用户管理whoami、id、su、sudowhoami命令简单显示当前用户名。$ whoami user1id命令显示更详细的用户和组信息。$ id uid1000(user1) gid1000(user1) groups1000(user1),4(adm),24(cdrom),27(sudo)su命令切换用户-参数会加载目标用户的环境变量。$ su - root # 切换到root用户sudo命令以超级用户权限执行命令是更安全的替代root登录的方式。$ sudo apt update # 以root权限更新软件包列表5.2 文件权限chmod、chownLinux文件权限分为读(r)、写(w)、执行(x)三种分别对应所有者(u)、所属组(g)和其他用户(o)。chmod命令修改文件权限可以用数字或符号表示法。$ chmod 755 script.sh # rwxr-xr-x $ chmod ux script.sh # 给所有者添加执行权限chown命令修改文件所有者和所属组。$ chown user1:group1 file.txt # 修改所有者和组 $ chown -R user1 directory/ # 递归修改目录下所有文件6. 查找与帮助命令6.1 文件查找find、locatefind命令功能强大但语法复杂基本格式为find [路径] [条件] [动作]。$ find /home -name *.txt # 查找所有txt文件 $ find /var/log -size 10M # 查找大于10M的文件 $ find . -mtime -7 # 查找7天内修改过的文件locate命令基于数据库查找速度更快但结果可能不是最新的。$ locate nginx.conf /etc/nginx/nginx.conf /usr/share/nginx/conf/nginx.conf6.2 命令帮助man、--help、whatisman命令是最全面的命令手册几乎每个命令都有对应的man page。$ man ls # 查看ls命令的手册大多数命令都支持--help参数提供简明的使用说明。$ ls --helpwhatis命令显示命令的简要说明。$ whatis ls ls (1) - list directory contents7. 文本处理命令7.1 文本搜索grepgrep是强大的文本搜索工具支持正则表达式。$ grep error /var/log/syslog # 搜索包含error的行 $ grep -r function /path/to/code/ # 递归搜索目录 $ grep -i warning file.log # 忽略大小写 $ grep -v debug file.log # 反向匹配显示不包含debug的行7.2 文本处理awk、sedawk是一种强大的文本处理语言适合处理结构化文本。$ awk {print $1} access.log # 打印每行第一个字段 $ awk -F: {print $1} /etc/passwd # 以:为分隔符sed是流编辑器适合对文本进行批量替换。$ sed s/foo/bar/g file.txt # 将foo替换为bar $ sed -i.bak s/old/new/g file.txt # 直接修改文件并创建备份8. 压缩与归档命令8.1 压缩解压gzip、bzip2、xzgzip是最常用的压缩工具压缩后的文件扩展名为.gz。$ gzip file.txt # 压缩文件生成file.txt.gz $ gunzip file.txt.gz # 解压文件bzip2和xz提供更高的压缩率但速度更慢。$ bzip2 file.txt # 生成file.txt.bz2 $ xz file.txt # 生成file.txt.xz8.2 归档打包tartar命令可以将多个文件打包成一个文件常与压缩命令结合使用。$ tar -cvf archive.tar dir/ # 创建归档文件 $ tar -xvf archive.tar # 解压归档文件 $ tar -czvf archive.tar.gz dir/ # 创建并用gzip压缩 $ tar -xzvf archive.tar.gz # 解压gzip压缩的归档9. 实用技巧与常见问题9.1 命令组合与重定向Linux命令的强大之处在于可以组合使用。管道符|可以将一个命令的输出作为另一个命令的输入。$ ps aux | grep nginx # 查找nginx进程 $ cat access.log | grep 404 | wc -l # 统计404错误次数重定向可以控制命令的输入输出覆盖输出到文件追加输出到文件从文件读取输入$ ls files.txt # 将ls结果保存到文件 $ echo line log.txt # 追加内容到文件 $ sort data.txt # 从文件读取输入9.2 历史命令与别名history命令显示命令历史可以用!n执行第n条历史命令。$ history | tail -n 10 # 查看最近10条命令 $ !100 # 执行历史记录中第100条命令alias可以创建命令别名简化常用命令。$ alias llls -lah # 创建别名 $ unalias ll # 删除别名要使别名永久生效可以添加到~/.bashrc文件中。9.3 常见问题排查问题1命令找不到检查命令是否拼写错误用which command查看命令路径检查$PATH环境变量是否包含命令所在目录问题2权限不足使用sudo以root权限执行检查文件权限ls -l必要时用chmod或chown修改权限问题3磁盘空间不足使用df -h查看磁盘使用情况用du -sh *查看当前目录各文件/目录大小清理日志文件或临时文件问题4进程无响应用ps aux | grep process查找进程ID用kill -9 PID强制终止进程检查系统资源使用情况top10. 学习资源与进阶建议掌握这些基础命令后你已经可以完成大多数日常Linux操作。但要真正精通Linux命令行还需要不断实践和深入学习。以下是一些建议每天使用命令行即使有图形界面也尽量使用命令行完成日常任务。阅读man page遇到新命令时先读它的man page了解所有选项和用法。学习Shell脚本将常用命令组合成脚本可以大大提高工作效率。探索更多命令如curl、wget、ssh、scp、rsync等网络工具cut、sort、uniq等文本处理工具。理解Linux哲学一个工具只做好一件事通过组合简单工具完成复杂任务。参与开源项目在实际项目中应用和提升Linux技能。搭建自己的Linux环境可以在旧电脑上安装Linux或使用虚拟机、云服务器。学习Linux是一个渐进的过程不要期望一夜之间掌握所有内容。从这些基础命令开始在实际使用中不断积累经验你会逐渐发现Linux命令行的强大与优雅。
阅读完成 · 觉得有帮助?