☰
Linux命令行入门:20个必学基础命令详解
2026/10/24 8:57:42 网站建设 项目流程

1. Linux基础命令入门:从零开始掌握终端操作

刚接触Linux时,命令行界面往往让人望而生畏。但作为Linux系统的核心交互方式,命令行操作是每个使用者必须掌握的技能。与图形界面相比,命令行更加高效、灵活,能够完成许多图形界面无法实现的操作。特别是在服务器管理、自动化脚本编写等场景下,命令行几乎是唯一的选择。

我刚开始学习Linux时,也曾被各种命令和参数搞得晕头转向。但经过一段时间的实践后发现,只要掌握了20%的核心命令,就能应对80%的日常需求。本章将重点介绍这些最基础、最常用的Linux命令,帮助初学者快速上手。

提示:学习Linux命令时,不要死记硬背。理解每个命令的设计逻辑和常用参数,在实践中不断尝试才是掌握的关键。

2. 文件与目录操作命令

2.1 导航与查看:pwd、ls、cd

pwd(Print Working Directory)命令可能是最简单的Linux命令,但它非常实用。它能显示当前所在目录的完整路径,特别是在多级目录结构中操作时,能帮助你确认自己的位置。

$ pwd /home/username/projects

ls命令用于列出目录内容,是使用频率最高的命令之一。它的常用参数包括:

  • -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 .bashrc

cd(Change Directory)用于切换目录。几个特殊符号需要记住:

  • ..:上级目录
  • ~:用户主目录
  • -:前一个工作目录
$ cd /var/log # 切换到绝对路径 $ cd ../.. # 向上移动两级目录 $ cd ~/Downloads # 切换到主目录下的Downloads目录

2.2 文件操作:cp、mv、rm

cp命令用于复制文件或目录。复制目录时需要加上-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、tail

cat命令是最简单的文件查看工具,适合查看小文件。它会一次性输出文件全部内容。

$ cat /etc/hosts 127.0.0.1 localhost

less命令更适合查看大文件,支持上下翻页、搜索等功能。进入less后,常用操作有:

  • 空格:向下翻页
  • b:向上翻页
  • /pattern:搜索
  • q:退出
$ less /var/log/syslog

head和tail分别显示文件开头和结尾部分,默认显示10行。-n参数可以指定行数。

$ head -n 20 access.log # 显示前20行 $ tail -f error.log # 实时监控日志文件变化

3. 系统信息查询命令

3.1 系统状态:uname、df、free、top

uname命令显示系统基本信息,常用参数:

  • -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/Linux

df命令显示磁盘空间使用情况,-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 2047

top命令是Linux下最常用的性能监控工具,可以实时显示系统资源占用情况。运行后按q退出,按M按内存排序,按P按CPU排序。

3.2 进程管理:ps、kill

ps命令用于查看进程状态。常用组合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/init

kill命令用于终止进程。先用ps找到进程ID,然后用kill终止。

$ kill 1234 # 正常终止进程 $ kill -9 1234 # 强制终止进程

技巧:使用pgrep和pkill可以通过进程名查找和终止进程,比ps+kill更方便。

4. 网络相关命令

4.1 网络配置:ifconfig、ip、ping

ifconfig是传统的网络接口配置工具,虽然逐渐被ip命令取代,但仍然广泛使用。

$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255

ip命令是更现代的网络配置工具,功能更强大。

$ 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_seq=1 ttl=115 time=12.3 ms

4.2 网络连接:netstat、ss、telnet

netstat命令显示网络连接、路由表、接口统计等信息。常用参数:

  • -t:TCP连接
  • -u:UDP连接
  • -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/sshd

ss命令是netstat的现代替代品,语法类似但速度更快。

$ ss -tulnp

telnet命令可以测试TCP端口连通性(虽然telnet协议本身不安全,但作为测试工具很有用)。

$ telnet example.com 80 Trying 93.184.216.34... Connected to example.com. Escape character is '^]'.

5. 用户与权限管理

5.1 用户管理:whoami、id、su、sudo

whoami命令简单显示当前用户名。

$ whoami user1

id命令显示更详细的用户和组信息。

$ id uid=1000(user1) gid=1000(user1) groups=1000(user1),4(adm),24(cdrom),27(sudo)

su命令切换用户,-参数会加载目标用户的环境变量。

$ su - root # 切换到root用户

sudo命令以超级用户权限执行命令,是更安全的替代root登录的方式。

$ sudo apt update # 以root权限更新软件包列表

5.2 文件权限:chmod、chown

Linux文件权限分为读(r)、写(w)、执行(x)三种,分别对应所有者(u)、所属组(g)和其他用户(o)。

chmod命令修改文件权限,可以用数字或符号表示法。

$ chmod 755 script.sh # rwxr-xr-x $ chmod u+x script.sh # 给所有者添加执行权限

chown命令修改文件所有者和所属组。

$ chown user1:group1 file.txt # 修改所有者和组 $ chown -R user1 directory/ # 递归修改目录下所有文件

6. 查找与帮助命令

6.1 文件查找:find、locate

find命令功能强大但语法复杂,基本格式为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.conf

6.2 命令帮助:man、--help、whatis

man命令是最全面的命令手册,几乎每个命令都有对应的man page。

$ man ls # 查看ls命令的手册

大多数命令都支持--help参数,提供简明的使用说明。

$ ls --help

whatis命令显示命令的简要说明。

$ whatis ls ls (1) - list directory contents

7. 文本处理命令

7.1 文本搜索:grep

grep是强大的文本搜索工具,支持正则表达式。

$ 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、sed

awk是一种强大的文本处理语言,适合处理结构化文本。

$ 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、xz

gzip是最常用的压缩工具,压缩后的文件扩展名为.gz。

$ gzip file.txt # 压缩文件,生成file.txt.gz $ gunzip file.txt.gz # 解压文件

bzip2和xz提供更高的压缩率,但速度更慢。

$ bzip2 file.txt # 生成file.txt.bz2 $ xz file.txt # 生成file.txt.xz

8.2 归档打包:tar

tar命令可以将多个文件打包成一个文件,常与压缩命令结合使用。

$ 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 ll='ls -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强制终止进程
  • 检查系统资源使用情况top

10. 学习资源与进阶建议

掌握这些基础命令后,你已经可以完成大多数日常Linux操作。但要真正精通Linux命令行,还需要不断实践和深入学习。以下是一些建议:

  1. 每天使用命令行:即使有图形界面,也尽量使用命令行完成日常任务。

  2. 阅读man page:遇到新命令时,先读它的man page,了解所有选项和用法。

  3. 学习Shell脚本:将常用命令组合成脚本,可以大大提高工作效率。

  4. 探索更多命令:如curl、wget、ssh、scp、rsync等网络工具;cut、sort、uniq等文本处理工具。

  5. 理解Linux哲学:一个工具只做好一件事,通过组合简单工具完成复杂任务。

  6. 参与开源项目:在实际项目中应用和提升Linux技能。

  7. 搭建自己的Linux环境:可以在旧电脑上安装Linux,或使用虚拟机、云服务器。

学习Linux是一个渐进的过程,不要期望一夜之间掌握所有内容。从这些基础命令开始,在实际使用中不断积累经验,你会逐渐发现Linux命令行的强大与优雅。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询