Linux文件管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件管理相关的知识,希望对你有一定的参考价值。

linux文件学习

linux文件管理系统

1.扫描硬盘的小技巧

[root@centos7 ~]#echo ‘- - -‘ > /sys/class/scsi_host/host2/scan;

或者

[root@centos7 ~]#echo ‘- - -‘ > /sys/class/scsi_host/host0/scan;

可以把他们写在别名中./bashrc中永久保存。保存完后再用. .bashrc重新读取一次,就可以使用了。

alias scandisk="echo ‘- - -‘ > /sys/class/scsi_host/host2/scan;echo ‘- - -‘ > /sys/class/scsi_host/host0/scan"

2.basename和dirname

[root@centos7 ~]#basename /etc/sysconfig/network
network
[root@centos7 ~]#dirname /etc/sysconfig/network
/etc/sysconfig

一种具体的用法

[root@centos7 ~]#DIR=/data/a.exe
[root@centos7 ~]#echo $DIR
/data/a.exe
[root@centos7 ~]#touch `dirname $DIR`/5.txt
[root@centos7 ~]#ll /data/
total 8
-rw-r--r--. 1 root root  0 Jul 17 20:55 2019-07-16.log
-rw-r--r--. 1 root root  0 Jul 20 16:01 5.txt
-rw-r--r--. 1 root root 13 Jul 19 14:31 test2.txt
-rw-r--r--. 1 root root  7 Jul 19 14:16 test.txt

3.硬盘快满的时候,正确的释放硬盘的方法。

程序在使用硬盘快要满的时候,rm-rf不能立刻释放空间

[root@centos7 ~]#cp /dev/zero /boot/bigfile
cp: error writing ‘/boot/bigfile’: No space left on device
cp: failed to extend ‘/boot/bigfile’: No space left on device
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321088 100485312   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9128    524672   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038268        68 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#rm -rf /boot/bigfile 
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321260 100485140   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9120    524680   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038272        64 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#ll /boot/bigfile
ls: cannot access /boot/bigfile: No such file or directory

释放磁盘空间,删除文件的正确姿势。

[root@centos7 ~]#cp /dev/zero /boot/bigfile
cp: overwrite ‘/boot/bigfile’? y
cp: error writing ‘/boot/bigfile’: No space left on device
cp: failed to extend ‘/boot/bigfile’: No space left on device
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321100 100485300   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9128    524672   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038268        68 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#ll /boot/bigfile 
-rw-r--r-- 1 root root 892141568 Jul 21 13:58 /boot/bigfile
[root@centos7 ~]#> /boot/bigfile 
[root@centos7 ~]#ll /boot/bigfile 
-rw-r--r-- 1 root root 0 Jul 21 13:59 /boot/bigfile
[root@centos7 ~]#df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      1014M  164M  851M  17% /boot
[root@centos7 ~]#rm -f /boot/bigfile

4.批量修改名字,rename示例。

[root@centos7 data]#touch f1..10.log
[root@centos7 data]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 21 14:14 f10.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f1.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f2.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f3.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f4.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f5.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f6.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f7.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f8.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f9.log
[root@centos7 data]#rename .log .log.bak *
[root@centos7 data]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 21 14:14 f10.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f1.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f2.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f3.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f4.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f5.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f6.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f7.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f8.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f9.log.bak

5.如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,/testdir/dir2/x/b

[root@centos7 data]#mkdir -pv /testdir/dir2/x/a,b,y
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir2’
mkdir: created directory ‘/testdir/dir2/x’
mkdir: created directory ‘/testdir/dir2/x/a’
mkdir: created directory ‘/testdir/dir2/x/b’
mkdir: created directory ‘/testdir/dir2/y’
[root@centos7 data]#tree /testdir/
/testdir/
└── dir2
    ├── x
    │?? ├── a
    │?? └── b
    └── y

5 directories, 0 files

6.如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b

[root@centos7 data]#mkdir -pv /testdir/dir1/x,y/a,b
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir1’
mkdir: created directory ‘/testdir/dir1/x’
mkdir: created directory ‘/testdir/dir1/x/a’
mkdir: created directory ‘/testdir/dir1/x/b’
mkdir: created directory ‘/testdir/dir1/y’
mkdir: created directory ‘/testdir/dir1/y/a’
mkdir: created directory ‘/testdir/dir1/y/b’
[root@centos7 data]#tree /testdir/
/testdir/
└── dir1
    ├── x
    │?? ├── a
    │?? └── b
    └── y
        ├── a
        └── b

7 directories, 0 files

