linux文件的基本管理

建立文件——cat

cat命令语法:

cat [参数] >|>> [文件名]

实例1:利用cat创建一新文件hhwork,在命令提示符下输入以下命令。

[root@localhost local]#cat >hhwork

[root@localhost local]#cat - >hhwork

用户可以从标准输入为该文件录入内容,也可以按组合键Ctrl+C退出,可以利用ll命令查看新文件的属性。

实例2:对已经存在的文件追加新的内容。

假设当前目录下存在一文件hhwork,对其追加新的一行内容“love”,在命令提示符下输入:

[root@localhost local]#cat >>hhwork

[root@localhost local]#cat - >>hhwork

建立文件——touch

touch命令语法:

touch [参数] [文件名] 

实例1:创建两个文件abc1,abc2,并以当前的时间设定其修改和访问时间。

在命令提示符下输入:

[root@localhost ~]#touch abc1 abc2

[root@localhost ~]#ll abc1 abc2

实例2:利用其他文件的时间属性设置新的文件。

当前目录下,有一文件hhwork,利用该文件的时间属性设置新创建文件“123”的时间属性,同样为了便于观察结果是否执行成功,借助ll命令,在命令提示符下输入以下命令。

[root@localhost ~]#touch -r a 123

[root@localhost ~]#ll hhwork

[root@localhost ~]#ll 123

移动以及重命名文件——mv

mv命令语法:

mv [参数] [源文件或目录] [目标目录或目标文件]

实例1  把当前目录下的abc1移动到/home目录下面,并重新命名为abc1-new。

要实现移动和重命名文件,需要以绝对路径名指出目标文件,目标文件名的父目录为移动目的地,绝对路径中最后的文件名为文件的新名字。

[root@localhost ~]#mv -i abc1 /home/abc1-new 

[root@localhost ~]#ll /home/abc1-new

实例2  移动整个目录下的文件到指定的目标目录。

假设当前目录下有一个hhwork2目录,移动该目录(包括子目录的内容)到/backup。在命令提示符下输入以下命令:

[root@localhost ~]#ls hhwork2

[root@localhost ~]#mv -hhwork2 /backup

[root@localhost ~]#ls /backup

实例3:为文件或目录重命名。假设old,oldfile文件已经存在

在命令提示符下输入:

[root@localhost ~]#mv old new

[root@localhost ~]#mv oldfile newfile 

借助ls命令显示,old和oldfile将不存在。

实例4:分别以系统默认的后缀字符和“.old”备份已经存在的文件。

在命令提示符下输入:

[root@localhost ~]#mv -bi file1 /backup

(假设/backup目录下存在file1和file2两个文件)

[root@localhost ~]#mv -biS.old file2 /backup

[root@localhost ~]#mv -bi--suffix=.old file2 /backup

[root@localhost ~]#ls /backup/file*

删除文件——rm

rm命令语法:

