Linux 基本命令超详细解释第一期 | cd | pwd | ls | mkdir | rmdir
一、cd
cd
是 change directory 的缩写,用于切换当前工作目录。
1. 进入指定目录
cd /etc
2. 回到用户主目录
cd
# 或
cd ~
3. 返回上一次所在目录
cd -
4. 回到上一级目录
cd ..
5. 进入当前目录(不常用)
cd .
6. 使用环境变量
$HOME
:当前用户的主目录$PWD
:当前所在目录$OLDPWD
:上一次所在目录
例如:
cd $OLDPWD
等同于 cd -
。
注意事项
内建命令
cd
是 Shell 内建命令,而不是单独的可执行文件。
验证方式:type cd # 输出: cd is a shell builtin
目录不存在会报错
cd /not/exist # bash: cd: /not/exist: No such file or directory
脚本中的容错写法
cd /some/path || echo "目录不存在"
二、pwd
pwd
是 print working directory 的缩写,用于显示当前工作目录的绝对路径。
1. 显示当前目录
pwd
2. 显示逻辑路径(默认)
pwd -L
可能包含符号链接
3. 显示物理路径(解析符号链接)
pwd -P
什么是逻辑路径 (Logical Path) 和 物理路径 (Physical Path)。
逻辑路径 (Logical Path)
逻辑路径就是 你在命令行中看到和使用的路径,可能包含 符号链接。
如果你通过符号链接进入目录,逻辑路径会保留符号链接的名字。
例子:
cd /tmp
ln -s /usr/local mylink # 建一个符号链接 mylink -> /usr/local
cd mylink # 进入符号链接
pwd -L
ln
是 link 的缩写,用于在文件之间创建链接,此处暂不详细解释。
输出:
/tmp/mylink
👉 逻辑路径保留了 mylink
这个符号链接名。
物理路径 (Physical Path)
物理路径就是 实际存放数据的真实目录路径,不会显示符号链接,而是解析到真实位置。
接着上面例子:
pwd -P
输出:
/usr/local
👉 物理路径直接显示真实目录 /usr/local
。
三、ls
ls
是 list 的缩写,用于列出目录内容。
1. 查看当前目录
ls
2. 查看指定目录
ls /usr/local
3. 显示详细信息(长格式)
ls -l
-l是 "long format"(长格式) 的缩写
4. 显示隐藏文件
ls -a
-a= all(显示所有文件)(包括以点开头的隐藏文件)
5. 文件大小友好显示
ls -lh
-h是 "human-readable"(人类可读) 的缩写,人类可读的文件大小单位(如 KB/MB)
6. 同时显示隐藏文件+详细信息+友好大小
ls -lha
7. 按时间排序
ls -lt
8. 按大小排序
ls -lS
9. 只显示目录
ls -d */
10. 递归显示子目录
ls -R
其他
which ls
# 一般在 /bin/ls 或 /usr/bin/lsalias ll='ls -l'
# ll 通常是 ls -l 的别名ls --color
# 开启颜色区分,便于识别文件类型
四、mkdir
mkdir
是 make directory 的缩写,用于创建目录。
1. 创建单个目录
mkdir mydir
👉 在当前目录下创建 mydir
。
2. 创建多级目录
mkdir -p /tmp/a/b/c
👉 如果上级目录不存在,自动一并创建。
p = parents(父目录),不加 -p
会报错:
mkdir: cannot create directory ‘/tmp/a/b/c’: No such file or directory
3. 同时创建多个目录
mkdir dir1 dir2 dir3
4. 指定权限(mode)
mkdir -m xxx newdir
Linux 目录权限用 三组权限表示:
rwx rwx rwx
第一组(Owner/用户):目录所属用户权限
第二组(Group/用户组):目录所属组权限
第三组(Other/其他人):其他人权限
每个权限位用数字表示:
数字 | 权限 | 含义 |
---|---|---|
7 | rwx | 可读、可写、可执行 |
6 | rw- | 可读、可写 |
5 | r-x | 可读、可执行 |
4 | r-- | 只读 |
3 | -wx | 可写、可执行 |
2 | -w- | 可写 |
1 | --x | 可执行 |
0 | --- | 无权限 |
示例 1:所有者可以读写执行,组和其他人可读执行(755)
mkdir -m 755 mydir
数字拆解:
7 5 5
7 = rwx
→ 所有者可以读写执行5 = r-x
→ 用户组可以读和进入目录5 = r-x
→ 其他人可以读和进入目录
示例 2:只有所有者可以访问(700)
mkdir -m 700 private
数字拆解:
7 0 0
7 = rwx
→ 所有者可以读写执行0 = ---
→ 用户组没有权限0 = ---
→ 其他人没有权限
示例 3:每个人都可读写执行(777)
mkdir -m 777 public
数字拆解:
7 7 7
每个人都可以读、写、进入目录
权限组合 | 能做什么 |
---|---|
r(读) | 可以列出目录里的文件名(ls ) |
x(执行) | 可以进入目录(cd ) |
r + x | 可以进入目录,并列出文件名 |
w(写) | 可以创建、删除、重命名目录里的文件(前提是有 x) |
5. 显示过程
mkdir -v mydir
英文缩写:v = verbose(详细的)
👉 输出提示信息,例如:
mkdir: created directory 'mydir'
五、rmdir
rmdir
是 remove directory 的缩写,用于删除空目录。
1. 删除单个空目录
rmdir mydir
目录必须为空,否则会报错:
rmdir: failed to remove 'mydir': Directory not empty
2. 递归删除空目录(父目录)
rmdir -p /tmp/a/b/c
会先删除
c
,然后删除b
,最后删除a
,前提是每一级都是空目录。
3. 注意事项
rmdir
只能删除空目录,非空目录需要使用rm -r
:
rm -r mydir
对于系统管理,慎用
rm -r
,避免误删重要文件。