linux命令行展开、文件元数据、反引号、通配符、useradd、userdel

*********************************************************************************************************

命令行展开功能:

{}可以承载一个以逗号为分割符的列表,进行展开,如下使用此功能实现一次性新建多个目录:

[root@centos6 test]#mkdir /tmp/{x,q}_{y,z}
[root@centos6 test]#ll /tmp/
total 16
drwxr-xr-x. 2 root root 4096 May 11 17:01 q_y
drwxr-xr-x. 2 root root 4096 May 11 17:01 q_z
drwxr-xr-x. 2 root root 4096 May 11 17:01 x_y
drwxr-xr-x. 2 root root 4096 May 11 17:01 x_z
[root@centos6 test]#

*********************************************************************************************************

文件元数据:

文件系统中的数据分为两类,分别是数据和元数据。数据:指的是普通文件中的实际数据;

元数据:指用来描述一个文件的特征系统数据,诸如文件类型、链接数、访问权限、属主、属组、

inode、atime、mtime、ctime等信息;

  •  Access Time:简写为atime,表示文件上一次被访问的时间,如用ls命令查看文件时,会更新atime
  • Modify Time:简写为mtime,表示文件内容上一次被修改的时间,文件内容被修改时,说明文件已
    • 被访问,同时文件的大小等文件状态信息也被改变了,所以此时atime/ctime也随着改变。
  •  Change Time:简写为ctime,表示文件状态信息上一次被修改的时间,如文件的链接数,大小,
    • 权限,属主,属组等信息被修改时则更新ctime。

可以使用stat命令来查看文件元数据:

NAME
       stat - display file or file system status

SYNOPSIS
       stat [OPTION]... FILE...

如下使用stat命令查看/etc/passwd文件元数据信息

[root@centos6 ~]#stat /etc/passwd
  File: `/etc/passwd'
  Size: 1738            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 799021      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-11 16:55:14.139798808 +0800
Modify: 2019-05-11 16:55:11.775810252 +0800
Change: 2019-05-11 16:55:11.789810120 +0800

stat命令-c选项可以按需格式化输出信息,FORMAT参数具体man stat查看

-c  --format=FORMAT
              use  the  specified FORMAT instead of the default; output a newline
              after each use of FORMAT

如下通过-c 和%F 格式化输入/etc/passwd文件类型,显示为普通文件

[root@centos6 ~]#stat -c %F /etc/passwd
regular file

使用touch命令可以修改文件元数据的atime/mtime/ctime

NAME
       touch - change file timestamps

SYNOPSIS
       touch [OPTION]... FILE...
 -a     change only the access time         //只修改atime(同时ctime会随着修改)
 -m     change only the modification time   //只修改mtime(同时ctime会随着修改)
-c, --no-create
              do not create any files       //如果文件不存在时,touch默认会新建一个空文件,
                                //-c选项则不会创建(所以touch平时也可以用来创建空文件使用)


***注意:这里有个知识点,mount分区时mount命令有个选项-o noatime | nodiratime 如下:
mount -o noatime /dev/sda3 /data        //关闭文件访问时间更新功能
mount -o nodiratime /dev/sda3 /data     //关闭目录访问时间更新功能

在一些生产环境中,由于目录和文件被频繁访问,关闭访问时间更新功能能提升性能

*********************************************************************************************************

在bash中,$( )` `(反引号)都是用来作命令替换的。
效果为先完成$( )` `(反引号)里的命令行,然后将其结果替换出来,再重组成新的命令行。

如下使用date命令和$()与``反引号来创建sc-开头加当前系统时间的文件

[root@centos6 ~]#date
Sat May 11 23:27:14 CST 2019
[root@centos6 ~]#date +%Y-%m-%d-%k-%M-%S
2019-05-11-23-27-15
[root@centos6 ~]#touch /tmp/sc-$(date +%Y-%m-%d-%k-%M-%S)
[root@centos6 ~]#ll /tmp/
total 0
-rw-r--r--. 1 root root 0 May 11 23:27 sc-2019-05-11-23-27-21
[root@centos6 ~]#touch /tmp/sc-`date +%Y-%m-%d-%k-%M-%S`
[root@centos6 ~]#ll /tmp/
total 0
-rw-r--r--. 1 root root 0 May 11 23:27 sc-2019-05-11-23-27-21
-rw-r--r--. 1 root root 0 May 11 23:27 sc-2019-05-11-23-27-36

*********************************************************************************************************

globbing通配符:用于文件名整体匹配

  • *:匹配任意长度的任意字符
  • ?:匹配任意单个字符
  • []:匹配指定范围内任意单个字符  ,man tr可以查看更多[]通配符
    • 如:[0-9]  [a-z] [0-9a-z] [[:upper:]](使用大写字母)[[:lower:]](所有小写字母) [[:digit:]](所有数字)
    • [[:alpha:]](所有字母)[[:alnum:]](所有字母和数字)[[:punct:]](所有标点符号)[[:space:]](所有
    • 空白字符)
  • ^:取反,匹配指定范围外的任意单个字符
    • 如:[^0-9](非数字单个字符)[^[:upeer:]](非大写字母单个字符,注意这里不仅指小写字母,还指
    • 数字等等一切非大写字母单个字符)

如下,运用通配符实现复制/etc目录下所有的以p开头,以非数字结尾的文件和目录到/tmp/mytest目录中。两种方法,

cp  -R是递归复制,用于复制目录

[root@centos6 ~]#cp -R /etc/p*[^0-9] /tmp/mytest/
[root@centos6 ~]#ls /tmp/mytest/
pam.d         pcmcia    pm-utils-hd-apm-restore.conf  ppp             profile
pango         pinforc   pnm2ppa.conf                  prelink.cache   profile.d
passwd        pki       popt.d                        prelink.conf    protocols
passwd-       plymouth  portreserve                   prelink.conf.d  pulse
pbm2ppa.conf  pm        postfix                       printcap        purple
[root@centos6 ~]#cp -R /etc/p*[^[:digit:]] /tmp/mytest/        
[root@centos6 ~]#ls /tmp/mytest/
pam.d         pcmcia    pm-utils-hd-apm-restore.conf  ppp             profile
pango         pinforc   pnm2ppa.conf                  prelink.cache   profile.d
passwd        pki       popt.d                        prelink.conf    protocols
passwd-       plymouth  portreserve                   prelink.conf.d  pulse
pbm2ppa.conf  pm        postfix                       printcap        purple

*********************************************************************************************************

useradd:新建用户

userdel:删除用户

-u 指定用户Id号,-G指定附属组,-m指当家目录不存在时创建家目录,-k拷贝/etc/skel下的隐藏配置文件

到家目录,必须和-m一起使用,-d指定家目录,-s指定具体shell

如下,创建用户tom,指定id号为5001,附属组为sc,家目录为/tmp/tom,shell为/bin/zsh

[root@centos6 tmp]#useradd -u 5001 -G sc -m -k /etc/skel/ -d /tmp/tom -s /bin/zsh tom
[root@centos6 tmp]#tail -2 /etc/passwd
chrooter:x:503:503::/home/chrooter:/bin/bash
tom:x:5001:5001::/tmp/tom:/bin/zsh
[root@centos6 tmp]#tail -6 /etc/group
tcpdump:x:72:
sc:x:500:tom
rootkit:x:501:
user4:x:502:
chrooter:x:503:
tom:x:5001:
[root@centos6 tmp]#

userdel -r选项指删除用户的同时删除用户相关文件夹,如tom家目录/tmp/tom和/var/spool/mail/tom等文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值