linux学习(5) cd mkdir rmdir $PATH

本文详细介绍了Linux系统中常用的目录操作命令,包括cd、pwd、mkdir、rmdir等,解释了如何变换目录、显示当前目录、创建及删除目录,并介绍了运行档路径的变量$PATH的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


    • cd (变换目录)

    我们知道vbird这个使用者的家目录是/home/vbird/,而root家目录则是/root/,假设我以root身份在 Linux系统中,那么简单的说明一下这几个特殊的目录的意义是:

    [root@www ~]# cd [相对路径或绝对路径]
    # 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号罗!
    [root@www ~]# cd ~vbird
    # 代表去到 vbird 这个使用者的家目录,亦即 /home/vbird
    [root@www vbird]# cd ~
    # 表示回到自己的家目录,亦即是 /root 这个目录
    [root@www ~]# cd
    # 没有加上任何路径,也还是代表回到自己家目录的意思喔!
    [root@www ~]# cd ..
    # 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
    [root@www /]# cd -
    # 表示回到刚刚的那个目录,也就是 /root 罗~
    [root@www ~]# cd /var/spool/mail
    # 这个就是绝对路径的写法!直接指定要去的完整路径名称!
    [root@www mail]# cd ../mqueue
    # 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/mqueue 就这样写! 
    
      
    • pwd (显示目前所在的目录)
    [root@www ~]# pwd [-P]
    选项与参数:
    -P  :显示出确实的路径,而非使用连结 (link) 路径。
    
    范例:单纯显示出目前的工作目录:
    [root@www ~]# pwd
    /root   <== 显示出目录啦~
    
    范例:显示出实际的工作目录,而非连结档本身的目录名而已
    [root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
    [root@www mail]# pwd
    /var/mail         <==列出目前的工作目录
    [root@www mail]# pwd -P
    /var/spool/mail   <==怎么回事?有没有加 -P 差很多~
    [root@www mail]# ls -ld /var/mail
    lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
    # 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
    # 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!
    
    • mkdir (创建新目录)
    [root@www ~]# mkdir [-mp] 目录名称
    选项与参数:
    -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
    -p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!
    
    范例:请到/tmp底下尝试创建数个新目录看看:
    [root@www ~]# cd /tmp
    [root@www tmp]# mkdir test    <==创建一名为 test 的新目录
    [root@www tmp]# mkdir test1/test2/test3/test4
    mkdir: cannot create directory `test1/test2/test3/test4': 
    No such file or directory       <== 没办法直接创建此目录啊!
    [root@www tmp]# mkdir -p test1/test2/test3/test4
    # 加了这个 -p 的选项,可以自行帮你创建多层目录!
    
    范例:创建权限为rwx--x--x的目录
    [root@www tmp]# mkdir -m 711 test2
    [root@www tmp]# ls -l
    drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
    drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
    drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
    # 仔细看上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。
    # 那么你的默认属性为何?这要透过底下介绍的 umask 才能了解喔! ^_^
    
    • rmdir (删除『空』的目录)
    [root@www ~]# rmdir [-p] 目录名称
    选项与参数:
    -p :连同上一级『空的』目录也一起删除
    
    范例:将於mkdir范例中创建的目录(/tmp底下)删除掉!
    [root@www tmp]# ls -l   <==看看有多少目录存在?
    drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
    drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
    drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
    [root@www tmp]# rmdir test   <==可直接删除掉,没问题
    [root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
    rmdir: `test1': Directory not empty
    [root@www tmp]# rmdir -p test1/test2/test3/test4
    [root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
    drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
    # 瞧!利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除~
    # 不过要注意的是,这个 rmdir 仅能『删除空的目录』喔!
    
    关於运行档路径的变量: $PATH

    经过第六章FHS的说明后,我们知道查阅文件属性的命令ls完整档名为:/bin/ls(这是绝对路径),那你会不会觉得很奇怪:『为什么我可以在任何地方运行/bin/ls这个命令呢? 』为什么我在任何目录下输入 ls 就一定可以显示出一些信息而不会说找不到该 /bin/ls 命令呢?这是因为环境变量 PATH 的帮助所致呀

    当我们在运行一个命令的时候,举例来说『ls』好了,系统会依照PATH的配置去每个PATH定义的目录下搜寻档名为ls的可运行档,如果在PATH定义的目录中含有多个档名为ls的可运行档,那么先搜寻到的同名命令先被运行!

    现在,请下达『echo $PATH』来看看到底有哪些目录被定义出来了?echo有『显示、印出』的意思,而 PATH 前面加的 $ 表示后面接的是变量,所以会显示出目前的 PATH !

    范例:先用root的身份列出搜寻的路径为何?
    [root@www ~]# echo $PATH
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin
    :/bin:/usr/sbin:/usr/bin:/root/bin  <==这是同一行!
    
    范例:用vbird的身份列出搜寻的路径为何?
    [root@www ~]# su - vbird
    [vbird@www ~]# echo $PATH
    /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/vbird/bin
    # 仔细看,一般用户vbird的PATH中,并不包含任何『sbin』的目录存在喔!
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值