• 导言
  • cd命令
    • 作用
    • 用法
    • 详细全选项参数解释
    • 常用选项
      • -l选项
      • -P选项
    • 其他应用
      • 使用绝对路径
      • 使用相对路径
        • 实践一
        • 实践二
        • 实践三
      • 波浪号 用户主目录
        • 实践四
      • 访问您的邻居的主目录也可以自己
      • -破折号上一个目录
        • 实践五
      • 切换开关
      • 把上个命令的参数作为cd参数使用
      • 使用CDPATH变量加快Linux cd命令操作
      • 小贴士
  • 总结

导言

前面的文章,介绍了pwd命令,现在介绍cd命令,前面有一个实践使用到了。一般人认为cd命令没有选项,就改变工作目录左右,实则不然,cd命令还有一些选项。而且cd命令涉及到一些变量,这些问题我们还是接下来的学习中去探究一二。

cd命令

cd 是Change Directory 的缩写,这是用来变换工作目录的指令

作用

  1. 改变shell的工作目录
  2. 用参数dir的值去改变当前的目录。默认的当前目录(登录成功后的值)是HOME变量的值。
  3. CDPATH变量对包含DIR的目录定义了搜索路径(加快cd搜索速度)。CDPATH变量中,目录之间以冒号(:)分隔。空目录名称的作用和当前目录一致。如果DIR是以斜线/开始,CDPATH则不会使用。
  4. 如果目录找不到(不存在此目录),shell解释器会设置cdable_vars,这个词被认为是变量名。如果这个变量有值,这个值将会被使用为dir,改变当前目录。(此为纠正cd错误而进行的,涉及到了shopt命令)

用法

cd [-L|[-P [-e]]] [dir]

详细全选项参数解释

短选项 含义(作用)
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
-P 果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-e 如果提供-p选项,当改变要转到一个正确的目录(确定是的可以成功的目录),这时当前工作目录确定并没有正确的转到,则返回非0状态(不成功状态)。

默认情况下,使用cd命令和指定-L选项的执行结果一致。

退出状态:
如果当前工作目录被改变,则返回0状态。其他情况下为非0状态;

常用选项

-l选项

-P选项

其他应用

绝对路径和相对路径在后面阶段会详细讲解,如果还不知道的话,后面在过来看本节应用

使用绝对路径

cd /var
cd /usr/spool/mail
cd /home/anthony

您完全可以到达任何目录 — 如果有权限的话(您需要执行权限)— 使用它的绝对路径名。

如果您进入的目录不是有效目录,或者您没有访问该目录的权限,cd 命令将报告一个错误。如果您的 cd 命令失败,那么您仍将处于原目录中。

使用相对路径

当您只想从目录树的一个分支跳转到附近的另一个分支时,使用绝对路径会有点麻烦,这就是cd 命令允许使用相对路径的原因。默认情况下,相对路径指的是相对于您所在的当前目录的路径。使用相对路径意味着更少的键击,尽管那取决于您要从哪个目录前往哪个目录。

如果您使用-a 标志运行ls 命令,将会看到两个条目:一个是.(圆点),另一个是..(点-点)。单点表示当前目录,双点表示父目

实践一:

# 从/etc 到/etc/init.d
[tqw@localhost etc]$ pwd
/etc
[tqw@localhost etc]$ cd init.d/
[tqw@localhost init.d]$ pwd
/etc/init.d

实践二

# 前往父目录
[tqw@localhost init.d]$ pwd
/etc/init.d
[tqw@localhost init.d]$ cd ../
[tqw@localhost etc]$ pwd
/etc

实践三

# 在一个命令中从分支到分支
[tqw@localhost lpd]$ pwd
/var/spool/lpd
[tqw@localhost lpd]$ cd ../mail/
[tqw@localhost mail]$ pwd
/var/spool/mail

~(波浪号), 用户主目录

每位 Linux(UNIX) 用户都有一个主目录,在创建用户时定义。可以在/etc/passwd 中或使用smit 查询主目录,但有更好的方法返回主目录。如果您想返回主目录,可以运行不带任何参数的cd 命令

实践四