7.如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6,
/testdir/dir5/dir7

[root@centos7 data]#mkdir -pv /testdir/dir3,4,5/dir6,7
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir3’
mkdir: created directory ‘/testdir/dir4’
mkdir: created directory ‘/testdir/dir5’
mkdir: created directory ‘/testdir/dir5/dir6’
mkdir: created directory ‘/testdir/dir5/dir7’
[root@centos7 data]#tree /testdir/
/testdir/
├── dir3
├── dir4
└── dir5
    ├── dir6
    └── dir7

5 directories, 0 files

8.磁盘空间报错,不一定是磁盘满了,可能是因为节点编号用完了。用df -i查看节点编号。

9.建很多很多文件的方法

[root@centos7 data]#touch f1..524288
-bash: /usr/bin/touch: Argument list too long
[root@centos7 data]#echo f1..524288 |xargs touch

9.硬链接不能跨分区,跨设备,硬链接不能在文件夹上使用。硬链接的节点编号一样。
软连接可以跨分区,一般都是相对路径,不写绝对路径。写相对路径要注意前后相对的路径一致。以后一个路径为准。后面的可以写绝对路径。写相对路径可以防止修改文件名称导致路径失效。软连接也支持文件夹。删除软连接时后面千万不能加/,否则会把软连接对应的文件删除,软连接没有删除。

硬链接和软连接的区别
(1)本质:硬链接:同一个文件多个名字,软连接不同的文件。
(2)硬链接不可以跨分区,软连接可以。
(3)硬链接不支持对目录创建,软连接支持。
(4)相互关系:硬链接相互是独立的关系,软连接相互是依赖的关系。
(5)inode号,硬链接相同,软连接不同
(6)链接数。硬链接会增长,软连接不会
(7)路径问题:原始文件的路径。硬链接的相对路径是当前工作目录,软连接是相对路径是根据后面软连接的路径决定。
(8)文件类型不相同。硬链接是根据原来文件,软连接是l
(9)ln ln -s

错误示例:

[root@centos7 data]#ln -s f1 d1/d2/f1.link
[root@centos7 data]#ll !*
ll -s f1 d1/d2/f1.link
0 lrwxrwxrwx 1 root root   2 Jul 21 17:37 d1/d2/f1.link -> f1
4 -rw-r--r-- 1 root root 595 Jul 21 17:09 f1

正确姿势:

[root@centos7 data]#ln -s ../../f1 d1/d2/f1.link
[root@centos7 data]#ll !*
ll -s ../../f1 d1/d2/f1.link
ls: cannot access ../../f1: No such file or directory
0 lrwxrwxrwx 1 root root 8 Jul 21 17:49 d1/d2/f1.link -> ../../f1

10.查看一个文件的详细情况。用stat 文件名。

[root@centos7 ~]#stat /etc/motd 
  File: ‘/etc/motd’
  Size: 1694        Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 135858140   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-07-20 08:44:59.905998298 +0800
Modify: 2019-07-18 19:55:06.210323146 +0800
Change: 2019-07-18 19:55:06.211323146 +0800
 Birth: -

11.查看目录大小,一般用du -sh 文件 -h -m -k

root@centos7 ~]#du -sh /root/
6.7M    /root/
[root@centos7 ~]#du -sh /data/
51M /data/

12.影响文件颜色的文件。/etc/DIR_COLORS

[root@centos7 ~]#vim /etc/DIR_COLORS

13.查看防火墙状态

[root@centos7 ~]#iptables -vnL

关闭防火墙7版本

[root@centos7 ~]#systemctl disable firewalld.service

关闭防火墙6版本

[root@centos6~]#chkconfig iptables off

14.通配符模式
预定义的字符类:man 7 glob

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:alnum:]:任意数字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:图形字符

[:xdigit:]:十六进制字符

15.删除,防止恢复的一个小用法。

[root@centos7 data]#shred -zvn 10 f1
shred: f1: pass 1/11 (random)...
shred: f1: pass 2/11 (ffffff)...
shred: f1: pass 3/11 (777777)...
shred: f1: pass 4/11 (492492)...
shred: f1: pass 5/11 (00c00c)...
shred: f1: pass 6/11 (random)...
shred: f1: pass 7/11 (aaaaaa)...
shred: f1: pass 8/11 (000000)...
shred: f1: pass 9/11 (555555)...
shred: f1: pass 10/11 (random)...
shred: f1: pass 11/11 (000000)...

16.查看2进制文件,一半hexdump -c

[root@centos7 data]#hexdump /bin/a2p 
[root@centos7 data]#xxd /bin/a2p

