Linux学习笔迹(二)--文件与目录管理

Linux文件与目录管理

1、目录的相关操作

比较特殊的目录:

1)切换目录:cd

cd [相对路径或绝对路径]

[Tab]键快速补全输入

(2)显示当前所在目录:pwd

(3)新建新目录:mkdir [-mp] 目录名

其中,-m:设置新建目录的权限,不指定则使用umask默认权限。如:mkdir -m 711 test

-p:递归创建目录(包括上层目录)。如:mkdir -p /tmp/test/test 即可自行创建多层目录

(4)删除目录:rmdir [-p] 目录名称

其中,-p:连同上层“空的”目录也一起删除

注:使用rmdir test只能一层一层的删除,并且被删除的目录里不能存在其他文件或这目录,否则不会成功。如果要将目录下所有文件都删除就使用“rm -r test”

2、环境变量$PATH

与widows的环境变量概念相似,linux系统会依照PATH中各命令的设置,去找到可执行文件的目录,先查询到的同名命令先被执行。

使用echo $PATH 可发现不同身份用户默认的PATH也不同,因而能使用的命令也不同;为了安全起见,不建议把本目录“.”加入到PATH中。

3、文件与目录管理

(1)查询文件与目录:ls

ls [-aAdfFhilnrRst] 目录名称

-a:全部文件,连同隐藏文件

-l:列出长数据串,包括文件属性、大小、权限等,注:ls -l 相当于ll

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

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

-h:将文件容量以较易读的方式(如GB、MB等)列出来

-i:列出inode号码

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

-S:以文件容量大小排序,默认是用文件名

-t:以时间排序

如:ls -l /home /root/tmp /home/alox ,可以同时列出多个目录的信息 

ls [--color={never,auto,always}] 目录名称

--color=never:不要根据文件特性显示不同颜色

--color=auto:让系统自行设置判断是否显示颜色

--color=always:显示颜色

ls [--full-time] 目录名称

--full-time:以完整时间模式显示(包含年、月、日、时、分

--time={atime,ctime}:输出最后访问时间(atime)或权限变更时间(ctime)

(2)文件或目录的复制:cp

cp [-adfilprsu] 源文件(被复制的文件) 目标文件

其中,-a:相对于“-pdr”的作用,常用参数

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

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

-i:若目标文件已经存在,在覆盖时会先询问操作是否进行,常用参数

-p:连同文件的属性一起复制过去,而非使用默认属性,备份常用参数

-r:递归持续复制

-l:进行硬连接的连接文件创建,而非复制文件本身,类似于“ln 源文件 目标文件”

-s:复制成为符号连接文件,即创建“快捷方式”文件,类似于“ln -s 源文件 目标文件”

-u:如果目标文件比源码文件旧才更新目标文件

cp [options] 源文件1 源文件2 源文件3…… 目标文件

将源文件1、源文件2、源文件3等一次复制到目标文件中

(3)移除文件或目录:rm

rm [-fir] 文件或目录

其中,-r:递归删除

-f:强制删除,忽略不存在的文件,不会出现警告信息

-i:删除前询问用户是否删除

如文件名中出现“-”开头,删除则需要使用rm ./-aa-或者rm -- -aa-

(4)移动文件或目录、更名:mv

mv [-fiu] 源文件 目标文件

其中,-f:强制移动,若目标文件存在,不会询问而直接覆盖

-i:若目标文件存在,询问用户是否覆盖

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

mv  [options] 源文件1 源文件2 源文件3…… 目标文件

将源文件1、源文件2、源文件3等一次复制到目标文件中

同目录下,“mv 源文件 目标文件” 就完成重命名了。


4、文件内容查阅

(1)cat [-AbEnTv] 文件名称

-A:相对于-vET的参数整合,可列出一些特殊字符,而不是空白而已

-n:打印出行号,连同空白行也有行号

-b:列出行号,空白行不标行号

其他参数略

(2)tac 文件名称

反向将文件内容列示

(3)nl [-bnw] 文件名称

-b:指定行号指定方式

-b a:空白行列出行号

-b t:空白行不列行号(默认值)

-n:列出行号的方式

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

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

-n rz:行号在屏幕的最右边显示,且加0

-w:行号字段的占用位数,如: nl -b a -n rz -w 3 /etc/issue

(4)more 文件名称

一页一页翻动查看,在最后一行会显示目前显示的百分比和输入一些有用的命令

在more运行过程中,可以按键:

空格键:代表向下翻一页

Enter:代表向下滚动一行

/字符串:在当前显示内容中,向下查询“字符串”这个关键词

:f立即显示文件名和目前显示的行数

q:代表立刻离开more,不再显示该文件的内容

b或[ctrl]-b:代表向上翻一页,只对文件有用,对管道无用

(5)less 文件名称

一页一页滚动查看,比more更有弹性,可用鼠标、上、下按键向前后翻看

less运行过程中,可以按键:

空格键:代表向下滚动一页

[PageDown]:向下滚动一页

[PageUp]:向上滚动一页

/字符串:向下查询“字符串”这个关键词

?字符串:向上查询“字符串”这个关键词

n重复前一个查询(与/或?有关)

N反向重复前一个查询(与/或?有关)

q:代表立刻离开less,不再显示该文件的内容

(6)数据选取

head [-n number] 文件名称

取出前面n行,默认只显示10行,如:head -n 20 /etc/man.config

head -n -100 /etc/man.config,显示前面所有行的内容,后面100行都不显示

tail[-n number] 文件名称

取出后面n行,默认只显示10行,如:tail -n 20 /etc/man.config

tail -n +100 /etc/man.config ,显示从第100行后面内容,前100行都不显示

如,显示第11行到第20行的内容:head -n 20 /etc/man.config | tail -n 10

5、修改文件时间、创建新文件:touch

Linux下会记录很多时间的参数,其中有三个主要的变动时间:

·mtime:“内容数据”变动时会更新该时间;

·ctime:“权限或属性”改变时会更新该时间;

·atime:“该文件的内容被取用”时会更新该时间。

touch [-acdmt] 文件名称

其中,-a:修改访问时间atime

-c:仅修改文件的时间,若该文件不存在则不创建新文件

-m:修改mtime

-t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]

