bash shell

简介: bash的主要优点如下:可以通过history查看命令的历史记录命令和文件路径补全的好帮手-->TAB命令别名 alias工作控制、前景背景控制: (job control, foreground, background)自动化脚本she...

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

目录
相关文章
|
2月前
|
移动开发 Shell Linux
百度搜索:蓝易云【Shell错误:/bin/bash^M: bad interpreter: No such file or directory】
将 `your_script.sh`替换为你的脚本文件名。运行此命令后,脚本文件的换行符将被转换为Linux格式,然后就可以在Linux系统上正常执行脚本了。
33 8
|
4月前
|
Linux Shell Windows
4:Bash shell命令-步入Linux的现代方法
4:Bash shell命令-步入Linux的现代方法
53 0
|
8月前
|
Ubuntu 安全 Linux
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
152 0
|
14天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
4月前
|
Shell
Shell(如Bash)命令行技巧
Shell(如Bash)命令行技巧
26 2
|
4月前
|
Unix Shell iOS开发
Shell错误:/bin/bash^M: bad interpreter: No such file or directory
Shell错误:/bin/bash^M: bad interpreter: No such file or directory
43 0
|
4月前
|
Shell
在Shell(如Bash)中,`while`循环
在Shell(如Bash)中,`while`循环
41 2
|
4月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
71 0
|
8月前
|
Shell Linux
10.1.5 查询指令是否为 Bash shell 的内置命令: type
10.1.5 查询指令是否为 Bash shell 的内置命令: type
61 0
|
8月前
|
Shell 测试技术 Python
如何在Bash Shell脚本中使用`exec`命令?
如何在Bash Shell脚本中使用`exec`命令?
134 0