文件与目录管理——笔记

目录

1.特殊目录:

2.处理目录的命令:

3.执行文件路径变量:$PATH

4.文件与目录管理:

1)查看文件与目录:ls

2)复制、删除与移动:cp,rm,mv

3)文件内容查阅:

4)修改文件或创建新文件:

时间参数:

5.文件与目录默认权限和隐藏权限:

1)文件默认权限:umask

2)文件隐藏属性:

3)文件的特殊权限:SUID,SGID,SBIT

Set UID功能与限制:

Set GID功能与限制:

文件:

目录:

Sticky Bit功能与限制:

6.查看文件类型:file

命令与文件名的查询:

1)脚本文件名的查询:

2)文件名查找:

小结:


1.特殊目录:

“.”代表此层目录

“..”代表上一层目录

“-”代表前一个工作目录

“~”代表“当前用户身份”所在的主文件夹

2.处理目录的命令:

“cd”:切换目录

“pwd”:显示当前目录

“mkdir”:新建一个新目录

“rmdir”:删除一个空目录

注:使用rmdir删除目录时,目录需要一层一层的删除,而且被删除的目录里不能存在其他目录或文件(空目录),如果想将所有目录下的东西都删除使用rm -r 目录名

3.执行文件路径变量:$PATH

当在执行一个命令时,系统会照PATH的设置去每个PATH定义文件的目录下查询文件名为“xx”的可执行命令,如果在PATH定义的目录中含有多个文件名为“xx”的可执行文件,那么先查询到的同名命令先被执行

使用 echo $PATH 可以查看有哪些目录被定义出来(在一般用户中不包括任何“sbin”的目录)

PATH这个变量的内容是由一堆目录所组成的,每个目录中间用冒号隔开(:),且每个目录有顺序之分

由此可以得出:

1.不同身份用户默认PATH不同,默认能够随意执行的命令也不同

2.PATH是可修改的,所以一般用户可以通过修改PATH来执行某些位于/sbin或/usr/sbin下的命令来查询

3.命令应放到正确的目录下,执行才会方便

4.本目录(.)最好不要放在PATH中

4.文件与目录管理:

1)查看文件与目录:ls

-a:列出全部文件,包括隐藏文件

-A:列出全部文件,及所有隐藏文件,但不包括"."和".."这两个目录

-d:仅列出目录本身,而不是列出目录内的文件数据

-f:直接列出结果,不进行排序

-F:根据文件,目录给予附加数据结构(*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件)

-h:将文件容量以MB,GB等方便阅读的方式列出

-i:列出indoe号码

-l:列出长数据串,包含文件属性与权限

-n:列出UID与GID,不是用户名与组等数据

-r:将排序结果反向输出

-R:连同子目录一同列出,相当于将该目录下的所有文件都显示出来

-S:以文件容量大小排序,而非文件名

-t:依据时间排序

--color=never:不要依据文件特性给予颜色显示

--color=always:显示颜色

--color=auto:让系统自行依据设置来判断是否给予颜色

--full-time:以完整时间模式输出

--time={atime,ctime}:输出访问时间或改变权限属性时间(ctime)而非内容更改时间(modification time)

2)复制、删除与移动:cp,rm,mv

cp(复制文件或目录)

-a:相当于-pdr,是在保留原文件属性的基础上复制文件

-d:若文件为连接文件(link file)的属性,则复制连接文件属性而非文件本身

-f:为强制(force)的意思,若文件已经存在且无法打开,则删除后再尝试一次

-i:若目标文件(destination)已经存在,在覆盖时会询问操作的进行

-l:进行硬链接(hard link)的连接文件创建,并非复制文件本身

-p:连同文件属性一同复制,并非使用默认属性

-r:递归持续复制,用于目录的复制行为

-s:复制成符号链接文件(symbolic link),即快捷方式

-u:目标文件(destination)比源文件(source)旧才会更新源文件

注:

1.如果源文件有两个以上,则最后一个目的文件一定是目录

2.在默认条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常是命令操纵者本身,当有一些特殊权限的文件时需要加上-a或-p可以完整复制文件权限

3.复制目录时,需要加-r

4.在一般用户中,即使加上-a参数,无法复制完整权限,只能复制文件的相关权限及时间属性,与所有者、用户组有关是无法操作的

rm(移除文件或目录)

-f:忽略不存在的文件,不会出现警告

-i:互动模式,在删除前会询问用户是否操作

-r:递归删除

注:

为了防止文件被误删,许多发行版的操作系统已经默认加入-I

当文件中有“-”开头时,可以这样删除 “rm ./-xxx-”或“rm -- -xxx-”

mv(移动文件与目录,或更名)

