您的位置:首页 > 运维架构 > Linux

第六章 Linux文件与目录管理

2014-05-14 15:52 232 查看
http://www.92csz.com/study/linux/6.htm

绝对路径:路径的写法一定由根目录”/”写起

相对路径:路径的写法不是由根目录”/”写起

mkdir 创建一个目录。mkdir [-mp] [目录名称]。

-p参数的作用:递归创建目录,即使上级目录不存在。你想要创建的目录存在的话,会提示报错,然后你加上-p参数后,就不会报错了。

rmdir 删除一个目录。rmdir只能删除目录但不能删除文件。

其只有一个选项-p 类似与mkdir命令,这个参数的作用是将上级目录一起删除。

如果一个目录中还有目录,那么当你直接rmdir 该目录时,会提示该目录不为空,不能删除。

rm 删除目录或者文件。要想删除一个文件,则要用rm命令了。

-r 如果你非要删除不为空的目录,那你用rm -r指令吧。

-f 强制的意思,如果不加这个选项,当删除一个不存在的文件时会报错。

-i 这个选项的作用是,当用户删除一个文件时会提示用户是否真的删除。

which 用来查找一个命令的绝对路径。

alias 用来设置指令的别名。语法:alias[别名]=[指令名称],例如 alias rm='rm -i' ,即当我们使用rm命令时,实际上是使用的是rm –i ,而用绝对路径的/bin/rm 则不会被alias。

ls 就是查看某个目录或者某个文件。后可以跟一个目录,也可以跟一个文件。

-a 全部的档案都列出,包括隐藏的。(隐藏文件的文件名是以.开头的)隐藏文件可以是目录也可以是普通文件;

-l 详细列出文件的属性信息,包括大小、创建日期、所有者所属组等等。

-d 后边跟目录,如果不加这个选项则列出目录下的文件,加上-d后只列出目录本身;

cp copy的简写,即拷贝。格式为 cp [选项] [ 来源文件 ] [目的文件] ,例如我想把test1 拷贝成test2 ,这样即可 cp test1 test2。

-d 这里涉及到一个“连接”的概念。连接分为软连接和硬连接。软连接跟windows中的快捷方式类似。如果不加这个-d 则拷贝软连接时会把软连接的目标文件拷贝过去,而加上-d后,其实只是拷贝了一个连接文件(即快捷方式);

-r 如果你要拷贝一个目录,必须要加-r选项,否则你是拷贝不了目录的;

-i 如果遇到一个存在的文件,会问是否覆盖;

-u 该选项仅当目标文件存在时才会生效,如果源文件比目标文件新才会拷贝,否则不做任何动作。

mv [ 选项 ] [源文件] [目标文件] 移动。

-i 和cp的-i 一样,当目标文件存在时会问用户是否要覆盖;

-u 和上边cp 命令的-u选项一个作用,当目标文件存在时才会生效,如果源文件比目标文件新才会移动,否则不做任何动作。

ln 命令即为建立连接的,以后再做详细解释。

touch 命令,如果有这个文件,则会改变文件的访问时间,如果没有这个文件就会创建这个文件。

echo,其实就是打印,在这里所echo”abc” >111 并没有显示在屏幕上,而是写进了文件 111, 其写入作用的就是这个大于号”>” 在linux中这叫做重定向,即把前面产生的输出写入到后面的文件中。在以后的章节中会做详细介绍,这里你要明白它的含义即可。

cat 111命令则是读一个文件,并把读出的内容打印到当前屏幕上。该命令也会在后续章节中详细介绍。

more 也是用来查看一个文件的内容。当文件内容太多,一屏幕不能占下,而你用cat肯定是看不前面的内容的,那么使用more就可以解决这个问题了。当看完一屏后按空格键继续看下一屏。但看完所有内容后就会退出。如果你想提前退出,只需按q键即可。

less 作用跟more一样,但比more好在可以上翻,下翻。

head head后直接跟文件名,则显示文件的前十行。如果加 –n 选项则显示文件前n行。

tail 和head一样,后面直接跟文件名,则显示文件最后十行。如果加-n 选项则显示文件最后n行。-f 动态显示文件的最后十行,如果文件是不断增加的,则用-f 选项。

