0005. shell命令--cd

目录

5. shell命令--cd

功能说明

语法格式

选项说明

实践操作

注意事项


5. shell命令--cd

功能说明

        cd 是 Linux 和其他类 Unix 系统中用于改变当前工作目录的命令,它的全名是 "change directory"。切换到指定的路径。路径可以是绝对路径,也可以是相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

        另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

语法格式

cd [dirName]

选项说明

.

切换到当前目录

..

切换到上一级目录

~

切换到用户家目录

-

切换到上一次所在目录

-L

切换到符号链接所在的目录

-P

切换到符号链接对应的实际目录

实践操作

1. 指定目录:使用 cd 命令后接目录路径来切换到指定目录
pwd    #打印一下目前的路径
cd /etc/    #切换到指定目录
pwd    #再次打印一下

2. 无参数:直接键入 cd 并回车,会将用户带回其家目录
cd    #无参数,直接输入 cd
pwd    #打印一下

3. .:表示当前目录(通常用于执行当前目录下的脚本或程序),..:表示上一级目录
cd /etc/sysconfig/network-scripts/    #切换到一个比较长的路径下
pwd    #显示一下路径
cd .    #一个点 . 表示当前目录
pwd    #发现没有变化
cd ..    #二个点表示上一级所在目录
pwd    #发现已经切换到上一级目录下了
cd ../..    #这里表示切换到上一级的上一级目录
pwd    #查看一下当前路径

4. ~ 或 $HOME 或 直接 cd :表示当前用户的家目录
cd ~    #这种方法可以快速切换到当前登录用户的家目录
pwd    #查看一下当前路径
useradd user    #添加一个 ueer 用户
su - user    #切换到该用户下
whoami    #查看当前登录用户
pwd     #查看一下当前路径
cd /etc/sysconfig/network-scripts/    #切换到一个比较长的路径下
pwd    #查看一下当前路径
cd    #直接输入 cd 切换也可以快速回到当前登录用户的家目录
pwd    #查看一下当前路径
cd -    #切换到之前的工作目录,这个可以来回切换的
pwd    #查看一下当前路径
cd $HOME    #这种方法也可以回到当前登录用户的家目录
pwd    #查看一下当前路径
logout 或 ctrl + D   #退出当前用户
whoami    #查看当前登录用户
!su    #使用最近以 su 开头的命令
whoami    #查看当前登录用户
Ctrl + d  #使用快捷键退出当前用户  
whoami     #查看当前登录用户

5. -P:如果设置了物理目录模式,则使用物理路径而不是逻辑路径。这在存在符号链接时尤其有用。
cd /bin    #切换到目录 /bin 
pwd    #查看一下当前路径
cd -P /bin   #加上大写字母 -P  
pwd    #看一下和之前看一下有啥区别

6. 使用 !$ 来引用上一条命令的最后一个参数(也可以使用快捷键:Esc + . )。
ls /var/log    #先来查看一下目录 /var/log 
cd !$    #然后输入这个命令 #上一步执行完后也可以按 cd + [快捷键按一下Esc,再按 . ] 
pwd    #看一下效果

命令示例:1. 指定目录:使用 cd 命令后接目录路径来切换到指定目录

pwd    
cd /etc/   
pwd 

输出结果:

[root@MineGi ~]# pwd
/root
[root@MineGi ~]# cd /etc/
[root@MineGi /etc]# pwd
/etc
[root@MineGi /etc]#

命令示例:2. 无参数:直接键入 cd 并回车,会将用户带回其家目录

cd
pwd

输出结果:

[root@MineGi /etc]# cd
[root@MineGi ~]# pwd
/root
[root@MineGi ~]#

命令示例:3. .:表示当前目录(通常用于执行当前目录下的脚本或程序),..:表示上一级目录

cd /etc/sysconfig/network-scripts/  
pwd   
cd .  
pwd   
cd .. 
pwd   
cd ../..
pwd 

输出结果:

[root@MineGi ~]# cd /etc/sysconfig/network-scripts/
[root@MineGi /etc/sysconfig/network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@MineGi /etc/sysconfig/network-scripts]# cd .
[root@MineGi /etc/sysconfig/network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@MineGi /etc/sysconfig/network-scripts]# cd ..
[root@MineGi /etc/sysconfig]# pwd
/etc/sysconfig
[root@MineGi /etc/sysconfig]# cd ../..
[root@MineGi /]# pwd
/
[root@MineGi /]#

命令示例:4. ~ 或 $HOME 或 直接 cd :表示当前用户的家目录

cd ~   
pwd    
useradd user  
su - user   
whoami    
pwd     
cd /etc/sysconfig/network-scripts/  
pwd   
cd    
pwd   
cd -  
pwd   
cd $HOME    
pwd  
Ctrl + d   

whoami 

输出结果:

