cd 命令,是 Change Directory 的缩写,用来切换工作目录。
Linux 命令按照来源方式,可分为两种,分别是 Shell 内置命令和外部命令。所谓 Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,所以会有命令的执行文件。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。
cd 命令的基本格式如下:
[root@localhost ~]# cd [相对路径或绝对路径]
除此之外,cd 命令后面可以跟一些特殊符号,表达固定的含义,如下表所示:
特殊符号 | 作 用 |
---|---|
~ | 代表当前登录用户的主目录 |
~用户名 | 表示切换至指定用户的主目录 |
- | 代表上次所在目录 |
. | 代表当前目录 |
.. | 代表上级目录 |
它们的用法分别是:
1、
[root@localhost vbird]# cd ~
#表示回到自己的主目录,对于 root 用户,其主目录为 /root
[root@localhost ~]# cd
#没有加上任何路径,也代表回到当前登录用户的主目录
[root@localhost ~]# cd ~vbird
#代表切换到 vbird 这个用户的主目录,亦即 /home/vbird
2、
[root@localhost ~]# cd ..
#表示切换到目前的上一级目录,亦即是 /root 的上一级目录的意思;
需要注意的是,在 Linux 系统中,根目录确实存在 .(当前目录)以及 ..(当前目录的父目录)两个目录,但由于根目录是最顶级目录,因此根目录的 .. 和 . 的属性和权限完全一致,也就是说,根目录的父目录是自身。
3、
[root@localhost /]# cd -
#表示回到刚刚的那个目录
如果你仔细观察的话,不难发现,其实在 [root@localhost ~] 中,就已经指明了当前所在的目录,通常刚登陆时会位于自己的主目录中,而 ~ 就表示主目录,因此也就有了通过使用 cd ~
可以回到自己的主目录。
【例 1】学习 cd - 的用法
[root@localhost ~]# cd /usr/local/src
#进入/usr/local/src目录
[root@localhost src]# cd -
/root
[root@localhost ~]#
#"cd -"命令回到进入 src 目录之前的主目录
[root@localhost ~]# cd -
/usr/local/src
[root@localhost src]#
#再执行一遍"cd -"命令,又回到了 /usr/local/src 目录
【例 2】学习 cd . 和 cd .. 的用法
[root@localhost ~]# cd /usr/local/src
#进入测试目录
[root@localhost src]# cd ..
#进入上级目录
[root@localhost local]# pwd
/usr/local
#pwd是査看当前所在目录的命令,可以看到我们进入了上级目录 /usr/local
[root@localhost local]# cd .
#进入当前目录
[root@localhost local]# pwd
/usr/local
#这个命令不会有目录的改变,只是告诉大家"."代表当前目录
由于 Linux 文件系统中有许多目录,当用户执行一条 Linux 命令又没有指定该命令或参数所在的目录时,Linux 系统就会首先在当前目录(目前的工作目录)搜寻这个命令或它的参数。因此,用户在执行命令之前,常常需要确定目前所在的工作目录,即当前目录。
当用户登陆 Linux 系统之后,其当前目录就是它的主目录。那么,如何确定当前目录呢?可以使用 Linux 系统的 pwd 命令来显示当前目录的绝对路径。
pwd 命令,是 Print Working Directory (打印工作目录)的缩写,功能是显示用户当前所处的工作目录。
该命令的基本格式为:
[root@localhost ~]# pwd
【例 1】
[root@localhost ~]# whoami
root
[root@localhost ~]# pwd
/root
whoami 命令用于确定当前登陆的用户,后续会做详细介绍。可以看到,root 用户当前所在目录是它的主目录 /root。
【例 2】
[demo@localhost ~]# whoami
demo
[demo@localhost ~]# pwd
/home/demo
以上代码表明,当前登陆 Linux 系统的是用户 demo,当前所在目录为 demo 的主目录 /home/demo。
注意,在 [demo@localhost ~]#
这一部分中,虽然也显示出当前所在的目录(例如 ~ 表示主目录),但此位置只会列出整个路径中最后的那一个目录,比如:
[root@localhost ~]# cd /var/mail
[root@localhost mail]# pwd
/var/mail
我们知道,不同的目录中,目录名是可以重复的,因此,仅通过 [root@localhost mail]
中的 mail,根本无法判断其所在的具体位置,而使用 pwd 命令,可以输出当前所在目录的完整路径。
黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等