Learning Bash Shell 1


鸟哥私房菜学习笔记


type [-tpa] name

  • 不加任何参数时,type查看指令是外部还是内部指令
  • -t : file-外部命令, alias-别名, builtin-内置功能
  • -p: 后接的name为外部命令,显示完整的文件名
  • -a:会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias

Shell 变量

变量设置与显示: echo、 unset

  • echo $PATH / echo ${PATH}
    变量设置规则:
  1. 变量与变量内容以等号连接,等号两边不能直接接空格符,如: myname=Vince
  2. 双引号内的特殊字符会保持原有特性,如: var="lang is $LANG" ,执行echo $var可以得到lang is en_US;而单引号中的特殊字符则为一般字符
  3. 转义字符“\”
  4. `command`和$(command)都是获得其他命令提供的信息
  5. 取消变量: 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)数量

变量的删除、替代与替换

${变量#关键词} 从左到右,删除符合关键字的最短数据
${变量##关键词} 从左到右,删除符合关键字的最长数据
${变量%关键词} 从右往左,删除符合关键字的最短数据
${变量%%关键字} 从右往左,删除符合关键字的最长数据
${变量/旧字符串/新字符串} 第一个"旧字符串"将被"新字符串"取代
${变量//旧字符串//新字符串} 所有"旧字符串"将被"新字符串"取代

你可能感兴趣的:(Learning Bash Shell 1)