Bash学习笔记

mender Bash学习笔记 Jun 15, 2013 16:49:53


    1. 命令的别名alias,取消别名用unalias

      #alias ..='su -'

    2. 察看命令是否为bash内建命令 type

      #type -a su

      su `su -' 的别名

      su /bin/su

    3. 变量设定 =

      1. 变量只能以字母开头,字母和数字组成

      2. 变量内容若有空格可以使用双引号“”或单引号括起来,

        双引号内的图书字符可保留原本的特性,

        单引号内的特殊字符都视为纯文本

      3. 在一串指令中,还要藉由其他的指令提供的信息,可以使用反单引号或者小括号

        version=`uname -r` 或者 version=$(uname -r)

      4. 若该变量需要在其他子程序执行,则需要用export来使变量变成环境变量

      5. 取消变量的方法为使用unset

    4. 察看环境变量 env

    5. 常见环境变量介绍

      1. HOME:家目录

      2. SHELL:当前使用的shell程序

      3. HSITSIZEshell命令历史记录大小

      4. MAILmailbox信箱目录

      5. PATH:存放执行文件搜寻路径

      6. LANG:存放语言信息,例如en_US.UTF-8,表示美式英语,UTF-8编码

      7. RANDOM:随机数变量,可以用$RANDOM来取得一个随机数,大小介于0~32767之间

        想要生成0~9的随机数只要:

        declare -i number=${RANDOM}%10

        echo $number

    6. 察看所有的变量 set

    7. 常见bash变量介绍

      1. PS1:提示符的设定

        \H 完整的主机名

        \h 仅显示主机名在第一个小数点之前的名字

        \u 目前使用者的帐号

        \w 完整的工作目录名称,由跟目录写起的目录名称,家目录为~

        \W 利用basename函数取得工作目录名称,仅仅显示最后一个目录名

        \# 下达的第几个指令

        \$ 提示字符,如果是root,为#,否则$

        常见设定为PS1='\u@\h:\w\$'

      2. $: shellPID

        #echo $$

      3. ?: 关于上个执行指令的回传值

        一般,成功为0,失败为错误代码

      4. OSTYPE: 操作系统类型,例如linux-gnu

      5. HOSTTYPE: 主机CPU类型,例如i686

        目前个人计算机的CPU主要分为32/64,

        其中32位有可以分为i386, i586, i686,

        64位则称为x86_64

        由于不同等级的CPU指令集不太相同,所以软件也有i386/i686x84_64之分

      6. MACHTYPE: 硬件等级,例如i686-pc-linux-gnu

    8. 察看系统支持的语言系统和编码系统 local

      #local -a

      C

      C.UTF-8

      en_AG

      en_AG.utf8

      #local

      LANG=en_US.UTF-8

      LANGUAGE=en_US:zh_CN:en

      LC_CTYPE="en_US.UTF-8"

      LC_NUMERIC=en_US.UTF-8

    9. 键盘读取 read

      read [-pt] variable

      -p 后面可以接提示字符

      -t 后面可以接等待的秒数

    10. bash变量定义和显示 declare

      declare [-aixr] variable

      -a 定义数组

      -i 定义整数

      -x 定义环境变量

      -r 定义只读变量

      将以上的-改为+可以进行取消

    11. 限制用户可使用的某些系统资源数量 ulimit

      ulimit [-Shacdfltu] [配额]

      -H hard limit

      -S soft limit

      -a 后面不接任何参数,可列出所有限制额度

      -c core file的最大容量

      -f shell可以建立的最大单一文件容量,单位是kb

      -d 可以使用的最大段数量

      -l 可以用于锁定的内存容量

      -t 可以使用的最大CPU时间,单位秒

      -u 单一用户可以使用的最大程序数量

    12. 变量内容的取代与删除

      ${变量#关键词} 从头开始查找符合的关键词,并将符合的最短数据删除

      ${变量##关键词} 从头开始查找符合的关键词,并将符合的最长数据删除

      ${变量%关键词} 从尾开始查找符合的关键词,并将符合的最短数据删除

      ${变量%%关键词} 从尾开始查找符合的关键词,并将符合的最长数据删除

      ${变量/旧串/新串} 将第一个旧串用新串来替代

      ${变量//旧串/新串} 将全部旧串用新串来替代

      最好用”“来把字符串括起来

    13. 变量测试与内容替换new_var=${old-content}

      1. var=${str-expr}

        str非空时,var=$str;

        str为空时, var被设为空;

        str未定义时,var=expr;

      2. var=${str:-expr}

        str非空时,var=$str;

        str为空时,var=expr;

        str未定义时,var=expr;

    14. 历史命令 history

      history n 列出最近输入的nshell命令;

      history -c 清除shell中全部history内容;

      history -r histfile histfile中的内容读到history记忆中;

      history -a history中新增加的指令追加到histfile,若没有加histfile,则写入~/.bash_history中;

      history -w 将目前history记忆内容写入到histfiles中。

      当我们以bash登入linux后,系统会从~/.bash_history读取以前下过的指令,文件中记录的个数取决于$HISTFILESIZE。注销时,系统会把本次登陆所下达的命令追加到~/.bash_history中。如果超出最大限制,会丢掉旧的记录

    15. 执行历史命令

      !number 执行第number个历史指令;

      !command 由最近的指令向前搜寻指令串开头为command的那个指令,并执行;

      !! 执行上一个指令

    16. 指令的搜索顺序

      1. 以相对/绝对路径执行的指令

      2. alias找到的指令

      3. bash builtin 的指令

      4. 通过$PATH找到的第一个指令

    17. bash的进站欢迎信息:/etc/issue/etc/motd

    18. login shell的读取流程:

      1. /etc/profile

      2. ~/.bash_proflie or ~/.bash_login(如果有这两个文件)

      3. 若没有2中的文件,则读.profile

    19. 读入环境配置文件的指令 source

    20. non-login shell的读取流程

      读取~/.bashrc

    21. bash中的通配符

      1. * 代表0到无穷多个任意字符

      2. ? 代表一定有一个任意字符

      3. [] 代表一定有一个括号内的字符,例如[abcd]

      4. [-] 代表在编码顺序内的所有字符,例如[0-9]

      5. [^] 代表一定有一个不是括号里的字符,例如[^abc]

    22. 输出数据流重定向

      1. 1> 以覆盖的方式将standard output输出到制定的文件或装置上

      2. 1>> 以追加的方式将standard output输出到制定的文件或装置上

      3. 2> 以覆盖的方式将standard error output输出到制定的文件或装置上

      4. 2>> 以追加的方式将standard error output输出到制定的文件或装置上

      5. >/dev/null将数据流丢弃

      6. > list 2>&1将正确和错误的信息都输出到同一个文件中

    23. 输入数据流重定向

      cat > file << “eof” 将键盘的输入放到file中,且当输入eof时,结束输入

    24. 执行的判断依据

      1. ; command1;command2;command3各个指令顺序执行

      2. && cmd1&&cmd2 只有当cmd1成功了才执行cmd2

      3. || cmd1||cmd2 只有当cmd1失败了才执行cmd2

    25. 管线命令 |,用来接收上个指令的standard output

    26. 撷取命令cut

      将一段讯息的某段切出来,以行为单位处理

      1. cut -d '分隔符' -f fields,用分隔符分隔讯息,并取出第fields

        echo $PATH | cut -d '': -f 3,5

      2. cut -c 字符区间,以字符的单位取出固定字符区间

        export | cut -c 12- 取出第12个字符开始到行尾的字符串

    27. 撷取命令grep

      如果信息中有满足要就的,就取出该行

      grep [-acinv] [--color=auto] '搜寻的字符串' filename

      1. -a binary文件以text文件的方式搜寻数据

      2. -c 计算找到'搜寻字符串' 的次数

      3. -i 忽略大小写的不同

      4. -n 顺便输出行号

      5. -v 反向选择,将显示没有'搜寻字符串'内容的那一行

    28. 排序 sort

      sort [选项] [file or stdin]

      1. -f 忽略大小写差异

      2. -b 忽略最前面的空格

      3. -M 以月份字段来排序

      4. -n 使用纯数字来排序,默认是按文字来排

      5. -r 反向排序

      6. -t 分隔符,默认tab

      7. -k 按照那个field来排序,例如cat /etc/passwd|sort -t ':' -k 3 -n

    29. 去除重复的行uniq

      uniq [-ic]

      1. -i 忽略大小写的不同

      2. -c 进行计数

    30. 统计字数wc

      wc [-lwm]

      1. -l 仅列出行数

      2. -w 仅列出单词数

      3. -m 仅列出字符数

    31. 双向重定向tee

      tee [-a] file

      -a 以追加的方式加入file中,否则会覆盖原文件

    32. 删除或取代讯息中的文字tr

      1. tr -d SET1.. 删除SET1,例如 将DOS换行变为UNIX换行

        cat file1 | tr -d '\r' > file2

      2. tr -s SET1.. 去掉连续重复的字符,只保留一个

      3. 将小写换为大写last | tr [a-z] [A-Z]

    33. 分割数据split

      split [-bl] flie PREFIX

      1. -b 后面接欲分割成的文件的大小,单位可以是b,k,m

      2. -l 以行来进行分割

      3. PREFIX 代表前导符,可作为分割文件名的前导文字

    34. 产生某个指令的参数xargs

      find /sbin -perm + 7000 | xargs ls -l

转载于:https://www.cnblogs.com/mender/p/3145952.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值