Linux - 扩展
每次输入命令行按下 Enter 键时,bash 都会在执行命令之前对文本进行多重处理。比如 "cd ~" 中的 "~" 的会被识别为当前用户的主目录。产生这个结果的处理过程称为扩展(expansion)。
路径名扩展
路径名扩展是通过使用通配符来实现扩展的机制。常见的通配符如下:
| 通配符 | 匹配项 |
| * | 匹配任意多个字符(包括 0 和 1 个) |
| ? | 匹配任意单个字符 (不包括 0 个) |
| [characters] | 匹配任意一个属于字符集中的字符 |
| [!characters] | 匹配任意一个不属于字符集中的字符 |
| [[:alnum:]] | 匹配任意一个字母或数字 |
| [[:alpha:]] | 匹配任意一个字母 |
| [[:digit:]] | 匹配任意一个数字 |
| [[:lower:]] | 匹配任意一个小写字母 |
| [[:upper:]] | 匹配任意一个大写字母 |
实例
a) 列出当前目录的所有文件名。
[huey@huey-K42JE ~]$ ls *
Desktop Documents Music Pictures Public tmp Videos
b) 列出当前目录以 D 开头的文件名。
[huey@huey-K42JE ~]$ ls D*
Desktop Documents
c) 列出当前目录以大写字母开头的文件名。
[huey@huey-K42JE cmdline]$ ls [[:upper:]]*
Desktop Documents Music Pictures Public Videos
波浪线扩展
当 ~ 在一个单词的开头,那么它将被扩展为指定用户的主目录名。如果没有指定用户名,则扩展为当前用户的主目录。
实例
a) 切换至当前用户的主目录下。
[huey@huey-K42JE cmdline]$ cd ~
b) 切换至用户 sugar 的主目录下。
[huey@huey-K42JE cmdline]$ cd ~sugar
算术扩展
算术扩展的使用格式是 $((expression)),expression 是指包含数值和算术运算符的算术表达式。算术扩展值支持整数。
实例
a) 计算 2 的 10 次方。
[huey@huey-K42JE cmdline]$ echo $((2 ** 10))
1024
花括号扩展
用于花括号扩展的模式信息可以包含一个称为前导字符(preamble)的开头部分和一个称为附言(postscript)的结尾部分。花括号表达式本身可以包含一系列逗号分隔的字符串,也可以包含一系列整数或单个字符。模式信息不能包含内嵌的空白。
实例
a) 逆序排列字母。
[huey@huey-K42JE cmdline]$ echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
b) 花括号扩展支持嵌套。
[huey@huey-K42JE cmdline]$ echo X{a{1,2},b{1,2}}Y
Xa1Y Xa2Y Xb1Y Xb2Y
c) 按年月命名创建目录。
[huey@huey-K42JE cmdline]$ cd Pictures/
[huey@huey-K42JE Pictures]$ mkdir {2014..2015}-0{1..9} {2014..2015}-{10..12}
[huey@huey-K42JE Pictures]$ ls
2014-01 2014-03 2014-05 2014-07 2014-09 2014-11 2015-01 2015-03 2015-05 2015-07 2015-09 2015-11
2014-02 2014-04 2014-06 2014-08 2014-10 2014-12 2015-02 2015-04 2015-06 2015-08 2015-10 2015-12
参数扩展
参数扩展用在 shell 脚本中比直接用在命令行中更为有用。
实例
a) 输出环境变量 LANG 的值。
[huey@huey-K42JE Pictures]$ echo $LANG
en_US.UTF-8
命令替换
命令替换可以把一个命令的输出作为一个扩展模式使用。
实例
a) 查看 cp 程序的文件属性。
[huey@huey-K42JE Pictures]$ ls -l $(which cp)
-rwxr-xr-x 1 root root 122736 Apr 17 2012 /bin/cp
b) 可以使用反引号替代美元符号与圆括号。
[huey@huey-K42JE Pictures]$ ls -l `which cp`
-rwxr-xr-x 1 root root 122736 Apr 17 2012 /bin/cp
Linux - 扩展的更多相关文章
- 给VMware下的Linux扩展磁盘空间(以CentOS6.5为例)
#查看挂载点:df -h#显示: 文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/vg_dc01-lv_root47G 12G 34G 25% /tmpfs 504M 88K 50 ...
- 给VMware下的Linux扩展磁盘空间(以CentOS6.3为例)转
#查看挂载点:df -h#显示:文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/vg_dc01-lv_root 47G 12G 34G 25% /tmpfs 504M 88K 50 ...
- linux扩展lvm磁盘
env: centos 6.5 x64 hyper-v虚拟机 这个方法可以在当前运行的系统中扩展root磁盘 详细步骤 之前想创建的一个虚拟机的磁盘空间不够用了,所以想扩容一下磁盘. 正好使用的时候是 ...
- linux 扩展文件系统
1. 创建新分区 [root@localhost ~]# fdisk -l Disk /dev/sda: bytes, sectors Units = sectors of * = bytes Sec ...
- 给VMware下的Linux扩展磁盘空间(以CentOS6.3为例)
参照这篇文章进行的,但是和作者的步骤有些不一样. #查看挂载点:df -h#显示: 文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/vg_dc01-lv_root 47G 12G ...
- Linux扩展文件分区
**************操作之前请看章节6,看系统是否支持LVM分区管理方式*************** 1:新增磁盘 插入新的磁盘,比如物理机可以直接在卡槽插入,虚拟机可以在控制台添加磁盘或者 ...
- Linux扩展根目录下的空间
自己通过root创建了一个新用户,然而当我使用这个新用户时发现,/home/my中的空间只有几十M,完全不能满足我的使用,所以通过下面的方法扩展根下的空间. 我的本次操作,参考于 http://www ...
- Linux扩展根目录
一.简介 使用linux系统的过程中,有时发现系统根目录(/)的空间不足,导致系统运行很慢,针对该现象,本文详细介绍根目录(/)的空间扩展方法. 二.操作步骤 1)查看根目录大小 df 2)查找系 ...
- Linux扩展正则表达式
1. 扩展正则表达式 1.1 +(加号) + 表示前一个字符出现1次或1次以上 1.1.1 理解+ 要求:取出文件内容连续出现的小写字母 [root@oldboyedu50-lnb /oldboy]# ...
- linux扩展根目录空间
转自:http://blog.chinaunix.net/uid-363820-id-2181838.html Linux用户如何扩展磁盘空间? 这里以B型VPS为例,说明磁盘空间的具体扩展方法如下: ...
随机推荐
- Apache benchmark 压力测试工具
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求. 安装apa ...
- ICMP 实现
以下代码取自 kernel- . [数据结构] struct icmp_control { void (*handler)(struct sk_buff *skb); //icmp处理函数,根据icm ...
- C 语言字符串(译)
C 语言的 switch 语句非常强大.然而,它不能用字符串作为判断条件,只能用常整数.这是可以理解的,因为 C 的字符串仅仅是数组,它们并不是并不是一个整体. 在某些情况下,将 string 作为 ...
- POJ_3104_Drying_(二分,最小化最大值)
描述 http://poj.org/problem?id=3104 n件衣服,第i件衣服里面有水a[i],自然风干每分钟干1个水,用吹风机每分钟干k个水,但是同时只能对一件衣服使用吹风机,求干完所有衣 ...
- (转载)Linux上iptables防火墙的基本应用教程
(转载)http://www.vpser.net/security/linux-iptables.html iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的 ...
- HDU-2527 Safe Or Unsafe
http://acm.hdu.edu.cn/showproblem.php?pid=2527 建哈夫曼树,哈夫曼编码,求wpl值. Safe Or Unsafe Time Limit: 2000/10 ...
- Web---JS-返回上一页并刷新代码整理
返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下: 一:JS 重载页面,本地刷新,返回上一页 代码如下: ...
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- List迭代循环时出现分问题
一个List,通过迭代之后给List中的实体重新赋值,代码如下 public List getListByPage(Page currPage) { Map recordTypeMap = BusnD ...
- Ubuntu12.04-64bits搭建FFmpeg环境
所有的环境搭建动作请参考FFMpeg官方网站:http://www.ffmpeg.org/index.html 1. 获取源代码: git clone git://source.ffmpeg.org/ ...