*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) 显示所有以数字结尾且文件名中包含空白字符的文件;


[root@6 /]# ll -dh /mnt/lianxi/*[[:space:]]*[[:digit:]]

drwxr-xr-x. 2 root root 4.0K 3月  27 21:54 /mnt/lianxi/k 67

[root@6 /]# ll -dh /mnt/lianxi/*[[:space:]]*[0-9]

drwxr-xr-x. 2 root root 4.0K 3月  27 21:54 /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/目录下的文件个数;


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

1442


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;要求保留文件原来的属性,保持链接文件;


[root@6 /]# mkdir -pv /mnt/backup

mkdir: 已创建目录 "/backup"

[root@6 /]# cp -a /etc /mnt/backup/etc-`date +%F_%T`

[root@6 /]# ll -h /mnt/backup

总用量 12K

drwxr-xr-x. 116 root root 12K 3月  27 17:29 etc-2017-03-27_18:10:49


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


[root@6 /]# touch /mnt/lianxi/{a,b}{c,d}{e,f,g}

[root@6 /]# ll -h /mnt/lianxi

总用量 0

-rw-r--r--. 1 root root 0 3月  27 17:48 ace

-rw-r--r--. 1 root root 0 3月  27 17:48 acf

-rw-r--r--. 1 root root 0 3月  27 17:48 acg

-rw-r--r--. 1 root root 0 3月  27 17:48 ade

-rw-r--r--. 1 root root 0 3月  27 17:48 adf

-rw-r--r--. 1 root root 0 3月  27 17:48 adg

-rw-r--r--. 1 root root 0 3月  27 17:48 bce

-rw-r--r--. 1 root root 0 3月  27 17:48 bcf

-rw-r--r--. 1 root root 0 3月  27 17:48 bcg

-rw-r--r--. 1 root root 0 3月  27 17:48 bde

-rw-r--r--. 1 root root 0 3月  27 17:48 bdf

-rw-r--r--. 1 root root 0 3月  27 17:48 bdg


本文转自谁等了谁 51CTO博客,原文链接:http://blog.51cto.com/12486569/1909314


相关文章
|
编解码 Linux 编译器
使用 C++ 方式实现 GBK 到 UTF-8 转码 (win / linux)
使用 C++ 的方式处理在 Windows 平台和 Linux 平台,编码字符集从 GBK 到 UTF-8 转码,C++ 存在多种方式实现
3924 1
|
算法 C语言 C++
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)(一)
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)
4773 1
|
KVM 虚拟化
kvm虚拟机磁盘管理
文章详细介绍了KVM虚拟机磁盘管理,包括磁盘格式概述、创建虚拟机时如何指定磁盘格式、以及磁盘工具的常用命令,旨在帮助用户更好地理解和操作KVM虚拟机的磁盘管理。
392 1
kvm虚拟机磁盘管理
|
机器学习/深度学习
【机器学习】决策树为什么对缺失值不敏感,如何处理缺失值?
文章探讨了决策树对缺失值不敏感的原因,并提出了处理缺失值的多种策略,包括在属性选择、分割点决定和模型测试阶段的不同处理方法。
391 1
|
大数据 Python
【Python DataFrame专栏】DataFrame内存管理与优化:大型数据集处理技巧
【5月更文挑战第20天】本文介绍了使用Python的pandas库优化DataFrame内存管理的六个技巧:1) 查看DataFrame内存占用;2) 使用高效数据类型,如`category`和`int32`;3) 仅读取需要的列;4) 分块处理大数据集;5) 利用`inplace`参数节省内存;6) 使用`eval()`和`query()`进行快速筛选。这些方法有助于处理大型数据集时提高效率。
582 3
【Python DataFrame专栏】DataFrame内存管理与优化:大型数据集处理技巧
|
监控 Linux 测试技术
【实战技巧】使用inotify实现实时文件监控
`inotify`是Linux内核提供的文件系统监控机制,用于实时捕获文件和目录的创建、删除、移动和修改等事件。通过`inotify_init`初始化,`inotify_add_watch`添加监视点,如`. IN_ACCESS`, `. IN_MODIFY`等,及`inotify_rm_watch`移除监视。示例代码展示了监听指定路径下文件修改事件,当事件发生时打印信息。使用`inotify`能高效地构建实时应用,如文件同步和日志监控,简化系统编程。
1855 118
|
监控 编译器 C++
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
598 0
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
249 0
|
机器学习/深度学习 搜索推荐 Python
L2范数(L2 norm)
L2范数(L2 norm),也称为欧几里德范数(Euclidean norm)或2-范数,是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
10411 76
|
编解码 Unix Linux
【Linux C/C++ 延时(延迟)函数比较】介绍Linux系统中常用的延时函数sleep、usleep、nanosleep、select和std::sleep_for()的区别和使用场景
【Linux C/C++ 延时(延迟)函数比较】介绍Linux系统中常用的延时函数sleep、usleep、nanosleep、select和std::sleep_for()的区别和使用场景
4324 1