Linux命令(11)cd命令
-
功能说明:切换目录
-
用 法:cd [目标目录] “[ ]”为可选项。
cd命令可以让用户在不同的目录间来回切换,不过该用户需要有足够的权限才能进入目标目录。
示例1:从当前目录切换至/tmp目录
[root@node1 ~]# cd /tmp/
[root@node1 tmp]# pwd
/tmp #当前的工作目录
- cd:不带任何参数时表示切换回用户的家目录。
- cd ~:切换回自己的家目录。注意:在bash中,~也表示家目录。
- cd 或 cd ~都表示切换回用户自己的家目录。
- cd ~USERNAME:切换至指定用户的家目录。
- cd -:在上一次目录和当前目录之间来回切换。
- cd ..:切换当前目录的上一级目录。
- .:表示当前目录。
- ..:表示当前目录的上一级目录。
示例2:从当前目录切换至用户的家目录
[root@node1 tmp]# cd #cd命令不带任何参数时表示切换回用户的家目录
[root@node1 ~]# pwd
/root
示例3:从root家目录切换至/home/steven目录
[root@node1 ~]# cd /home/steven/
[root@node1 steven]# pwd
/home/steven
示例4:从普通用户steven切换至root的家目录
[root@node1 steven]# su - steven
[steven@node1 ~]$ cd /root/
-bash: cd: /root/: Permission denied #显示没有权限
从上例可以看出,当前的目录为/home/steven,为什么root用户可以随意切换呢?每个用户都有自己独立的私密空间叫家目录,是不允许别人随意进出的,一般来说只有自己可以进入。对于Linux系统,root用户可以随意切换至任何用户的家目录。
管理员的家目录为/root,普通用户的家目录默认为/home/用户名,只有管理员可以随便进入用户的家目录。
为什么“cd -” 能够在上一次目录和当前目录之间来回切换呢?
[root@node1 ~]# cd /var/log
[root@node1 log]# cd /root
[root@node1 ~]# cd -
/var/log
[root@node1 log]# cd -
/root
Bash是一种SHELL环境,它即为当前用户提供工作环境,又负责解析用户所提供的命令。Shell还有两个环境变量,用来保存当前shell执行环境下的用户所在的目录的路径。
$PWD:当前工作目录,我们可以认为pwd命令就是读取这个变量的值来显示的。
$OLDPWD:上一次工作目录。
PWD和OLDPWD为环境变量,我们可以使用$加变量名来引用它的值。
[root@node1 ~]# echo $PWD
/root
[root@node1 ~]# cd /etc/
[root@node1 etc]# echo $PWD
/etc
[root@node1 etc]# pwd
/etc
其实pwd命令就是读取$PWD这个变量的值来显示的。
[root@node1 etc]# cd -
/root
[root@node1 ~]# echo $OLDPWD
/etc
cd - 就相当于cd $OLDPWD