【linux】文件管理&文件输入输出管理&文件权限管理

一、文件管理

1.命令加正则

(1)用一条命令建立12个文件

$ touch alexw_class{1..2}_linux{1..6}
$ ls
alexw_class1_linux1  alexw_class1_linux5  alexw_class2_linux3
alexw_class1_linux2  alexw_class1_linux6  alexw_class2_linux4
alexw_class1_linux3  alexw_class2_linux1  alexw_class2_linux5
alexw_class1_linux4  alexw_class2_linux2  alexw_class2_linux6

(2)正则匹配批量cp

$ cp /home/alexw/Desktop/mytest/alexw_class[[:digit:]]_linux[[:digit:]] /root/Desktop

(3)正则匹配奇偶

cp alexw_class[02468]_linux[02468] DOUBLE
cp alexw_class[13579]_linux[13579] SINGLE

二、文件输入输出管理

0.stdin stdout stderr

标准输入0 标准正确输出1 标准错误输出2

1.输入重定向

大小写转换

[alexw@alexw-device Desktop]$ tr 'a-z' 'A-Z' < test   这里的test时一个文件
[alexw@alexw-device Desktop]$ tr  'a-z' 'A-Z' <<EOF
> test
> owen
> EOF
TEST
OWEN

2.输出重定向

######################## 所有输出追加到out ############
[alexw@alexw-device Desktop]$ find /etc -name passwd &>> out
[alexw@alexw-device Desktop]$ cat out
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

######################## 正确输出追加到out1 ############
[alexw@alexw-device Desktop]$ find /etc -name passwd >> out1
[alexw@alexw-device Desktop]$ cat out1
/etc/pam.d/passwd
/etc/passwd

######################## 错误输出追加到out1 ############
[alexw@alexw-device Desktop]$ find /etc -name passwd 2>> out2
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

3.管道

  • 把前一条命令的输出变成输入传递到下一条命令进行操作
  • 管道只处理正确输出!

(1)统计命令正确输出的行数

[alexw@alexw-device Desktop]$ find /etc -name passwd | wc -l
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2
因为正确输出只有两行

(2)复制正确输出到指定位置,并统计命令正确输出的行数

tee复制输出到指定位置,这里到right文件

[alexw@alexw-device Desktop]$ find /etc -name passwd | tee right | wc -l
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2
[alexw@alexw-device Desktop]$ ll
total 8
-rw-rw-r--. 1 alexw alexw 30 Oct 27 11:30 out
-rw-rw-r--. 1 alexw alexw 30 Oct 27 11:32 right
[alexw@alexw-device Desktop]$ cat right
/etc/pam.d/passwd
/etc/passwd

(3)复制所有输出到指定位置,并统计命令输出的行数

[alexw@alexw-device Desktop]$ find /etc -name passwd 2>&1 | tee all | wc -l
17
[alexw@alexw-device Desktop]$ cat all
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

(4)查找/etc/下的passwd文件,保存到all并显示输出内容

[alexw@alexw-device Desktop]$ find /etc -name passwd 2>&1 | tee all | cat
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

(5)查找/etc/下的passwd文件,转换输出为大写并显示输出内容

[alexw@alexw-device Desktop]$ find /etc -name passwd 2>&1 | tee all | tr 'a-z' 'A-Z' | cat
FIND: ‘/ETC/PKI/RSYSLOG’: PERMISSION DENIED
FIND: ‘/ETC/GRUB.D’: PERMISSION DENIED
FIND: ‘/ETC/LVM/ARCHIVE’: PERMISSION DENIED
FIND: ‘/ETC/LVM/BACKUP’: PERMISSION DENIED
FIND: ‘/ETC/LVM/CACHE’: PERMISSION DENIED
FIND: ‘/ETC/DHCP’: PERMISSION DENIED
/ETC/PAM.D/PASSWD
/ETC/PASSWD
FIND: ‘/ETC/CUPS/SSL’: PERMISSION DENIED
FIND: ‘/ETC/NFTABLES’: PERMISSION DENIED
FIND: ‘/ETC/POLKIT-1/RULES.D’: PERMISSION DENIED
FIND: ‘/ETC/POLKIT-1/LOCALAUTHORITY’: PERMISSION DENIED
FIND: ‘/ETC/SSSD’: PERMISSION DENIED
FIND: ‘/ETC/AUDIT’: PERMISSION DENIED
FIND: ‘/ETC/LIBVIRT’: PERMISSION DENIED
FIND: ‘/ETC/FIREWALLD’: PERMISSION DENIED
FIND: ‘/ETC/SUDOERS.D’: PERMISSION DENIED

