温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux文件和目录管理(下)

发布时间:2020-06-05 21:23:10 来源:网络 阅读:543 作者:小伟996 栏目:系统运维

文档查看(cat、more、less、head、taid)

cat

正序查看文件内容的。

tac倒序查看文件内容。

cat -A文字后边会有结束符$

cat -n显示行号

more

查看文件内容一屏一屏显示

按空格键向下翻页;ctrl+b 向上翻页

less

跟more相似也是查看文件内容一屏一屏显示按空格键翻页,单功能机快捷键多。

j:向下 k:向上  

ctrl+b向上翻屏 ctrl+f向下翻屏 

g:定位到首行 G:定位到末行

/搜索关键字从前往后查看,按n键:向下搜索相同的字符 shift+n:向前看

?从后往前查看  n:向下 N:向上 

q退出

head

查看一个文件的前十行

可以指定数字 例如:head -n 2 1.txt(文件名) 只看前两行

tail

只看一个文件的最后十行

指定行数:tail -n 3 文件名 只看最后三行

tail -f 可以动态的去查看一个文档(比如日志)默认的话只显示最后十行按空格向下 

ctrl+c退出来


chmod命令(用来更改权限的)

rwx  r:可读 w:可写 x:可执行

    r=4    w=2  x=1

rwx=7 r-x=5 r--=4 --x=1 rw-=6  例如:rwxr-xr-x=755

如何改,比如一个文件的权限为644把它改成700

用命令:chmod 744 1.txt(跟你要改的文件) -rw-r---r--(755) -rwx-------(744)

Linux文件和目录管理(下)

或者用这种方法:chmod u=rwx.g=.o= 2.txt

用英文表示u:属主 g:属组 o:其他人   

命令:chmod -R 以递归的方式更改所有文件及子目录

a 表示所有 chmod a+x 意思就是所有人加上可执行命令

Linux文件和目录管理(下)


umask

输入umask你会看到系统的umask

是来决定默认的文件和目录的权限的

更改方法:例如系统的umask号为0022 我们要改成0002 输入:umask 002 更改(通常会省略前边的0)

求目录的权限:用777-umask 假如umask是022 求目录权限:(rwxrwxrwx)减(----w--w-)=rwxr-xr-x=755

求文件的权限:用666-umask 假如umask是022 求文件权限:(rw-rw-rw)减(----w--w-)=rw-r--r--=644

原则:-(什么都没有)减去r或者减去w或者减去x 他依然是什么都没有


chown命令(用来更改属主属组的)

useradd用来创建用户 groupadd创建组

!ls !意义是在命令历史里边以ls开头的离我们最近的命令 

history:命令历史

例如:我们要改一下111.txt

chown users1 111.txt 改变用户主

chgrp user1 改所属组

Linux文件和目录管理(下)

chown :users1 111.txt 改变用户组

chown root:root 111.txt 一起改变

Linux文件和目录管理(下)

chown -R root:root 改变所有目录和文件的所属主和所属组



隐藏权限 lsattr、chattr

chattr 给一个文件或目录增加权限

lsattr 查看一个文件或目录的权限

chattr +a 文件+a权限你就不能对这个文件进行删除或者更改内容更改名字,只能touch文件或者追加 (>>表示追加重定向) >表示重定向 目录能追加能重定向能touch文件

chattr +i 文件加上i权限什么都不能更改更严谨,而目录可以追加或者重定向 解除-i 

lsattr -R逐层去查看子目录

lsattr -d只查看这个目录本身


特殊权限 set_uid

当普通用户执行这个命令时它就会临时拥有root用户的身份

作用:保证普通用户临时拥有该命令所有者的身份临时拥有

要给一个文件设置set_uid前提这个文件得是一个二进制文件(例如ls、passwd、跟1.txt文件设置是毫无意义的)文件还得可执行

怎么跟一个文件去授权set_uid?

例如我想跟ls -l /usr/bin/ls 加一个 用命令:chmod u+s /usr/bin/ls 如下图:

Linux文件和目录管理(下)

我们先切换到普通用户下 su -  aming whoami看一下,现在用ls /root/命令是不行的

用命令chmod u+s /usr/bin/ls加上这个权限就可以查看了

Linux文件和目录管理(下)

但是权限没变还是原来的只是临时给予了root挺虎的身份也拥有了root用户的权限