# 转到用户主目录
[tqw@localhost mail]$ cd
[tqw@localhost ~]$ pwd
/home/tqw
[tqw@localhost ~]$ cd /var/
[tqw@localhost var]$ cd $HOME
[tqw@localhost ~]$ pwd
/home/tqw
[tqw@localhost ~]$ echo $HOME
/home/tqw
[tqw@localhost ~]$ cd /var/
[tqw@localhost var]$ cd ~
[tqw@localhost ~]$ pwd
/home/tqw

HOME变量

$HOME 变量对于了解主目录很有用,即使您现在不打算返回主目录。事实上,$HOME 变量太有用了,以至于它有一个别名:波浪号(~)。

您可能需要查看或使用主目录中的文件。如果您位于其他目录中,不必先返回主目录或者键入完整的目录路径,只需使用波浪号即可。可以从主目录之外的某个地方随意复制主目录中的.bash_profile文件(ubuntu中是.profile)。

访问您的邻居的主目录(也可以自己)

使用波浪号列示或处理另一个用户的主目录中的文件(如果有足够权限)。为此,执行后面带该用户登录名的波浪号命令。

# 波浪号是每个人名
[tqw@localhost ~]$ cp ~tqw/.bashrc ~tqw/Desktop/test/

这比猜想用户的主目录更安全,比在/etc/passwd 中查找更容易。

-(破折号),上一个目录

通常,您需要更改目录,只需运行一两个命令,然后返回上一个目录($OLDPWD)。为此,可以使用cd dashback,即cd 后面跟一个破折号(cd -)。

实践五

# OLOPWD的验证
[tqw@localhost ~]$ cd /home/tqw/Desktop/test/
[tqw@localhost test]$ cd -
/home/tqw
[tqw@localhost ~]$ echo $OLDPWD
/home/tqw/Desktop/test
[tqw@localhost ~]$ cd -
/home/tqw/Desktop/test
[tqw@localhost test]$ pwd
/home/tqw/Desktop/test
[tqw@localhost test]$ echo $OLDPWD
/home/tqw
[tqw@localhost test]$ cd /var/mail/
[tqw@localhost mail]$ echo $OLDPWD
/home/tqw/Desktop/test

OLDPWD变量

此变量值为上一次cd所进入的当前目录。并不是上一级目录的意思(父目录)。

切换开关

使用这个cd dashback 的结果是:如果两次输入该命令,就可以在两个目录之间来回切换。这个功能在下面这种情况下很有用:您想在一个目录中更改一个程序或配置文件,然后在另一个目录下的日志文件中查看结果。与其他示例类似,我将跳过您在实际更改目录后可能立即会运行的命令。
(上一个已经展示了,所以不进行实例了)

!$把上个命令的参数作为cd参数使用

cd !$

不进行示例了,有兴趣可以试试看。

使用CDPATH变量加快Linux cd命令操作

本处引用我认为比较好的实例技能的文章介绍的内容

如果你需要经常使用Linux cd命令跳转到某一特定父目录下的多个子目录的话,可以考虑把CDPATH这个环境变量设置为该父目录。

比如,经常操作/etc目录下的若干个子目录的时候,我们就把CDPATH设置为/etc,这样,每次转到/etc下的子目录时就不必加上/etc前缀。

# pwd
/home/topsage
#cd ssh
-bash: cd: ssh: No such file or direcotry
#! 代码:
# export CDPATH=/etc
#cd ssh
#! 这个时候cd ssh命令就会在基础目录/etc中找寻ssh子目录:
# pwd
/etc/ssh
#! 如果想把基础目录永久改变,把下载的代码加入你的~/.bash_profile中即可:
vi ~./bash_profile
export CDPATH=/etc
#! 和PATH变量类似,可以在CDPATH变量加入多个路径(用英文分号:分隔多个目录),这样就更方便了。
export CDPATH=.:~:/etc:/var

这个技巧在使用Linux cd命令跳转到某一特定父目录下的情况下非常有帮助:

Oracle DBA经常在$ORACLE_HOME目录下做一些设置,这个时候CDPATH中加Oracle的根目录就方便多了。

类Unix系统管理员经常修改/etc中有配置文件,可以把/etc加入CDPATH中。

程序开发人员,经常工作在如/home/projects的项目目录里,这个时候CDPATH也能帮上大忙。

终端用户(普通帐号用户)经常在自己的home目录里进行日常操作,可以考虑把 ~ 加入CDPATH变量。

看看,使用CDPATH变量可以加快Linux cd命令的操作呢。

小贴士

