Linux命令的基础操作:
Linux 作为服务器和开发环境的主流操作系统,其命令行界面(CLI)是高效管理和操作系统的核心。掌握 Linux 命令的基础操作,是每一位开发者、系统管理员乃至技术爱好者必备的技能。本文将系统性地介绍 Linux 命令行的基本概念、常用命令、操作技巧以及学习路径,帮助你从零开始,逐步构建起使用命令行的信心和能力。
1. 认识 Linux 命令行
1.1 什么是 Shell?
Shell 是用户与 Linux 内核进行交互的接口。它接收用户输入的命令,解释并执行,然后将结果返回给用户。常见的 Shell 有:
- Bash (Bourne Again Shell):Linux 系统默认的 Shell,功能强大,兼容性好。
- Zsh (Z Shell):在 Bash 基础上增强,拥有更强大的自动补全和主题配置,是 macOS Catalina 及以后版本的默认 Shell。
- Fish (Friendly Interactive Shell):以易用性和友好交互为设计目标,语法高亮和智能提示出色。
打开终端(Terminal)应用程序,你就进入了一个 Shell 会话。
1.2 命令提示符
命令提示符通常包含以下信息:
[用户名@主机名 当前目录]$
例如:
alice@ubuntu:~$
alice:当前登录的用户名。ubuntu:主机名。~:表示当前位于用户的家目录(/home/alice)。$:普通用户提示符。如果是#,则表示当前是 root(超级用户)身份。
1.3 命令的基本结构
一条 Linux 命令通常由以下几部分组成:
命令 [选项] [参数]
2. 文件与目录操作
2.1 浏览目录结构
2.2 创建与删除
- mkdir (Make Directory):创建新目录。
- touch:创建空文件或更新文件的时间戳。
- rm (Remove):删除文件或目录。警告:rm -rf 命令极其危险,一旦执行,数据将无法恢复。尤其是在根目录(/)下使用时。
- rmdir:删除空目录。
2.3 复制、移动与重命名
3. 查看与编辑文件内容
3.1 查看文件
cat(Concatenate):连接文件并打印到标准输出。常用于查看短小文件内容。less/more:分页查看文件内容,适合长文件。head:显示文件开头部分(默认10行)。tail:显示文件末尾部分(默认10行)。常用于实时查看日志。
3.2 编辑文件
nano:简单易用的命令行文本编辑器。 常用快捷键:Ctrl+O保存,Ctrl+X退出,Ctrl+W搜索。vim/vi:功能强大的模态编辑器,学习曲线陡峭但效率极高。 基本操作: 按 i 进入插入模式(Insert Mode)开始编辑。按 Esc 键退出插入模式,回到普通模式(Normal Mode)。在普通模式下,输入 :wq 保存并退出,输入 :q! 不保存强制退出。
4. 权限与所有权管理
Linux 是一个多用户系统,文件和目录的权限至关重要。
4.1 理解权限表示
使用 ls -l 查看文件详细信息时,第一列显示权限:
-rwxr-xr-- 1 alice developers 4096 May 28 09:30 script.sh
权限字符串 -rwxr-xr-- 分解如下:
- 第1位:文件类型(
-普通文件,d目录,l符号链接)。 - 第2-4位:文件所有者(user)的权限(
rwx:读、写、执行)。 - 第5-7位:文件所属组(group)的权限(
r-x:读、执行)。 - 第8-10位:其他用户(others)的权限(
r--:只读)。
4.2 修改权限 (chmod)
使用符号模式或数字模式修改权限。
- 符号模式:
- 数字模式(八进制): r (读) = 4w (写) = 2x (执行) = 1
4.3 修改所有者和所属组 (chown, chgrp)
5. 进程管理
5.1 查看进程 (ps, top, htop)
ps(Process Status):查看当前进程快照。top:动态、交互式地查看系统进程和资源占用(按q退出)。htop:top的增强版,界面更友好(可能需要安装)。
5.2 控制进程
&:在命令末尾加上&,让命令在后台运行。jobs:查看当前终端后台运行的作业。fg/bg:将后台作业切换到前台(fg %作业号)或继续在后台运行(bg %作业号)。kill:向进程发送信号以终止它。
6. 网络相关命令
6.1 连接与下载
ping:测试与目标主机的网络连通性。curl:强大的网络数据传输工具,常用于测试 API、下载文件。wget:非交互式网络下载器,适合递归下载和断点续传。
6.2 网络诊断
ifconfig/ip addr:查看和配置网络接口信息(ifconfig较老,推荐使用ip命令)。netstat/ss:查看网络连接、路由表、接口统计等信息(ss是更现代的替代品)。traceroute/mtr:追踪数据包到达目标主机所经过的路由。
7. 系统信息与性能监控
7.1 系统信息
7.2 性能监控
uptime:显示系统运行时间、当前用户数和平均负载。vmstat:报告虚拟内存统计信息、进程、块 IO 等。iostat:报告 CPU 统计信息和设备、分区的输入/输出统计信息。
8. 管道、重定向与命令组合
这是 Linux 命令行强大威力的核心。
8.1 管道 (|)
将一个命令的输出作为另一个命令的输入。
ps aux | grep python # 从所有进程中筛选出包含 “python” 的行 cat log.txt | grep ERROR | wc -l # 统计 log.txt 中 “ERROR” 出现的行数
8.2 重定向
>:将标准输出重定向到文件(覆盖)。>>:将标准输出追加到文件。2>:将标准错误重定向到文件。&>:将标准输出和标准错误都重定向到文件。<:将文件内容作为命令的标准输入。
8.3 命令组合
;:顺序执行多个命令,无论前一个命令是否成功。&&:只有前一个命令成功执行(返回状态码为0),才执行下一个命令。||:只有前一个命令执行失败(返回状态码非0),才执行下一个命令。
9. 查找与搜索
9.1 查找文件 (find)
功能最强大的文件查找工具。
find /home -name "*.txt" # 在 /home 目录下查找所有 .txt 文件 find . -type f -size +10M # 在当前目录下查找大于 10MB 的普通文件 find /var/log -mtime -7 # 在 /var/log 目录下查找过去7天内修改过的文件 find . -name "*.tmp" -delete # 查找并删除所有 .tmp 文件(危险!先不加 -delete 测试)
9.2 在文件中搜索文本 (grep)
强大的文本搜索工具。
grep "error" server.log # 在 server.log 中搜索包含 “error” 的行
grep -r "TODO" /home/alice/project # 递归搜索 /home/alice/project 目录下所有文件中的 “TODO”
grep -i "warning" log.txt # 忽略大小写搜索 “warning”
grep -v "success" output.txt # 搜索不包含 “success” 的行
grep -E "^[0-9]{3}-[0-9]{4}" data.txt # 使用
查看18道真题和解析