-f:如果目标文件已存在,不会询问而直接覆盖

-i:若目标文件已存在,就会询问是否覆盖

-u:若文件已经存在,且源文件比较新,才会更新

注:可以使用-u来测试文件的新旧,看看是否移动

需要大批量来改文件名时,使用rename

3)文件内容查阅:

cat(concatenate):从第一行开始显示文件

-A:相当于-vET,show all,可以列出一些特殊字符

-b:仅对非空行列出行号

-E:将结尾的断行字符以$显示出来

-n:打印行号,但与-b不同,空行也会显示行号

-T:将tab按键显示出来

-v:列出一些看不出来的特殊字符

tac:从最后一行开始显示文件

同cat命令

 

nl:显示的时候,同时输出行号

-b:指定行号

1.-b a 不论是否有空行均列出行号

2.-b t 如果有空行,不会列出该行

-n:列出行号

-n ln:行号在最左边显示

-n rn:行号在最右边显示,且不加0

-n rz:同上,且加0

-w:行号字段占用的位数(加上行号,默认是6位)

more:一页一页的显示文件内容

less:与more类似,并且可以翻页

head:只看开头几行,可以加数字表示想要看的行数

-n:后接数字,表示显示多少行

当接负数时,代表列出前面的所有行数,但不包括后面所写的行数

 

tail:与head类似,只看结尾

-n:同上

当接正数时,代表该文件会从xx行后都列出

-f:表示持续监测后面的文件名,需要按下ctrl+c才会停止检测

od:以二进制方式读取文件

-t:后面接各种输出类型

a:使用默认字段输出

c:使用ASCLL字符输出

d [size]:利用十进制(decimal)输出数据,每个正数占用 size bytes

f [size]:利用浮点数(floating)输出数据,每个正数占用 size bytes

o [size]:利用八进制(octal)输出数据,每个正数占用 size bytes

x [size]:利用十六进制(hexadecimal)输出数据,每个正数占用 size bytes

 

4)修改文件或创建新文件:

时间参数:

modification time(mtime):当该文件的内容改变时,会更新这个时间(内容指文件内容,并非文件属性或权限)

status time (ctime):当该文件的状态(status)改变时,会更新该时间(文件的权限或属性)

access time(atime):当文件内容被取用,会更新该时间(使用文件内容查询时,会更新该时间)

注:在默认情况下,使用ls显示的是该文件的mtime

 

在某些情况下,由于BIOS的设置错误以及失去误差,会导致系统时间“跑到”未来,可以使用touch来改变时间

touch:

-a:仅修改访问时间,若果文件不存在,会创建一个新文件

-c:仅修改文件时间,文件不存在是不会创建文件

-d:后接修改时间,可以不用当前时间;也可使用--date="日期或时间"

-m:仅修改mtime

-t:后接修改时间,可不用当前时间,格式[YYMMDDhhmm]

注:当复制了一个文件时,并没有办法复制ctime这个属性

 

5.文件与目录默认权限和隐藏权限:

1)文件默认权限:umask

umask是指目前用户在新建文件或目录时的默认权限(umask是指默认值需要减掉的权限)

查看方式:

1.直接输入uamsk,可以看到数字形态的权限设置分数

 2.后面加-S,会以符号类型显示出权限

文件一般默认权限为644,最大权限为666

目录一般默认权限为755,最大权限为777

默认情况下,root的umask会拿掉较多权限(默认022),而一般身份用户会保留用户组的写入(002)

2)文件隐藏属性:

chattr:设置文件的隐藏属性(注意:该命令只能在Ext2/Ext3的文件系统上生效)

参数:

+:增加一个特殊参数,其他原本存在的不变

-:减去一个特殊参数,同上

=:既有后面接的参数

 

A:访问一个文件时,它的atime不会改变(对较慢的计算机有用)

S:一般文件是异步写入磁盘,如果加上S后修改文件时,改动会同步写入磁盘

a:设置a之后,该文件只能增加数据,不能删除和修改数据(只有root可以设置这个属性)

c:会将文件自动压缩,读取时自动解压缩;在存储时,会先压缩在存储

d:当dump程序执行时,该属性会是此文件(目录)不会被dump备份

i:该属性可以是一个文件不能被删除、改名,设置连接也无法写入或添加数据(只有root可以设置这个属性)

s:但文件被删除时,它将完全从硬盘空间中删除

u:与s相反,如果文件被删除,数据内容还存在于硬盘中,可以找回此文件

 

lsattr:显示文件的隐藏属性

参数:

-a:显示隐藏文件属性

-d:如果接的是目录,仅列出目录本身属性而非目录内的文件名

-R:连同子目录的数据也一同列出