提醒一下哦,我们的 Linux 的默认指令列模式 (bash shell) 具有档案补齐功能, 要常常利用 [tab] 按键来达成你的目录完整性啊! 可以避免你按错键盘输入错字,而且对于长名字的目录能减少很多输入时间

总结

我觉得cd命令解释到这里也就差不多了,能让大家了解了cd命令。
关于Linux下用shopt命令来帮我们自动纠错输入cd 错误的扩展,大家可以去百度搜索,一搜就得了。主要是依赖于cdable_vars变量的作用。

Linux(5)RedHat7 基本命令四-cd命令详解相关推荐

  1. Linux(4)RedHat7 基本命令三-pwd命令详解

    导语 pwd命令 作用 用法 详细全选项参数解释 PWD变量 实例-验证cd改变PWD 常用选项 p选项 实例-P和L选项的不同之处 结语 导语 上文讲述了详细的ls的选项参数,这回我们来讲解pwd. ...

  2. linux如何切换到光盘,怎么刻录cd光盘-Linux切换目录之cd命令详解

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 在Linux cd(切换目录)命令是最重要和最广泛使用 ...

  3. linux命令行语法cd用法,每天一个Linux命令之cd命令详解

    Linux系统要学好其它命令则首先要学好cd命令的使用方法和技巧.下面由学习啦小编为大家整理了每天一个Linux命令之cd命令详解,希望对大家有帮助! 每天一个Linux命令之cd命令详解 cd命令用 ...

  4. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

  5. linux命令打包文件,Linux系统中打包文件的命令详解

    linux系统中遇到要打包文件的时候我们该使用什么命令呢?下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux系统中打包文件的命令详解的相关知识,希望对大家有帮助! linux系统 ...

  6. kinux查日志_Linux实时查看日志的四种命令详解

    原标题:Linux实时查看日志的四种命令详解 如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文件更改或不断更新时输出文件的内容.在Linux中实时显示文件内容的常用命令是t ...

  7. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  8. linux内存管理机制以及free命令详解

    linux内存管理机制以及free命令详解 一.linux内存管理机制 1.物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存 ...

  9. linux中关于防火墙的命令,Linux系统中查看防火墙的命令详解

    Linux系统中如果要查看到防火墙的状态信息要怎么办呢?下面由学习啦小编为大家整理了Linux系统中查看防火墙的命令详解,希望对大家有帮助! Linux系统中查看防火墙的命令详解:一.service方 ...

最新文章

  1. js将字符串作为函数名调用函数
  2. 这五款Python工具都是最常用的,尤其是第三种,初学者必须掌握的
  3. #Note# 极客与团队-软件工程师的生存秘笈
  4. 4K观影体验需要网络端到端带宽50M-100M,时延RTT<=20ms,丢包率PLR<=3.4*10
  5. 序列化的高阶认识-Transient 关键字
  6. 动态页面技术(JSP/EL/JSTL)
  7. 14款荣耀/华为机型获版本升级: 适配FlyPods Pro骨声纹识别
  8. js模块封装示例_AngularJS模块教程示例
  9. 基于Java的学生会管理系统
  10. Latex安装与使用
  11. 第三届“传智杯”全国大学生IT技能大赛(初赛B组)题解
  12. 如何修改 / 校正Linux系统时间
  13. 锐捷——DCHP动态分配IP地址
  14. flex布局 justify-content 新属性值 space-evenly
  15. 6.20 C语言练习(找出1至99之间的全部同构数。同构数是这样的一组数:它出现在平方数的右边。)
  16. 缺一位身份证号码时识别计算
  17. Rettrofit设计模式
  18. 类似 MS Project 的项目管理工具有哪些
  19. html是一种通用的方法来,()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A.模板B.类C....
  20. 开胃甜点.1.-【 游戏编辑器 汇总 目录】

热门文章

  1. XXXX项目可实施性报告
  2. java静态函数_(基础)java中的静态变量与静态函数Static
  3. VMware10虚拟机复制文件卡死解决记录
  4. 谷歌浏览器开通flash的访问权限的方式
  5. XML+XSL 实例
  6. Vimium简单使用
  7. 基于LaTeX-OCR公式转换工具的安装与使用
  8. 易语言多线程大漠多线程进程线程多线程
  9. 操作系统之设备管理简介
  10. freeHand Draw