第六章 Linux文件与目录管理

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

-这里涉及到一个连接的概念连接分为软连接和硬连接软连接跟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列内容(用空格划分列),都代表了什么含义呢?

[image]

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

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

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

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

5列,表示该文件的大小

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

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

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

表示该文件为目录;

表示该文件为普通文件;

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

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

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

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

后边的9位,每三个为一组均为rwx 三个参数的组合其中代表可读,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       =/-/+      文件名

[image]

 

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

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

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

umask数值代表的含义为,上边两条规则中的最大值(文件为666,目录为777)需要减掉的权限预设情况下,rootumask022,而一般使用者则为002。

posted @ 2014-05-14 15:52  seven7seven  阅读(257)  评论(0编辑  收藏  举报