1) cp:复制档案或者目录
在预定的条件中,cp 的来源档和目标档的权限是不同的,目标档的拥有者通常会是指令操作者本身。
由于 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:
是否需要完整的保留源档案的信息?
源档案是否为连结档 (symbolic link file)?
源档案是否为特殊的档案,例如 FIFO, socket 等?
源文件是否为目录?
2) rm:删除档案或目录
3) mv:移动档案与目录,或更名
4) 取得路径的文件名与路径名
5) 档案内容查阅
cat 由第一行开始显示档案内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取档案内容!
a) cat: concatenate的缩写
b) more:一页一页翻动
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串:向下搜寻『字符串』这个关键词;
q :代表立刻离开 more ,不再显示该档案内容。
c) less:一页一页翻动
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
d) head:取出前面几行
e) tail:取出后面几行,用法与head类似
6) touch:修改档案时间或建置新档
modification time (mtime):『内容数据』变更时
status time (ctime):『状态』改变时,如:权限属性
access time (atime):『内容被取用』时。
7) unmask:档案预设权限
若使用者建立为『档案』则预定『没有可执行( x )权限』,亦即只有rw 这两个项目,也就是最大为 666 分,预定权限如下: -rw-rw-rw-
若用户建立为『目录』,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦
即为 777 分,预定权限如下: drwxrwxrwx
umask的分数指的是『该默认值需要减掉的权限!』
因为 umask 为 022 ,所以user 并没有被拿掉任何权限,不过 group 和others的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:
建立档案时:(-rw-rw-rw-)- (-----w--w-) ==> -rw-r--r--
建立目录时:(drwxrwxrwx)- (d----w--w-) ==> drwxr-xr-x
设定umask:#umask 002
8) 档案特殊权限: SUID, SGID, SBIT
SUID有这样的限制与功能:
a) SUID权限仅对二进制程序(binaryprogram)有效;
b) 执行者对与该程序需要具有 x 的可执行权限;
c) 本权限仅在执行该程序的过程中有效 (run-time);
d) 执行者将具有该程序拥有者 (owner) 的权限。
当s标志在档案拥有者的 x 项目为 SUID;
当s在群组的x 时则称为 Set GID, SGID;
对档案来说, SGID 有如下的功能
a) SGID对二进制程序有用;
b) 程序执行者对与该程序来说,需具备 x 的权限;
c) 执行者在执行的过程中将会获得该程序群组的支持!
目录设定了 SGID 的权限后,他将具有如下的功能:
a) 用户对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
b) 用户在此目录下的有效群组(effective group)变成该目录群组;
c) 用途:若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。
SBIT目前只针对目录有效 SBIT 对于目录的作用是:
a) 当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
b) 当用户在该目录下建立档案或目录时,仅有自己与 root 才有权力删除该档案。
SUID/SGID/SBIT权限设定
a) 4为 SUID
b) 2为 SGID
c) 1为 SBIT
假定要将一个档案权限改为『-rwsr-xr-x』时,由于 s 在用户权力中,所以是 SUID ,因此, 在原先的 755 之前还要加上 4 ,也就是:『 chmod 4755 filename 』来设定!
9) 档案隐藏属性
a :当设定a 之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这个属性。
i :可以让一个档案『不能被删除、改名、设定连结也无法 写入或新增资料!』对亍系统安全性有相当大的帮助!只有 root 能设定此属性。
#lsattr 档案或目录 #显示隐藏属性
10) 搜寻档案或目录名
#file 文件名 #显示文件类型;
#which 执行挡 #搜寻完整执行挡存放位置,需在PATH中;
#whereis 档案或目录名 #寻找特定档案;
#locate keyword #寻找特定档案,只需输入部分文件名;
updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,幵更新/var/lib/mlocate 内的数据库档案;
locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名。
whereis和locate都是以此数据库来查找,故速度快。
11) find:直接硬盘中搜索文档
12) 总结
a) 用户能使用的指令是依据 PATH 变量所规定的目录去搜寻的;
b) 不同的身份(root 不一般用户)系统默认的PATH 并不相同。差异较大的地方在于 /sbin, /usr/sbin ;
c) 除了传统的rwx权限之外,在Ext2/Ext3文件系统中,还可以使用chattr与lsattr设定及观察隐藏属性。 常见的包括不能新增数据的 +a 与完全不能更改档案的 +i 属性。
d) 新建档案/目录时,新档案的预定权限使用 umask 来规范。默讣目录完全权限为drwxrwxrwx, 档案则为-rw-rw-rw-。
e) 档案具有SUID的特殊权限时,代表当用户执行此一binary程序时,在执行过程中用户会暂时具有程序拥有者的权限。
f) 目录具有SGID的特殊权限时,代表用户在这个目录底下新建的档案之群组都会与该目录的组名相同。
g) 目录具有SBIT的特殊权限时,代表在该目录下用户建立的档案只有自己与root能够删除!
h) 搜寻指令的完整文件名可用 which 或 type ,这两个指令都是透过 PATH 变量来搜寻文件名;
i) 搜寻档案的完整档名可以使用 whereis 或 locate 到数据库档案去搜寻,而不实际搜寻文件系统;
---------整理自鸟哥的Linux私房菜