linux 文档目录管理 目录管理

原创转载自海牛部落-青牛,http://hainiubl.com/topics/169

1 linux 目录结构

file

bin: 存放二进制可执行文件(ls,cat,mkdir等)
boot: 存放用于系统引导时使用的各种文件
dev: 用于存放设备文件
etc:存放系统配置文件
home: 存放所有用户文件的根目录
lib:存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt:系统管理员安装临时文件系统的安装点
opt:额外安装的可选应用程序包所放置的位置
proc:虚拟文件系统,存放当前内存的映射
root:超级用户目录
sbin:存放二进制可执行文件,只有root才能访问
tmp:用于存放各种临时文件
usr:用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var:用于存放运行时需要改变数据的文件

2 建立文件和目录#

2.1 建立目录:mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

命令格式:

file

命令功能:
通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,同一目录下所创建的文件夹(目录)不能相同(区分大小写)。
参数:
-m:--mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p:--parents 可以是个路径名, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

示例:

1)创建一个空目录:rtest2

file

file

file

file

file

3 移动、复制和删除文档#

3.1 移动和重命名:mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来移动文件或者目录。

file

命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
参数:
-b :若需覆盖文件,则覆盖前先行备份。
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

如果目标文件已经存在,如果当前用户是root 用户,不写 -i 也会提示,而新建的用户,则不会提示。原因在于用户家目录下的.bashrc 文件中配置了别名

file

而新建的用户家目录下的.bashrc 文件没有配置别名。
如果想新建的用户也提示,则在.bashrc 文件中配置,然后用下面命令使修改生效

file

file

file

file

file

file

file

file

file

file

file

3.2 复制:cp
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i 参数。但是如果是在shell 脚本中执行cp 时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。

命令格式:

file

命令功能:
将源文件复制至目标文件,或将多个源文件复制至目标目录。
参数:
-a: –archive 等于-dR –preserve=all
-i: –interactive 覆盖前询问

file

file

file

file

file

3.3 删除:rm
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

命令格式:

file

命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
参数:
-f: --force 忽略不存在的文件,从不给出提示。
-i:--interactive 进行交互式删除
-r, -R: --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。

file

4 改变文档所有权:chown 和 chgrp#

4.1 改变文档的所有权:chown(change own)
chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。

命令格式:
chown [选项]... [所有者][:[组]] 文件或目录...

file

命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。
普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
参数:
-c 显示更改的部分的信息  
-f 忽略错误信息
-h 修复符号链接    
-R 处理指定目录以及其子目录下的所有文件    
-v 显示详细的处理信息

file

file

file

file

file

file

file

4.2 改变文件的所属组:chgrp
在Linux系统里,文件或目录的权限的掌控以拥有者及所属群组来管理。可以使用chgrp 指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以。
Chgrp命令就是change group的缩写!要被改变的组名必须要在/etc/group文件内存在才行。
命令格式:

file

命令功能:
chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。
参数:
-c 当发生改变时输出调试信息
-f 不显示错误信息
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细的处理信息

file

file

4.3 改变文件权限:chmod
chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

4.3.1 符号类型改变档案权限
命令格式:

file

参数:
权限范围
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

file

file

4.3.2 数字类型改变档案权限
命令格式:

file

参数:
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

file

file

file

file

5 建立链接:ln ln 是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的#

目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放
上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

5.1 硬链接
硬链接的意思是一个档案可以有多个名称,存在同一个文件系统中。

以文件副本的形式存在。但不占用实际空间。
不允许给目录创建硬链接。
硬链接只有在同一个文件系统中才能创建。

file

原理:
运行上面这条命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中有一项叫做"链接数",
记录指向该inode的文件名总数,这时就会增加1。反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个
值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。

file

5.2 软链接
文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向
文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。
这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会
因此发生变化。
而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,可以跨越不同的文件系统。

软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
软链接可以 跨文件系统 ,硬链接不可以
软链接可以对一个不存在的文件名进行链接
软链接可以对目录进行链接

file

file

file

一个命令执行了:
先有一个输入:输入可以从键盘,也可以从文件得到。
命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕
命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕三种输入输出的代码分别是: 1)标准输入(stdin);代码为 0 ;
2)标准输出(stdout):代码为 1 ;
3)错误输出(stderr):代码为 2 ;

标准重定向符号

          输出重定向到一个文件或设备 覆盖原来的文件

! 输出重定向到一个文件或设备 强制覆盖原来的文件

        输出重定向到一个文件或设备 追加原来的文件

< 输入重定向到一个程序

标准错误重定向符号
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出

& 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|& 将一个标准错误 管道 输送 到另一个命令作为输入

6.1 输出重定向 将标准输出到屏幕的信息重定向输出到指定文件内。为何要使用命令输出重导向
• 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
• 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
• 一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果,希望他可以存下来时;
• 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;
• 错误讯息与正确讯息需要分别输出时。

常用输出重定向
cmd > file 把 stdout 重定向到 file 文件中;cmd >> file 把 stdout 重定向到 file 文件中(追加);cmd 1> file 把 stdout 重定向到 file 文件中;cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;cmd 2> file 把 stderr 重定向到 file 文件中;cmd 2>> file 把 stderr 重定向到 file 文件中(追加);cmd >> file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中(追加);

file

file

file

file

file

file

6.2 输入重定向:cat 将标准从键盘输入改为从文件输入。 cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从
标准输入读取内容并显示,它常与重定向符号配合使用。

下面简单说明几种使用方式和作用
1)cat << EOF,以EOF输入字符为标准输入结束:
2)cat > filename,创建新文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
3)cat > filename << EOF,以EOF作为输入结束,其中EOF可以是任何字符串,和ctrl+d的作用一样:

file

file

6.3 管道符号:| 利用Linux所提供的管道符 “|” 将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

file

command1正确输出,作为command2的输入,然后comand2的输出作为,comand3的输入,comand3输出就会直接显示在屏幕上面了。
通过管道之后:comand1,comand2的正确输出不显示在屏幕上面。

注意:
1)管道命令只处理前一个命令正确输出,不处理错误输出。
2)管道命令右边命令,必须能够接收标准输入流命令才行。

file

file

file

file

猜你喜欢

转载自blog.csdn.net/qq2531246791/article/details/84593999
今日推荐