取消命令:chmod u-s /usr/bin/ls

set_uid只能作用在文件上


特殊权限set_gid

chmod g+s

这个权限位作用在权限位上,原来是普通用户拥有所有者的身份现在是普通用户拥有所属组的身份,它不仅可以作用在文件上还可以作用在目录上。

在设置了gid之后你在这个目录下边创建子文件或目录的时候子文件和子目录的所属组会跟父级目录保持一致。如下图:

Linux文件和目录管理(下)

去掉gid后:

Linux文件和目录管理(下)

作用在文件上时跟set_uid类似,可以让执行这个文件的普通用户临时拥有所属组的身份。

作用在目录上时当你创建子目录或者子文件的时候,创建的子目录和文件的所属组和该目录的所属组保持一致。



软链接文件

软连接命令:ln -s   形式:ln -s 要做的文件 目标地址 

例如:把tmp下yun.log放到root下的111目录  

命令:ln -s /tmp/yum.log /root/111/yum.log  如下图:

Linux文件和目录管理(下) 

形式:左边是源文件右边是软链接文件

不仅可以软连接文件也可以软连接目录,并且可以跨区


硬链接文件

形式:ln 要做的文件 目标地址

含义:你创建了一个文件它与另一个文件的inode号一样这两个文件相互为硬链接文件

Linux文件和目录管理(下)

硬链接不会占用多余的空间,相当于一个文件的皮,每一张皮都指向了相同的inode号这个皮可以删掉但不能全删至少留一个

硬连接可以删除因为他还有其他的文件使用了ionde号

硬链接删不删无所谓因为还有文件本身  软连接删除了文件本身也就删除了

只支持对文件做硬链接,不支持对目录做硬连接,只支持对文件并且不能跨区


find命令

http://man.linuxde.net/find 详细介绍

-type<文件类型>:只寻找符合指定的文件类型的文件 f普通文件 l符号连接 d目录 c字符设备 b块设备 s套接字 pFifo

-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;

-mmin<分钟>查找在指定时间曾被更改过的文件或目录,单位以分钟计算

-size<文件大小>:查找符合指定的文件大小的文件;

-exec<执行指令>:假设find指令的回传值为True,就执行该指令;

-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;


搜索文件的命令,还有一些相似的命令如which它是在echo $PATH环境变量里边找的

比如我想在etc下搜sshd_config

命令:find /etc/ -name "sshd_config"

也可以模糊搜索:find /erc/ -name "sshd*"  下图:

Linux文件和目录管理(下)

只要目录命令:find /etc/ -type d -name "sshd*"

只要文件命令:find /etc/ -type f -name "sshd*"

也可以不指定:find /etc/ -type d 

-l 软连接文件

find后边跟路径路径后边跟条件选项

stat 命令用来查看文件详细信息的                   如图:

Linux文件和目录管理(下)

-atime 最近访问时间

-mtime 最近更改时间

-ctime 最近改动时间

改文件的时间跟内容-mtime和-ctime都会跟着变动,只要你更改了文件的内容-ctime一定会变因为它记录着文件的大小、时间、权限、所有者、所属组。 

如何看在一天内etc下发生过更改的文件?用命令:

find /etc/ -type f -mtime -1   +1是大于一天

Linux文件和目录管理(下)

上面的是并且的意思,还可以或者:-o

find / -type f -o -mtime -1 -o -name "*.conf"

找相同文件的硬链接:find / -inum 33583267

Linux文件和目录管理(下)

查看一小时以内变动的文件:find /root/ -type f -mmin -60

查看一个小时内变动的文件并把他们的详细信息列出来:find /root/ -type f -mmin -60 -exec ls -l {} \;

Linux文件和目录管理(下)

查找文件并改名:find /root/ -type f -mmin -150 -exec mv {} {}.bak \;

第一个{}意思是这个文件原来的名字 {}第二个是要改的名字

Linux文件和目录管理(下)

大于十兆的文件并列出详细信息:find /root/ -type f -size -10k -exec ls -lh {} \;

Linux文件和目录管理(下)


Linux和Windows相互传送

需要安装lrzsz包:yum install -y lrzsz

命令:sz 传送给电脑 例如:sz 2.txt

命令:rz 从电脑往Linux传 rz直接回车

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI