鸟哥的Linux私房菜基础学习篇(第三版)之第十一章:认识与学习BASH

第11章:p354 认识与学习BASH

  1.  认识BASH这个shell
      1.1 硬件,核心与Shell
      1.2 为何要学文字接口的shell
      1.3 系统的合法shell与/etc/shells功能
      1.4 Bash shell的功能 alias lm='ls -al'
          type [-tpa] name
      1.5 指令的下达
  2. shell变量功能
      2.1 什么是变量
      2.2 变量的取用与设定:echo,变量设定规则,unset
           echo $PATH 或者 echo${PATH} 
           echo $HOME 或者 echo${HOME}
    var="lang is $LANG" $有效
            var='lang is $LANG' $无效
    用\转义
    version=$(uname -r) 有指令提供信息
    下3皆可以:
    PATH="$PATH":/home/bin
    PATH=$PATH:/home/bin
    PATH=${PATH}:/home/bin
    export PATH是变量成为环境变量
    系统变量大写,自定义小写
    unset name:取消变量
      2.3 环境变量的功能
          env:列出系统环境变量
          export:让自定义变量存在于子程序中
          set:所有变量,系统变量与自定义变量
          常见的环境变量:
       HOME,SHELL,HISTSIZE,MAIL,PATH,LANG,RANDOM
    declare -i number=$RANDOM*10/32768;echo $number
           PS1
            $:本shell的pid,进程id
    ?:上一条命令的返回值
    OSTYPE,HOSTTYPE,MACHTYPE
    export 让自定义变量存在于子程序中
    declare 把环境变量转成自定义变量
      2.4 影响显示结果的语系变量(locale)
      2.5 变量的有效范围
      2.6 变量键盘读取,数组与宣告:read,array,declare
          read [-pt] variable
      -p:接提示字符
    -t:接等待秒数
          read -p "please keyin your name:" -t 30 name
          declare/typeset功能一样:
          declare [-aixr] var
       -a 将var定义为数组
    -i 将var定义为整数类型
    -x 用法同export
    +x 取消export
      -r 设置为readonly
    declare -i sum=100+300+50
           数组:var[1]="a";var[2]="b";var[3]="c";echo "${var[1]},${var[2]},${var[3]}"
      2.7 与文件系统及程序的限制关系:ulimit 限制可以开启的档案数,cpu使用时间,内存总量等
          ulimit [-SHacdfltu] [配额]
    -H hard limit
    -S soft limit
    -a 不要接参数,列出所有
    -c 当某程序错误时,系统把内存中信息写成文档
    -f 此shell可以建立的最大档案容量
    -d 程序可以使用的最大断裂内存容量
    -l 可用于锁定的内存量
    -t 可使用的最大cpu时间
      -u 单一用户可以使用的最大程序数量
      2.8 变量内容的删除、取代与替换
    # 删除,${var#/*kerberos/bin:}
    #:符合取代文字最短的那个
    ##:符合取代文字最长的那个
            %与%%,从内容的后面开始
    echo ${var/word1/word2} 把第一个word1替换为word2,
    echo ${var//word1/word2} 替换所有
            -与:-,下面new_var与var_old通常一样
            new_var=${var_old-content} 如果var_old未设定,赋新值,否则保留原值
    new_var=${var_old:-content} 如果var_old未设定或者为空串都赋值
            +与:+与之相反
            =,:= 旧变了一起替换
      ?,:? 输出错误
  3.  命令别名与历史命令
      3.1 命令别名设定:alias unalias
          alias lm ='ls -al|more'
          unalias lm
      3.2 历史命令:
          history [n]  
          history [-c] 清除clear
          history [-raw] histfiles
          !number 执行第number条命令
          !command 最近以command开头的指令
          !!直接执行上一条指令
  4. Bash Shell的操作环境
      4.1 路径与指令搜寻顺序
          1 以相对/绝对路径执行指令。./ls;/bin/ls
          2 alias
          3 bash内建
          4 PATH顺序
      4.2 bash的进站与欢迎讯息: /etc/issue,/etc/motd
      4.3 bash的环境配置
          login shell 的读取配置文件顺序
          source与.:读入环境配置文件的指令
          non-login shell:~/.bashrc
      4.5 终端机的环境设定:stty,set
          stty -a bash热键设置
          set[-uvCHhmBx],查看预设 echo $-
      4.6 通配符与特殊符号
          通配符:
          *      0到无穷多个
          ?     一定有一个
          [ab]   一定有ab其中一个
          [0-9]  编码顺序内的所有字符其中一个
          [^abc] ^s是取反的意思
          特殊符号:
          # 注释
          \ 转义
          | 管线 pipe
          ; 连续指令
          ~ 家目录
          $ 取变量值
          & 工作控制:将指令变成后台工作
          !取反
          / 路径
          >,>> 输出导向
          <,<< 输入导向
          '' 不具有变量置换功能
          "" 具有变量置换功能
          `` 中间位可以先执行的指令,亦可用$()
          () 子shell的起始与结束
          {} 命令区块的组合
  5.  数据流重定向
      5.1 什么事数据流重导向
          标准输出:>,>>
          标准错误输出:2>,2>> 如: find /home -name .bashrc > list_right 2>list_error
           /dev/null 垃圾桶黑洞装置与特殊写法
           find /home -name .bashrc > list 2>&1
           find /home -name .bashrc &> list
          标准输入:<,<<
           cat > catfile 用键盘输入
            cat > catfile < ~/.bashrc 来自文件
           cat > catfile << "eof"
      5.2 命令执行的判断依据:;,&&,||
          cmd1 ; cmd2
          cmd1 && cmd2
          cmd1 || cmd2
    ls /tmp/abc && touch /tmp/abc/hehe
    ls /tmp/abc || mkdir /tmp/abc
  6.  管线命令
      ls -al /etc | less
      6.1 攫取命令:cut ,grep
       cut -d ':' -f fields   echo $PATH | cut -d ':' -f 3
          cut -c 字符区间        export | cut -c 12-
          grep [-acinv] [--color=auto] '搜寻字符串' filename
    -a:将binary档案以text方式搜寻
    -c:计算次数
    -i:忽略大写
    -n:输出行号
    -v:取反
    --color=auto:关键字部分加上颜色
    last | grep 'boot' | cut -d ' ' -f 1
      6.2 排序命令:sort,wc,uniq
          sort [-fbMnrtuk] [file or stdin]
    -f:忽略大小写的差异
    -b:忽略最前面的空格部分
    -M:一月份名字来排序
    -n:使用纯数字来排序
    -r:方向排序
    -u:相同的数据,仅出现一行
    -t:分隔符
    -k:以哪个区间来进行排序
    cat /etc/passwd |sort -t ':' -k 3 -n
          uniq [-ic] 相同的数据,仅出现一行
    -i 忽略大小写
    -c 进行计数
          wc [-lwm]
    -l 仅列出行
    -w 列出有多少单词
    -m 列出多少字符
      6.3 双向重导向:tee [-a] file
      6.4 字符转换命令:tr col join paste expand
      6.5 分割命令:split,文档分割
      6.6 参数替换:xargs
      6.7 减号的用途
  7.  所涉及到的命令
      last 查看最近登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值