[root@MineGi /]# cd ~
[root@MineGi ~]# pwd
/root
[root@MineGi ~]# useradd user
[root@MineGi ~]# su - user
[user@MineGi ~]$ whoami 
user
[user@MineGi ~]$ pwd
/home/user
[user@MineGi ~]$ cd /etc/sysconfig/network-scripts/
[user@MineGi /etc/sysconfig/network-scripts]$ pwd
/etc/sysconfig/network-scripts
[user@MineGi /etc/sysconfig/network-scripts]$ cd
[user@MineGi ~]$ pwd
/home/user
[user@MineGi ~]$ cd -
/etc/sysconfig/network-scripts
[user@MineGi /etc/sysconfig/network-scripts]$ pwd
/etc/sysconfig/network-scripts
[user@MineGi /etc/sysconfig/network-scripts]$ cd $HOME
[user@MineGi ~]$ pwd
/home/user
[user@MineGi ~]$ 登出
[root@MineGi ~]# whoami 
root
[root@MineGi ~]# 

命令示例:5. -P:如果设置了物理目录模式,则使用物理路径而不是逻辑路径。这在存在符号链接时尤其有用。

cd /bin   
pwd   
cd -P /bin
pwd  

输出结果:

[root@MineGi ~]# cd /bin
[root@MineGi /bin]# pwd
/bin
[root@MineGi /bin]# cd -P /bin
[root@MineGi /usr/bin]# pwd
/usr/bin
[root@MineGi /usr/bin]#

命令示例:6. 使用 !$ 来引用上一条命令的最后一个参数(也可以使用快捷键:Esc + . )。

ls /var/log  
cd !$    
pwd    

输出结果:

[root@MineGi /usr/bin]# ls /var/log
anaconda  dmesg               messages  tuned                 vmware-network.log
audit     dmesg.old           rhsm      vmware-network.1.log  vmware-vgauthsvc.log.0
boot.log  firewalld           sa        vmware-network.2.log  vmware-vmsvc-root.log
btmp      grubby_prune_debug  secure    vmware-network.3.log  vmware-vmtoolsd-root.log
chrony    lastlog             spooler   vmware-network.4.log  wtmp
cron      maillog             tallylog  vmware-network.5.log  yum.log
[root@MineGi /usr/bin]# cd !$
cd /var/log
[root@MineGi /var/log]# pwd
/var/log
[root@MineGi /var/log]# 

注意事项

  • 如果 cd 命令后没有跟任何路径,那么它会将当前工作目录更改为用户的家目录。
  • 如果提供的路径不存在,cd 命令会失败,并显示错误信息。
  • 在某些 shell(如 bash)中,cd 命令还支持命令历史功能。例如,cd - 会切换到上一个工作目录。
  • 在 Windows 的 CMD 中,cd 的用法与 Unix/Linux 类似,但路径分隔符为反斜杠(\)而非正斜杠(/)。在 PowerShell 中,你可以使用 Unix 风格的路径分隔符,或者继续使用 Windows 风格的路径。

        记住,不同的 shell 和操作系统可能会有细微的语法差异和额外的功能,因此最好查阅特定环境的官方文档以获取最准确的信息。

### 如何在 ADB Shell 中使用 `cd` 命令切换目录 在 Android 调试桥 (ADB) 的 shell 环境下,默认情况下无法通过简单的 `cd` 命令来更改工作目录,因为每次运行 `adb shell` 都会启动一个新的 shell 会话[^1]。这意味着即使你在当前会话中成功执行了 `cd` 命令并切换到了目标目录,在退出该会话后再重新进入时,仍然会回到默认的工作目录 `/`。 为了实现真正的目录切换效果,可以采用以下几种方式: #### 方法一:保持单一会话 如果希望在一个持续的会话中多次使用 `cd` 和其他命令操作,则可以通过单独打开一个交互式的 ADB shell 来完成: ```bash adb shell ``` 一旦进入了这个交互模式,就可以像平常一样使用 `cd` 切换目录以及执行后续命令而无需重复输入完整的路径[^2]。 #### 方法二:组合命令一次性执行 当不需要维持长期连接只是想临时改变某些脚本或者指令的作用范围时,可以把多个命令串联起来一起发送给设备处理。例如下面的例子展示了如何先进入指定文件夹再调用 PHP 文件: ```bash adb shell 'cd /data/local/tmp && ls' ``` 这里的关键在于将所有的动作放在一对引号 `' '` 内部作为单一字符串传递给远程终端解释器解析执行。这样做的好处是可以确保每一步都基于前一步的结果继续下去直到结束为止。 #### 方法三:创建批处理脚本 对于更复杂的场景比如定期维护任务等场合,建议编写专门的小型Shell Script保存至本地计算机然后上传到移动装置内部存储位置之后再由后者负责加载实施整个流程。举个例子来说就是先准备好这样一个名为example.sh的内容: ```bash #!/bin/sh cd /mnt/sdcard/myapp/ ./start_server.sh & exit ``` 接着利用push功能把它传送到目标机器上去: ```bash adb push example.sh /data/local/tmp/example.sh ``` 最后赋予可执行权限并且触发它即可: ```bash adb shell chmod +x /data/local/tmp/example.sh adb shell sh /data/local/tmp/example.sh ``` 以上三种途径都可以有效解决关于怎样正确运用CD于安卓平台上的疑问,并且各有优劣适用于不同需求层次下的开发人员选用最适合自己项目特点的方式去实践探索未知领域!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值