17.几种特殊文件的创建办法。

[root@centos7 data]#mknod /data/disk b 8 0
brw-r--r--    1 root root 8, 0 Jul 22 19:01 disk
[root@centos7 data]#mknod /data/pfile p
prw-r--r-- 1 root root 0 Jul 22 19:04 pfile
[root@centos7 data]#mkfifo /data/pfile2
prw-r--r-- 1 root root 0 Jul 22 19:04 pfile2
[root@centos7 data]#nc -Ul /data/sockfile
srwxr-xr-x 1 root root 0 Jul 22 19:05 sockfile

17.只显示/etc下的非隐藏目录

[root@centos7 data]#ls -d /etc/*/

18.原理

cp 命令:
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件。

rm 命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

如果mv命令的目标和源在相同的文件系统,作为mv 命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统, mv相当于cp和rm。

19.记录当前工作目录和上次工作目录和cd - 直接回到上次工作目录。

[root@centos7 data]#cd ~zhang
[root@centos7 zhang]#pwd
/home/zhang
[root@centos7 zhang]#echo $PWD
/home/zhang
[root@centos7 zhang]#echo $OLDPWD
/data
[root@centos7 zhang]#cd -
/data
[root@centos7 data]#

20.CP 复制软连接时不加参数会复制原文件, + -d复制软连接

21.删除大文件是考虑到对系统性能的影响,可以先创建一个硬链接后,把原文件删除,不会真的删除数据块,等系统不忙的时候再删除。。

[root@centos7 data]#ln /data/mysql/db1 /data2/db1 ;rm -f /data/mysql/db1

22.输出结果加颜色。

[root@centos7 ~]#echo -e ‘\033[31;2mfaliang\033[0m‘
faliang

23.把win文件转化为Linux文件。 tr用法

[root@centos7 data]#hexdump -c win.txt 
0000000   a  \r  \n   b  \r  \n   c  \r  \n   d  \r  \n   e            
000000d
[root@centos7 data]#hexdump -c linux.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e  \n                        
000000a
[root@centos7 data]#tr -d ‘\r‘ < win.txt >win1.txt
[root@centos7 data]#hexdump -c win1.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e                            
0000009

24.除了abc,其他的都删除,CTRL+D执行。-c是取补集。-d是删除。

[root@centos7 data]#tr -dc ‘abc‘
abc11234
abc[root@centos7 data]#

25.相当于cp命令。只有内容不变,属性权限都可能改变。

[root@centos7 data]#cat < /etc/issue > /data/issue1.bak

26.hostn 2>&1 | tr ‘a-z‘ ‘A-Z‘ = hostn |& tr ‘a-z‘ ‘A-Z‘2种把错误结果重定向的方法

[root@centos7 data]#hostn 2>&1 | tr ‘a-z‘ ‘A-Z‘
BASH: HOSTN: COMMAND NOT FOUND...
SIMILAR COMMAND IS: ‘HOST‘
[root@centos7 data]#hostn  |& tr ‘a-z‘ ‘A-Z‘
BASH: HOSTN: COMMAND NOT FOUND...
SIMILAR COMMAND IS: ‘HOST‘

27.发邮件mail -s 用. ENTER退出写完。后面加上<<EOF,可以多行邮件。

[zhang@centos7 ~]$mail  -s hi root
hello 
how are you 
.
EOT

mail 查看邮件,查看完用q退出。也可以先写好再发送cat /etc/issue | mail -s hi2 root

[root@centos7 data]#mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 zhang                 Tue Jul 23 15:55  19/623   "hi"
& 
Message  1:
From zhang@centos7.6.localdomain  Tue Jul 23 15:55:28 2019
Return-Path: <zhang@centos7.6.localdomain>
X-Original-To: root
Delivered-To: root@centos7.6.localdomain
Date: Tue, 23 Jul 2019 15:55:28 +0800
To: root@centos7.6.localdomain
Subject: hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: zhang@centos7.6.localdomain (zhang)
Status: R

hello 
how are you 

& q
Held 1 message in /var/spool/mail/root
You have mail in /var/spool/mail/root

28.tee的用法,tee既可以把输出结果显示出来,又可以重定向到文件里(相当于>的作用)。 tee -a追加相当于>>,不覆盖后面的文件。

[root@centos7 data]#hostname |tee /data/f111.log
centos7.6.localdomain
[root@centos7 data]#cat /data/f111.log 
centos7.6.localdomain

可以多次处理文件

