Linux cd命令详解
学习Lnix首先会接触到的就是cd命令。cd 命令是linux最为基础的命令之一,简略它的功能就是改变当前的工作目录。 玩蛇网python之家本文会深入讲解关于linux cd命令的操作。
Linux cd命令详解示例如下:
cd 命令是什么?
它是一个内部命令,绝大多数的 Linux 发行版都将 Bash Shell 用作默认的 Shell。Bash 有一些自己内部的命令,cd 就是其中一个。我将会解释究竟什么是内部命令,以及为什么 cd 会是一个内部命令。
第一个示例,我们来检查确认你的当前 shell 以及环境变量,命令操作方法如下图所示。
下图中是用which 命令来检查 cd 所在的路径:
因为在我们的系统中 cd 命令其实并没有对应某个 binary,但是我们却又仍然可以执行这个命令,这就是因为 cd 其实是 BASH 的一个内部命令。
内部命令都是被整合进入 shell 里面的。接下来我们可以继续使用 type 命令来查看 cd 这个内部命令的更多信息。
Linux cd命令详解,可以看看内部命令的手册,会发现并没有为它们单独设置手册。
针对内部命令它并没有创建单独的进程,所以它们执行起来才会非常快。
让我们从简单的开始聊起吧。我不会说太多繁琐细节,但是想要弄明白这个问题,还是需要对 Unix 进程有一点了解。
不管 BASH 什么时候创建了一个进程,这个进程事实上都是在 BASH 的一个子 shell 中运行。这些新的进程会做一些改变,或是显示一些东西(如果需要的话),以及当这个进程死亡的时候,子 shell 并不会向当前 BASH 返回信息。
请注意,cd 所做的是改变 shell 的 PWD。 因此倘若 cd 是一个外部命令,那么它改变的将会是子 shell 的 PWD,也不会向父 shell 返回任何东西。所以,当前 shell 的 PWD 就不会做任何改变。所有能对当前 shell的环境作出改变的命令都必须是内部命令。 因此如果我们将 cd 做成外部命令,就无法像原来一样改变当前目录了。
好了,现在让我们再来聊聊 cd 命令的用法。
cd 命令的用法:
如果你不加任何参数地来使用 cd 命令,不管你现在在哪,都会把你带到你的 home 目录下。
其实波浪线符号(~)代表的也是 home 目录,我们同样可以用它回到 home
通常用~配合其下的子目录名,来切换到自己home下的子目录,如:cd ~/Desktop。
如果你是 root 权限的用户,你可以通过使用波浪号加任何一个用户名来切换到该用户的 home 目录下。
在一些 Linux 发行版中,没有特权的用户默认是没有权限访问其他用户的 home 目录的。
再来看. 目录代表的是当前目录,而 .. 代表的是上级目录。所以我们可以使用 ..来返回到上级目录的操作。
大部分情况下,cd . 是不会改变你的 PWD。举例来看:
但是如果你的当前目录已经被重命名了,那么你的 PWD 就会发生改变:
在 BASH 和大部分其他的 shell 中,你可以提供两种不同的路径:绝对路径和相对路径。
绝对路径以 / 开始,并且和你的 PWD 无关。
而相对路径不会以 / 开始,并且和你的 PWD 相关。
使用绝对路径来改变 PWD:
使用相对路径来改变 PWD:
我们可以在两个目录切换:
cd - 命令可以返回上一次的工作目录,我们可以使用它在两个不同的目录中快速切换。
我们上一次的工作目录会被储存在 OLDPWD 这个变量中。但是如果你在一个新开启的终端中来使用的话,会报出下面的错误:
你可以配合 cd 命令来使用一些 bash 小技巧。
使用 *:iplaypy.com
help命令,是用来查看所有的内部命令的一个帮助。它自身也是一个linux内部命令。方法如下:
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/linux/l6961.html
相关文章 Recommend
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • Linux物理内存使用量的查询方法
- • 提升工作效率的Unix操作命令示例
- • 被忽略的Linux系统命令
- • 2017常用Vim编辑命令大全
- • 初学者常用到的Linux进程命令有
- • cat命令合并文件Linux操作方法
- • IPv6协议关闭方法基于linux的操作
- • linux下Eclipse闪退怎么办?
- • PowerShell bash脚本的快速安装方法
- • Linux系统安装及使用calcurse库应用
图文精华 RECOMMEND
-
Linux物理内存使用量的查询方法
-
提升工作效率的Unix操作命令示例
-
2017常用Vim编辑命令大全
-
IPv6协议关闭方法基于linux的操作
-
Linux系统安装及使用calcurse库应用
-
Linux下mdp演示工具的使用方法
热点文章 HOT
- linux下Eclipse闪退怎么办?
- 应聘面试Linux基础问题及答案
- 初学者常用到的Linux进程命令有哪
- Linux系统locate命令使用方法详解
- Linux系统自动备份shell脚本示例
- 功能扩展示例之Cloud9 JavaScript ID
- 2017常用Vim编辑命令大全
- Linux下mdp演示工具的使用方法