一、Linux文件类型
1、普通文件(regular file)第一个字符为[ - ]
①纯文本档(ASCII):内容为我们人类可以直接读到的数据,例如数字、字母等等。
②二进制文件(binary):Linux中的可执行文件(除scripts, 文字型批处理文件之外)就是这种格式的。
③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (datafile)。一般用cat命令看到的都是乱码。
2、目录(directory): 第一个字符为[ d ]
3、连接文件(link):第一个字符为[ l ]
4、设备和设备文件
①块设备文件:即一些存储文件,如硬盘、软盘等,第一个字符为[ b ]
②字符设备文件:即一些串行端口的接口文件,如键盘、鼠标等,第一个字符为[ c ]
5、套接字(sockets):还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接,第一个字符为
[ s ]
6、管道(FIFO,pipe):FIFO也是一种特殊的文件类型,他主要的目的解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out,第一个字符为[ p ]
二、 Linux权限管理(一件事情允许被谁做?人, 事物属性)
1、文件访问者的分类(人)
a)拥有者:u---User
b)所属组:g---Group
c)其它用户:o---Others
2、文件访问权限的种类(事物属性)
a)基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限
b)、特殊权限
i.suid (s/4)只能应用在可执行文件上,允许任意用户在执行文件时以文件拥有者的身份执行
ii.sgid (s/2)只能应用在可执行文件上,使任意用户在执行可执行文件时,将以拥有组成员的身份执行
iii.粘着位(t/1)只能应用在目录文件上,将使用户在目录中执行删除时,只能删除自己拥有的对象
3、文件权限值的表示方法
a)字符表示方法
b)8进制表示方法
4、文件访问权限的相关设置方法
首先,创建一个文件file,并查看其详细信息
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
chmod命令权限值的格式:
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
- :向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
实例截图:
②三位8进制数字
5、操作文件或目录所需权限
(1)新建目录或文件的默认权限
超级用户默认掩码值为0022,普通用户默认为0002。
新建文件夹默认权限=0666 - 权限掩码
新建目录默认权限 =0777 - 权限掩码
普通用户:
超级用户:
(2)进入目录需要的权限
首先去掉新建目录和文件的所有权限:
在目录都没有任何权限时进入:
结论:普通用户下,没有权限不能进入该目录;在超级用户下,没有任何任何权限也可以进入目录。
普通用户下,分别改变用户读权限、写权限、执行权限进入目录:
结论:普通用户下,必须有可执行权限(x:1)才可进入目录。
(3)在目录下创建并显示文件需要的权限
普通用户:
结论:普通用户进入目录需要执行权限(x:1),在目录中创建文件需要写权限和执行权限(w+x:3)。
在普通用户下显示文件内容:
结论:普通用户进入目录需要执行权限(x:1),在目录中创建文件并显示文件内容需要写权限和执行权限(w+x:3)。
超级用户:
结论:在超级用户下不需要任何权限就可以进入目录创建并显示文件。
6、时间相关的命令
(1)date:指定格式显示时间(date +%Y_%m_%d 或 date+%Y:%m:%d)
1、在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
BIT科技 仅限学习交流
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区 %a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
输出昨天的日期:
2秒后输出:
传说中的 1234567890 秒:
更多实例:
2、在设定时间方面
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
3、加减
date +%=Y%m%d //显示现在天年月日
date +%Y%m%d --date="+1 day" //显示后一天的日期
date +%Y%m%d --date="-1 day" //显示前一天的日期
date +%Y%m%d --date="-1 month" //显示上一月的日期
date +%Y%m%d --date="+1 month" //显示下一月的日期
date +%Y%m%d --date="-1 year" //显示前一年的日期
date +%Y%m%d --date="+1 year" //显示下一年的日期
(2)时间戳
时间->时间戳:date +%s
时间戳->时间: date +%Y:%m:%d -d @1425384141
Unix时间戳(英文为Unix epoch, Unix time, POSIXtime 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
(3)stat:用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。
Access:文件最近一次的访问时间
Modify:文件内容最近一次的修改时间
Change:文件属性最近一次的修改时间