linux总结(五):Linux文件与目录命令cd 、pwd,ls,mkdir,rmdir,touch

一、cd命令

          cd 命令,是 Change Directory 的缩写,用来切换工作目录。

1、cd 命令的基本格式如下:

            [root@localhost ~]# cd [相对路径或绝对路径]

除此之外,cd 命令后面可以跟一些特殊符号,表达固定的含义,如表 1 所示:

表 1 cd 命令的特殊符号
特殊符号 作 用
~ 代表当前登录用户的主目录
~用户名 表示切换至指定用户的主目录
- 代表上次所在目录
. 代表当前目录
.. 代表上级目录

 2、“cd  ~”或者" cd ":

              回到主目录。root或者home目录。

3、“cd  -” :

              回到刚刚的目录。

4、pwd 命令用于显示当前所在的目录

5、"cd  ."或者“cd  ..”:

              到当前目录和到上一级目录。

二、pwd显示当前路径

         pwd 命令,是 Print Working Directory (打印工作目录)的缩写,功能是显示用户当前所处的工作目录

 1、whoami 命令用于确定当前登陆的用户

           [root@localhost ~]# whoami
           root
          [root@localhost ~]# pwd
           /root

2、注意,在 [demo@localhost ~]# 这一部分中,虽然也显示出当前所在的目录(例如 ~ 表示主目录),但此位置只会列出整个路径中最后的那一个目录

         [root@localhost ~]# cd /var/mail
         [root@localhost mail]# pwd
         /var/mail 

          我们知道,不同的目录中,目录名是可以重复的,因此,仅通过 [root@localhost mail] 中的 mail,根本无法判断其所在的具体位置,而使用 pwd 命令,可以输出当前所在目录的完整路径。 

三、ls  查看目录下文件

         ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。 

1、基本格式:

            [root@localhost ~]# ls [选项] 目录名称

2、命令常用选项:

表 1 ls 命令常用选项及功能
选项 功能
-a 显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
-A 显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。
-d 仅列出目录本身,而不是列出目录内的文件数据。
-f ls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
-F 在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
-h 以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
-i 显示 inode 节点信息。
-l 使用长格式列出文件和目录信息。
-n 以 UID 和 GID 分别代替文件用户名和群组名显示出来。
-r 将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。
-R 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
-S 以文件容量大小排序,而不是以文件名排序。
-t 以时间排序,而不是以文件名排序。
--color=never
--color=always
--color=auto
never 表示不依据文件特性给予颜色显示。
always 表示显示颜色,ls 默认采用这种方式。
auto 表示让系统自行依据配置来判断是否给予颜色。
--full-time 以完整时间模式 (包含年、月、日、时、分)输出
--time={atime,ctime} 输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。

        注意,当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。除此之外,如果想使用 ls 命令显示更多内容,就需要使用表 1 相应的选项。

3、ls -al

[root@www ~]# ls -al ~
total 156
drwxr-x---  4 root root  4096 Sep 24 00:07 .
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ..
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw-------  1 root root   955 Sep 24 00:08 .bash_history
-rw-r--r--  1 root root    24 Jan  6  2007 .bash_logout
-rw-r--r--  1 root root   191 Jan  6  2007 .bash_profile
-rw-r--r--  1 root root   176 Jan  6  2007 .bashrc
drwx------  3 root root  4096 Sep  5 10:37 .gconf
-rw-r--r--  1 root root 42304 Sep  4 18:26 install.log
-rw-r--r--  1 root root  5661 Sep  4 18:25 install.log.syslog

        通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。其中,目录文件名以蓝色显示,一般文件以白色显示。注意,Linux 系统中,隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。

        不仅如此,这里的 ls 命令还使用了 -l 选项,因此才显示出了文件的详细信息,此选项显示的这 7 列的含义分别是:

  1. 第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。
  2. 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
  3. 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
  4. 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
  5. 第五列:大小,默认单位是字节。
  6. 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  7. 第七列:文件名或目录名。

