Linux的文件命令和文件权限

文件常用命令

  • 创建文件
touch
  • 复制文件
cp file1 file2      //复制 file1 在同一目录下,命名 file2
cp file1 file2  dir  //复制 file1 file2 到 dir 目录下

cp -p  //移动文件,并保存原来的所有信息
  • 移动(重命名)文件
mv a b      //移动到本地,并改名 
mv a b dir //把 a,b  移动到 dir 目录
  • 删除文件
rm a b c  //删除普通文件
rm -f a b c //强制删除文件

普通账户的 rm 删除不会提示,
root 管理员删除有提示,y是n否
除非 -f 强制删除,谨慎使用

文件查看命令
  • 查看文件信息
ls     //查看当前目录下的文件
ls -l  //查看详细文件
ls -i  //查看文件编号
ls -lh //查看文件大小
ls -a  //显示所有文件
ls -ld //查看目录本身
  • 查看文件类型

在这里插入图片描述

d //表示目录
- //表示文件
1 //表示连接文件
b //表示设备文件,提供存储的接口设备
c //表示设备文件。提供串行的接口设备--键盘,
  • 查看文件内容
  1. cat
cat file  //正序查看文件内容
tac file  //倒序查看文件内容
cat -b file  //文件内容显示行号

cat -A file  
//查看隐藏内容:换行符、空格、特殊符号
  1. nl
nl -ba   //无论是否有空行,都列出行号
nl -bt   //如果有空行,则不列出行号
  1. less
/          查找字符
:f         显示文件名和行数
b          翻到第一页
空格       向下翻动一页
pagedown   向下翻动一页
pageup     向上翻动一页
q          退出
  1. head、tail
head file  //显示文件前十行
tail file //显示文件末尾几行,一般查看日志(动态)

参数
-n:显示几行(默认十行)
-f:动态显示文件末尾内容
  1. wc
wc -l 文件名  //显示行数
wc -c 文件名 //显示字节
查找、替换文件内容

grep只能用于查找文件中的内容

grep

参数
-i :不区分大小写
-v :排除指定字符串

sed可以查找,然后替换或者插入想要的内容

字符代表含义
a新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
d删除,因为是删除啊,所以d后面通常不接任何东西的;
i插入,i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p列印,亦即将某个选择的资料印出。通常p会与参数sed.
s取代,可以直接进行取代的工作!
  • 查找文件 find
用法:find[路径][命令参数][表达式]

参数:
-name “文件名”:查找指定名称文件;
-user:查找指定用户拥有的文件;
-group:查找指定组拥有的文件;
-mtimen:查找在N天前被修改过的文件;
-atimen:查找在N天前被访问过的文件;
-type d/t/b/1/p:查找指定类型的又件;
-empty:查找为空的文件;
-size:按容量大小查找;
-perm mode:查找指定属性的文件;
-exec command{} \:查找指定的文件并执行指定的命令;
-newer文件名:查找比指定文件新的文件
find *   //全部字符
find ?  //单个字符
  • 查找目录 which
which 命令
软连接、硬链接

硬链接:

  1. 和cp -p一样的含义,不过 硬链接 可以同步更新
  2. 不能对目录进行硬链接,
  3. 不能分区
ln
ln -l

软连接

ln -s:软连接

目录常用命令

  • 系统目录
目录名作用
/boot系统启动目录,Liunx启动时,需要的文件如:内核文件和启动引导程序文件
/dev设备文件,硬件文件
/etc配置文件,脚本文件
/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/root管理员家目录
/proc虚拟文件系统保存到内存中。保存系统的内核,进程,外部设备状态和网络状态灯。如/proc/cpuinfo是保存CPU信息的,/proc/devices是 保存设备驱动的列表的,/proc/filesystems是保存文件系统列表的,/proc/net是 保存网络协议信息的
/sys虚拟文件系统。和/proc 目录相似,都是保存在内存当中的,主要是保存于内核相关信息的
/srv服务数据目录。- -些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp临时目录。系统存放临时文件的目录,该目录下所有用户都可以访问和写入
/usr系统软件资源目录。是“Unix SoftwreResource”的缩写,是存放系统软件资源的目录。系统中安装的软件大多数保存在这里,
/var动态数据保存位置。主要保存缓存、日志以及软件运行所产生的文件
/media挂载目录。系统建议是用来挂载媒体设备的,例如软盘和光盘
/mnt挂载目录,早期Linux中只有这一一个挂载目录,并没有细分。现在这个目录系统建议挂载额外设备,如U盘,移动硬盘和其他操作系统的分区
/opt第三方安装的软件保存位置。这个目录就是放置和安装其他软件的位置,我手工安装的源码包软件都可以安装到这个目录当中。不过我还是更加习惯把软件放置到/usr/loca1/目录当中,也就是说/usr/local/目录也可以用来安装软件
/run进程文件
/bin存放系统命令的目录,普通用户和超级用户都可以执行。不过放在/bin’下的命令在单用户模式下也可以执行
/ sbin保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看
/usr/bin存放系统命令的目录,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin存放根文件系统不必要的系统管理命令,例如多数服务程序。只有超级用户可以使用。大家其实可以注意到Linux的系统,在所有“sbin"目录中保存的命令只有超级用户可以使用,“bin” 目录中保存的命令所有用户都可以使用
/usr/lib32位库文件
/usr/lib6464位库文件
  • 路径切换