环境变量PATH】

为什么我们输入很多命令时是直接打出了命令,而没有去使用这些命令的绝对路径?这是因为环境变量PATH在起作用了。请输入 echo $PATH,这里的echo其实就是打印的意思,而PATH前面的$表示后面接的是变量。

因为/bin 在PATH的设定中,所以自然就可以找到ls了。如果你将 ls 移动到 /root 底下的话,然后你自己本身也在 /root 底下,但是当你执行 ls 的时候,他就是不理你?怎么办?这是因为 PATH 没有 /root 这个目录,而你又将 ls 移动到 /root 底下了,自然系统就找不到可执行文件了,因此就会告诉你, command not found !那么该怎么克服这种问题呢?

有两个方法,一种方法是直接将 /root 的路径加入 PATH 当中!如何增加?可以使用:  

PATH=”$PATH”:/root

另一种方式则是使用完整档名,亦即直接使用相对或绝对路径来执行,例如:

/root/ls

./ls

文件的所有者以及所属组

规定了所有者(user)、所属组(group)以及其他用户(others)对该文件的权限。你可以通过ls -l 来查看这些属性。

【linux文件属性

用ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列),都代表了什么含义呢?



第1列,包含的东西有该文件类型和所有者、所属组以及其他用户对该文件的权限。

第2列,表示为连接占用的节点(inode),若为目录时,通常与该目录地下还有多少目录有关系,关于连接(link)在以后章节详细介绍。

第3列,表示该文件的所有者。

第4列,表示该文件的所属组。

第5列,表示该文件的大小。

第6列、第7列和第8列为该文件的创建日期或者最近的修改日期,分别为月份日期以及时间。

第9列,文件名。如果前面有一个. 则表示该文件为隐藏文件。

第一列共10位。其中第一位用来描述该文件的类型。上例中,我们看到的类型有”d”, “-“ ,其实除了这两种外还有”l”, “b”, “c”,”s”等。

d 表示该文件为目录;

- 表示该文件为普通文件;

l 表示该文件为连接文件(linux file),上边提到的软连接即为该类型;

b 表示该文件为块设备文件,比如磁盘分区;

c 表示该文件为串行端口设备,例如键盘、鼠标。

s 表示该文件为套接字文件(socket),用于进程间通信。

后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所有者(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。

下面拿一个具体的例子来述说一下。

一个文件的属性为-rwxr-xr-- ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,其他用户对其只可读。

对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录。例如一个目录的属性为 drwxr--r-- 其所有者为root,那么除了root外的其他用户是不能打开这个目录的。

更改文件的权限

更改文件的权限,也就是更改所有者、所属组以及他们对应的读写执行权限。

1)更改所属组 chgrp

语法:chgrp [组名] [文件名]

这里用到了groupadd 命令,其含义即增加一个用户组。该命令在以后章节中做详细介绍,你只要知道它是用来增加用户组的即可。

2)更改文件的所有者 chown

语法:chown [ -R ] 账户名 文件名

chown [ -R ] 账户名:组名 文件名

这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。

3)改变用户对文件的读写执行权限 chmod

在linux中为了方便更改这些权限,linux使用数字去代替rwx ,具体规则为r: 4 w:2 x:1 -:0 举个例子,-rwxrwx---用数字表示就是 770。

chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字)

-R 选项作用同chown,级联更改。

值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.

如果你创建了一个目录,而该目录不想让其他人看到内容,则只需设置成 rwxr----- (740) 即可。

chmod 还支持使用rwx的方式来设置权限。语法:chmod u/g/o/a =/-/+ 文件名



umask预设是022,其代表什么含义?先看一下下面的规则:

1)若用户建立为普通文件,则预设“没有可执行权限”,只有rw两个权限。最大为666(-rw-rw-rw-)

2)若用户建立为目录,则预设所有权限均开放,即777(drwxrwxrwx)

umask数值代表的含义为,上边两条规则中的最大值(文件为666,目录为777)需要减掉的权限。预设情况下,root的umask为022,而一般使用者则为002。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: