文件管理

1.创建一个空文本文件:

    touchfilename

   就创建了一个文件名为filename的空文本文件 linux下的默认的文件格式都是纯文本 ,不用考虑后缀的问题

 

2建立一个目录:mkdir

    功能:创建一个目录(类似MSDOS下的md命令)。

    语法:mkdir [选项] dir-name

    说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或 文件名称。

    命令中各选项的含义为:

    -m对新建目录设置存取权限。也可以用chmod命令设置。

    -p可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

 

3.进入其他目录:cd

    功能:改变工作目录。

    语法:cd [directory]

    说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory, 则    回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。

    cd.. 回当前目录的上一级目录

    cd- 回上一次所在的目录

    cd~ 或 cd 回当前用户的宿主目录

    cd空格 / 是回最高级,也就是 /

   

 

4.删除文件/目录:rm

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

    语法:rm [选项] 文件

    说明:如果没有使用-r选项,则rm不会删除目录。

    该命令的各选项含义如下:

    -f忽略不存在的文件,从不给出提示。

    -r指示rm将参数中列出的全部目录和子目录均递归地删除。

    -i进行交互式删除。

    rmdirRmdir 空目录名 删除一个空目录(只能)

 

5.linux cat 使用:

    1:键入cat > filename.txt 后回车

      录入文本内容;

      键入回车;

      在键盘上按下Ctrl+D(或者键入Control-D)。

   

    2:一次显示整个文件。$ cat filename

 

    3:将几个文件合并为一个文件: $cat file1 file2 > file

    参数:

    -n或 --number 由 1 开始对所有输出的行数编号

    -b或 --number-nonblank 和-n 相似,只不过对于空白行不编号

    -s或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

    -v或 --show-nonprinting

    例:

    把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里

    cat-n textfile1 > textfile2

 

    把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

    cat-b textfile1 textfile2 >> textfile3

 

6.查询当前目录文件列表:ls

    ls/ 显示/.下的所有文件和目录

    ls-l 给出文件或者文件夹的详细信息

    ls-a 显示所有文件,包括隐藏文件

    ls|more 分屏显示

 

7.查询当前所在目录:pwd

    在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,  也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前   处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路   径名。

    语法:pwd

    说明:此命令显示出当前工作目录的绝对路径。

 

8.文件内容查询

    1cat:由第一行开始显示文件内容

    2tac:从最后一行开始显示,可以看出tac是cat的倒写形式

    3nl:显示的时候,顺便输出行号

    4more:一页一页地显示内容

    5less:与more类似,但是比more更好的是,它可以往前翻页!

    6head:只看头几行

    7tail:只看结尾几行

    8od:以二进制的方式读取文件内容!

 

9.修改文件属性

    chgrp:改变文件所属用户组

        root@deng:~#chgrp 用户组 文件名

 

    chown:改变文件所有者

        root@deng:~#chown 帐号名称:组名 文件或目录

        应用:当将某个文件复制给别的用户(同一或不同用户组)时,单纯的cp复制给         人家,人家还是没有权限对其进行修改,这时需要对文件的所有者进行修改。

 

10.复制文件:cp

    该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命 令一样,功能十分强大。

    语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 到目标文件或把多个源文件复制到目标目录中。

    该命令的各选项含义如下:

    -a该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作 用等于dpR选项的组合。

    -d拷贝时保留链接。

    -f删除已经存在的目标文件而不提示。

    -i和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件 将被覆盖,是交互式拷贝。

    -p此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

    -r若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。    此时目标文件必须为一个目录名。

    -l不作拷贝,只是链接文件。

 

11.指令名称 : chmod

    使用权限 : 所有使用者

    使用方式 : chmod [-cfvR] [--help] [--version] mode file...

    说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod   可以藉以控制档案如何被他人所调用。

    参数 :

    mode: 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中

    u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示 其他以外的人,a 表示这三者皆是。

    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该    档案已经被设定过为可执行。

    -c: 若该档案权限确实已经更改,才显示其更改动作

    -f: 若该档案权限无法被更改也不要显示错误讯息

    -v: 显示权限变更的详细资料

    -R: 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变  更)

    --help: 显示辅助说明

    --version: 显示版本

    范例 :将档案 file1.txt 设为所有人皆可读取 :

    chmodugo+r file1.txt 

    将档案 file1.txt 设为所有人皆可读取 :

    chmoda+r file1.txt 

    将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,    但其他以外的人则不可写入 :

    chmodug+w,o-w file1.txt file2.txt 

    将 ex1.py 设定为只有该档案拥有者可以执行 :

    chmodu+x ex1.py 

    将目前目录下的所有档案与子目录皆设为任何人可读取 :

    chmod-R a+r * 

    此外chmod也可以用数字来表示权限如 chmod 777 file

    语法为:chmod abc file

    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

    r=4,w=2,x=1

    若要rwx属性则4+2+1=7;

    若要rw-属性则4+2=6;

    若要r-x属性则4+1=7。

    范例:

    chmoda=rwx file 

    和

    chmod777 file 

    效果相同

    chmodug=rwx,o=x file 

    和

    chmod771 file 

    效果相同

    若用chmod 4755 filename可使此程序具有root的权限

 

12. find 命令

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

find命令的一般形式为;

find pathname -options[-print -exec -ok ...]

find / -name"filename"

目的:在根目录“/”开始搜被称为filename的文件,“filename”文件名可以包含通配符(*,?),注意:filename是文件名字符串,可以带双引号,也可不带find命令功能强大,它有很多选项让你以不同的方式搜索文件,例如,通过日期,文件大小,权限,拥有者等等。

find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

 

find命令选项

-name

按照文件名查找文件。

-perm

按照文件权限来查找文件。

-prune

使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user

按照文件属主来查找文件。

-group

按照文件所属的组来查找文件。

-mtime -n +n

按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-m time选项。

-nogroup

查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser

查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

-newer file1 ! file2

查找更改时间比文件file1新但比文件file2旧的文件。

-type

查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

 

13. locate 命令 

locate filename 
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。 
locate命令的使用实例: 
$ locate /etc/sh 
搜索etc目录下所有以sh开头的文件。 
$ locate ~/m 
搜索用户主目录下,所有以m开头的文件。 
$ locate -i ~/m 
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。 

发现包含字符串“filename”的文件名。这比find命令更容易。但是基于数据库(通常在夜间重建),所以你无法找到刚刚存到文件系统的文件。为了强制立即更新数据库,作为超级用户可以使用:updatedb& (中间没有空格)