常用命令
```
cat命令
全称:concatenate files and print on the standard output,cat是concatenate简写
作用:连接文件并将内容打印到标准输出[控制台,文件,软盘]
语法:cat [-AbeEnstTuv] [--help] [--version] fileName
实用参数:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
实例:
#把文件1的内容加上行号后,输出到文件2:
cat -n textfile1 > textfile2
#把文件1的内容加上行号后,追加到文件2:
cat -b textfile1 textfile2 >> textfile3
#清空文件内容
cat /dev/null > /etc/test.txt
chattr命令
作用:用于改变文件属性(attribute)
语法:chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。
参数:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
实例:
#1 用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf
#2 让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages
chgrp命令
作用:变更文件或目录的所属群组(group),在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
语法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
实例:
#1 改变文件的群组属性:
chgrp -v bin log2012.log
[root@localhost test]# ll
---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
#2 根据指定文件改变文件的群组属性
chgrp --reference=log2012.log log2013.log
[root@localhost test]# ll
---xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
-rw-r--r-- 1 root root 61 11-13 06:03 log2013.log
chmod命令
作用:可以控制文件如何被他人所调用、修改,Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。
语法:chmod [-cfvR] [--help] [--version] mode file...
参数:
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
实例:【最佳实践:用数字代表权限】
#1 将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
#2 将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
#3 将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
#3 将 ex1.py 设定为只有该文件拥有者可以执行 :
chmod u+x ex1.py
#4 将目前目录下的所有文件与子目录皆设为任何人可读取 :
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=5。
chmod a=rwx file
和
#5 chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
#6 chmod 771 file
效果相同
#7 若用chmod 4755 filename可使此程序具有root的权限
```