3)文件的特殊权限:SUID,SGID,SBIT

在文件或目录中users、group以及others的可执行权限没有设置(x),所以S,T代表权限为空

 

Set UID功能与限制:

出现在文件所有者的x权限上,当设置了SUID的程序文件,在用户执行该程序时,用户的权限是该程序文件的属主的权限。(借权执行自己用户身份做不了的)让一个没有相应权限的用户运行程序时,可以访问他没有权限访问的资源

s(小写):表示SUID和所有者权限中可执行位被设置

S(大写):表示SUID被设置,但所有者权限中可执行位没有被设置

 

1.SUID仅对二进制文件有效

2.执行者对该文件需要有可执行权限

3.本权限仅对执行该程序的过程中(run-time)有效

4.执行者具有该程序所有者(owner)的权限

注:SUID仅用在二进制文件上,不能用在shell script;同时SUID对目录也无效

Set GID功能与限制:

出现在用户组的X权限上,功能与SUID类似,但SGID可以对目录或文件设置 (一般情况下,出于对系统安全的考虑,尽量使用SGID代替SUID);

s(小写):表示SUID和同组用户权限中可执行位被设置

S(大写):表示SUID被设置,但同组用户权限中可执行位没有被设置

 

文件:

1.对二进制文件有效

2.程序执行着对该程序要有可执行权限

3.执行者在执行该程序中会获得该程序用户组的支持

目录:

1.具有r与x权限,该用户能够进入目录

2.用户在此目录下的有效用户组,将会变成该目录的用户组

3.用户在此目录下,具有写权限(可以新建文件),则用户创建的新文件的用户组与此目录的用户组相同

 

Sticky Bit功能与限制:

SBIT只针对目录有效,对文件没有效果

t(小写):表示SBIT和其他人权限中可执行为被设置

T(大写):表示SBIT被设置,但其他人权限中没有设置可执行位

 

1.用户在此目录下具有w,x权限

2.在用户在该目录下创建文件或目录时,仅有自己和root才有权利删除

 

4为SUID = u+s

2为SGID = g+s

1为SBIT = o+t

 

6.查看文件类型:file

命令与文件名的查询:

1)脚本文件名的查询:

which(寻找“执行文件”)

2)文件名查找:

whereis(寻找特定文件)

-b:只找二进制文件

-m:只找说明文件manual路径下的文件

-s:只找source源文件

-u:查找上述选项中的其他特殊文件

locate(查询数据库/var/lib/mlocate/mlocate.mdb来搜索文件)

-i:忽略大小写差异

-r:后接正则表达式的显示方式

find

1.与时间有关的参数

-atime n:在n天之内改过的文件

-ctime +n:列出n天之前(不包含n天本身)被改过的文件名

-mtime -n:列出n天之前(包含n天本身)被改过的文件名

-newer file:file为一个已存在的文件,列出比file还新的文件名

2.与用户用户组有关的参数

-uid n:n表示用户账号的ID信息

-gid n:n表示用户组名的ID信息

-user name:name为用户账号名

-group name:name表示用户组名

-nouser:寻找文件的所有者不存在于/etc/passwd的人

-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件

3.与权限名称有关的参数

-name filename:查找文件名为filename文件

-size [+ -] SIZE:查找比SIZE还要大(+)或小(-)的文件,SIZE规格:c表示byte,k表示kbyte

-type TYPE:查找文件类型为TYPE,TYPE包括:一般正规文件(f),设备文件(b,c),目录(d),连接文件(l),socket(s),FIFO(p)

-perm mode:刚好等于mode的文件,mode为chmod的属性值(=)

-perm -mode:必须包括mode的文件(>=)

-perm +mode:包含任一mode的权限(<=)

4.其他可进行的操作

-exec command:command作为命令,后接其他命令来处理查找到的结果

-print:将结果打印到屏幕(此操作默认)

 

案例:find / -user jay -exec cp -a {} /test/ \;

”{}“代表由find找到的内容

”-exec“到”\;“是关键字,代表find额外命令的开始(-exec)到结束(\;)

”;“表示转义

小结:

1.能让用户进入目录成为可工作目录的基本权限

需要有用户对此文件或目录的执行权限(x);如果想查阅目录,还需要加上r

2.用户在某个目录中读取一个文件的基本权限

用户需要对此目录有x;用户需要对文件有r

3.用户可以修改文件的基本权限

用户在该文件所在的目录至少有x;用户对该文件要有r,w

4.用户可以创建一个文件的基本权限

用户在该目录下有w,x(重点在w)

5.用户进入目录并执行某个命令的基本权限

用户在该目录至少有x;用户在该文件至少有x

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值