• L4.linux命令每日一练 -- 第二章 文件和目录操作命令 -- pwd和cd命令


    2.1 pwd:显示当前所在位置的信息

    2.1.1 命令详解

    【命令星级】 ★★★★★

    【功能说明】

    ​ pwd命令是“print working directory”中每个单词的首字母缩写,其功能是显示当前工作目录的绝对路径。在实际工作中,我们在命令行操作命令时,经常会在各个目录路径间进行切换,此时可使用pwd命令快速查看当前所在的目录路径。

    【语法格式】

    pwd [option]
    pwd [选项]		
    
    • 1
    • 2

    ​ 说明:

    ​ 1)注意pwd命令与后面的选项之间至少要有一个空格。

    ​ 2)通常情况下,执行pwd命令不需要附带任何参数。

    【选项说明】

    ​ 表2-1针对pwd命令的参数选项进行了说明。

    ​ 表2-1 pwd命令的参数选项及说明
    在这里插入图片描述
    ​ 查看命令帮助时,我们经常会看到"-L,–logical"这样的选项,这种写法的意思是“-L”和“–logical”的功能是一样的,在使用选项时,只需要选择一种即可,但不能同时使用,而我们最常用的就是简写的“-L”这个格式。

    ​ 此外,在表2-1中提到的PWD系统环境变量,可以利用“$”符号输出其值,示例代码如下:

    [root@centos7 ~]# echo $PWD	#echo命令能够输出指定变量,具体用法见echo命令。
    /root
    [root@centos7 ~]# pwd -L	#显示逻辑(忽略软链接文件)路径。
    /root
    
    • 1
    • 2
    • 3
    • 4

    ​ 也就是说,pwd -L和echo $PWD二者的功能是等价的。

    2.1.2 使用范例

    2.1.2.1 基础范例

    ​ **范例2-1:**不带任何选项执行pwd命令。

    [root@centos7 ~]# pwd	#不带任何选项执行pwd命令
    /root	#输出的目录路径为当前用户root的家目录
    [root@centos7 ~]# cd /etc/init.d/	#进入/etc/init.d/目录,cd命令的具体用法请参见本书5.2.2节cd命令的详解。
    [root@centos7 /etc/init.d]# pwd
    /etc/init.d	#此时用户所在的路径为/etc/init.d目录。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ​ **范例2-2:**对比使用-L和-P参数(了解即可)。

    [root@centos7 ~]# cd /bin
    [root@centos7 /bin]# ll /bin	#ls命令的具体用法请参见本书ls命令。
    lrwxrwxrwx. 1 root root 7 Oct  1 14:39 /bin -> usr/bin	#/bin是/usr/bin目录的软链接,相当于快捷方式。后面在讲解ln命令时,(8.2.3节)会讲解此知识。
    [root@centos7 /bin]# pwd -L	#获取环境变量的PWD对应的值,即为echo $PWD的结果。
    /bin
    [root@centos7 /bin]# echo $PWD	#输出环境变量PWD对应的值。
    /bin
    [root@centos7 /bin]# pwd -P	#显示链接对应的源文件的目录路径。
    /usr/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.1.2.2 高级案例

    ​ 在讲解本案例之前,先思考一下,为什么管理员会用到pwd命令呢?

    ​ 这是因为我们通过命令行管理Linux时,经常会切换到不同的路径,而输入pwd命令可以随时查看当前的路径是什么。

    ​ 其实,在系统中使用Bash命令行就会自动显示用户当前所在的路径,但是默认情况下这个路径显示不全,范例2-3将会向大家展示如何配置以在命令行直接显示当前用户所在的完整路径。

    ​ **范例2-3:**在Bash命令行显示当前用户的完整路径。

    ​ 系统Bash命令行的提示符是由一个叫做PS1的系统环境变量控制的。PS1对应的知识见表2-2。

    ​ 表2-2 PS1变量对应知识列表

    在这里插入图片描述
    ​ 因此,要想查看当前PS1变量的值,可采用如下命令:

    [root@centos7 ~]# echo $PS1	#打印超级管理员对应的PS1值。
    [\u@\h \W]\$	#@是一个分隔符,与邮箱地址中的@作用类似。
    
    • 1
    • 2

    ​ 可修改PS1变量对应的值,并让命令行显示全路径:

    [root@centos7 ~]# PS1='[\u@\h \w]\$ ' #将默认的\W改为\w (小写w),此命令仅临时生效。
    [root@centos7 ~]# cd /etc/sysconfig/	#切换目录实验。
    [root@centos7 /etc/sysconfig]#	#可以看到此处的路径就是全路径了。
    
    • 1
    • 2
    • 3

    ​ 上面的方法只是临时性的,若要让PS1变量永久生效,可采用如下配置方法。

    ​ 编辑/etc/bashrc文件,找到符合下面内容的一行(大约在第36行),将内容中大写的W改为小写的w,即可让变量永久生效。也就是将:

    [ "PS1="\\s-\\v\\$ " ] && PS1="[\u@\h \W]\\$ "
    
    • 1

    ​ 改为下面的内容,保存并退出/etc/bashrc文件:

    [ "PS1="\\s-\\v\\$ " ] && PS1="[\u@\h \w]\\$ "
    
    • 1

    ​ 更漂亮美观的命令行PS1变量设置参数如下:

    PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\\$"
    
    • 1

    ​ 最后,注销重新登录系统或直接执行source /etc/bashrc使得修改的信息生效,有关Linux终端提示符还有很多有用又好玩的技巧呢!

    2.2 cd:切换目录

    2.2.1 命令详解

    【命令星级】 ★★★★★

    【功能说明】

    ​ cd命令是"change directory"中每个单词的首字母缩写,其功能是从当前工作目录切换到指定的工作目录。

    【语法格式】

    cd [option] [dir]
    cd [选项] [目录]
    
    • 1
    • 2

    ​ 说明:

    ​ 1)注意cd命令以及后面的选项和目录,每个元素之间都至少要有一个空格。

    ​ 2)cd命令后面的选项和目录等参数都可以省略。默认情况下,单独执行cd命令,可切换到当前登录用户的家目录(由系统环境变量HOME进行定义)。

    ​ 3)cd是bash shell的内置命令,查看该命令对应的系统帮助需要使用help cd。

    【选项说明】

    ​ 表2-3针对cd命令的参数选项进行了说明。

    ​ 表2-3 cd命令的参数选项及说明

    在这里插入图片描述
    ​ 对于cd命令,笔者有一些实践经验分享如下。

    • 在使用cd命令时,如果键盘上“Tab”键的自动补齐功能,则可以提高输入速度和准确度。这个“Tab”键的自动补齐功能同样也适用于其他命令。

    • 需要了解一下路径的概念,不日,相对路径不是从“/”斜线开始的路径,而是从当前目录或指定的目录开始的,例如,data/,mnt/oldboy;绝对路径是从"/"斜线根开始的路径,例如,/data/,/mnt/oldboy。

    • 当需要切换到当前用户上一次所在的目录时,请使用"cd -“(注意中间的空格);当需要切换到当前用户的家目录时,请使用"cd ~”(注意中间的空格);当需要切换到当前目录的上一级目录所在的路径时,请使用“cd …”(注意中间的空格)。

    2.2.2 使用范例

    ​ **范例2-4:**进入系统/etc目录(cd /etc)。

    [root@centos7 ~]# pwd
    /root	#在Linux系统中每个用户都有自己的家目录,默认情况下,用户系统登录后会进入自己的家目录。root用户的家目录是/root,普通用户的家目录默认是/home/用户名/。
    [root@centos7 ~]# cd /usr/local/	#切换到/usr/local/目录。
    [root@centos7 /usr/local]# pwd
    /usr/local	#此时已经进入/usr/local/目录了。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ​ **范例2-5:**切换到当前目录的上一级目录(cd …)。

    [root@centos7 /usr/local]# pwd
    /usr/local
    [root@centos7 /usr/local]# cd ..	#“..”等同于上一级目录名,也可以写成"../"。
    [root@centos7 /usr]# pwd
    /usr	#此时切换到了/usr目录。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ​ **范例2-6:**进入当前目录的父目录的父目录(cd …/…/)中。

    [root@centos7 /usr]# cd /usr/local/
    [root@centos7 /usr/local]# pwd
    /usr/local
    [root@centos7 /usr/local]# cd ../../	#退到当前目录的上两级目录,即退到"/"目录。
    [root@centos7 /]# pwd
    /
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ​ 提示:只要目录具有足够多的层次,则可一直这样继续下去“cd …/…/…/…”,直到退到"/"为止。

    ​ **范例2-7:**返回当前用户上一次所在的目录(cd -)。

    [root@centos7 /]# cd /usr/local/
    [root@centos7 /usr/local]# pwd
    /usr/local
    [root@centos7 /usr/local]# cd	#cd命令不接任何参数时,从环境变量HOME获取路径名,即切换到当前用户的家目录。
    [root@centos7 ~]# pwd	#当前用户的工作路径为/root。
    /root
    [root@centos7 ~]# cd -	#执行“cd -”时,cd将从环境变量OLDPWD对应值获取路径名。
    /usr/local	#即切换到了当前用户上一次的工作路径“/usr/local”。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​ **范例2-8:**进入当前用户的家目录(cd ~)。

    [root@centos7 ~]# cd /usr/local/
    [root@centos7 /usr/local]# pwd
    /usr/local
    [root@centos7 /usr/local]# cd ~	#“~”即键盘左上角Esc键下方的波浪符号,其代表家目录。
    [root@centos7 ~]# pwd
    /root	#切换到当前用户的家目录。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ​ 提示:执行不带任何参数的cd命令与"cd ~"结果一样。

  • 相关阅读:
    【Python Web】Flask框架(八)前端基础整合
    企业软件产品和服务 之 设计保证安全 七项承诺
    【Spring Security】安全框架学习(十)
    ElasticSearch在windows环境启动
    2.CSS选择器
    【pytest官方文档】解读- 开发可pip安装的第三方插件
    bqplot教程:在Jupyter Notebook中进行交互式数据可视化
    “干翻”GPT-3,Meta 用开源发起攻势
    GRPC编译安装、各种语言插件及测试
    羊了个羊品牌域名情况如何?
  • 原文地址:https://blog.csdn.net/qq_25599925/article/details/125350810