rhel6中文件的基本操作

我们知道FHS限制了 Linux以树状来分布目录的,也谈到了绝对路径与相对路径的相关内容,还有我们在使用命令的时候,为什么不用写全部的路径,命令就能执行,这是为什么?这就是我们今天的学习内容。

相对路径与绝对路径定义

绝对路径:路径是由根目录 / 开始的
相对路径:相对于目前工作目录的路径

相对路径与绝对路径的优缺点

相对路径简单,但只能针对当前的工作目录
绝对路径准确,但是写的内容较多

目录的相关操作

Linux系统上常见的一些符号

在开始操作目录前,先给大家介绍一些大家在Linux系统上常见的一些符号
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表目前用户所在的家目录
注:
1、根目录/下的.与..是代表同一个目录。也就是说..所代表的也就是.
2、这里的-与我们前面su -(相当于su -l)是不同的意思,大家要理解。

常见的处理目录的命令

cd:改变目录(Change Directory)
pwd:显示当前目录(Print Working Directory)
mkdir:建立一个新的目录(make directory)
rmdir:删除一个空的目录

cd 改变目录

cd ~ yufei
进入yufei的家目录
cd ~
进入当前用户的家目录
cd
和cd ~是一样的,都是进入当前用户的家目录
cd ..
进入上层目录
cd -
回到刚才的目录

pwd 显示目前所在的目录

这个命令的使用时机是当你不知道你所在的目录是哪个的情况下,可以直接用pwd显示出当前的工作目录。这里有个重要的参数就是-P,这个参数可以显示出真实的工作目录。这是针对连接而言的。
[root@yufei yufei]# cd /var/mail/
[root@yufei mail]# pwd
/var/mail
[root@yufei mail]# pwd -P
/var/spool/mail
[root@yufei mail]# ls -ld /var/mail
lrwxrwxrwx. 1 root root 10 Dec 15 22:35 /var/mail -> spool/mail

通过上面我们可以看出来,/var/mail这个目录是个连接文件,真正的目录是/var/spool/mail,这就是-P参数的意义。

mkdir 建立新目录

两个重要的参数
-m : 设置mask的值,而不依据系统默认的umask值来创建目录 (mask与umask是不同的含义哦!特别注意)
-p : 递归创建目录(默认的情况下,目录是需要一层层来建立的)
[root@yufei ~]# umask
0022
[root@yufei ~]# mkdir test
[root@yufei ~]# mkdir -m 700 test1
[root@yufei ~]# ls -ld test*
drwxr-xr-x 2 root root 4096 Feb  9 21:35 test
drwx―― 2 root root 4096 Feb  9 21:36 test1

通过上面的对比,我想各位已经明白了-m参数的意义了。
下面我们再来看看这个-p参数的意思
[root@yufei ~]# mkdir test/test/test
mkdir: cannot create directory `test/test/test’: No such file or directory
[root@yufei ~]# mkdir -p test/test/test

发现已经在test目录下创建了test/test这两个目录,如果不用-p参数,就要一层层来建立。

rmdir 删除空目录

也有个-p参数,意义也是一样的,连同上层的空目录一起删除
我们还是以/root里面的test/test/test为例
[root@yufei ~]# touch test/test/test/file
[root@yufei ~]# rmdir test/test/test/
rmdir: failed to remove `test/test/test/’: Directory not empty

如果目录里面有内家的话,那么rmdir是删除不了的,他会有提示“Directory not empty”
[root@yufei ~]# rm -f test/test/test/file
[root@yufei ~]# rmdir test/test/test/

这时候只删除了最底层的test目录,还有test/test这两个目录没有删除,想要连同上层的空目录一起删除的话,可以加上-p参数。
[root@yufei ~]# mkdir test/test/test
[root@yufei ~]# rmdir -p test/test/test/

这时候把最底层的test目录的上层所有的空目录全部删除了。当前目录没有了test目录了。

rm -fr 删除目录及文件

这个命令用起来比较方便快捷,没有任何的提示,直接清空所有的内容,-f的意思就是直接删除,没有提示,而-r就是递归处理的意思。如果你确认你的目录及里面的数据都不要的话,可以用此命令来个痛快的删除。
大家可能会发现很多地方提到“rm -fr /”这个命令,其实这个命令在 RHEL6上我实验过(其他的系统上没有测试),并不能直接执行,运行此命令,会有相应的提示:
[root@yufei ~]# rm -fr /
rm: it is dangerous to operate recursively on `/’
rm: use �Cno-preserve-root to override this failsafe

是不是多了一层保险啊!但是删除其他的目录,没有提示的哦,所以在使用前,一定要确保你执行的操作是正确的。

命令文件的路径(PATH)

正如我们开头所说的一样,我们在运行命令的时候并没有用命令的绝对路径就能直接运行,这就是路径的变量$PATH所起的作用。
[root@yufei ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

我们看到,这个PATH里面包括了这些目录,所以,当我们在执行命令的时候,系统会在这些目录里面查找所要执行的命令,找到后就执行了。目录之间用“:” 号分隔的。如果说,一个命令可能在多个目录里面,那么执行哪个呢?其实,就是先找到者先执行。如果在这些目录里面都找不到的话,那么就会发现一个 “command not found”的提示,告诉你,找不到命令哈!
这里还需要说明一点,不同的用户所拥有的PATH也是不一样的,这个可能参考一下,关于用户和用户组里面的相关知识。

接下来我们再来学习一下文件与目录的管理,说到管理,主要是指查看、属性、复制、删除、移动等等,这也是学习 Linux系统的重要一个环节,这也是管理 Linux系统所必需的内容。

文件与目录的查看命令 ls

-l 列出文件的详细信息。
-a 列出目录下的所有文件,包括以 “.”开头的隐藏文件。
-d 使目录象文件一样显示,而不是显示目录下的文件。
-h 将文件容量以易读的方式(例如 GB, KB 等等)列出来。
-R 列出所有子目录下的文件。
统计当前目录下的文件数和目录数
ls -l * |grep “^-”|wc -l
ls -l * |grep “^d”|wc -l
针对不同类型的文件,以显示彩色列表显示
�Ccolor=never 不要依据档案特性给予颜色显示
�Ccolor=always 显示颜色
�Ccolor=auto 让系统自行依据设定来判断是否给予颜色
为什么有的系统用ls命令的显示的是彩色结果,有的不是?其实,大家可以通过alias命令来看看,你的系统是不是已经把�Ccolor写到别名中了。

复制文件或目录命令 cp

-d 复制时保留原链接
-p 保留源文件或目录的属性,包括所有者、所属组、权限与时间等等
-R 递归处理,将目录下的文件及子目录一并处理
-a 相当于dpR的组合
-f 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 覆盖文件之前先询问用户,交互式复制
-l 进行硬链接(hard link),而非复制文件
-s 复制成为符号链接文件(symbolic link),也就是创建“快捷方式”

删除文件和目录命令 rm

-i 删除前逐一询问确认
-f 直接删除,无需逐一确认
-r 将目录以及子目录均递归地删除(常常使用在删除目录的时候)
大家应该能记得在上一篇文章中,我们说到删除空目录命令rmdir吧,用rm -rf是不是来得更直接、快速

移动文件、目录或改名 mv

-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件
-f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何提示
-u 如果目标文件已经存在,且源文件比较新的话,才会进行更新。相当于update

你可能感兴趣的:(职场,休闲,RHEL6)