文件管理
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& (中间没有空格)