1.shell识别三种基本命令:
内建命令、shell函数、外部命令
2. /dev/null 位桶
/dev/tty 终端控制台 串行端口 伪终端-------------可以用于输入密码
3.stty -echo 关闭自动打印输入字符
stty echo打开自动打印输入字符
4.设置环境变量 PATH=$PATH:$HOME/bin 其中 $PATH是系统环境变量路径 $HOME是本地的用户路径 后面跟需要设置的环境变量路径
这种方法是临时添加的 如果需要永久添加 :修改./profile文件
5.其中环境变量中的多个位置 可以使用:改变查找的优先权 :加在首部 先从当前目录查找 加在尾部,最后从当前目录查找
6.shell脚本中的位置参数----命令行参数($1---$9),超过9必须要用{}中括号括起来
7.软件的国际化--代码i18n--表示internationnalization(单词首位之间有18个字母)
软件的本地化--代码l10n--表示localization(单词首位之间10个字母)
8.
--------------------------------------------------------------------------------我是分割线---------------------------------------------------------
9.正则表达式-----一个字符或和元字符组合成的字符集,它们匹配(或指定)一个模式。
查找匹配文本行--grep
改变输入流--sed
字符串处理--awl,Icon,perl,python,ruby,tcl
文件查看程序--more, less,page
文本编辑器--emacs,vim等
10.锚
一个锚指明了正则表达式在一行文本中要匹配的位置,例如^和$就是锚。
3.修饰符
它们用于展开或缩小(即是修改了)正则表达式匹配文本行的范围.修饰符包括了星号、括号和反斜杠符号。
* 匹配重复零次或多次前一字符
+ 匹配一个或多个前面的字符.它的作用和*很相似,但唯一的区别是它不匹配零个字 符的情况
? 匹配零或一个前面的字符。它一般用于匹配单个字符
. 匹配任意字符( 除换行符 )
^ 匹配一行的开头,但依赖于上下文环境,可能在正则表达式中表示否定一个字符 集的意思
[...] 匹配集合中任意字符 如"[xyz]" 匹配字符 x, y, 或z
[^...] 匹配不属集合 中 任意字符
^, $ 匹配 行首、行尾
\<, \> 用于表示单词的边界。\< 匹配词首&#xff0c;\>词尾&#xff0c;如"\" 匹配单词"the"
\(...\) 正则表达式分组。进行子字符串提取(substring extraction)一起使用很有用
\n 第 n 个分组内容
\ 转义(escapes) 一个特殊的字符,使这个字符表示原来字面上的意思。"\$"表示 了原来的字面意思"$",而不是在正则表达式中表达的匹配行尾的意思."\\"也被 解释成了字面上的意思"\"
\{ \} 指示前面正则表达式匹配的次数.
要转义是因为不转义的话大括号只是表示他们字面上的意思.这个用法只是技巧上 的而不是基本正则表达式的内容."[0-9]\{5\}" 精确匹配5个数字(从0到9的数字).
| "或"&#xff0c;正则操作符用于匹配一组可选的字符
{n} n是一个非负整数。匹配确定的n次。例如&#xff0c;&#39;&#39;o{2}&#39;&#39; 不能匹配 "Bob"中的&#39;&#39;o&#39;&#39;&#xff0c;但是能匹配"food" 中的两个o。
{n,} n是一个非负整数。至少匹配n次。例如&#xff0c;&#39;&#39;o{2,}&#39;&#39; 不能匹配"Bob"中的&#39;o&#39;&#39;&#xff0c;但能匹配 "foooood"中的所有o。&#39;&#39;o{1,}&#39;&#39;等价于&#39;&#39;o&#43;&#39;&#39;。&#39;&#39;o{0,}&#39;&#39;则等价于&#39;&#39;o*&#39;&#39;。
{n,m} m和n均为非负整数&#xff0c;其中n<&#61;m。最少匹配n次且最多匹配m次。例如&#xff0c;"o{1,3}"将匹配 "fooooood"中的前三个o。&#39;&#39;o{0,1}&#39;&#39;等价于&#39;&#39;o?&#39;&#39;。请注意在逗号和两个数之间不能有空格。
\b 匹配一个单词边界&#xff0c;也就是指单词和空格间的位置。例如&#xff0c;&#39;&#39;er\b&#39;&#39; 可以匹配"never" 中的&#39;&#39;er&#39;&#39;&#xff0c;但不能匹配 "verb"中的 &#39;&#39;er&#39;&#39;。
\B 匹配非单词边界。&#39;&#39;er\B&#39;&#39;能匹配"verb"中的&#39;&#39;er&#39;&#39;&#xff0c;但不能匹配"never"中的 &#39;&#39;er&#39;&#39;
\w 匹配包括下划线的任何单词字符。等价于&#39;&#39;[A-Za-z0-9_]&#39;&#39;。
\W 匹配任何非单词字符。等价于&#39;&#39;[^A-Za-z0-9_]&#39;&#39;。
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[^0-9]。
\f 匹配一个换页符。等价于\x0c和\cL。
\n 匹配一个换行符。等价于\x0a和\cJ。
\r 匹配一个回车符。等价于\x0d和\cM。
\s 匹配任何空白字符&#xff0c;包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]。
\S 匹配任何非空白字符。等价于[^\f\n\r\t\v]。
\t 匹配一个制表符。等价于\x09 和 \cI。
\v 匹配一个垂直制表符。等价于\x0b和\cK。
6&#xff0c;几种有用的正则表达式
项目 | 正则表达式 |
匹配正规文本中的单词 | \b[[:alpha:]]&#43;\b 或 (^| )["({[]*book[]})"?,.:;!&#39;s ]*( |$) |
匹配空行 | ^$ |
匹配含有空格的空白行和空行 | ^空格*$ |
匹配整个行 | ^.*$ |
匹配一个或多个空格 | 空格空格* |
匹配s前面含有任意abc随机组合的字符串 | [abc]*s |
匹配格式化的美元数额 | \$[空格0-9]*\.[0-9][0-9] |
匹配电子邮件地址 | [A-Za-z0-9.]&#43;&#64;[A-Za-z0-9.]&#43;\.[a-zA-Z]{2,4} |
匹配一个HTTP URL | http://[a-zA-Z0-9\-\.]&#43;\.[a-zA-Z]{2,4} |
12./是js中正则表达式的定界符&#xff0c;就像引号是字符串的定界符&#xff0c;
var regx&#61;/beijing|shanghai/; 加双斜杠作为界定符&#xff0c;表示这之间是一个正则表达式&#xff0c;需要使用正则表达式来解释。