-d:后面可以届欲修改的时间而不用目前的日期,也可以使用--date="日期或时间"

touch 文件名称,若文件不存在,则创建新文件

6、文件默认权限:umask

使用umask 或umask -S 查看当前文件默认的权限,如umask回车后,显示“0022”。

默认权限umask的分数指的是:文件权限需要减掉的权限

7、文件隐藏属性chattr,lsattr

(1)设置文件的隐藏属性

chattr [+-=][ASacdistu] 文件或目录名称

+ 增加某一个特殊参数,其他原本存在的参数则不动;

- 删除某一个特殊参数,其他原本存在的参数则不动;

= 仅有后面接的参数。

a:当设置a之后,这个文件将只能增加数据,不能删除也不能修改数据,只有root才能设置该属性

i:让一个文件“不能被删除、改名,设置连接也无法写入或添加数据”,对于系统安全性有很大帮助,只有root能设置该属性

(2)查看隐藏属性,隐藏属性只能通过alttr查看

lsattr [-adR] 文件或目录

-a:将隐藏文件的属性显示出来

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

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

8、文件特殊权限:SUID、SGID、SBIT

SUID:s标志出现在文件所有者的x权限上,如:-rwsr-xr-x,表示执行过程中执行者具有该程序所有者的权限。

SGID:s标志出现在用户组的x权限上,如:-rwx--s--x,表示执行者在执行的过程中将会获得该程序用户组的支持。

SBIT:t标志出现在其他用户组x权限上,如:/tmp目录的权限是:drwxrwxrwt,任何人都可以在/tmp内添加、修改、移动文件,但仅有该文件/目录创建者与root能够删除自己的目录或文件。

SUID/SGID/SBIT权限设置:4-SUID、2-SGID、1-SBIT

如果修改权限为-rwxr-xr-x的文件,只需在原先的755之前加上4,即chmod 4755 filename来设置。

9、查看文件类型:file

file 文件

查看该文件的类型

10、命令与文件的查询

(1)脚本文件名的查询

which [-a] command

寻找“执行文件”,其中,-a:将所有由PATH目录中可以找到的命令全部列出来,默认只列出第一个命令的目录。如:which cd、which ifconfig等

(2)文件名的查找

whereis [-bmsu] 文件或目录名

其中,-b:只找二进制格式的文件

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

-s:只找source源文件

-u:查找不在上述三个选项中当中的其他特殊文件

located [-ir] keyword

其中,-i:忽略大小写的差异,-r:后面可接正则表达式的显示方式。

whereis的查找会比find快很多,因为Linux系统会将系统内的所有文件都记录在一个数据库文件中,而当使用whereis或locate时,在数据库文件中查找,而find则是直接查找硬盘,但数据库文件中的内容,可能不会及时更新,所有查找到的文件有可能是被删除,或者刚新建的文件还不存在。数据库文件可以通过重启或使用updatedb命令就可以进行更新了。

find [PATH] [option] [action]

参数:

1、与时间相关的参数:共有-atime、-ctime与-mtime,下面以-mtime说明:

-mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件

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

-mtime -n:列出n天之内(含n天本身)被修改过的文件

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

如:find / -mtime 0,0代表目前的时间,从现在开始到24小时前根目录下被修改的文件名

2、与用户或用户组相关的参数

-uid n:n为数字,用户的帐号ID,即UID,这个UID已存在/etc/passwd中

-gid n:n为数字,用户组的ID,即GID,这个GID已存在/etc/group中

-user name:列出用户名为name的文件名

-group name:列出用户组名为那么的文件名

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

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

当自行安装软件时,很可能该软件的属性中并没有文件所有者,这时可以使用-nouser、-nogroup进行查找的。

3、与文件权限及名称相关的参数

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

-size [+-] SIZE:查找比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:c-代表byte、k-代表1024bytes,如查找比50kb大的文件:find / -size +50k

-type TYPE:查找文件类型为TYPE的,类型主要有:一般正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)及FIFO(p)等属性

-perm mode:查找文件权限“刚好等于”mode的文件

-perm -mode:查找文件权限“必须全部包括mode”的文件

-perm +mode:查找文件权限“包含任一mode的权限”的文件

如:find / -perm +7000 查找文件权限包含SGID或SUID或SBIT的文件

4、其他可进行的操作

-exec command:comand为其他命令,-exec后面可再接其他的命令来处理查找到的结果。

-print:将结果打印到屏幕山,这个操作是默认操作。

如:find / -perm +7000 -exec ls -l {} \;

注意:“-exec ls -l {} \;”意思是将“find / -perm +7000”查找到的内容反正-ls -l后的{}中,而其中“-exec”和“\;"为find的额外命令的开始和结束,因为";"在bash环境中是有特殊意义的,所以使用f反斜杠“\”进行转义。

例题:①查找/etc下面,文件大小介于50K到60K之间的文件,并将权限完整的列出了(ls -l)

find /etc -size +50K -size -60K -exec ls -l {} \;

②找出/etc下面,文件容量大于50KB且文件所有者不是root的文件名,并且将权限完整的列出了(ls -l)

find /etc -size +50k -a ! -user root -exec ls -l {} \; 其中-a,就是and的意思,感叹号!表示取反。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值