文章目录
-
- [1. 命令行的基本结构](#1. 命令行的基本结构)
-
- [1.1 命令、选项与操作对象](#1.1 命令、选项与操作对象)
- [1.2 常用终端按键](#1.2 常用终端按键)
- [2. 目录与路径:确定命令操作的范围](#2. 目录与路径:确定命令操作的范围)
- [3. 操作文件:创建、复制、移动和删除](#3. 操作文件:创建、复制、移动和删除)
- [4. 查看和搜索:从文件里找到需要的信息](#4. 查看和搜索:从文件里找到需要的信息)
-
- [4.1 文件大小和查看方式](#4.1 文件大小和查看方式)
- [4.2 搜索内容用 grep,寻找文件用 find](#4.2 搜索内容用 grep,寻找文件用 find)
- [4.3 管道和重定向:把命令连起来](#4.3 管道和重定向:把命令连起来)
- [5. 编辑文件和打包文件](#5. 编辑文件和打包文件)
-
- [5.1 vi 的基本操作](#5.1 vi 的基本操作)
- [5.2 用 tar 打包,再解压到独立目录](#5.2 用 tar 打包,再解压到独立目录)
- [6. 看懂权限:为什么有的文件能读却不能执行](#6. 看懂权限:为什么有的文件能读却不能执行)
- [7. 查看主机状态:系统、内存、磁盘](#7. 查看主机状态:系统、内存、磁盘)
- [8. 进程与作业:查看运行状态和控制程序](#8. 进程与作业:查看运行状态和控制程序)
- [9. 查看网络与连接服务器](#9. 查看网络与连接服务器)
- [10. 查看服务和日志:适用于 systemd 系统](#10. 查看服务和日志:适用于 systemd 系统)
- [11. 常见报错与定位方向](#11. 常见报错与定位方向)
Linux 的日常操作往往围绕几个具体场景展开:查找 配置文件、查看 应用日志、调整 文件权限,以及排查进程、磁盘和网络状态。
这些工作涉及的命令看似分散,实际上有清晰的分工:路径决定操作对象,命令完成具体处理,Shell 则负责把多个命令连接起来。
本文按这些使用场景梳理常用命令,同时解释容易混淆的参数和行为。重点放在命令的用途、适用场景与操作影响,便于日常查阅和实际使用。
适用范围:常见 GNU/Linux 系统,命令输入环境以 Bash 为例。Ubuntu、Debian、openEuler、Rocky Linux 等系统的大部分基础命令通用;最小化安装、容器或不同发行版可能缺少部分工具。服务管理部分以使用 systemd 的系统为前提。
文中的 docs、logs 和 backup 属于同一个示例工作目录。
1. 命令行的基本结构
1.1 命令、选项与操作对象
命令通常由"命令名、选项、操作对象"组成,例如:
bash
ls -lh /var/log
这里,ls 表示列出目录内容,-l 表示显示详细信息,-h 表示把文件大小显示成便于阅读的形式,/var/log 是要查看的目录。很多短选项可以合并,因此 -lh 也可以写成 -l -h。选项的含义由具体命令决定,同一个字母在不同命令中可能有不同用途。

确认当前身份、工作目录和发行版,常用以下三个命令:
bash
whoami
pwd
cat /etc/os-release
它们分别显示当前用户名、当前所在目录、Linux 发行版信息。普通用户的主目录通常位于 /home/用户名,root 用户的主目录通常是 /root。个人文件操作通常使用普通用户身份即可。

1.2 常用终端按键
| 按键 | 作用与使用场景 |
|---|---|
Tab |
补全命令或路径;有多个候选时,通常可以再按一次查看 |
| ↑ / ↓ | 翻看当前 Shell 的历史命令 |
Ctrl + C |
向前台程序发送中断信号,常用于结束持续运行的命令 |
Ctrl + L |
在常见 Bash 终端中清理当前显示,历史输出是否保留取决于终端 |
Ctrl + A / Ctrl + E |
在 Bash 常见默认编辑模式下,移动到本行开头 / 结尾 |
q |
在 less、man、top 等界面中退出;不是所有程序的通用退出键 |
输入 sudo 或 SSH 的密码时,终端通常不回显星号或字符,输入完成后以回车提交。
2. 目录与路径:确定命令操作的范围
Linux 用一棵以 / 为起点的目录树组织文件。/ 是根目录,~ 通常表示当前用户的主目录;两者用途不同。
| 写法 | 含义 | 例子 |
|---|---|---|
/ |
整棵目录树的起点 | /var/log |
~ |
当前用户的主目录 | cd ~ |
. |
当前目录 | ls . |
.. |
上一级目录 | cd .. |
以 / 开头的路径 |
绝对路径,从根目录开始定位 | /home/student/docs |
不以 / 开头的普通路径 |
相对路径,从当前目录开始定位 | docs/note.txt |

图中的用户名和目录后缀只是示意。定位同一个文件时,绝对路径固定,而相对路径会随着当前位置改变。
| 命令 | 作用 | 用法示例 |
|---|---|---|
pwd |
显示当前目录路径 | pwd |
ls |
列出目录内容,默认不显示点号开头的隐藏项 | ls |
ls -l |
查看权限、所有者、大小和时间等信息 | ls -l docs |
ls -lah |
显示详细信息(l)、隐藏项(a)和易读的大小(h) | ls -lah |
ls -ld |
查看目录自身的信息,而不是列出里面的内容 | ls -ld docs |
cd 路径 |
切换当前目录 | cd docs |
cd .. |
返回上一级目录 | cd .. |
cd 或 cd ~ |
返回自己的主目录 | cd ~ |
cd - |
切换回上一次所在目录 | cd - |
系统目录通常按用途组织,常见位置如下:
| 目录 | 通常存放什么 |
|---|---|
/home |
普通用户的主目录 |
/root |
root 用户的主目录 |
/etc |
系统与软件的配置文件 |
/var/log |
常见系统或服务日志;具体软件也可能另设日志路径 |
/tmp |
临时文件,可能被系统定期清理 |
/usr |
大量已安装程序、库和共享数据 |
/dev |
设备相关的特殊文件 |
Linux 常见文件系统区分大小写,例如 Note.txt 与 note.txt 通常是不同文件。
路径里有空格时,要加引号,例如 mkdir "my notes",变量路径常写成 "$LAB",可以避免其中的空格被拆成多个参数。
3. 操作文件:创建、复制、移动和删除
文件操作主要涉及创建、复制、移动和删除。使用相对路径时,pwd 可以帮助确认操作范围;涉及已有目标时,还需要关注覆盖行为。
| 命令 | 作用 | 用法示例 |
|---|---|---|
mkdir |
创建目录 | mkdir drafts |
mkdir -p |
按需创建多层目录(p),已有目录可以继续使用 | mkdir -p drafts/day1 |
touch |
文件不存在时创建空文件;存在时通常更新时间戳 | touch docs/empty.txt |
cp -i |
复制文件,目标存在时询问是否覆盖 | cp -i docs/note.txt backup/note.txt |
cp -ri |
递归复制目录,覆盖已有文件前询问(i) | cp -ri docs backup/ |
mv -i |
移动 或重命名,覆盖已有目标前询问 | mv -i docs/empty.txt docs/draft.txt |
rm -i |
删除文件前询问 | rm -i docs/draft.txt |
rmdir |
删除空目录,有内容时拒绝删除 | rmdir drafts/day1 |
-i 会在删除前要求确认,通常输入 y 表示同意、n 表示取消。rm 通常直接删除文件,不经过桌面回收站。
rm -rf 中的 -r 表示递归处理目录,-f 会取消通常的询问并忽略不存在的目标。组合使用时,错误路径可能导致整个目录树被删除,因此不适合作为日常删除操作的默认写法。
* 是常见的文件名通配符 。例如 ls logs/*.log 会列出该目录下符合模式的非隐藏文件。与删除、移动等命令组合时,通配符会扩大操作范围,实际匹配的文件需要明确。

4. 查看和搜索:从文件里找到需要的信息
4.1 文件大小和查看方式
小文件适合直接输出,长文件更适合分页浏览,持续增长的日志则需要跟踪新增内容。cat、less、head 和 tail 分别覆盖这些场景。
| 命令 | 作用 | 用法示例 |
|---|---|---|
cat |
一次输出文件内容,适合小文件 | cat docs/note.txt |
less |
分页查看,适合较长文件 | less logs/app.log |
head -n 数字 |
查看开头若干行 | head -n 3 logs/app.log |
tail -n 数字 |
查看最后若干行 | tail -n 2 logs/app.log |
tail -f |
持续观察文件新增内容 | tail -f logs/app.log |
wc -l |
统计换行符数量,常用于统计文本行数 | wc -l logs/app.log |
在 less 中,空格翻到下一页,b 返回上一页,输入 /ERROR 后回车可向后搜索,n 跳到下一处匹配,q 退出。
本文示例日志包含 5 行,且每行均以换行符结束,因此 wc -l logs/app.log 的计数为 5;tail -n 2 对应最后两条 ERROR 记录。
tail -f 会持续等待新增内容,通常使用 Ctrl + C 结束。日志轮转可能替换原文件,需要继续跟踪同名日志时,可以使用 tail -F:它按文件名跟踪,并在文件暂时不可用时重试。

4.2 搜索内容用 grep,寻找文件用 find
| 命令 | 作用 | 用法示例 |
|---|---|---|
grep -n |
搜索匹配的行(正则模式),并显示行号(n) | grep -n 'ERROR' logs/app.log |
grep -ni |
搜索时忽略大小写(i),并显示行号 | grep -ni 'error' logs/app.log |
grep -F |
把搜索内容当作普通字符串,而不是正则表达式 | grep -F 'slow query' logs/app.log |
grep -rn |
递归搜索(r)目录中的文件内容,并显示行号 | grep -rn 'ERROR' logs |
find 路径 |
递归输出该路径下所有内容,文件、目录等全部 | find /test |
find 路径 -type f |
只递归匹配普通文件(file) | find /test -type f |
find 路径 -type d |
只递归匹配目录/文件夹(directory) | find /test -type d |
find 路径 -name '模式' |
所有类型,只递归匹配名字 | find /test -name '*.log' |
find 路径 -iname '模式' |
同上,忽略大小写(i) | find /test -iname 'hello.txt' |
find 路径 -type f -name '模式' |
结合,递归匹配符合要求名字的文件 | find /test -type f -name '*.log' |
grep 和 find 将搜索起点限定到相关目录,也能减少无关结果和不必要的全盘遍历。

注意点:
Shell 里 ls 和 find -name 中的 * 属于通配符 ,代表任意 0 个或多个字符,用于匹配文件名。使用 find 时要给匹配式(-name)加上引号,避免 shell 提前解析星号。
bash
# 举例
find 路径 -name '*.log'
grep 默认是正则模式 ,这里 * 是量词,只表示它前面那个字符可以重复 0 次或多次,不能单独用来匹配任意一串字符,如果想要匹配任意内容,需要写成 .* 。但是一般来说,grep 单纯检索关键词时,直接写关键词即可,不需要额外加星号。
bash
# 举例,查找当前路径中,带有".txt"关键词的结果
ls -lh ./ | grep '.txt'
# 下面这个也是,通过 find 查找带有".txt"关键词的文件和文件夹,与上面不同的是,find 是递归查找,会查找当前路径以及以下路径
find ./ -name '*.txt'
4.3 管道和重定向:把命令连起来
很多命令会把正常结果写到"标准输出",把错误说明写到"标准错误"。两者默认通常都显示在终端上。Shell 可以把这些输出接到别的命令或文件中。
| 符号 | 作用 | 示例 |
|---|---|---|
| | | 将左侧命令的标准输出接给右侧命令的标准输入 | |
> |
将标准输出 写入文件;不存在则创建,存在则截断覆盖 | grep 'ERROR' logs/app.log > logs/errors.txt |
>> |
不存在则创建,存在则追加到文件末尾 | printf 'Updated note.\n' >> docs/note.txt |
2> |
将标准错误 写入文件,不存在则创建,存在则截断覆盖 | ls no-such-file 2> logs/lookup-error.txt |
2>> |
不存在则创建,存在则追加到文件末尾 | |
&& |
左侧命令成功后,才执行右侧命令 | mkdir -p drafts/day2 && ls drafts |
| || | 左边失败 才执行右边(和 && 相反) |
这里:2> 只抓报错,正常输出依旧打印在屏幕; > 只抓正常输出,报错依旧打印屏幕。
可以混合起来使用,例如:mkdir study && touch study/Day01.md && find study -type f >> study/print.txt 2>> study/error.txt。

grep 'ERROR' logs/app.log | wc -l:管道把筛选结果交给计数命令;
grep 'ERROR' logs/app.log > logs/error.txt:重定向把筛选结果保存为新文件,原始日志保持不变。
重定向需要特别注意读写目标,如果把 grep 的输出直接覆盖回正在读取的原文件(logs/app.log),Shell 通常会在程序开始读取前就截断该文件,导致原内容丢失。这类处理应先输出到另一个文件,再核对结果。

5. 编辑文件和打包文件
5.1 vi 的基本操作
服务器上经常使用 vi 或 vim:
bash
vi docs/note.txt
vi 通过模式区分文本输入与编辑操作:普通模式下按 i 进入插入模式,按 Esc 返回普通模式。保存与退出使用编辑器内部的冒号命令,输入后以回车执行。
| 操作 | 含义 |
|---|---|
i |
从普通模式进入插入模式 |
Esc |
从插入模式返回普通模式 |
:w |
保存当前文件 |
:wq |
保存并退出 |
:q! |
放弃未保存的修改并退出 |
这些按键和命令作用于编辑器内部。普通模式下输入字母可能触发编辑动作,因此模式切换是使用 vi 时最需要区分的操作。
5.2 用 tar 打包,再解压到独立目录
打包压缩 :tar -zcvf testdir.tar.gz testdir,将 testdir 文件夹打包成 testdir.tar.gz。
解压缩 :tar -zxvf testdir.tar.gz -C /data/tmp,前提 :目标目录 /data/tmp 要提前创建,否则报错。
参数解释:
-
-z:gzip 压缩(后缀.tar.gz),也可以根据需要换成-j,代表 bzip2 压缩(后缀.tar.bz2)bzip2 压缩率比 gzip 更高,但压缩、解压速度更慢。
-
-c:create,创建压缩包 -
-x:extract,解压压缩包 -
-v:verbose,显示过程(不想看日志就去掉 v) -
-f:file,指定包文件名,f 必须放最后
打包的一些使用技巧:
- tar 可以打包多个文件或文件夹,直接在命令末尾,空格隔开写多个文件或目录即可,如
tar -zcvf all.tar.gz a b c.txt; - 可以使用通配符批量打包一类文件,如
tar -zcvf all.tar.gz *.txt; - 打包时,如果想排除某个文件,可以用
--exclude参数,如tar -zcvf all.tar.gz *.txt --exclude=test.txt; - 打包时一般推荐用相对路径 ,如果写绝对路径
/home/xxx,解压的时候也会还原绝对路径。


6. 看懂权限:为什么有的文件能读却不能执行
ls -l 展示的详细信息中,包含文件类型和基本访问权限:
bash
ls -l docs/note.txt
输出开头可能类似 -rw-r--r--,后面还有链接数、所有者、所属组、大小、时间和文件名。具体权限取决于创建方式及环境设置。
第一个字符表示类型:- 是普通文件,d 是目录,l 是符号链接。后面九个字符每三个一组,依次表示所有者、所属组、其他用户的权限。

图中的 640 是一个权限示例:所有者可读写,所属组只读,其他用户没有这三种普通权限。
| 权限 | 对普通文件的主要含义 | 对目录的主要含义 |
|---|---|---|
r,数值 4 |
读取文件内容 | 列出目录中的条目名称 |
w,数值 2 |
修改文件内容 | 配合 x,在目录中创建、删除、重命名条目 |
x,数值 1 |
尝试把文件作为程序执行,还需要合法的程序格式等条件 | 穿过目录,访问其中已知名称的条目 |
目录的权限尤其重要:读取一个文件,通常还需要对路径上各级目录具有 x 权限。删除文件主要受其父目录权限控制,还可能受 sticky bit 等额外规则限制。
常见的权限修改命令:
| 命令 | 含义 |
|---|---|
chmod u+x 文件 |
给所有者增加执行权限,其他权限保持原状 |
chmod 640 文件 |
设置为所有者读写、所属组只读、其他用户无权限 |
chmod 755 目录 |
所有者可读写和进入,所属组及其他用户可列出和进入 |
chown 所有者:所属组 文件 |
修改所有者和所属组,修改所有者通常需要管理员权限 |
数字是每组权限的加和:6 = 4 + 2,5 = 4 + 1,7 = 4 + 2 + 1。这些是权限写法示例,实际应按谁需要访问来设置。777 会把读、写、执行权限授予所有人,不宜作为解决权限报错的通用办法。
7. 查看主机状态:系统、内存、磁盘
系统
| 命令 | 用途 |
|---|---|
whoami |
当前有效用户名 |
id |
用户 UID/GID 及所属组 |
hostname |
主机名 |
cat /etc/os-release |
系统发行版 |
uname -r |
内核版本 |
date |
当前时间 / 时区 |

系统整体状态
| 命令 | 用途 |
|---|---|
uptime |
运行时长 + 1/5/15 分钟负载 |
top |
实时看 CPU / 内存 / 进程 |
htop |
top 增强版 |
vmstat 1 |
整体状态,每秒刷新 |
mpstat -P ALL |
每个 CPU 核心使用率 |
dmesg |
内核日志 |

执行 top 时,优先看首行 load average 判断系统整体负载 ,Tasks 检查是否存在僵尸进程 ;CPU 部分重点关注 id 空闲占比和 wa IO 等待值,wa 高代表磁盘存在瓶颈;内存看 avail 可用内存与 Swap 使用量,Swap 被占用(used)说明内存紧张;下方进程列表用 P/M 快捷键分别按 CPU、内存排序,重点观察高占用进程的 PID(进程号)、% CPU、% MEM、进程状态与进程名。
内存
| 命令 | 用途 |
|---|---|
free -h |
内存与交换空间概况 |

- Mem 行:total 总内存 7.6Gi;available=5.6Gi,是新程序可直接使用内存(最核心指标)。
- buff/cache:系统缓存,可回收,不要当成占用内存。
- Swap 行:交换分区,total2.0Gi,used 为 0B。
重点 :优先看 available;Swap 一旦出现 used,代表物理内存不足,系统开始读写磁盘交换,性能下降。
磁盘
| 命令 | 用途 |
|---|---|
df -h |
文件系统剩余空间 |
df -h 路径 |
目录所在分区,路径省略时,默认指当前路径 |
du -sh 路径 |
目录占用大小,路径省略时,默认指当前路径 |
lsblk |
磁盘 / 分区 / 挂载点层级 |
iostat -x 1 |
磁盘 IO 详情 |
iotop |
哪个进程在疯狂读写磁盘 |

Filesystem(文件系统 / 设备),就是磁盘设备名称。
/dev/sde:物理磁盘分区设备overlay:容器的联合文件系统(现在这个是容器环境)tmpfs:内存虚拟盘,数据放在内存,重启丢失,不占用硬盘Mounted on(挂载点)
Linux 没有 C 盘 D 盘,把磁盘挂载到某个文件夹,这个文件夹就是挂载点 ,访问这个文件夹就是访问这块磁盘。例如:
/就是根目录,对应系统盘;/tmp、/run是内存盘tmpfs的挂载目录。总结:
- Filesystem 是磁盘设备;Mounted on 是访问该磁盘的目录(挂载点),df 重点看挂载点对应的 Use% 使用率;
- df 看磁盘空间,du 看文件夹大小。磁盘满先用 df 定位哪个分区,再用 du 进分区找大目录。
- 执行
df -h,看 Use% ,找到使用率高的挂载点(比如/);- 进入该挂载点目录:
cd /;- 执行
du -sh *,列出当前目录下各个子目录大小,找出占用最大目录;cd进入大目录,再次du -sh *,逐层往下定位大文件。
看一个实际例子

看独立分区
-
筛选:排除所有
tmpfs、devtmpfs(内存盘); -
剩下每一行,Mounted on 是目录 ,就是独立挂载的分区,一共 8 个独立磁盘分区。
bash/dev/mapper/rootvg-root → Mounted on / /dev/sda1 → Mounted on /boot /dev/mapper/rootvg-opt → Mounted on /opt /dev/mapper/rootvg-var → Mounted on /var /dev/mapper/rootvg-home → Mounted on /home /dev/mapper/vgdata-lvdata → Mounted on /database /dev/mapper/vgbackup-lvbackup→ Mounted on /backup /dev/mapper/vgarch-lvarch → Mounted on /archive
Filesystem 这一列 /dev/mapper/xxx 是什么
/dev/mapper/ 是 LVM 逻辑卷(Linux 逻辑卷管理),属于磁盘分区的一种。
- 名字前缀:
rootvg代表同一个卷组 rootvg 里的多个逻辑卷:root、opt、var、home。它们来自同一组物理磁盘 ,但是独立分区,空间互相隔离。 vgdata、vgbackup、vgarch是另外不同卷组,对应另外的物理磁盘。
8. 进程与作业:查看运行状态和控制程序
| 命令 | 用途 |
|---|---|
ps aux |
所有进程快照 |
ps -ef |
进程列表(另一种格式) |
pstree |
进程树 |
kill PID进程号 |
正常结束进程,等价发送 SIGTERM(15) 信号 |
kill -9 PID进程号 |
强制杀死进程,当出现进程卡死、kill 无效时才用,慎用,会丢数据 |

通过 ps、top 读取的进程原始信息都来自 Linux 内核,大部分基础信息 (PID、内存、进程状态等)是一致的。
二者核心差别在于:
- ps 是执行一次就输出的静态快照 ,而 top 会持续采样、实时刷新;
- 两者 CPU 使用率的计算逻辑不同,ps 的 CPU 是进程启动以来的平均值 ,top 是采样周期内的瞬时值。
9. 查看网络与连接服务器
| 命令 | 用途 |
|---|---|
ip a |
网卡 IP 地址 |
ip route |
路由表 |
ss -tulnp |
监听端口 |
ping |
连通性测试 |
curl -v url |
请求接口 |

目前正在监听端口的有:
- sshd:TCP 22 端口 → ssh 远程登录
- chronyd:UDP 323 端口 → chrony 时间同步内部端口,主动去外部 NTP 服务器同步时间
10. 查看服务和日志:适用于 systemd 系统
进程是运行实例,服务则是由管理器按配置管理的一项任务。一个服务可能包含一个或多个进程。
以下命令列出正在运行的服务:
bash
systemctl list-units --type=service --state=running --no-pager

可以看到,目前一共有 7 个正在运行的基础系统服务
chronyd.service NTP client/server # 时间同步服务
crond.service Command Scheduler # 定时任务(crontab)
dbus.service D-Bus System Message Bus # 系统消息总线,供各进程通信
getty@tty1.service Getty on tty1 # 终端控制台登录
sshd.service OpenSSH server daemon # ssh远程登录服务(TCP22)
systemd-journald.service Journal Service # 系统日志服务,收集系统日志
systemd-logind.service User Login Management # 用户登录会话管理
获取实际服务名后,可以查询其状态和日志。服务命名存在发行版差异,例如 SSH 服务在不同系统上的名称可能不同。
bash
systemctl status 实际服务名.service --no-pager
journalctl -u 实际服务名.service -n 50 --no-pager
前者显示服务状态及部分最近日志,后者查看该服务的最近 50 条 journal 日志。注意 Loaded 与 Active 字段;active (running) 表示服务正在运行,failed 表示失败。active (exited) 则可能是一次性任务已完成,需要结合服务类型解释。
journalctl 能看到的日志受当前用户权限、日志留存和服务日志输出方式影响;有些应用另写自己的日志文件,不能仅凭这里没有记录就判断它没有产生日志。
除了查看状态,systemctl 也负责服务的启动、停止和启用关系管理:
| 动作 | 含义 |
|---|---|
systemctl start 服务名 |
启动服务 |
systemctl stop 服务名 |
停止服务,会影响它正在提供的功能 |
systemctl restart 服务名 |
重启服务(停止后再启动),原本未运行时也会尝试启动 |
systemctl enable 服务名 |
按 unit 的安装配置建立启用关系,通常用于随开机目标启动,单独执行通常不会立即启动服务 |
systemctl disable 服务名 |
移除对应启用关系,单独执行通常不会立即停止正在运行的服务 |
这些变更通常需要管理员权限,并会影响服务的可用性。远程会话尤其依赖 SSH 和网络服务,停止相关服务可能中断连接。
如果容器或某些环境没有以 systemd 作为系统管理器,systemctl 可能无法使用,这时应使用该环境实际的服务管理方式。
11. 常见报错与定位方向
| 现象 | 先检查什么 |
|---|---|
command not found |
命令是否拼错、是否安装;用 command -v 命令名 查看 Shell 能否找到它 |
No such file or directory |
用 pwd 确认位置,再用 ls 检查大小写和路径 |
Permission denied |
用 whoami、id、ls -l 检查身份及权限,同时留意路径上的目录权限 |
Is a directory |
命令需要文件,但给了目录;检查操作对象和参数 |
Directory not empty |
rmdir 的目标有内容,先用 ls -la 目录 看清楚 |
| 命令没有输出就回到提示符 | 很多修改命令成功时本来就不输出 ,可以用 ls 或 cat 查看结果 |
| 命令一直不结束 | 可能是 tail -f、top 等持续程序,按各自退出方式结束 |
| 无法保存编辑结果 | 检查文件和目录权限、磁盘剩余空间,不要立即扩大所有权限 |