[root@centos7 data]#hostname |tee -a /data/ff2.log |tr ‘a-z‘ ‘A-Z‘
CENTOS7.6.LOCALDOMAIN

29.将/etc/issue文件中的内容转换为大写后保存至/data/issue.out文件中

[root@centos7 data]#cat /etc/issue |tr ‘a-z‘ ‘A-Z‘ >/data/issue.out
[root@centos7 data]#cat /data/issue.out 
\S
TIME IS \T
TTY IS \L
HOSTNAME IS \N 
KERNEL \R ON AN \M

30.将当前系统登录用户的信息转换为大写后保存至/data/who.out文件中

root@centos7 data]#who | tr ‘a-z‘ ‘A-Z‘ >/data/who.out
[root@centos7 data]#cat /data/who.out 
ROOT     :0           2019-07-23 08:12 (:0)
ZHANG    PTS/0        2019-07-23 15:50 (192.168.6.1)
ROOT     PTS/2        2019-07-23 12:55 (192.168.6.1)

31.一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to check
it ,thanks!

操作系统版本信息

写多行邮件时后面加上<<EOF

[zhang@centos7 ~]$mail -s help root <<EOF
> Hello,I am $USER,The system version is here,please help me to check         it ,thanks! 
> `cat /etc/centos-release`
> EOF

32.将/root/下文件列表,显示成一行,并文件名之间用空格隔开

[root@centos7 ~]#ls /root/ |tr ‘\n‘ ‘ ‘
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg lS2s Music Pictures Public Templates Videos 

33.计算1+2+3+...+99+100的总和

[root@centos7 ~]#echo 1..100 |tr ‘ ‘ ‘+‘ |bc
5050

seq 默认的分隔符为\n,使用-s+可以把\n换成+号

[root@centos7 ~]#seq -s+   1 100
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[root@centos7 ~]#seq -s+   1 100 |bc
5050

34.删除Windows文本文件中的回车字符 ,即“\r”

[root@centos7 data]#cat win2.txt | tr -d ‘\r‘ >win22.txt
[root@centos7 data]#hexdump -C win2.txt 
00000000  61 0d 0a 62 0d 0a 63 0d  0a 64 0d 0a 65           |a..b..c..d..e|
0000000d
[root@centos7 data]#hexdump -c win2.txt 
0000000   a  \r  \n   b  \r  \n   c  \r  \n   d  \r  \n   e            
000000d
[root@centos7 data]#hexdump -c win22.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e                            
0000009

35.处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格

[root@centos7 data]#echo ‘xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4‘ | tr -dc ‘0-9 ‘ 
 1  2  3  4

36.将PATH变量每个目录显示在独立的一行

[root@centos7 data]#echo $PATH |tr ‘:‘ ‘\n‘
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

37.将指定文件中0-9分别替代成a-j

[root@centos7 data]#cat >f3.txt
1155547520246
^C
[root@centos7 data]#cat f3.txt 
1155547520246
[root@centos7 data]#cat f3.txt | tr ‘0-9‘ ‘a-j‘
bbfffehfcaceg

38.将文件/etc/centos-release中每个单词(由字母组成)显示在独立一行,并无空行

[root@centos7 data]#cat /etc/centos-release |tr -d ‘0-9.‘ |tr -s ‘ ‘ ‘\n‘ 
CentOS
Linux
release
(Core)

39.随机产生密码。

[root@centos7 ~]#openssl rand -base64 9
wDF4A/GZym5X
[root@centos7 ~]#cat /dev/urandom | tr -dc ‘[0-9a-zA-Z]‘|head -c 12
w1aJXq9YhXXG

40.查看创建用户组的配置信息。

[root@centos7 ~]#cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

41.放邮件的地方。

[root@centos7 ~]#ls /var/spool/mail
alice  jack  jerry  mage  root  rose  rpc  tom  tset  zhang  zhao

42.家目录模板文件。

[root@centos7 ~]#ls /etc/skel/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@centos7 rose]#touch /etc/skel/test.txt
[root@centos7 rose]#useradd test1
[root@centos7 rose]#ls /home/test1/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  test.txt

43.用户新建默认的文件。

[root@centos7 rose]#vim /etc/login.defs 

44.在/testdir/dir里创建的新文件自动属于webs组,组apps的成员如:tomcat能对这些新文件有读写权限,组dbs的成员如:mysql只能对新文件有读权限,其它用户(不属于webs,apps,dbs)不能访问这个文件夹.

setfacl -d 设置默认的ACL权限。 例setfacl -Rm d:g:g2:rw /testdir/dir/

