*4 通配符及管道与反引号“`”与花括号“{}”的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*4 通配符及管道与反引号“`”与花括号“{}”的使用相关的知识,希望对你有一定的参考价值。

作业4:

一、通配符练习: 

1、显示/etc目录下,以字母开头,后面跟了一个非字母及其它任意长度任意字符的文件或目录; 

ll -dh /etc/[[:alpha:]][^[:alpha:]]*

drwxr-xr-x. 6 root root 4.0K 3月   6 17:22 /etc/X11



2、显示/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录;

ll -dh /usr/share/man/man[0-9]

drwxr-xr-x. 2 root root  56K 3月   6 17:29 /usr/share/man/man1

drwxr-xr-x. 2 root root  20K 3月   6 17:29 /usr/share/man/man2

drwxr-xr-x. 2 root root  68K 3月   6 17:29 /usr/share/man/man3

drwxr-xr-x. 2 root root 4.0K 3月   6 17:29 /usr/share/man/man4

drwxr-xr-x. 2 root root  12K 3月   6 17:29 /usr/share/man/man5

drwxr-xr-x. 2 root root 4.0K 3月   6 17:29 /usr/share/man/man6

drwxr-xr-x. 2 root root  12K 3月   6 17:29 /usr/share/man/man7

drwxr-xr-x. 2 root root  28K 3月   6 17:29 /usr/share/man/man8

drwxr-xr-x. 2 root root 4.0K 9月  23 2011 /usr/share/man/man9



3、复制/etc目录下,所以p,m,r开头的,且以.conf结尾的文件或目录至/tmp/conf.d目录下;

mkdir -pv /tmp/conf.d

mkdir: 已创建目录 "/tmp/conf.d"

cp -a /etc/[p,m,r]*.conf /tmp/conf.d

ll -h /tmp/conf.d

总用量 44K

-rw-r--r--. 1 root root  827 7月  24 2015 mke2fs.conf

-rw-r--r--. 1 root root 2.6K 8月  17 2010 mtools.conf

-rw-r--r--. 1 root root 1.4K 8月  23 2010 pbm2ppa.conf

-rw-r--r--. 1 root root  370 10月 15 2014 pm-utils-hd-apm-restore.conf

-rw-r--r--. 1 root root 6.2K 8月  23 2010 pnm2ppa.conf

-rw-r--r--. 1 root root  789 7月  19 2013 prelink.conf

-rw-r--r--. 1 root root  966 11月 23 2013 readahead.conf

-rw-r--r--. 1 root root 1.5K 10月 15 2014 request-key.conf

-rw-r--r--. 1 root root  238 3月   6 17:35 resolv.conf

-rw-r--r--. 1 root root 3.1K 3月   6 17:26 rsyslog.conf


4、创建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件,并按照下述要求写出相应的命令;

  注意,以上文件是以逗号隔开的,其它符号都是文件名的组成部分;

  1) 显示所有以a或m开头的文件;

mkdir -pv /mnt/lianxi/{a123,cd6,c78m,‘c1 my‘,m.z,‘k 67‘,8yu,789}

mkdir: 已创建目录 "/mnt/lianxi"

mkdir: 已创建目录 "/mnt/lianxi/a123"

mkdir: 已创建目录 "/mnt/lianxi/cd6"

mkdir: 已创建目录 "/mnt/lianxi/c78m"

mkdir: 已创建目录 "/mnt/lianxi/c1 my"

mkdir: 已创建目录 "/mnt/lianxi/m.z"

mkdir: 已创建目录 "/mnt/lianxi/k 67"

mkdir: 已创建目录 "/mnt/lianxi/8yu"

mkdir: 已创建目录 "/mnt/lianxi/789"

ll -dh /mnt/lianxi/[a,m]*

drwxr-xr-x. 2 root root 4.0K 3月   6 17:44 /mnt/lianxi/a123

drwxr-xr-x. 2 root root 4.0K 3月   6 17:44 /mnt/lianxi/m.z


  2) 显示所有文件名中包含了数字的文件;

