运维基础知识总结(文件管理、权限)

文件系统与目录结构

在这里插入图片描述

在这里插入图片描述

Linux下的文件类型

-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket

列出目录内容

 列出当前目录的内容或指定目录
 用法:ls [options] [ files_or_dirs ]
示例:
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序

查看文件状态

stat
文件:metadata, data
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变

cut

cut命令可以将一行文字按照指定字符切分成多段并取出某一段,或者直接指定要取出的字符位置。
格式:

cut -d ‘指定字符’ -f数字 //切分并取出指定列
cut -c 区间 //取出指定字符位置的字符串,区间用-表示,如2-4,8-,-9等
1.cut -d ‘指定字符’ -f数字 //切分并取出指定列
2.cut -c 区间 //取出指定字符位置的字符串,区间用-表示,如2-4,8-,-9等

grep

grep命令用于从文档中找出我们需要的那一行来。
格式:

grep -acinv ‘搜索字符串’ filename
1
参数:

-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 ‘搜寻字符串’ 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!

1.-a :将 binary 档案以 text 档案的方式搜寻数据
2.-c :计算找到 ‘搜寻字符串’ 的次数
3.-i :忽略大小写的不同,所以大小写视为相同
4.-n :顺便输出行号
5.-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
实例:
1 找出last中,有root的那些行。

[root@localhost nta]# last | grep root
root pts/0 172.16.150.189 Thu Aug 31 14:01 still logged in
root pts/2 172.16.150.199 Thu Aug 31 10:07 still logged in
root pts/5 172.16.150.184 Thu Aug 31 09:32 - 09:40 (00:08)
root pts/4 172.16.150.184 Thu Aug 31 09:32 - 09:35 (00:02)
。。。。。。

sort

sort命令是将文字的每一行按照指定规则排序。

格式:

sort [-fbMnrtuk] filename
1
参数:

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是 tab 键;
-k :以那个区间 (field) 来进行排序的意思,

1 将用户账号信息(/etc/passwd)进行排序(可以看到默认是以第一个字母按照字母表顺序排序的)。

[root@localhost nta]# cat /etc/passwd | sort
abrt❌173:173::/etc/abrt:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
bin❌1:1:bin:/bin:/sbin/nologin
chrony❌987:984::/var/lib/chrony:/sbin/nologin
colord❌992:990:User for colord:/var/lib/colord:/sbin/nologin
。。。。

2 将用户账号信息按照用户标识(第三列,数字)进行排序。

[root@localhost nta]# cat /etc/passwd | sort -t ‘:’ -k 3 -n
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
。。。。。。

uniq
uniq显示输入的内容,但每个重复的行只显示一次。

格式:

uniq [-ic]
1
参数:

-i :忽略大小写字符的不同;
-c :进行计数
1
2
实例:

[root@localhost nta]# last | grep root | cut -d ’ ’ -f1 | uniq
root

[root@localhost nta]# last | grep root | cut -d ’ ’ -f1 | uniq -c
475 root

三、Linux 文件权限

首先来查看一下当前目录下的文件内容吧

ls -l 查看当前目录下的文件列表
ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件

在这里插入图片描述
文件的权限,-rw-rw-r-- ,一共有10位数。
其中: 最前面那个 - 代表的是类型(详细如下面贴图所示)
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)

  • 表示相应的权限还没有被授予

文件和文件夹操作权限:

在这里插入图片描述

需要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。

补充:

特殊权限SUID、SGID、Sticky
在 linux 系统中还有三种与用户身份无关的三个文件权限属性。即SUID、SGID和Sticky。
SUID(Set User ID, 4):
该属性只对有执行权限的文件有效,对目录无效。执行具有SUID权限的程序时,引发的进程的所有者是程序文件的所有者,而不是启动程序的用户(除非二者是同一个人)。比如,如果一个程序的所有者是root且具有SUID属性,一个普通用户执行此程序时,如同root执行此程序一样。(请注意该属性对Shell脚本程序无效)该属性为一些特殊程序(如lpr)的启动带来了方便。但有时也带来了安全隐患:比如一个具有SUID属性的程序如果在执行时运行了一个shell,那么用户可以籍此得到系统的最高权限。SUID可用s表示,如:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 Feb 16 2014 /usr/bin/passwd

SGID(Set Group ID, 4):
对于可执行文件,SGID与SUID类似,引发的进程的所有组是程序文件所属的组。对于目录,SGID属性会使目录中新建文件的所属组与该目录相同。SGID也可以用s表示,如:
$ ls -l /var
drwxrwsr-x 2 root staff 4096 Apr 10 2014 local
drwxrwxr-x 15 root syslog 4096 Apr 4 19:57 log
Sticky, 1:
仅对目录有效。带sticky属性的目录下的文件或目录可以被其拥有者删除或改名。常利用sticky属性创建这样的目录:组用户可以在此目录中创建新文件、修改文件内容,但只有文件所有者才能对自己的文件进行删除或改名。如系统中的/tmp文件夹。在属性字符串中,通常用t表示。
$ ls -l /
drwxrwxrwt 8 root root 4096 Apr 4 23:57 tmp

修改文件和文件夹对应用户的操作权限

如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:

方式一:二进制数字表示
在这里插入图片描述
每个文件的三组权限:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
根据上图,其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1

  • ------------0

-rw------- (600) 只有所有者才有读和写的权限
  -rw-r–r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
  -rwx------ (700) 只有所有者才有读,写,执行的权限
  -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
  -rwx–x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
  -rw-rw-rw- (666) 每个人都有读写的权限
  -rwxrwxrwx (777) 每个人都有读写和执行的权限

修改文件或文件夹的拥有者/所属的组

使用命令chown改变目录或文件的所有权(所有者/组)

注释:这里说的断断续续的,将在学习下一个内容(用户/组 增删改查)之后补充

文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。

先执行ls -l看看目录情况:
在这里插入图片描述
可以看到test文件的所属用户组为root,所有者为root。
执行下面命令,把上图中test文件的所有权转移到用户peter:

chown peter test

在这里插入图片描述
要改变所属组,将test文件从root组中转移到组Peter中,可使用下面命令:

chown :peter test

在这里插入图片描述
将所属的用户和组一起更改
将文件夹或文件test的拥有者修改成shiyanlou,所属的组修改成shiyanlou,如下图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44304424/article/details/85397924