鸟哥私房菜学习笔记
type [-tpa] name
- 不加任何参数时,type查看指令是外部还是内部指令
- -t : file-外部命令, alias-别名, builtin-内置功能
- -p: 后接的name为外部命令,显示完整的文件名
- -a:会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias
Shell 变量
变量设置与显示: echo、 unset
- echo $PATH / echo ${PATH}
变量设置规则:
- 变量与变量内容以等号连接,等号两边不能直接接空格符,如: myname=Vince
- 双引号内的特殊字符会保持原有特性,如: var="lang is $LANG" ,执行echo $var可以得到lang is en_US;而单引号中的特殊字符则为一般字符
- 转义字符“\”
- `command`和$(command)都是获得其他命令提供的信息
- 取消变量: unset 变量名
例子
[root@www ~]# name=VBird's name
执行后会失败,因为单引号和双引号必须要成对,应该用转义字符VBird's\ name
环境变量
- env查看环境变量
- declare声明数值类型
declare -i number=$RANDOM*10/32768
- set查看所有变量
- PS1提示符设置(玩票性质)
- export 自定义变量转换成环境变量。有一个很重要的概念要理解:bash的子进程不能继承父进程的环境变量,但能继承父进程的环境变量。
键盘读取变量、声明数组
- read键盘读取变量
read [-pt] variable
-p:后面可以接提示符
-t:后面接等待的秒数read -p "Please input your name: " -t 30 named
- declare / typeset
declare [-aixr] variable
-a:将变量定义为数组
-i:将变量定义为整数
-x:将变量定义为环境变量,与export一样
-r:将变量定义为只读类型
"-"变为"+",如"+x",取消环境变量的定义
数组: var [index]=content
限制系统资源ulimit
- ulimit [-SHacdfltu] [配额]
-H:hard limit,严格设置
-S:soft limit,警告设置
-a:不接任何参数,例出所有限制额度
-c:限制core file最大容量
-f:此shell可以创建的最大文件容量
-d:进程可使用的最大断裂内存(segment)容量
-l:用于锁定(lock)的内存量
-t:可使用的最大CPU时间(s)
-u:单一用户可以使用的最大进程(process)数量
变量的删除、替代与替换
${变量#关键词} 从左到右,删除符合关键字的最短数据
${变量##关键词} 从左到右,删除符合关键字的最长数据
${变量%关键词} 从右往左,删除符合关键字的最短数据
${变量%%关键字} 从右往左,删除符合关键字的最长数据
${变量/旧字符串/新字符串} 第一个"旧字符串"将被"新字符串"取代
${变量//旧字符串//新字符串} 所有"旧字符串"将被"新字符串"取代