cd
cd / :切换到根目录
cd …:返回上一层目录
cd ~:返回到所在的家目录
cd -:返回上一级的目录

  • 创建目录
mkdir  a  //创建 a 目录
mkdir -p  dir1/dir2/a  //若没有 dir 目录,则 -p 自动创建
  • 复制目录
cp -r dir1 dir2       //复制 dir1 在同一目录下,命名 dir2
cp -r dir1 dir2  dir3  //复制 dir1 dir2 到 dir3 目录下
  • 移动目录
mv dir1 dir2  //如果 dir2 不存在,相当于 dir1 重命名 dir2
mv dir1 dir2  dir3 //如果 dir3 存在,dir1 和 dir2 移动到 dir3
  • 删除目录
rm -r a  //删除 a 目录
rm -rf a b c //强制删除包含的文件和目录

文件和目录的权限

查询权限

ls -l 查询详细信息,每一处代表什么意思呢

在这里插入图片描述

  • 权限

rwx,读、写、执行,没有权限就是 -
第一个组 rwx : 文件 所有者 的权限
第二个组 rwx : 文件 所属组 的权限
第三个组 rwx : 文件 其他人 的权限

  1. 文件权限

文件的拥有者该用户,没有w权限也可以强制写入!。所属组和其他人不行。

r:查看文件内容
w:可写
x:可以 vim 编辑

  1. 目录的权限:

用户对一个目录没有w的权限,可以编辑该目录中拥有者是自己的文件

r:查看目录下有哪些文件
w:

  1. 可以在该目录下新建新的文件和目录
  2. 可以删除已经存在的文件和目录
  3. 将已经存在的文件和目录重命名
  4. 移动该目录内的文件和目录的位置

x:是否可以进入该目录

修改权限
  • chmod 修改 拥有者 和 所属组 的权限
  1. 数字法:r=4,w=2, x=1
chomd 777 123
// 123的拥有者、所属组、其他人的权限为 rwx-rw-rw-
  1. 加减法

拥有者/所属组/其他人 ,u / g / o , + / - / =,r / w / x

chomd u=rx 123// 123的拥有者权限为 rx
chomd u+w 123 // 123的拥有者权限为 rwx
  • chown 修改拥有者
chown  root  abc  //修改 abc 的拥有者为 root
chown  -R root  abc  //递归修改 abc 的拥有者为 root
//abc 目录包含的所有拥有者均改为 root
  • chgrp 修改所属组
groupadd 组名  //新建组

gpasswd -a 用户 组名 //田间用户进组

chgrp  root  abc  //修改 abc 的所属组为 root
chgrp  -R root  abc  //递归修改 abc 的所属组为 root
//abc 目录包含的所有所属组均改为 root

默认权限

  • umask:查看当前用户的创建文件和目录的默认权限

0022:代表的是拿走了的权限
第一个0:代表特殊权限
022:rwxr-xr-x

创建文件和目录时,会默认拿走文件的 x 权限

  1. 临时修改默认权限
umask 000  
//创建文件和目录时,文件rw-rw-rw-,目录rwxrwxrwx
  1. 永久改默认权限(不推荐)

/etc/bashre //修改里面的值

特殊权限

drwxrwxrwt. 14 root root 4096 1023 19:32 / tmp/
rwsr- xr-x .1 root root 27832 610 2014 /usr/bin/ passwd

