- 发布日期
Linux基础命令(一):目录结构、命令格式与路径操作
- 作者
- 姓名
- 缘
- 社交账号
文章目录
本篇学习范围
Linux 基础命令很多,但并不是从背命令开始。本篇先解决一个更基础的问题:终端现在位于哪里,怎样准确表示并切换到目标目录。
围绕这条主线,会学习:
- Linux 的目录树和路径写法。
- Linux 命令的通用格式。
ls、cd、pwd的完整基础用法。- 绝对路径、相对路径和
. / .. / ~三个特殊路径符。 - 用
mkdir创建单层和多层目录。
下一篇会在此基础上操作文件、查找文件;第三篇再进入文本处理、重定向和 Vim。
Linux 的目录结构
Linux 的目录结构是一棵从根目录 / 开始的树。系统只有一个顶级根目录,所有文件和文件夹都位于 / 的下面:
/
├── home
│ └── alice
│ ├── Desktop
│ └── project
├── usr
│ └── local
└── var
这与 Windows 的多盘符结构不同:
| 系统 | 路径起点 | 层级分隔符 | 示例 |
|---|---|---|---|
| Windows | C:、D: 等盘符 | \ | D:\\data\\work\\hello.txt |
| Linux | 唯一根目录 / | / | /usr/local/hello.txt |
在 Linux 中,/ 出现在不同位置含义不同:
/home/alice/project
↑
开头的 /:根目录
/home/alice/project
↑ ↑
后续的 /:目录层级关系
例如,根目录下有 test 文件夹,其中有 hello.txt,它的路径写作:
/test/hello.txt
如果根目录下有 itcast/itheima/hello.txt,路径则是:
/itcast/itheima/hello.txt
理解“从 / 向下逐层定位”后,后续所有命令中的路径参数都会容易很多。
Linux 命令的通用格式
绝大多数 Linux 命令都可以按下面的形式理解:
command [-options] [parameter]
| 部分 | 含义 | 示例 |
|---|---|---|
command | 命令本身,决定要做什么 | ls |
-options | 可选项,改变命令行为 | -l |
parameter | 参数,通常指定操作对象 | /home/alice |
方括号只表示“可选”,不属于要输入的内容。例如:
ls -l /home/alice
这里 ls 是命令,-l 是选项,/home/alice 是参数。
不是每条命令都有选项和参数。比如 pwd 没有必要参数,直接输入即可;mkdir 则必须提供要创建的目录路径。
当命令包含多个参数时,通常用空格分隔:
cp source.txt target.txt
先分清“命令、选项、参数”三个位置,遇到陌生命令时就能更容易读懂它的帮助信息。
工作目录、HOME 目录与 ls
什么是当前工作目录
终端在任意时刻都有一个“当前工作目录”。没有写路径时,很多命令默认就在这个目录中工作。
用户打开终端后,系统通常把当前用户的 HOME 目录设为初始工作目录。普通用户 alice 的 HOME 目录通常为:
/home/alice
root 用户的 HOME 目录通常是 /root,不要与系统根目录 / 混淆。
ls:列出目录中的内容
ls(list)用于列出目录内容,课件中的完整基础语法可写为:
ls [-a -l -h] [Linux 路径]
不写选项和参数时,ls 以平铺形式列出当前工作目录:
ls
写入路径参数时,列出指定目录:
ls /
ls /home/alice
ls ~/Desktop
常用选项如下:
| 命令 | 作用 | 说明 |
|---|---|---|
ls -a | 显示全部内容 | 包含隐藏文件和隐藏目录 |
ls -l | 详细列表展示 | 显示权限、链接数、所有者、大小、修改时间和名称等信息 |
ls -h | 易读方式显示大小 | 显示 K、M、G 等单位,必须与 -l 配合使用 |
ls -lh | 详细列表且大小易读 | 最常用的组合之一 |
ls -al | 全部内容加详细列表 | 排查配置文件时常用 |
选项可以分开写,也可以合并写:
ls -l -a
ls -la
ls -al
这三种写法的效果相同,都会显示隐藏文件并使用详细列表。
隐藏文件
Linux 中,名称以 . 开头的文件和目录会默认隐藏:
.bashrc
.config
.git
它们仍然是真实存在的文件,只是普通 ls 不显示。使用 ls -a 可以查看。不要因为“看不到”就误以为它不存在,也不要随意删除用户目录中的隐藏配置文件。
cd 和 pwd:确认并切换当前位置
pwd:输出当前工作目录
pwd 来自 Print Working Directory,用于输出当前终端所在位置:
pwd
它没有常用参数和选项。初学时不要仅根据 ls 的结果猜测所在目录,直接使用 pwd 最准确。
cd:切换工作目录
cd 来自 Change Directory,用于进入目标目录:
cd 路径
例如:
cd /usr/local
cd /home/alice/Desktop
cd 不写参数时,会回到当前用户的 HOME 目录:
cd
一个安全的目录切换习惯是:
cd ~/project
pwd
ls
先切换,再确认位置,最后查看目录内容。执行复制、删除等会修改文件的命令前,尤其应该先确认当前位置。
绝对路径、相对路径和特殊路径符
假设当前工作目录是:
/home/alice
想进入其中的 Desktop 目录,有两种写法:
cd /home/alice/Desktop
cd Desktop
绝对路径
绝对路径以根目录 / 为起点,始终从 / 开始写:
/home/alice/Desktop
/usr/local/bin
无论终端当前在哪里,绝对路径指向的位置都不变。脚本、配置文件和需要明确表达位置的命令中常使用绝对路径。
相对路径
相对路径以当前工作目录为起点,不以 / 开头:
Desktop
project/src
logs/app.log
相对路径更短,但它的含义依赖当前目录。如果当前目录不是预期位置,同一串文字可能指向完全不同的文件。
三个特殊路径符
| 符号 | 表示什么 | 示例 | 结果 |
|---|---|---|---|
. | 当前目录 | cd . | 仍在当前目录 |
.. | 上一级目录 | cd .. | 返回上一级 |
~ | 当前用户 HOME 目录 | cd ~ | 回到 HOME |
它们可以组合使用:
cd ./Desktop # 当前目录中的 Desktop
cd ../.. # 连续返回两级
cd ~/project # HOME 目录中的 project
若当前处于 /home/alice/Desktop,那么:
. 等价于 /home/alice/Desktop
.. 等价于 /home/alice
../.. 等价于 /home
~ 等价于 /home/alice
mkdir:创建目录
mkdir 来自 Make Directory,用来创建新的目录:
mkdir 目录路径
路径可以是绝对路径、相对路径,也可以含有 ~、.、..:
mkdir logs
mkdir ~/project
mkdir ./output
-p:连同不存在的父目录一起创建
若上级目录不存在,直接创建多层路径会失败:
mkdir ~/itcast/itheima/nice/666
这时添加 -p:
mkdir -p ~/itcast/itheima/nice/666
-p 会自动补齐路径中不存在的父目录,并完成最后一级目录创建。它很适合初始化项目目录结构。
创建目录时的权限提示
新目录需要写入目标位置的权限。普通用户一般可以在自己的 HOME 目录下创建内容,但在 /usr、/etc 等系统目录中可能因权限不足失败。不要为了创建一个练习目录就切换成 root;先选择 HOME 目录练习即可。
本篇命令速查
| 目标 | 常用命令 |
|---|---|
| 查看当前位置 | pwd |
| 查看当前目录内容 | ls |
| 查看隐藏文件和详细信息 | ls -al |
| 进入目录 | cd 路径 |
| 回到 HOME 目录 | cd 或 cd ~ |
| 返回上一级目录 | cd .. |
| 创建一个目录 | mkdir 目录名 |
| 创建连续多级目录 | mkdir -p 路径 |