【0830】文件、目录管理2
2.9 rm命令
2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail
2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask
一、rm命令
删除文件或者非空目录

rm -f:不询问直接强制删除文件或目录

rm -rf:递归删除目录及目录中的文件

二、环境变量PATH
1、关于PATH的作用:
PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。
2、修改环境变量
方法一:PATH=$PATH:/tmp/

方法二:新建终端时tmp中命令不生效,可用命令:vi /etc/profile进去修改环境变量,末尾加PATH=$PATH:/tmp/,使每次开机都去加载tmp中的命令
三、cp命令
拷贝命令:cp+被拷贝文件名称+拷贝至的文件名称
拷贝目录时需要加r,即cp -r +被拷贝目录名称+目标目录名称

当目标目录已经存在时,拷贝会将源目录,直接放到目标目录下方去,如果目标目录不存在,会将源目录直接拷贝过来并改一个名字。

四、mv命令
1、命令格式:
mv [选项] 源文件或目录 目标文件或目录
2、命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
3、命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
4.命令实例:
实例一:文件改名
命令:mv test.log test1.txt
实例二:移动文件
命令:mv test1.txt test3
实例三:将文件log1.txt,log2.txt,log3.txt移动到目录test3中。
命令:
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
实例四:将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
命令:mv -i log1.txt log2.txt
实例五:将文件file1改名为file2,即使file2存在,也是直接覆盖掉。
命令:mv -f log3.txt log2.txt
实例六:目录的移动
命令:mv dir1 dir2
五、文档查看命令cat、more、less、head、tail
1、cat,显示文件中所有内容

2、more和less
(1)more命令
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
q 退出more
(2)less命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less+文件名称:空格往后翻页、ctrl+B翻页往前,支持方向键翻页、关键字高亮显示等功能。
3、head命令
查看文件头10行
head -n 2:查看文件开头开始的前两行
4、tail命令
查看文件尾10行
tail -n 2:查看文件末尾两行
六、文件或目录权限chmod

第1字符的后面9个字母表示该文件或目录的权限位。其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
r=4 w=2 x=1 即rwx=7 rw-r—r--=644
第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数
第3字段:文件(目录)拥有者
第4字段:文件(目录)拥有者所在的组
第5字段: 文件所占用的空间(以字节为单位)
第6字段:文件(目录)最近访问(修改)时间
第7字段:文件名
例如:chmod 700 2.txt ,修改2.txt文件的所属者权限

-R,--recursive
可递归遍历子目录,把修改应到目录下所有文件和子目录
u=所属用户
g=所属组
o=其他用户
chmod a+x file 给所有用户增加file文件的执行权限
七、更改所有者和所属组chown
chown luo 2.txt 修改2.txt文件的所属者为luo
chgrp luo file 修改file文件的所属组为luo
chown -R luo:luo1 /tmp/luo 递归修改/tmp/luo目录下所属者名称为luo,所属组名称为luo1。

八、umask
在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。

可以看到umask值为0002,其中第一个0与特殊权限有关,可以暂时不用理会,后三位002则与普通权限(rwx)有关,其中002中第一个0与用户(user)权限有关,表示从用户权限减0,也就是权限不变,所以文件的创建者的权限是默认权限(rw),第二个0与组权限(group)有关,表示从组的权限减0,所以群组的权限也保持默认权限(rw),最后一位2则与系统中其他用户(others)的权限有关,由于w=2,所以需要从其他用户默认权限(rw)减去2,也就是去掉写(w)权限,则其他人的权限为rw - w = r,则创建文件的最终默认权限为 -rw-rw-r-- 。同理,目录的默认权限为 drwxrwxrwx ,则d rwx rwx rwx - 002 = (d rwx rwx rwx) - (- --- --- -w-) = d rwx rwx r-x,所以用户创建目录的默认访问权限为 drwxrwxr-x,可以通过命令 umask 值 的方式来更改umask值,比如我要把umask值改为027,则使用命令 umask 027 即可。改成027后,用户权限不变,群组权限减掉2,也就是去掉写(w)权限,其他用户减7,也就是去掉读写执行权限(rwx),所以其他用户没有访问权限。
本文详细介绍了Linux系统中文件和目录的管理命令,包括rm、cp、mv、cat、more、less、head、tail、chmod、chown和umask的使用方法。同时,深入解析了环境变量PATH的作用及修改方式,以及文件权限和所有者变更的操作。
1960

被折叠的 条评论
为什么被折叠?