当s出现在拥有者的 x 权限位置时候,表示拥有者有SUID的权限(Set UID)
当s出现在所属组的 x 权限位置时候,表示所属组有SGID的权限(Set GID)
当t出现在其他人的 x 权限位置时候,表示其他人有SBIT的权限(Sticky Bit)

  1. SUID,临时获取文件拥有者的权限一只能针对文件
  2. SGID,即使可以作用于目录,也可以作用于文件
    作用于文件: SUID一样
    作用于目录:继承仪集目录一目录会不停的继承
  3. SBIT指的是,只有文件的拥有者才能删除、修改该目录下的文件.
    只能针对目录
    并且只能在其他人的位置上修改

S和T都有大写和小写之分
大写说明:没有x权限
小写说明:有x权限.

  • SUID
  1. 只有可以执行的二进制程序才能设定SUID权限
  2. 命令执行者要对该程序拥有x (执行)权限命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  3. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

执行的时候,暂时的拥有SUID权限
在这里插入图片描述

  • SGID

1、针对文件

  1. 只有可执行的二进制程序才能设置SGID权限
  2. 命令执行者要对该程序拥有x执行权限
  3. 命令执行在执行程序的时候,组身份升级为该程序文件的属组
  4. SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

在这里插入图片描述
2、针对目录

  1. 普通用户必须对此目录拥有和x权限,才能进入此目录
  2. 普通用户在此目录中的有效组会变成此目录的属组
  3. 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
  • SBIT
  1. 粘着位目前只对目录有效
  2. 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
  3. 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件

在这里插入图片描述

  • 修改特殊权限

数字法:SUID=4 SGID=2 SBIT=1

chomd 4777 文件名 
chomd 2777 文件名 
chomd 1777 目录名 

chmod u+s 文件名
chmod g+s 文件名
chmod o+t 目录名
  • 删除特殊权限
chmod 777 文件名

chmod u-s 文件名

ACL文件权限

如果系统中某个用户向对某个文件有写入的权限,但是该用户是属于other,就只能够开放 other 的权限。但是一旦开放 other 的权限,每一个 other 都能够访问该文件,

文件ACL权限就很好的解决了这个问题
acl: 针对单一使用者,设置单一文件或目录来进行rwx的权限修改

  • 设置文件的acl权限setfacl
setfacl -m u:账户名: rwx 文件名/目录名
//对此文件/目录 加入了acl权限,有了一个特定账户
setfacl -m g: 组名: rwx 文件名/目录名

setfacl -m m: rwx //修改mask值


参数
-m:配置acl参数
-x:删除单个文件的acl
-b:删除acl的配置
-R:递归配置ac参数
  • 删除acl
setfacl -x u:账户名 文件名/目录名

setfacl -x g:账户名 文件名/目录名

setfacl -b 文件名/目录名  //删除该文件所有的 acl权限
  • 递归ACL权限
setfacl -m u:账户名: rwx -R 目录名 
  • 默认ACL权限
setfacl -m d:u:账户名: rwx 目录名 
  • 查看文件的acl权限getfacl
getfacl 文件名/目录名
  • 最大有效权限mask

mask的定义,acl权限上限
1、mask为 设置的 acl文件/目录 的最大有效权限
2、需要和设置 acl权限 相与 得到得权限,才是文件/目录真正的 acl权限

文件系统隐藏属性

一把锁 防止root用户在内的用户,对文件误操作

i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a:
如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除

  • 设置文件隐藏属性chattr
chattr +i 文件名/目录名
chattr -i 文件名/目录名
chattr =i 文件名/目录名
  • 查看文件隐藏属性lsattr
lsattr

参数
-a:显示所有文件和目录
-d:若目标是目录,只显示目录本身,不是子文件

sudo权限

关机命令只能root用户使用,但是root用户太忙,可以赋予普通用户使用

  1. root把本来只能超级用户执行的命令赋予
  2. 普通用户执行。sudo的操作对象是系统命令,系统命令也是一个文件

在这里插入图片描述

  • 查看被赋予的权限
sudo -l
  • 设置sudo
visudo   //实际修改的是/etc/sudoers文件
  • 例子
visudo

SC ALL= /sbin/shutdown -r now //给sc用户赋予重启权限	

sudo /sbin/ shutdown -r now //普通用户执行被赋予的权限
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值