4、如果我们想查看某个目录的详细信息,例如:

         [root@localhost ~]# ls -l /root/
         总用量44
         -rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
         -rw-r-r--.1 root root 24772 1 月 14 18:17 install.log
          -rw-r-r--.1 root root 7690 1 月 14 18:17 install.log.syslog

           这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入 "-d" 选项。

          [root@localhost ~]# ls -ld /root/
          dr-xr-x---.2 root root 4096 1 月 20 12:30 /root/

5、"ls-l" 显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而 "-h" 选项就是按照人们习惯的单位显示文件大小的, 显示KB或者MB

            [root@localhost ~]# ls -lh
           总用量44K
           -rw-------.1 root root 1.2K 1 月 14 18:18 anaconda-ks.cfg
          -rw-r-r--.1 root root 25K 1 月 14 18:17 install.log
           -rw-r-r--.1 root root 7.6K 1 月 14 18:17 install.log.syslog

四、mkdir命令:创建目录(文件夹) 

mkdir 命令,是 make directories 的缩写,用于创建新目录

1、基本格式:

[root@localhost ~]# mkdir [-mp] 目录名 

  • -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
  • -p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo

2、使用 -p 选项递归建立目录。

             [root@localhost ~]# mkdir lm/movie/jp/cangls
             mkdir:无法创建目录"lm/movie/jp/cangls":没有那个文件或目录
             [root@localhost ~]# mkdir -p lm/movie/jp/cangls

 3、使用 -m 选项自定义目录权限。

[root@localhost ~]# mkdir -m 711 test2
[root@localhost ~]# ls -l

         仔细看上面的权限部分,也就是 ls 命令输出的第一列数据(绿色部分),test 和 test1 目录由于不是使用 -m 选项设定访问权限,因此这两个目录采用的是默认权限(这里的默认权限值是 755,后续章节再详细介绍默认权限)。而在创建 test2 时,使用了 -m 选项,通过设定 711 权限值来给予新的目录 drwx--x--x 的权限,有关权限值的具体含义也放到后续章节介绍。 

五、rmdir命令  删除空目录

        rmdir(remove empty directories 的缩写)命令用于删除空目录

1、基本格式:

         [root@localhost ~]# rmdir [-p] 目录名 

              -p 选项用于递归删除空目录。 

2、rmdir 命令可以使用 -p 选项递归删除目录。

 [root@localhost ~]# rmdir -p lm/movie/jp/cangls

             此方式先删除最低一层地目录(这里先删除 cangls),然后逐层删除上级目录,删除时也需要保证各级目录是空目录。

3、rmdir 命令的作用十分有限,因为只能刪除空目录,所以一旦目录中有内容,就会报错。例如:

        [root@localhost # mkdir test
        #建立测试目录
        [root@localhost ~]# touch test/boduo
        [root@localhost ~]# touch test/longze
        #在测试目录中建立两个文件
        [root@localhost ~]# rmdir test
        rmdir:删除"test"失败:目录非空

六、touch命令 创建文件及修改文件时间戳

        touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。

 1.Linux 系统中,每个文件主要拥有 3 个时间参数(通过 stat 命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:

  • 访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变。
  • 数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
  • 状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

2、基本格式:

[root@localhost ~]# touch [选项] 文件名

选项:

  • -a:只修改文件的访问时间;
  • -c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
  • -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
  • -m:只修改文件的数据修改时间。
  • -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

        可以看到,touch 命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。因为,不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,即状态修改时间会随之改变(更新为操作当前文件的真正时间)。

[root@localhost ~]#ll --time=atime bols
#查看文件的访问时间
-rw-r--r-- 1 root root 0 Sep 25 21:23 bols
#文件上次的访问时间为 9 月 25 号 21:23
[root@localhost ~]#touch bols
[root@localhost ~]#ll --time=atime bols
-rw-r--r-- 1 root root 0 May 15 16:36 bols
#而如果文件已经存在,则也不会报错,只是会修改文件的访问时间。

[root@localhost ~]# touch -d "2017-05-04 15:44" bols
[root@localhost ~]# ll bols; ll --time=atime bols; ll --time=ctime bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 Sep 25 21:40 bols
#ctime不会变为设定时间,但更新为当前服务器的时间 

--time={atime,ctime} 输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。

 

你可能感兴趣的:(Linux操作系统)