(6)非交互式

[alexw@alexw-device Desktop]$ cat mytest
echo this is a test
touch testfile
echo "套娃" > testfile
[alexw@alexw-device Desktop]$ sh mytest
this is a test
[alexw@alexw-device Desktop]$ cat testfile
套娃

4.watch

terminal1:

watch -n 1 "tail -n 4 /root/Desktop/test;echo =======;"

terminal2:

echo "12345" >> test

效果

在这里插入图片描述

三 、文件权限管理

1.权限位

rwx|r--|r--
属主、属组、其他

2.权限的数字表示

二进制表示

rw-  =  110  =  6
rwx  =  111  =  7

3.umask

  • 查看保留权利
[alexw@alexw-device ~]$ umask
0002
  • 临时提权
[alexw@alexw-device ~]$ umask 0777
[alexw@alexw-device ~]$ umask
0777

4.属主和属组管理

chown username file ##更改属主
chgrp groupname file ##更改属组
chown username:groupname file ##同时更改文件的属主和属组
chown|chgrp -R user|group dir ##更改目录本身及目录中内容的属主或属组

5.特殊权限

777给的是任何用户可读可写可执行的权限,也可以指定其他的

(1)o+t

  • 粘制位
chmod 1777 /test/
chmod o+t /test/

[alexw@alexw-device ~]$ ll /test/
total 0
-rw-rw-r--. 1 alex  alex  0 Oct 27 16:35 alex
-rw-rw-r--. 1 alexw alexw 0 Oct 27 16:36 alexw
[alexw@alexw-device ~]$ rm -rf /test/*
rm: cannot remove '/test/alex': Operation not permitted
  • 不属于自己的文件不能删除

(2)g+s

  • 强制位
  • 目录中新建的文件自动归属到目录的所属组中
chmod 2777 dir
chmod g+s dir

[root@alexw-device ~]# su - alexw
Last login: Thu Oct 27 16:35:56 CST 2022 on pts/0
[alexw@alexw-device ~]$ touch /test/alexw
[alexw@alexw-device ~]$ ll /test/
total 0
-rw-rw-r--. 1 alex  alex 0 Oct 27 16:35 alex
-rw-rw-r--. 1 alexw root 0 Oct 27 16:40 alexw

实验
#########  terminal1运行一个程序,阻塞
su - alexw
/bin/cat 

#########  terminal2 watch监控,阻塞
watch -n 1 "ps ax -o user,group,comm | grep cat"
alexw    alexw    cat

#########  terminal3  修改该程序的权限,切换到另一个用户并运行程序,阻塞
用root用户身份
chmod g+s /bin/cat
su - alex
/bin/cat 


#########  terminal2 watch监控发生变化
alexw    alexw    cat
alex     root     cat

请添加图片描述

(3)u+s

  • 冒险位
  • 只对二进制可执行文件
  • 当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
    请添加图片描述

6.acl权限

实验1

terminal1:
观察输入下列命令后权限的变化
watch -n 1 "getfacl mytest"

terminal2:
[alexw@alexw-device Desktop]$ setfacl -m u:alex:rw mytest
[alexw@alexw-device Desktop]$ setfacl -m g:alex:rw mytest
[alexw@alexw-device Desktop]$ setfacl -m u::rwx mytest
[alexw@alexw-device Desktop]$ setfacl -m g::0 mytest
[alexw@alexw-device Desktop]$ setfacl -x u:alex mytest
[alexw@alexw-device Desktop]$ setfacl -b mytest

实验2

[alexw@alexw-device Desktop]$ setfacl -m g::7 mytest  指定了组的rwx权限后,再进行chmod降低权限,acl一样会被修改

[root@alexw-device Desktop]# chmod 755 mytest 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值