美文网首页
Learning Bash Shell 1

Learning Bash Shell 1

作者: 阿斯蒂芬的质数 | 来源:发表于2018-04-23 14:39 被阅读0次

    鸟哥私房菜学习笔记


    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

          本文链接:https://www.haomeiwen.com/subject/xtxllftx.html