rm [参数[文件或目录]

实例1:在安装系统后,删除/root下产生的安装日志文件(install.log,install.sys.log)。

在命令提示符下输入:

[root@localhost ~]#rm install*

对于系统询问是否删除某个文件,确认删除,键入“y”即可;否则键入除“y”以外的任何键即可。为了提高删除效率,对于确定不需要的文件,选择-f强制删除,借助ls命令用来查看是否成功删除文件,可以看出系统默认是开启-i选项的。

实例2:强制删除当前目录下非空目录test(假设存在)下的所有文件。

利用rm命令删除目录,若要删除目录必须用-r选项,在命令提示符下输入:

[root@localhost ~]#tree test

[root@localhost ~]#rm ri test

[root@localhost ~]#tree test

查看文件的内容——cat

cat命令语法:

cat [参数] [源文件] [>|>> 重定向的文件名]

实例1:查看系统文件系统的情况。

文件/etc/fstab记录系统中文件系统的信息,Linux在启动时候,通过读取该文件来决定挂载那些文件系统。该文件设置了默认安装的文件系统,用户可以通过mount命令加载新的系统设备。在命令提示符下输入:

[root@localhost ~]#cat /etc/fstab

实例2:把账号文件编号输入到文件users.backup,省略中间的空行。

在命令提示符下输入:

[root@localhost ~]#cat -bs /etc/passwd > users.backup

实例3:把组账户文件追加到实例二产生的文件users.backup,同样省略账户文件的空行,带行号。在命令提示符下输入:

[root@localhost ~]#cat -sb /etc/group >> users.backup

查看文件的内容——more

more命令语法:

more [参数] [文件名]

实例1:从第5行开始查看账户文件(/etc/passwd),并将每屏设置10行显示。

在命令提示符下输入:

[root@localhost ~]#more -10 +5 /etc/passwd

实例2:查找/etc/passwd文件中,ddf用户所在的行。

利用more命令来查找指定的关键字,在命令提示符下输入:

[root@localhost ~]#more +/ddf /etc/passwd

查看文件的内容——less

less命令语法:

less [参数] [文件名]

实例1:查看账户文件的内容,并显示读取文件的行号、百分比以及总行号。

在命令提示符下输入以下命令:

[root@localhost ~]#less -M /etc/passwd

实例2:搜索一文件中Linux字符串,并修改为Linux。

在命令提示符下输入:

[root@localhost ~]#less -p Linux test

实例3:查看符号链接文件。

在命令提示符下输入:

[root@localhost ~]#less lnfile

(假设lnfile存在,并且指向/etc/passwd)

[root@localhost ~]#less lndir

(假设lndir存在,并且指向/etc)

查看文件头部的内容——head

head命令语法:

head [参数] [文件名]

实例1:默认显示多个文件的前10行。

分别显示主机配置文件(/etc/hosts)和网络服务文件(etc/services)两个文件的前10行,在命令提示符下输入:

[root@localhost ~]#head /etc/hosts /etc/services

实例2:显示文件的前3行和除最后25行的所有内容。

在命令提示符下输入:

[root@localhost ~]#head -3 /etc/passwd或

[root@localhost ~]#head -n 3 /etc/passwd或

[root@localhost ~]#head --lines= 3 /etc/passwd

[root@localhost ~]#head -n -25 /etc/passwd或

[root@localhost ~]#head --lines= -25 /etc/passwd

实例3:显示文件的前100bytes和除最后1000bytes的所有内容。

head命令默认以行为单位显示文件的首部内容,用户也可以按bytes显示文件的首部内容。head同样提供两种方法以bytes显示文件的内容,这里仍旧以/etc/passwd为例子,在命令提示符下输入:

[root@localhost ~]#head -c 100 /etc/passwd

[root@localhost ~]#ll /etc/passwd

(查看文件的大小,估计除最后1 000 byte首部还剩余多少)

[root@localhost ~]#head -c -1000 /etc/passwd

查看文件尾部的内容——tail

tail命令语法:

tail [参数] [文件名]

实例:分别显示账户文件和组用户文件的末尾3行。

根据tail选项的含义,在命令提示符下输入:

[root@localhost ~]#tail -3 /etc/passwd /etc/group

查看文件部分内容——cut

cut命令语法:

cut [参数] [目标文件名] [>|>>新的文件名]

实例1:假设当前目录有通讯录address,查看每行前3个字节的内容和前3个字符的内容。

在命令提示符下输入:

[root@localhost ~]#cut -b1-3 address 

[root@localhost ~]#cut -c1-3 address

实例2:提取账户文件中第3个字段的内容,第1,2,4个字段的内容以及从第3个字段到最后的内容。

cut命令默认字段的分隔符号为空格或Tab键,账户文件的各个字段以“:”做为字段分隔符,因此利用-d选项告诉系统账户文件的字段分隔符,在命令提示符下输入:

[root@localhost ~]#cut -d :’–f 3 /etc/passwd

显示第三个字段的内容。

[root@localhost ~]#cut -d ‘: –f 1,2,4 /etc/passwd

显示第1,2,4个字段的内容。

[root@localhost ~]#cut -d : f 3- /etc/passwd

显示从第3个字段到最后的所有内容。

实例3:创建一账户文件users,包含系统中所有的账户。

可以利用cut命令读取提取账户文件中第一个字段,并将内容重新定向文件users中,在命令提示符下输入:

[root@localhost ~]#cut -d ’–f1 /etc/passwd >users

利用ls命令查看users文件是否存在,最后利用head命令查看users文件的前10行。

查看文件的类型——file

file命令语法:

file [参数] [文件]

实例1:查看音乐文件和图片文件类型。

假设当前目录下有非文本文件a和b,利用ll命令只能知道为普通文件,若要查看更详细的类型,可以利用file命令查看a,b文件的具体类型。在命令提示符下输入:

[root@localhost ~]#ll a b

[root@localhost ~]#file a b

实例2:根据一个名称文件来查看文件的类型。

假设当前目录下有一文件abc,存储了多个文件名,注意每个文件名独占一行内容为:

/etc/passwd 

/etc 

/bin/ls

查看abc下每个文件的类型,则在命令提示符下输入:

[root@localhost ~]#file -f abc

实例3:查看压缩文件的类型。

经常在网上下载一些安装文件,有些文件以一定的扩展名,比如(.gz,bz2等)发布,这样可以很容易选择解压缩工具,但是有些文件没有给定扩展名,因此,若要正确选择解压缩工具,必须利用file对其进行查看。假设有一压缩的安装文件aaa.zip,查看该文件的类型,在命令提示符下输入:

[root@localhost ~]#file -z aaa.zip

实例4:查看符号文件的类型和符号链接文件所指向实际文件的类型。

在命令提示符下输入:

[user@localhost ~]$file lnfile

[user@localhost ~]$file -L lnfile

查看文件的属性——ll

ll命令语法:

ll [参数] [文件或目录]

实例1:以用户方便阅读的方式,查看多个文件的属性。

在命令提示符下输入:

[root@localhost ~]#ll -h /bin/ls /etc/passwd

实例2:以用户方便阅读的方式,查看目录的属性。

在命令提示符下输入:

[root@localhost ~]#ll -h hhwork

改变文件的属主或属组——chown

chown命令语法:

chown [参数] 所有者/所有者ID[:[组用户/组ID]] [文件名或目录名]

[root@localhost ~]#chown [参数] --referecnce=文件名或目录名 [文件名或目录名]

实例1:改变文件的属主用户。

假设当前目录下有一文件abc,属主为root。将属主改变为ddf,为了查看设置是否成功,在命令提示符下输入:

[root@localhost ~]#ll abc

[root@localhost ~]#chown -v ddf abc

[root@localhost ~]#ll abc

实例2:改变文件的属主用户和属组用户。

假设当前目录下的文件abc,属主和属组为root,同时将属主和属组更改为ddf,在命令提示符下输入:

[root@localhost ~]#ll abc

[root@localhost ~]#chown -v ddf:ddf abc

实例3:改变文件的属主用户,并指定文件的属组用户为当前登陆账户的所属群组。

假设当前目录下存在文件abc,其属主和属组都为ddf,将abc的属主设定为root。同时将其属组设定为当前登陆用户所在的群组。在命令提示符下输入:

[root@localhost ~]#ll abc

[root@localhost ~]#chown -v root: abc

[root@localhost ~]#ll abc

改变文件的访问权限——chmod

chmod命令语法:

chmod [参数] mode [文件名或目录名] 或 chmod [选项] --referecnce=文件名或目录名[文件名或目录名…]

实例1:假设当前目录下有abc文件,将权限更改为允许所有用户读、写、执行权限,并显示更改信息。

在命令提示符下输入:

[root@localhost ~]#chmod -c a+rwx abc

[root@localhost ~]#chmod -c ugo+r,ugo+w,ugo+x abc

实例2:假设ftp服务器有一个software目录,其中有tooldir,developdir两个子目录,包含了常用的工具软件和开发工具。为了保证该目录的安全性,防止其他非法用户访问该目录,可以屏蔽其他用户对该目录的读、写、执行权限。

同时,为了在同一工作组内搜集更多常用的工具软件,为工作组内的所有成员服务。因此需要把该目录设置为组用户可写。

在命令提示符下输入:

[user@localhost ~]$chmod -R -c g+w, o-w,o-x software

[user@localhost ~]$chmod -R -v 774 software

实例3:依照已经存在的目录设定目标目录的访问权限。

按照实例二中software目录的访问权限,设置当前目录下的test目录的访问权限。在命令提示符下输入:

[user @localhost ~]$chmod --reference=software  -Rv test

设置文件的缺省权限掩码——umask

umask命令语法:

umask [参数] [权限掩码]

实例1:通过设置文件的权限掩码,使生成的文件默认权限为“rw-rw----”,即660。

由于要使生成的文件默认权限改变,因此其权限掩码值为:666-660=006,在命令提示符下输入:

[root@localhost ~]#umask 006

实例2:通过设置文件的权限掩码,使生成目录文件的默认权限为“rwxrwxr-x”,即775。

由于要使生成的目录文件的默认权限改变,其权限掩码值为:777-775=002,在命令提示符下输入:

[root@localhost ~]#umask 002

修改文件的其他高级属性——chattr

chattr命令语法:

chattr [参数] [属性模式] [文件或目录]

实例1:设置当前目录abc的版本编号为123,并显示该命令的执行过程。

在命令提示符下输入:

[root@localhost ~]#chattr Vv 123 abc

实例2:设定日志文件myself.log的数据以追加的方式写入,同时将该日志文件设置为和磁盘同步的。

在命令提示符下输入:

[user@localhost ~]$chattr +aS myself.log

[user@localhost ~]$lsattr myself.log

实例3:将当前目录下temp目录设置为删除时,在系统自动保持数据块,以便以后恢复。

在命令提示符下输入:

[root@localhost ~]#chattr -RV +u temp

本文由黑龙江省PPP项目咨询研究中心编写机构的技术研究部门整理转载,欢迎各位技术同盟转载学习,感谢该机构对本文编辑的支持。

你可能感兴趣的:(linux文件)