2020年5月22日星期五

Linux命令(11)cd命令

Linux命令(11)cd命令


  • 功能描述:切换目录

  • 语法:cd [目标目录] "[ ]"为可选项。

  • 说明:cd命令可以让用户在不同的目录间来回切换,不过该用户需要有足够的权限才能进入目标目录。

示例1:从当前目录切换至/tmp目录

[root@node1 ~]# cd /tmp/[root@node1 tmp]# pwd/tmp	#当前的工作目录
  • cd:不带任何参数时表示切换回用户的家目录。
  • cd ~:切换回自己的家目录。注意:在bash中,~也表示家目录。
  • cdcd ~都表示切换回用户自己的家目录。
  • 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:上一次工作目录。

PWDOLDPWD为环境变量,我们可以使用$加变量名来引用它的值。

[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


没有评论:

发表评论