Linux里面波浪号代表什么意思?

内容简介:linux用户和组管理常见命令总结用户和组管理常见命令总结主要介绍了linux用户和组管理常见命令,总结整理了linux用户和组管理相关原理、操作命令与使用注意事项,需要的朋友可以参考下本文总结了linux用户和组管理常见命令。分享给大家供大家参考,具体如下:1、用户隶属于用户组的。、用户隶属于用户组的。2、用户与用户组配置文件、用户与用户组配置文件1)用户组配置文件/etc/group第一列:用户组的组名第二列:组密码(真正的密码存储在了gshadow中)第三列:用户组组ID,用户组唯一标识 组ID为0的是超级用户组 组ID为1-499是系统用户组 ...

资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!

}

shell 学习三十五天---波浪号展开与通配符

shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式.

如果命令行字符串的第一个字符为波浪号(~),或者变量指定(例如 PATH 或 CDPATH 变量)的值里任何未被引号括起来的冒号之后的第一个字符为波浪号(~)时,shell 变回执行波浪号展开.

波浪号展开的目的,将用户根目录的符号型表示方式,改为实际的目录路径.可以采用直接或间接的方式指定执行此程序的用户,如未明白指定,则为当前的用户:

案例分析:第一个命令,shell 将~换成$HOME,也就是当前用户的根目录.第二个命令,则是 shell 在系统的密码库里,需找用户 root,再将~root 置换为 root 的根目录.

这是一种简介的概念表示方式

这可以避免在程序里把路径名称直接编码,例如:

这段程序假设所有用户的根目录都在/home 之下.如果这又任何变动(例如,用户子目录根据部门存放在部门目录的子目录下),那么这个脚本就得重写.但如果使用波浪号展开,就能避免重写的情况:

这样一来,无论用户的根目录在哪里,程序都能正常运行了.

寻找文件名里的特殊字符,也是shell提供的服务之一.

任何不在set里的字符

星号()是一个功能强大的且广为使用的通配符;它匹配于任何字符组成的字符串.使用表达式 demo.会匹配前面说的三个文件;网页设计人员也可以用*.html 表达式匹配他们的输入文件.

set 结构是一组组字符列表(例如 abc),一段内含的范围(如 a-z),或者是两者的结合.如果希望破折号也是列表的一部分,只要把它放在第一个或最后一个就可以了.

使用set结构的通配符

任意一个大写或小写字母

任何一个字母,任何一个数字,下划线或破折号

在左方括号之后的感叹号用来”否定”一个 set.例如[!.;]符合句号和分号以外的任何一个字符;[!a-zA-Z]符合任何一个非字母的字符.

范围表示法固然方便,但不应该对包含在范围内的字符有太多的假设.比较安全的方式是:分别指定所有大写字母,小写字母,数字,或任意的子范围(例如[f-q].[2-6]).不要想在标点符号字符上指定范围,或是在混用字母大小写上使用,像[a-Z]与[A-z]这样的用法,都不能保证一定能确切的匹配出包括所有想要的字母,而没有其他不想要的字符.更大的问题是在于:这样的范围在不同的类型之间的计算机之间无法提供完全的可移植性.

另一个问题是:很多国家默认的系统语言环境与纯粹的 ASCII 的字符集是不同的.为了解决这个问题,POSIX 标准提出了方括号表达式,用来表示字母,数字,标点符号以及其他类型的字符,并且具有可移植性.在正则表达式下的方括号表达式里也出现相同的元素,它们可被用在兼容 POSIX 的 shell 内的 shell 通配符模式中,不过应该尽量避免将其应用在需可移植的 shell 脚本里.

要看到这类文件,需要在模式前面明确的提供一个点号.例如:

注意:隐藏文件只是一个习惯用法.在用户层面的软件上他是这样的,但核心程序(kernel)并不认为开头带有一个点号的文件与其他文件有不同.

}

我要回帖

更多关于 两个波浪号是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信