linux常见的基础命令及其作用
Linux 常见基础命令及作用
Linux 命令是操作 Linux 系统的核心工具,以下按功能分类整理常用基础命令,每条命令单独说明,方便阅读和理解。
一、文件与目录操作命令(最高频使用)
这类命令用于创建、查看、移动、删除文件和目录,是日常操作的核心。
1. ls(列出目录内容)
- 作用:显示当前或指定目录下的文件 / 目录名称及相关信息。
- 常用用法:
- 直接输入
ls
:显示当前目录下的文件 / 目录(默认不显示隐藏文件)。 ls -l
:以 “长格式” 显示,包含文件权限、所有者、大小、修改时间等详细信息(如-rw-r--r-- 1 user user 1024 May 1 10:00 test.txt
)。ls -a
:显示所有内容,包括以 “.” 开头的隐藏文件(Linux 中隐藏文件 / 目录默认以 “.” 开头,如.bashrc
)。ls -h
:配合-l
使用(如ls -lh
),将文件大小转为人类易读格式(如 KB、MB、GB,而非纯数字字节)。
- 直接输入
2. cd(切换当前工作目录)
- 作用:改变当前终端所在的目录,是 “导航” 系统的核心命令。
- 常用用法:
cd 目录路径
:切换到指定目录,例如cd /home/user/Documents
(绝对路径,从根目录 “/” 开始)、cd ../Pictures
(相对路径,“..” 代表上一级目录)。cd ~
:快速切换到当前用户的 “家目录”(普通用户家目录默认是/home/用户名
,root 用户是/root
)。cd -
:切换到上一次所在的目录(比如从 A 目录跳到 B 目录后,用cd -
可回到 A 目录)。
3. pwd(显示当前目录路径)
- 作用:当不确定自己在系统中的 “位置” 时,用它查看当前目录的绝对路径(从根目录 “/” 开始的完整路径)。
- 常用用法:直接输入
pwd
,例如在/home/user/Documents
目录下执行,会输出/home/user/Documents
。
4. mkdir(创建新目录)
- 作用:创建一个或多个新的空目录。
- 常用用法:
mkdir 目录名
:创建单个目录,例如mkdir Notes
(在当前目录下创建 “Notes” 目录)。mkdir -p 多级目录
:递归创建嵌套目录(父目录不存在时自动创建),例如mkdir -p Notes/2024/May
(一次性创建 “Notes”、“Notes/2024”、“Notes/2024/May” 三级目录,无需手动逐级创建)。
5. touch(创建空文件 / 更新文件时间)
- 作用:两种核心用途 —— 创建空文件,或更新已有文件的 “时间戳”(访问时间和修改时间)。
- 常用用法:
touch 文件名
:若文件不存在,创建空文件,例如touch report.txt
(在当前目录下创建空的 “report.txt”)。touch 已存在的文件
:不修改文件内容,仅更新其时间戳(比如想让文件显示为 “刚修改过”)。
6. cp(复制文件 / 目录)
- 作用:将文件或目录从 “源路径” 复制到 “目标路径”。
- 常用用法:
- 复制文件:
cp 源文件 目标路径
,例如cp report.txt /home/user/Backup
(将 “report.txt” 复制到 “Backup” 目录下)。 - 复制目录:必须加
-r
选项(递归复制目录内所有内容),例如cp -r Notes /home/user/Backup
(将 “Notes” 目录及里面的所有文件 / 子目录,完整复制到 “Backup” 目录)。 - 覆盖提示:加
-i
选项(如cp -i report.txt Backup
),若目标路径已有同名文件,会提示是否覆盖(避免误删)。
- 复制文件:
7. mv(移动文件 / 目录,或重命名)
- 作用:两种核心用途 —— 移动文件 / 目录到指定位置,或在同一目录下重命名。
- 常用用法:
- 移动文件 / 目录:
mv 源路径 目标路径
,例如mv report.txt Notes
(将 “report.txt” 移动到 “Notes” 目录下)。 - 重命名:
mv 旧名称 新名称
(需在同一目录下),例如mv report.txt 2024_report.txt
(将 “report.txt” 重命名为 “2024_report.txt”)。
- 移动文件 / 目录:
8. rm(删除文件 / 目录,谨慎使用!)
- 作用:删除文件或目录,删除后无法恢复,需格外小心。
- 常用用法:
- 删除文件:
rm 文件名
,例如rm old_report.txt
(删除 “old_report.txt” 文件,默认会提示确认,按 “y” 确认删除)。 - 删除目录:必须加
-r
选项(递归删除目录内所有内容),例如rm -r OldNotes
(删除 “OldNotes” 目录及里面所有内容)。 - 强制删除:加
-f
选项(如rm -rf OldNotes
),跳过确认提示(即使文件是只读的),适合批量删除,但风险极高,避免用于系统目录(如/
、/home
)。
- 删除文件:
9. find(在目录中搜索文件 / 目录)
作用:根据指定条件(如名称、大小、修改时间等)在指定目录下递归搜索文件或目录,功能强大且灵活。
基础用法:
find 搜索路径 -name "文件名模式"
:按名称搜索(支持通配符*
和?
),例如find /home -name "*.txt"
(在/home
目录下搜索所有后缀为.txt
的文件)、find . -name "report_2024?.docx"
(在当前目录搜索 “report_2024” 后接 1 个字符的 docx 文件,如 report_20241.docx)。find 搜索路径 -type f
:只搜索文件(排除目录),例如find /var -type f -name "*.log"
(在/var
下搜索所有.log
文件)。find 搜索路径 -type d -name "test*"
:只搜索目录,且名称以 “test” 开头,例如find /tmp -type d -name "test*"
(在/tmp
下找所有以 “test” 开头的目录)。
二、文件内容查看命令(读文件必备)
这类命令用于查看文本文件的内容,不同命令适配 “短文件”“长文件”“实时日志” 等不同场景。
1. cat(查看短文件内容)
- 作用:直接输出文件的全部内容,适合文件内容较少(一屏能显示完)的场景。
- 常用用法:
cat 文件名
:显示文件内容,例如cat README.md
(查看 “README.md” 的所有文本)。cat -n 文件名
:显示内容时附带行号,方便定位特定行,例如cat -n script.sh
(查看脚本文件并显示行号)。
在 Linux 中,如何将 “file_a.txt” 和 “file_b.txt” 两个文件的内容合并,并存入 “merged.txt” 中?请写出至少两种不同的实现命令。
方法 1:使用 cat
命令(最直接,适用于简单合并)
cat
命令的核心功能是 “连接文件并打印到标准输出”,通过重定向符号 >
可将合并结果写入目标文件。
命令:cat file_a.txt file_b.txt > merged.txt
- 逻辑:先读取
file_a.txt
的内容,再读取file_b.txt
的内容,按顺序合并后,通过>
重定向到merged.txt
中。 - 注意:若
merged.txt
已存在,>
会直接覆盖其原有内容;若不存在,则自动创建该文件。
方法 2:使用 >>
追加(分两步合并,适用于需逐步添加内容的场景)
先将 file_a.txt
的内容写入 merged.txt
,再将 file_b.txt
的内容 “追加” 到 merged.txt
末尾(避免覆盖)。
命令步骤:
- 第一步:
cat file_a.txt > merged.txt
(先把file_a
内容写入merged.txt
); - 第二步:
cat file_b.txt >> merged.txt
(用>>
把file_b
内容追加到merged.txt
末尾,不覆盖原有内容)。
- 适用场景:若后续还想添加
file_c.txt
,只需再执行cat file_c.txt >> merged.txt
,灵活性更高。
验证合并结果
合并后可通过 cat merged.txt
查看内容,或用 diff
命令对比片段,确认合并是否正确(如 cat merged.txt | grep "某段内容"
检查关键信息是否存在)。
在 Linux 中,如何清空一个已有内容的文件(比如 “log.txt”),但不删除这个文件本身?请写出至少两种方法。
方法 1:使用重定向符号 >
(最直接)
命令:> log.txt
- 原理:
>
是输出重定向符号,当它后面跟文件名但前面没有任何内容时,会直接清空该文件的内容(文件本身依然存在,大小变为 0)。 - 特点:操作简单,适用于任何场景,且不会改变文件的权限、所有者等属性。
方法 2:使用 cat /dev/null
重定向(更直观表达 “清空” 意图)
命令:cat /dev/null > log.txt
- 原理:
/dev/null
是 Linux 中的 “空设备文件”,它的内容永远是空的。cat /dev/null
会输出空内容,再通过>
重定向到log.txt
,相当于用空内容覆盖原文件,达到清空效果。 - 特点:比方法 1 更直观地表达 “清空” 的意图(代码可读性更好),效果与方法 1 完全一致。
验证是否清空
执行命令后,可通过 ls -l log.txt
查看文件大小(会显示 0
),或用 cat log.txt
确认内容已为空,验证操作是否成功。
2. more(分页查看长文件)
- 作用:当文件内容过长(一屏显示不完)时,按 “页” 显示内容,只能向下翻页。
- 常用用法:
- 输入
more 文件名
(如more log.txt
),进入查看界面。 - 交互操作:按 空格键 翻到下一页,按 Enter 键 翻到下一行,按 q 键 退出查看。
- 输入
3. less(灵活分页查看长文件)
- 作用:比
more
功能更全,支持上下翻页、搜索内容,是查看长文件的首选命令。 - 常用用法:
- 输入
less 文件名
(如less log.txt
),进入查看界面。 - 交互操作:
- 按 ↑↓ 键 逐行滚动,按 PageUp/PageDown 键 上下翻页。
- 按 / 关键词 搜索文件中的内容(例如
/error
搜索 “error” 关键词),按 n 键 查看下一个匹配结果。 - 按 q 键 退出查看。
- 输入
4. head(查看文件开头内容)
- 作用:默认显示文件的前 10 行内容,可指定行数。
- 常用用法:
head 文件名
:显示前 10 行,例如head config.ini
(查看配置文件的开头部分)。head -n 数字 文件名
:指定显示的行数,例如head -n 5 config.ini
(只看配置文件的前 5 行)。
5. tail(查看文件结尾内容 / 实时日志)
- 作用:默认显示文件的最后 10 行内容,核心优势是支持 “实时跟踪文件更新”(适合查看日志)。
- 常用用法:
tail 文件名
:显示最后 10 行,例如tail log.txt
(查看日志的最新 10 条记录)。tail -n 数字 文件名
:指定显示的结尾行数,例如tail -n 3 log.txt
(查看日志的最后 3 行)。tail -f 文件名
:实时跟踪文件的最新内容(文件新增内容会自动显示),例如tail -f /var/log/syslog
(实时查看系统日志,按 “Ctrl+C” 停止跟踪)。
三、系统信息与状态查看命令(了解系统情况)
这类命令用于查看系统内核、资源占用、进程、磁盘空间等状态,排查问题时常用。
1. uname(查看系统内核信息)
- 作用:显示操作系统的内核相关信息,如内核版本、硬件架构等。
- 常用用法:
uname
:仅显示内核名称(如Linux
)。uname -a
:显示完整系统信息(最常用),例如输出Linux ubuntu 5.15.0-78-generic x86_64 GNU/Linux
(包含内核版本、主机名、硬件架构、系统类型)。uname -r
只单独显示内核版本号
2. hostname(查看 / 设置主机名)
- 作用:查看当前系统的主机名,或临时修改主机名(重启后失效)。
- 常用用法:
hostname
:直接显示当前主机名,例如输出ubuntu-server
。sudo hostname 新主机名
:临时修改主机名(需 root 权限),例如sudo hostname my-linux
(将主机名改为 “my-linux”,重启后恢复原主机名)。
3. whoami(查看当前登录用户名)
- 作用:快速确认当前使用的是哪个用户账号(尤其在切换用户后)。
- 常用用法:直接输入
whoami
,例如当前登录 “user1”,会输出user1
。
4. top(实时监控系统资源与进程)
- 作用:动态显示系统的 CPU、内存占用情况,以及所有进程的运行状态(每隔 3 秒刷新一次)。
- 常用用法:
- 输入
top
,进入监控界面,顶部显示系统整体资源(如Cpu(s): 20.0%us, 5.0%sy
表示用户态 CPU 占 20%,系统态占 5%),下方显示进程列表(包含 PID、用户、CPU 占用率、内存占用率等)。 - 交互操作:
- 按 P 键:按 CPU 占用率从高到低排序(快速找 “吃 CPU” 的进程)。
- 按 M 键:按内存占用率从高到低排序(快速找 “吃内存” 的进程)。
- 按 q 键:退出监控界面。
- 输入
ps
命令:更常用的静态查看方式:ps aux
:查看系统中所有进程(包括其他用户的),输出完整信息(用户、PID、CPU / 内存占用、启动时间等)。ps -ef
:以全格式显示所有进程,常用于查看进程间的父子关系。
根据进程名筛选(以
nginx
为例):- 结合管道和
grep
:ps aux | grep nginx
或ps -ef | grep nginx
。 - 注意:结果中会包含
grep nginx
自身的进程,可加grep -v grep
排除:ps aux | grep nginx | grep -v grep
。 - 更简洁的方式:
pgrep nginx
(直接输出nginx
进程的 PID),或pkill nginx
(用于终止进程,延伸考点)。
- 结合管道和
5. df(查看磁盘空间使用情况)
- 作用:显示所有已挂载磁盘分区的总容量、已用容量、可用容量和使用率。
- 常用用法:
df
:默认以 KB 为单位显示(数字较大,不易读)。df -h
:以人类易读格式显示(如 GB、MB),例如输出/dev/sda1 50G 15G 32G 32% /
(表示根分区总容量 50G,已用 15G,使用率 32%)。
6. free(查看内存使用情况)
- 作用:显示系统物理内存、交换分区(Swap)的使用情况。
- 常用用法:
free
:默认以 KB 为单位显示。free -h
:以人类易读格式显示,例如输出Mem: 7.7Gi 2.1Gi 4.8Gi 0.1Gi 0.8Gi 5.4Gi
(表示总内存 7.7GB,已用 2.1GB,空闲 4.8GB)。
7. who(查看当前登录系统的用户)
作用:快速显示当前有哪些用户登录到系统,包括登录用户名、登录终端(如
tty1
本地终端、pts/0
远程终端)、登录时间,以及远程登录用户的来源 IP(若适用)。基础用法:
- 直接执行
who
:查看所有当前登录用户的基础信息,示例输出如下(含义:用户root
通过本地终端tty1
在 2024-05-20 10:00 登录;用户user1
通过远程终端pts/0
从 IP192.168.1.100
在 2024-05-20 10:30 登录):
- 直接执行
who am i
或 who mom likes
:仅显示当前操作终端对应的用户(区别于 who
显示所有用户,适合多用户登录时快速确认自己的身份),示例输出:
8. kill(终止进程)
作用:向进程发送信号以终止或控制进程,需配合进程 ID(PID)使用(PID 可通过
ps
或top
获取)。基础用法:
kill 进程ID
:发送终止信号(默认SIGTERM
),让进程优雅退出,例如kill 1234
(终止 PID 为 1234 的进程)。
进阶用法:
- 强制终止:
kill -9 进程ID
(发送SIGKILL
信号,强制结束顽固进程,如kill -9 5678
)。 - 按名称批量终止:
pkill 进程名
(如pkill python
终止所有 Python 进程)。 - 重启进程配置:
kill -1 进程ID
(发送SIGHUP
信号,让进程重新加载配置)。
- 强制终止:
四、权限控制命令(Linux 安全核心)
Linux 基于 “用户 - 组 - 其他”(u-g-o)的权限模型,这类命令用于修改文件 / 目录的权限和归属。
1. chmod(修改文件 / 目录权限)
- 作用:设置文件 / 目录对 “所有者(u)”“所属组(g)”“其他用户(o)” 的权限(读、写、执行)。
- 权限规则:
- 权限符号:读(r)、写(w)、执行(x);对应数字:r=4,w=2,x=1(数字相加表示组合权限,如 rwx=7,rx=5)。
- 常用用法:
- 数字方式(简洁常用):
chmod 权限数字 文件名
,例如chmod 755 script.sh
(所有者 rwx=7,所属组和其他用户 rx=5,即脚本所有者可执行,其他人只能读)。 - 符号方式(灵活):
chmod 身份+权限 文件名
,例如chmod u+x script.sh
(给所有者加 “执行” 权限)、chmod o-w file.txt
(给其他用户减 “写” 权限)。
- 数字方式(简洁常用):
在 Linux 中,如何修改文件(比如 “test.txt”)的权限,使其所有者(owner)拥有读、写、执行权限,所属组(group)拥有读和执行权限,其他用户(others)仅拥有读权限?请分别用 “符号权限” 和 “数字权限” 两种方式写出命令。
符号权限:chmod u+rwx,g+rx,o+r test.txt(可以合并成一条)
数字权限:chmod 754 test.txt
2. chown(修改文件 / 目录的所有者和所属组)
- 作用:改变文件 / 目录的 “所有者”(属于哪个用户)或 “所属组”(属于哪个用户组),需 root 权限(普通用户只能改自己的文件)。
- 常用用法:
chown 新所有者:新所属组 文件名
:同时修改所有者和组,例如sudo chown user1:user1 report.txt
(将 “report.txt” 的所有者和组都改为 “user1”)。- 单独修改所有者:
sudo chown user2 report.txt
(只改所有者为 “user2”)。 - 单独修改所属组:
sudo chown :group1 report.txt
(只改所属组为 “group1”)。
五、用户与组管理命令(多用户系统必备)
用于创建、删除用户 / 组,切换用户身份,需 root 权限(部分命令普通用户可用)。
1. sudo(以 root 权限执行命令)
- 作用:普通用户默认没有系统管理权限(如安装软件、修改系统配置),用
sudo
可临时获取 root 权限(需输入当前用户密码验证)。 - 常用用法:
sudo 命令
,例如sudo apt install firefox
(Ubuntu 系统安装火狐浏览器)、sudo vim /etc/hosts
(修改系统 hosts 文件)。
2. useradd(创建新用户)
- 作用:创建新的系统用户,需 root 权限。
- 常用用法:
sudo useradd -m 用户名
:-m
表示自动创建用户的家目录(默认在/home/用户名
),例如sudo useradd -m newuser
(创建 “newuser” 并生成/home/newuser
家目录)。
3. passwd(设置 / 修改用户密码)
- 作用:为用户设置或修改密码(root 可改所有用户密码,普通用户只能改自己的)。
- 常用用法:
- 普通用户改自己密码:直接输入
passwd
,按提示输入旧密码、新密码(输入密码时不显示字符,确保安全)。 - root 为其他用户设密码:
sudo passwd 用户名
,例如sudo passwd newuser
(为 “newuser” 设置初始密码)。
- 普通用户改自己密码:直接输入
4. su(切换用户身份)
- 作用:从当前用户切换到其他用户(需知道目标用户密码)。
- 常用用法:
su 用户名
:切换到指定用户,但不加载该用户的环境变量(如家目录、PATH 等),例如su newuser
(切换到 “newuser”,但终端提示符可能仍显示原用户)。su - 用户名
:切换用户并加载其完整环境变量(推荐用法),例如su - newuser
(切换到 “newuser”,终端提示符会显示 “newuser@主机名”,家目录也切换到/home/newuser
)。su -
:直接切换到 root 用户(等价于su - root
)sudo -i也有相同作用
(更安全,适用于普通用户有 sudo 权限的场景)
六、压缩与解压命令(文件归档必备)
1. tar(文件打包与压缩 / 解压)
- 作用:将多个文件或目录打包成一个文件,可配合压缩算法(gzip、bzip2 等)减小体积,也可解压已有的打包文件。
- 常用用法:
- 打包并压缩(gzip 格式,生成 .tar.gz 文件):
tar -zcvf 压缩包名.tar.gz 要打包的文件/目录
,例如tar -zcvf photos.tar.gz ./Pictures
(将 Pictures 目录打包压缩为 photos.tar.gz)。 - 解压 .tar.gz 文件:
tar -zxvf 压缩包名.tar.gz
,例如tar -zxvf photos.tar.gz
(解压到当前目录)。 - 打包并压缩(bzip2 格式,生成 .tar.bz2 文件):
tar -jcvf 压缩包名.tar.bz2 要打包的文件/目录
。 - 解压 .tar.bz2 文件:
tar -jxvf 压缩包名.tar.bz2
。 - 选项说明:
z
(使用 gzip 算法)、j
(使用 bzip2 算法)、c
(创建打包文件)、x
(解压)、v
(显示过程)、f
(指定打包文件名)。 -z
:表示使用gzip
算法进行压缩(生成.gz
格式);-c
:表示创建新的压缩包;-x
:表示解压缩(extract);-v
:显示压缩过程中的文件列表(可选,用于查看进度);-f
:指定压缩包的文件名(必须放在所有选项的最后,紧跟文件名)。-t
表示 “列出归档文件的内容”(list)
- 打包并压缩(gzip 格式,生成 .tar.gz 文件):
2. zip/unzip(压缩 / 解压 zip 格式文件)
- 作用:处理 zip 格式的压缩文件(跨平台兼容性好,Windows 和 Linux 都支持)。
- 常用用法:
- 压缩文件 / 目录为 zip 包:
zip 压缩包名.zip 要压缩的文件/目录
,例如zip docs.zip report.txt Notes/
(将 report.txt 和 Notes 目录压缩为 docs.zip)。 - 解压 zip 包:
unzip 压缩包名.zip
,例如unzip docs.zip
(解压到当前目录)。 - 查看 zip 包内容:
unzip -l 压缩包名.zip
(不解压,只列出里面的文件 / 目录)。
- 压缩文件 / 目录为 zip 包:
七、网络相关命令(网络诊断与管理)
1. ifconfig/ip(查看网络接口信息)
- 作用:查看或配置网络接口(如网卡)的 IP 地址、MAC 地址等信息。
- 常用用法:
ifconfig
:显示所有网络接口的信息(包括 IP 地址、子网掩码、MAC 地址等),例如eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 ...
。ip addr
:新一代网络配置命令,功能类似 ifconfig,输出更清晰,例如ip addr show
显示所有接口信息。
2. netstat/ss(查看网络连接状态)
- 作用:查看系统的网络连接、端口监听等状态(netstat 较老,ss 是替代工具)。
- 常用用法:
netstat -tuln
:查看所有正在监听的 TCP/UDP 端口(t
显示 TCP,u
显示 UDP,l
显示监听状态,n
显示 IP 而非域名)。ss -tuln
:功能与netstat -tuln
相同,执行速度更快,推荐使用。
在 Linux 中,如何查看某个端口(比如 8080)被哪个进程占用?
方法 1:ss
命令(现代 Linux 系统首选,比netstat
更高效)
完整命令:
ss -tulnp | grep :8080
- 选项解析:
-t
:仅显示 TCP 连接(端口占用多为 TCP,若需 UDP 可加-u
);-u
:显示 UDP 连接(可与-t
组合);-l
:仅显示 “正在监听” 的端口(占用端口的进程通常处于监听状态);-n
:以数字形式显示端口号(避免将 8080 解析为服务名,更直观);-p
:显示占用端口的进程 ID(PID)和进程名(核心选项,需 root 权限,普通用户可能看不到进程名,需加sudo
)。
- 示例输出:
tcp LISTEN 0 128 *:8080 *:* users:(("java",pid=1234,fd=10))
可直接看到:8080 端口被 PID 为 1234、进程名为java
的进程占用。
方法 2:netstat
命令(传统命令,部分系统需额外安装)
完整命令:
sudo netstat -tulnp | grep :8080
- 选项含义与
ss
基本一致(-tulnp
作用相同),但netstat
在部分新发行版(如 CentOS 8、Ubuntu 20.04+)中默认不安装,需先通过yum install net-tools
(CentOS)或apt install net-tools
(Ubuntu)安装。
3. curl/wget(下载网络文件)
- 作用:从网络上下载文件(curl 更侧重数据传输,wget 更专注下载)。
- 常用用法:
wget 网址
:直接下载文件到当前目录,例如wget https://example.com/file.tar.gz
(下载 file.tar.gz 到当前目录)。curl -O 网址
:下载文件到当前目录(-O
保留原文件名),例如curl -O https://example.com/file.tar.gz
。curl 网址
:直接显示网页内容(适合查看简单文本数据,如 API 接口返回值)。
八、文本处理命令(快速处理文本内容)
1. grep(搜索文本内容)
- 作用:在文件或命令输出中搜索包含指定关键词的行,是文本过滤的核心工具。
- 常用用法:
grep "关键词" 文件名
:在指定文件中搜索包含 “关键词” 的行,例如grep "error" log.txt
(在 log.txt 中找含 “error” 的行)。grep -i "关键词" 文件名
:忽略大小写搜索(如同时匹配 “Error”“ERROR”)。grep -r "关键词" 目录
:在指定目录下的所有文件中递归搜索(查找整个项目中的关键词)。- 配合管道使用:
命令 | grep "关键词"
,例如ps aux | grep "python"
(在进程列表中找含 “python” 的进程)。
如何搜索当前目录及其子目录下所有包含 “error” 关键词的 .log
文件?请写出具体命令。
grep -r "error" ./*.log
2. wc(统计文本行数 / 字数)
- 作用:统计文件的行数、单词数、字节数。
- 常用用法:
wc 文件名
:默认输出 “行数 单词数 字节数 文件名”,例如wc report.txt
输出10 50 300 report.txt
(10 行,50 个单词,300 字节)。wc -l 文件名
:只统计行数(常用),例如wc -l log.txt
(查看日志有多少行)。
九、其他实用命令
1. history(查看命令历史)
- 作用:显示当前用户之前执行过的所有命令(默认保存最近 1000 条)。
- 常用用法:
- 直接输入
history
:列出所有历史命令(每条命令前有编号)。 !编号
:快速重复执行对应编号的命令,例如!100
(执行历史列表中第 100 条命令)。history | grep "关键词"
:搜索包含 “关键词” 的历史命令,例如history | grep "cd"
(找之前执行过的 cd 命令)。
- 直接输入
2. clear(清空终端屏幕)
- 作用:清除终端上的所有输出内容,让屏幕重新变得整洁(光标回到顶部)。
- 常用用法:直接输入
clear
,或按快捷键Ctrl+L
(效果相同)。
3. man(查看命令帮助手册)
- 作用:查看任何 Linux 命令的详细帮助文档(包括语法、选项、示例等)。
- 常用用法:
man 命令名
,例如man grep
(查看 grep 命令的完整帮助),在帮助页面中按q
键退出。(也可以用 --help)