BASH:
变量的设置规则:
1.变量与变量内容以一个符号"="来链接
2.等号两边不能直接接空白字符
3.变量名称只能是英文字母与数字,但是不能以数字开头
4.变量内容若有空白字符可使用单引号''或双引号""将内容结合
双引号内的特殊字符$等,可以保有原来的特性
单引号内的特殊字符仅为一般字符
5.可以使用逃脱字符""将特殊字符变为一般字符
6.需要返回命令结果时,可以使用反向字符`或者$()方式
建议使用$(),在复杂情况下会比较直观,唯一缺点,可能系统不支持
但是反向引号``,一定支持
7.若变量为扩增变量内容时则可使用$变量名或者$(变量)累加内容
PATH=${PATH}:/home/bin
8.若该变量需要在其子程序执行,需要export来使变量变为环境变量
9.通常大写字符为系统默认变量,自定义变量可以使用小写,方便区别
10.取消变量使用unset
变量的有效范围:
环境变量=全域变量
自定义变量=局域变量
export: 当一个文件中执行时,任何地方定义都是本文件中可以使用的
当调用另外一个文件时,如果该文件中的变量使用父文件中的,需要把父文件中的变量export定义为环境变量
变量内容的删除与取代:
${variable#/*local/bin:}
删除匹配都是从头开始或者从尾部开始不间断
从前向后匹配删除
#: 符合取代文字的最短的那一个
##: 符合取代文字的最长的那个一
从后向前匹配删除
%: 符合取代文字的最短的那一个
%%: 符合取代文字的最长的那个一
${variable/old/new}
变量的测试与内容替换
万用字符与特殊字符
&&或||
常用命令:
locale:语系变量
locale -a 查看支持的语系
locale 没有参数表示当前语系
cat /etc/locale.conf 自定义语系
read:读取键盘输入
-p: 后面接提示字符
-t: 后面接等待的秒数
read -p "Please keyin your name:" -t 30 named 最后named为变量
declare/typeset 宣告变量的类型
-a: 将后面的变量定义为阵列array类型
-i: 将后面的变量定义为整数类型
-x: 用法与export一样,定义为环境变量
-r: 将变量设置为readonly类型,不能被更改内容,也不能unset
sum=100+300+50 会认为100+300+50为字符串
declare -i sum=100+300+50 会进行运算,定义sum为整数
阵列array变量类型:
var[1] = "small min"
var[2] = "big min"
var[3] = "nice min"
echo "${var[1]}, ${var[2]}, ${var[3]}"
/etc/issue,/etc/motd 欢迎信息
/etc/profile(login shell才会读)
~/.bash_profie(login shell才会读)
source:读入环境配置文件的指令
cut:命令 -d:后面接分割字符,只能是字符! -f: 分割的第几段 -c: 以字符的单位去除固定字符区间 cut -c 12-20 grep:命令 -a:将binary文件以text文件的方式搜索 -c:计算找到搜索字符的次数 -i:忽略大小写 -n:输出行号 -v:反向选择 --color=auto sort: -f:忽略大小写 -b:忽略最前面空白字符部分 -M:以月份的名字来排序 -n:使用纯数字排序 -r:反向排序 -u:就是uniq,系统数据只出现一行 -t:分隔符,默认用tab -k:以那个区间来进行排序 uniq: -i:忽略大小写 -c: 进行计数 wc: -l:仅列出行 -w:仅列出多少字 -m:多少字符 tee:双向重定向 -a:以累加方式,将数据加入文件中 last | tee last.list | cut -d"" -f1 tr:删除或替换文字 -d:删除字符串 -s:取代重复的字符 last | tr '[a-z]' '[A-Z]' col: -x:将tab转换为对等的空白键 join:加入 -t:默认以空白字符分割数据 -i:忽略大小写 -1: -2: split:将大文件分割成小文件 -b: 文件大小, -l:以行分割 xargs:参数代替 -0:如果输入的stdin还有特殊字符,还原为一般字符 -e:这个是EOF,当分析到该字符串时,会停止继续工作 -p:在执行每个之类的argument时,都是询问 -n:后面接次数 -I:指定替换字符串 -I {} cut -d":" -f1 /etc/passwd | head -n 3 | xargs -I {} id {}