Linux cd命令:切换目录
Linux pwd命令:显示当前路径
Linux ls命令:查看目录下的文件
Linux mkdir命令:创建目录(文件夹)
Linux rmdir命令:删除空目录
Linux cd命令:切换目录
cd命令(change Directory) 切换工作目录
Linux根据来源,命令可以分为两种,即Shell内置命令和外部命令。所谓Shell内置命令,就是Shell这些命令没有执行文件;外部命令由程序员单独开发,因此将有执行文件。Linux中的绝大多数命令都是外部命令,而cd命令是典型的Shell因此,内置命令cd该命令没有执行文件的路径。
[root@localhost ~]# cd [相对路径或绝对路径]
除此之外,cd命令后面可以用一些特殊的符号来表达固定的含义
[root@localhost ~]# cd ~ #表示回到主目录,对root用户的主目录是/root [root@localhost ~]# cd #没有路径,也代表返回当前登录用户的主目录 [root@localhost ~]# cd ~Fancy #代表切换Fancy该用户的主目录,即/home/Fancy[root@localhost ~]# cd .. #表示切换到当前上一级目录,即/root上一级目录的含义
需要注意的是,Linux根目录确实存在于系统中.(目录)和..(目前目录的父目录)有两个目录,但因为根目录是顶级目录,所以根目录..和.属性和权限完全一致,即根目录的父目录是自己的。
[root@localhost ~]# cd - #表示回到刚才的目录
其实在 [root@localhost ~] 目前的目录已经指了目前的目录,通常在第一次登录时就位于自己的主目录中, ~ 它表示主目录,因此通过使用它 cd ~
可以回到自己的主目录。
Linux pwd命令:显示当前路径
由于Linux当用户执行一个目录时,文件系统中有许多目录Linux命令又没有指定该命令或参数所在的目录时,Linux该系统将首先在当前目录(当前工作目录)中搜索该命令或其参数。因此,用户通常需要在执行命令之前确定当前的工作目录,即当前的目录。
当用户登录Linux系统结束后,其当前目录是其主要目录。pwd显示当前目录的绝对路径。
pwd命令,Print Working Directory(打印工作目录)的缩写功能是显示用户当前的工作目录。
[root@localhost ~]# whoami root [root@localhost ~]# pwd /root
whoami命令用于确定当前登录的用户,root用户目前的目录是其主目录/root。
Linux ls命令:查看目录下文件
ls 命令,list 缩写是最常见的目录操作命令,其主要功能是显示当前目录的内容。
[root@localhost ~]# 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 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。
[illusion@Fancy ~]$ ls -al ~ total 112 drwx------. 18 illusion illusion 4096 Jul 12 14:10 . drwxr-xr-x. 6 root root 60 Jul 11 16:18 .. -rw-rw-r--. 1 illusion illusion 0 May 25 10:32 a drwxr-xr-x. 3 root root 93 Jun 9 15:29 abc -rw-------. 1 illusion illusion 1980 Jul 11 16:34 .bash_history -rw-r--r--. 1 illusion illusion 18 Aug 30 2019 .bash_logout -rw-r--r--. 1 illusion illusion 141 Aug 30 2019 .bash_profile -rw-r--r--. 1 illusion illusion 312 Aug 30 2019 .bashrc drwx------. 13 illusion illusion 4096 Jun 9 10:56 .cache -rw-rw-r--. 1 illusion illusion 11 May 25 09:59 cat
通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。其中,目录文件名以蓝色显示,一般文件以白色显示。
Linux 系统中,隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。
drwxr-xr-x. 6 root root 60 Jul 11 16:18 ..
ls 命令还使用了 -l 选项,因此才显示出了文件的详细信息,此选项显示的这 7 列的含义分别是:
第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。 第五列:大小,默认单位是字节。 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。 第七列:文件名或目录名。
查看某个目录的详细信息
[root@Fancy ~]# ls -l /root/ total 48 -rw-r--r--. 1 root root 10 Nov 10 2021 123 -rw-------. 1 root root 1407 Jul 11 14:52 anaconda-ks.cfg lrwxrwxrwx. 2 root root 1 Jun 1 21:19 b -> a drwxr-xr-x. 2 root root 57 Jul 11 14:31 base drwxr-xr-x. 3 root root 22 Nov 10 2021 beixin -rw-r--r--. 2 root root 0 Jul 11 11:45 bols lrwxrwxrwx. 2 root root 1 Jun 1 21:19 c -> a -rw-r--r--. 1 root root 0 Jul 11 11:45 cangls
这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入 "-d" 选项。
[root@Fancy ~]# ls -dl /root/ dr-xr-x---. 23 root root 4096 Jul 12 14:27 /root/
"ls-l" 显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而 "-h" 选项就是按照人们习惯的单位显示文件大小
[root@Fancy ~]# ls -lh total 48K -rw-r--r--. 1 root root 10 Nov 10 2021 123 -rw-------. 1 root root 1.4K Jul 11 14:52 anaconda-ks.cfg lrwxrwxrwx. 2 root root 1 Jun 1 21:19 b -> a drwxr-xr-x. 2 root root 57 Jul 11 14:31 base drwxr-xr-x. 3 root root 22 Nov 10 2021 beixin -rw-r--r--. 2 root root 0 Jul 11 11:45 bols
Linux mkdir命令:创建目录(文件夹)
mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。
mkdir 命令的基本格式为:
[root@localhost ~]# mkdir [-mp] 目录名
-m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
-p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo。
创建目录
[root@Fancy ~]# mkdir cangls [root@Fancy ~]# ls anaconda-ks.cfg cangls ....
建立一个名为 cangls 的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。
使用 -p 选项递归建立目录
[root@Fancy ~]# mkdir -p lm/movie/jp/cangls [root@Fancy ~]# ls anaconda-ks.cfg cangls lm ... [root@Fancy ~]# ls lm/ movie
使用 -m 选项自定义目录权限
[root@Fancy ~]# mkdir -m 711 test2 [root@Fancy ~]# ls -l drwx--x--x. 2 root root 6 Jul 12 14:41 test2 ...
默认权限(默认权限值是 755)。在创建 test2 时,使用了 -m 选项,通过设定 711 权限值来给予新的目录 drwx--x--x 的权限。
Linux rmdir命令:删除空目录
和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为:
[root@localhost ~]# rmdir [-p] 目录名
-p 选项用于递归删除空目录。
[root@Fancy ~]# rmdir cangls
命令后面加目录名称即可,但命令执行成功与否,取决于要删除目录是否是空目录,因为 rmdir 命令只能删除空目录。
通过学习 mkdir 命令我们知道,使用 mkdir -p 可以实现递归建立目录,同样地,rmdir 命令可以使用 -p 选项递归删除目录。例如:
[root@Fancy ~]# rmdir -p lm/movie/jp/cangls/
注意,此方式先删除最低一层地目录(这里先删除 cangls),然后逐层删除上级目录,删除时也需要保证各级目录是空目录。
rmdir 命令的作用十分有限,因为只能刪除空目录,所以一旦目录中有内容,就会报错。例如:
[root@Fancy ~]# mkdir test 建立测试目录 [root@Fancy ~]# touch test/boduo [root@Fancy ~]# touch test/longze 在测试目录中建立两个文件 [root@Fancy ~]# rmdir test rmdir: failed to remove 'test': Directory not empty 删除失败 目录非空