bash shell

bash的主要优点如下:

  1. 可以通过history查看命令的历史记录
  2. 命令和文件路径补全的好帮手-->TAB
  3. 命令别名 alias
  4. 工作控制、前景背景控制: (job control, foreground, background)
  5. 自动化脚本shell scripts
  6. 通配符
    * 匹配 0 或多个字符
    ? 匹配任意一个字符
    [list] 匹配 list 中的任意单一字符
    [!list] 匹配 除list 中的任意单一字符以外的字符
    [c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    {string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串
    {c2..c2} 匹配 c1-c2 中全部字符 如{1..10}

注:使用type COMMAND可以判断命令是不是Bash shell 内置命令


Bash shell 命令快速编辑

按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动

Bash shell中的变量

  • 获取变量:echo $variable
echo $HOME
echo $PATH 或echo ${PATH} 
  • 设置变量 Var=value
  • 删除变量 unset Var
  • 如果需要该变量在其他子程序中执行,则需要以export时该变量变为环境变量 export PATH

注:

  • 双引号仍然可以保有变量的内容,但单引号内仅能是一般字元 ,而不会有特殊符号
  • 在一串指令中,在 ` 之内的指令将会被先执行,而其执行出来的结果将​​做为外部的输入信息!

环境变量

用 env 观察环境变数与常见环境变量说明:

  • HOME
    代表使用者的家目录。还记得我们可以使用 cd ~ 去到自己的家目录吗?或者利用 cd 就可以直接回到使用者家目录了。那就是取用这个变数啦~ 有很多程式都可能会取用到这个变数的值!

  • SHELL
    告知我们,目前这个环境使用的 SHELL 是哪支程式? Linux 预设使用 /bin/bash 的啦!

  • HISTSIZE
    这个与『历史命令』有关,亦即是, 我们曾经下达过的指令可以被系统记录下来,而记录的『笔数』则是由这个值来设定的。

  • MAIL
    当我们使用 mail 这个指令在收信时,系统会去读取的邮件信箱档案 (mailbox)。

  • PATH
    就是执行档搜寻的路径啦~目录与目录中间以冒号(:)分隔, 由于档案的搜寻是依序由 PATH 的变数内的目录来查询,所以,目录的顺序也是重要的喔。

  • LANG
    这个重要!就是语系资料啰~很多讯息都会用到他, 举例来说,当我们在启动某些perl 的程式语言档案时,他会主动的去分析语系资料档案, 如果发现有他无法解析的编码语系,可能会产生错误喔!一般来说,我们中文编码通常是 zh_TW.Big5 或者是 zh_TW.UTF-8,这两个编码偏偏不容易被解译出来,所以,有的时候,可能需要修订一下语系资料。这部分我们会在下个小节做介绍的!

  • RANDOM
    这个玩意儿就是『随机乱数』的变数啦!目前大多数的 distributions 都会有乱数产生器,那就是 /dev/random 这个档案。我们可以透过这个乱数档案相关的变数 ($RANDOM) 来随机取得乱数值喔。在 BASH 的环境下,这个 RANDOM 变数的内容,介于 0~32767 之间,所以,你只要 echo $RANDOM 时,系统就会主动的随机取出一个介于 0~32767 的数值。万一我想要使用 0~9 之间的数值呢?呵呵~利用 declare 宣告数值类型, 然后这样做就可以


set可以查看所有的变量


自定义变量和环境变量最大的区别在于是否会被子程序所继续引用,因为子程序仅会继承父程序的环境变量, 而不会继承父程序的自定义变量
自定义变量-->环境变量 export Var
环境变量 --> 自定义变量 declare

你可能感兴趣的:(bash shell)