一.文件权限类命令
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
1.文件属性
要查看文件的属性,可以直接用 ll 命令,也可以 ls -l (前者是后者的缩写)
[root@oracle ~]# ll #之后我们会发现文件会以以下形式展示出来
drwxr-xr-x 3 root root 16 9月 24 21:53 aa
-rw-------. 1 root root 1533 9月 23 14:31 anaconda-ks.cfg
lrwxrwxrwx 1 root root 11 9月 24 21:54 cc -> /root/aa/bb
-rwxr-xr-x. 1 root root 274 9月 23 16:14 openoracle.sh
分析:
-rwxr-xr-x. 1 root root 274 9月 23 16:14 openoracle.sh
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
[ 权限 ] [链接] [拥有者][用户组] [文件容量] [修改日期] [文件名]
[1]:第一栏代表文件的类型与权限,一共十个字符,第一个字符表示文件的的类型,
其中【-】表示文件,【d】表示目录,【l】表示链接文件,
剩下的九个字符,三个一组,且皆为【rwx】的三个参数的组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute),如果没有权限就会出现【-】号。
第一组(rwx)为文件拥有者所具备的权限,以分析里的为例,文件拥有者拥有对文件的读写执行操作;(user)
第二组(r-x)为加入该用户组的账号的权限,以分析里的为例,同一用户组里的成员对该文件具有读和执行的操作;(group)
第三组(r-x)为其他用户(非本人,也不在同一用户组里)对该文件所具有的的权限。(other)
[rwx]作用于文件和目录的不同解释
作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
[2]:第二栏表示链接的数量
如果查看到是文件:链接数指的是硬链接个数。
如果查看的是文件夹:链接数指的是子文件夹个数。
2.chmod 改变权限 (chang modify)
要更改权限,首先要了解权限的类别;rwx三种权限都对应着一个数字,并且可以累加
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
改变权限的方式:
[root@oracle ~]# mkdir a.txt #我们先创建一个文件a.txt
[root@oracle ~]# ll #查看文件
-rw-r--r-- 1 root root 12 9月 24 21:34 a.txt
接下来我们就以a.txt来操作,更改它的权限
(1)修改文件,使文件的拥有者(属主用户)拥有执行权限
[root@oracle ~]# chmod u+x a.txt #u表示文件所有者,x表示执行
(2)修改文件,使其所属组用户(同一用户组)具有执行权限
[root@oracle ~]# chmod g+x a.txt
(3)修改文件,使其所属主用户无执行权限,并使其他用户具有执行权限
[root@oracle ~]# chmod u-x,o+x a.txt
(4)采用数字方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
[root@oracle ~]# chmod 777 a.txt
注:r(read)权限是4,w(write)权限是2,x(execute)权限是1;所以7=4+2+1(读写执行),5=4+1(读执行)。
(5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
[root@oracle ~]# chmod -R 777 aa #修改aa文件夹里的文件的权限为777
3.chown 改变所有者 (chang owner)
基本语法:
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
参数说明:
-R 递归操作
(1)更改文件所属主(文件拥有者)
[root@oracle ~]# chown oracle a.txt #将文件a.txt的所有者由root更改为oracle
注:不需要指明文件原所有者是谁,直接将最终所有者写出来就行。
(2)递归更改文件所属主(文件拥有者)和所属组
[root@oracle ~]# chown oracle:oracle a.txt
4.chgrp 改变所属组 (chang group)
基本语法:
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
(1)更改文件所属组
[root@oracle ~]# chgrp root a.txt
二.搜索查找类命令
1.find 查找文件或目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
基本语法:
find [搜索范围] [选项]
参数说明:
-name<查询方式> 按照指定的文件名查找文件
-user<用户名> 查找属于指定用户名下的所有文件
-size<文件大小> 按照文件大小查找文件
(1)按照指定的文件名查找文件
[root@oracle ~]# find /opt/ -name "*.txt" #查找opt目录下,以.txt结尾的文件
(2)查找属于指定用户名下的所有文件
[root@oracle ~]# find /opt/ -user root #查找opt目录下,属于root用户的所有文件
(3)按照文件大小查找文件
[root@oracle ~]# find /opt/ -size +200 #查找opt目录下,大于200kb的文件
注:+n(n是数字)是大于,-n是小于,n 是等于
2. grep 过滤查找及 ‘|’管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法:
grep 选项 查找内容 源文件
参数说明:
-n 显示匹配号及行号
[root@oracle ~]# ls | grep -n *.txt
3.which 查找命令
基本语法:
which 命令
[root@oracle ~]# which ls #查找ls
alias ls='ls --color=auto'
/usr/bin/ls #会显示出ls命令所在的文件