unix shell-01 file
1 一个文件有三种访问方式:
1、读,可以显示该文件的内容
2、写,删除或者编辑这个文件
3、执行,如果该文件时一个shell脚本或程序
按照文件所针对的用户,用户可以分为三种:
1、文件属主,即该文件的创建者。
2、同组用户,即拥有该文件的用户所在组中的任何用户
3、其他用户,即不属于拥有该文件的用户组中的某一用户。
1.1文件
创建一个文件时,系统会保存有关该文件的全部信息:
1、文件的位置 2、文件类型 3、文件长度 4、哪位用户拥有该文件,哪些用户可以访问该文件
5、i节点 6、文件的修改时间 7、文件的权限位
ls -l命令:
total 4232 显示该目录下所有文件占用的空间
-rwxr-xr-x 文件的权限位。除去第一个斜杠,后面共9位,对应三组权限
第一个“-”,文件类型,详解见1.2
rwx 文件属主用户权限
r-x 同组用户权限 中间三位
r-x 其他用户权限 最后三位
1 表示该文件的硬链接的数目
root 该文件的属主
root 文件的属主root所在的缺省组(也叫做root)
3756 用字节来表示文件的长度,不是K字节! only 字节!
Oct 14 04:44 文件更新的时间
dmesg文件名
1.2文件类型
如上图所示, -rwxr-xr-x 文件的权限位。
第一个斜杠,代表文件的类型,共有7种,ls -l命令查看
d 目录
l 符号链接(指向另一个文件)
s 套接字文件
b 块设备文件
c 字符设备文件
p 命名管道文件
- 普通文件,准确的说,不属于以上几种文件
1.3文件权限
¥ touch myfile
1.4 改变权限位
1.4.1符号模式
chmod 命令格式: chmod [who] operator [permission] filename
who的含义是:
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户权限(u+g+o)
permission的含义:
r 读权限 w 写权限 x执行权限 s 文件属主和组set—ID t粘性位* l 给文件加锁,使其他用户无法访问
*在列文件或目录时,有时会遇到“ t ”位。 “t ”代表了粘性位。如果在一个目录上出现
“t ”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主
同等的权限。不过有的系统在这一规则上并不十分严格。
如果在文件列表时看到“ t ” ,那么这就意味着该脚本或程序在执行时会被放在交换区 ( 虚
存)。不过由于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。
chmod命令举例:
chmod a-x myfile rw- rw- rw- 收回所有用户的执行权限
chmod og-w myfile rw- r-- r- - 收回同组用户和其他用户的写权限
chmod g+w myfile rw- rw- r - - 赋予同组用户写权限
chmod u+x myfile rwx rw- r- - 赋予文件属主执行权限
chmod go+x myfile rwx rwx r- x 赋予同组用户和其他用户执行权限
如果希望某个脚本文件对你自己来说可执行,而且你对该文件的缺省权限很放心,那么
只要使它对你来说具有执行权限即可。
$ chmod u+x dt
1.4.3 绝对模式
chmod [mode] filename
mode是八进制模式
如果希望一次设置目录下所有文件的权限,可以用:
chmod 644*
这将使文件属主和同组用户都具有读和写的权限,其他用户只具有读权限。
还可以通过使用- R选项连同子目录下的文件一起设置:
chmod -R 664 /usr/local/home/dave/*
这样就可以一次将 / u s r / l o c a l / h o m e / d a v e目录下的所有文件连同各个子目录下的文件的权限
全部设置为文件属主和同组用户可读和写,其他用户只读。使用 - R 选项一定要谨慎,只有在
需要改变目录树下全部文件权限时才可以使用。
1.4.5 可以选择使用符号模式或绝对模式
上面的例子中既有绝对模式的,也有符号模式的,我们可以从中看出,如果使用该命的符号模式,可以设置或取消个别权限位,
而在绝对模式中则不然。我个人倾向于使用符号模式,因为它比绝对模式方便快捷。
TIPs:对刚修改完的文件,使其立刻生效的命令 source filename