[root@centos7 data]#groupadd webs
[root@centos7 data]#groupadd apps
[root@centos7 data]#groupadd dbs
[root@centos7 data]#useradd -G apps tomcat
[root@centos7 data]#useradd -G dbs mysql
[root@centos7 data]#chgrp -R webs /testdir
[root@centos7 data]#chmod g+s /testdir/dir/
[root@centos7 data]#setfacl -d -m g:apps:rw /testdir/dir/
[root@centos7 data]#setfacl -d -m g:dbs:r /testdir/dir/
[root@centos7 data]#setfacl -d -m o::0 /testdir/dir/

45.备份/testdir/dir里所有文件的ACL权限到/root/acl.txt中,清除
/testdir/dir中所有ACL权限,最后还原ACL权限

[root@centos7 /]getfacl -R testdir/dir/ > /root/acl.txt        
复制ACL权限到/root/acl.txt
[root@centos7 /]#setfacl -b -R testdir/dir/
取消ACL权限。
[root@centos7 /]#getfacl testdir/dir/    
查看ACL权限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rwx
group::r-x
other::r-x
[root@centos7 /]#setfacl -R --set-file=/root/acl.txt /testdir/dir/      
复制ACL权限到/testdir/dir/
[root@centos7 /]#getfacl testdir/dir/       
查看ACL权限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rw-
group::r-x          #effective:r--
group:apps:rw-
group:dbs:r--
mask::rw-
other::---
default:user::rwx
default:group::r-x
default:group:apps:rw-
default:group:dbs:r--
default:mask::rwx
default:other::---
[root@centos7 /]#setfacl -m mask::rwx testdir/dir/          
修改mask最高权限
[root@centos7 /]#getfacl testdir/dir/      
查看ACL权限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rw-
group::r-x
group:apps:rw-
group:dbs:r--
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:apps:rw-
default:group:dbs:r--
default:mask::rwx
default:other::---

46.误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性

[root@centos7 home]#cp -aR /etc/skel /home/mage
[root@centos7 home]#chown -R mage:mage mage
[root@centos7 home]#chmod  -R 700 mage

47.复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限

[root@centos7 ~]#cp /etc/fstab /var/tmp
[root@centos7 var]#chown tomcat:apps /var/tmp
[root@centos7 var]#chmod u=rw,g=rw,o=  /var/tmp

48.创建用户guiyuan,初始密码为123456,下次登录必须修改密码。

[root@centos7 ~]#useradd guiyuan;echo 123456 | passwd --stdin guiyuan ;passwd -e guiyuan
useradd: user ‘guiyuan‘ already exists
Changing password for user guiyuan.
passwd: all authentication tokens updated successfully.
Expiring password for user guiyuan.
passwd: Success

49.修改用户名,组名,家目录。直接继承遗产。

[root@centos7 data]#usermod -l magedu mage
[root@centos7 data]#groupmod -n magedu mage
[root@centos7 data]#mv /home/mage /home/magedu

50.

修改组的2种用法
[root@centos7 data]#chown :zhang f2
[root@centos7 data]#chgrp  zhang f1

2种把用户添加在组中的用法
[root@centos7 data]#gpasswd -a xiongshao zhang
Adding user xiongshao to group zhang

[root@centos7 data]#groupmems -a mage -g zhang
[root@centos7 data]#id mage
uid=1002(mage) gid=1002(mage) groups=1002(mage),1000(zhang),1016(renyue)

查看当前组里面的用户
[root@centos7 data]#groupmems -l 
gentoo  xiongshao 

查看某个用户属于那几个组
[root@centos7 data]#groups zhang

查看组里面有那几个用户
[root@centos7 data]#groupmems -l -g zhang
mage  xiongshao  root 

[root@centos7 data]#getent group root
root:x:0:gentoo,xiongshao

临时切换主组,创建的用户的组就为切换的。
[root@centos7 data]#newgrp zhang

下次登录强制修改密码
passwd -e tom  ===chage -d 0 tom

批量修改密码,密码格式为  user1:123456
[root@centos7 data]#cat pass.txt | chpasswd
[root@centos7 data]#echo jack:123456 |chpasswd

chattr +i 不能删除,改名,更改
chattr +a 只能追加内容
lsattr 显示特定属性

批量创建用户
[root@centos7 data]#newusers users.txt

以上是关于Linux文件管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 文件/目录管理(初级)

Linux文件和目录管理理论

Linux 基础——Linux简介目录管理文件管理

Linux权限管理(用户+文件)

Linux文件管理_1

Linux学习系列--如何在Linux中进行文件的管理