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文件管理的主要内容,如果未能解决你的问题,请参考以下文章