ll -dh /mnt/lianxi/*[0-9]*

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/789

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/8yu

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/a123

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/c1 my

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/c78m

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/cd6

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/k 67

ll -dh /mnt/lianxi/*[[:digit:]]*

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/789

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/8yu

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/a123

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/c1 my

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/c78m

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/cd6

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/k 67


  3) 显示所有以数字结尾且文件名中包含空白字符的文件;

ll -dh /mnt/lianxi/*[[:digit:]]

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/789

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/a123

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/cd6

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/k 67

ll -dh /mnt/lianxi/*[0-9]

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/789

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/a123

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/cd6

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/k 67


  4) 显示文件名中不以c字母开头并且不以数字结尾的所有文件;

ll -dh /mnt/lianxi/[^c]*[^[:digit:]]

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/8yu

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/m.z

ll -dh /mnt/lianxi/[^c]*[^0-9]

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/8yu

drwxr-xr-x. 2 root root 4.0K 3月   6 17:40 /mnt/lianxi/m.z


二、管道及IO重定向练习:

1、统计/usr/bin/目录下的文件个数;

ll -a /usr/bin/|wc -l

1443


2、取出/etc/passwd文件中第9至第15个用户的用户名和shell,并将其保存至/tmp/users文件中;

head -n 15 /etc/passwd|tail -n 7|tee /tmp/users

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin


3、显示/etc目录下所有以.conf开头的文件或目录,并统计其个数;

ll -dh /etc/.conf*|wc -l

ls: 无法访问/etc/.conf*: 没有那个文件或目录

0


4、把/etc/passwd文件最后三行信息中所有小写字符改为大写,并且删除所有的":"、"/"以及数字字符;

tail -n 3 /etc/passwd|tr ‘a-z‘ ‘A-Z‘|tr -d ": 、/ 0-9"

SSHDXPRIVILEGE-SEPARATEDSSHVAREMPTYSSHDSBINNOLOGIN

TCPDUMPXSBINNOLOGIN

WANQIXWANQIHOMEWANQIBINBASH

tail -n 3 /etc/passwd|tr ‘a-z‘ ‘A-Z‘|tr -d ": 、/ [:digit:]"

SSHDXPRIVILEGE-SEPARATEDSSHVAREMPTYSSHDSBINNOLOGIN

TCPDUMPXSBINNOLOGIN

WANQIXWANQIHOMEWANQIBINBASH


5、取出/etc/fstab的第6行;

head -n 6 /etc/fstab|tail -n 1

# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘


6、取出/etc目录下所有以s开头的文件或目录,将其中最前面的8个文件保存到/tmp/start_with_s.out并同时进行标准输出;

ll -dh /etc/[s]*|head -n 8| ll -dh /etc/[s]*|head -n 8|tee /tmp/start_with_s.out 

drwxr-xr-x. 2 root root 4.0K 3月   6 17:22 /etc/samba

drwxr-xr-x. 3 root root 4.0K 3月   6 17:23 /etc/sane.d

drwxr-xr-x. 2 root root 4.0K 3月   6 17:23 /etc/sasl2

drwxr-xr-x. 3 root root 4.0K 3月   6 17:28 /etc/scl

-rw-------. 1 root root  122 1月  12 2010 /etc/securetty

drwxr-xr-x. 6 root root 4.0K 3月   6 17:22 /etc/security

drwxr-xr-x. 3 root root 4.0K 3月   6 17:24 /etc/selinux

-rw-r--r--. 1 root root 626K 10月  2 2013 /etc/services


三、其他练习:

1、将目录/etc备份至/backup目录中,并重命名为“etc-当前日期_当前时间”,如etc-2013-02-26_20:46:30;要求保留文件原来的属性,保持链接文件;


mkdir -pv /backup

mkdir: 已创建目录 "/backup"

cp -a /etc /backup/etc-`date +%F-%T`

ll -h /backup

总用量 12K

drwxr-xr-x. 116 root root 12K 3月  23 00:23 etc-2017-03-23-01:27:38


2、使用touch命令基于花括号展开的方式创建如下文件:ace  acf  acg  ade  adf  adg  bce  bcf  bcg  bde  bdf  bdg;


touch /mnt/lianxi/{ace,acf,acg,ade,adf,adg,bce,bcf,bcg,bde,bdf,bdg}.txt

ll -h /mnt/lianxi

总用量 0

-rw-r--r--. 1 root root 0 3月  23 01:43 ace.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 acf.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 acg.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 ade.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 adf.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 adg.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bce.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bcf.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bcg.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bde.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bdf.txt

-rw-r--r--. 1 root root 0 3月  23 01:43 bdg.txt





以上是关于*4 通配符及管道与反引号“`”与花括号“{}”的使用的主要内容,如果未能解决你的问题,请参考以下文章

linux系统常用命令统计及shell特殊字符

shell字符

Linux Shell基础 通配符

CTF下的命令执行漏洞利用及绕过方法总结

shell通配符及特殊符号

linux常用命令及使用技巧