文章目录
Bash shell
bash,全称:Bourne Again SHell,简称 bash,是Bourne Shell的增强版本
/bin/bash 是 Linux 预设的 shell。
bash 是 GNU 计划中重要的工具软件之一,目前也是 Linux distributions 的标准 shell 。
通过下面的命令,查看当前正在使用的shell类型:
echo $SHELL
Bash shell 的功能
命令记录能力 (history)
记忆使用过的指令
在很多 distribution 里头,默认的指令记忆功能可以达到 1000 个。
指令记录在你的根目录下的 .bash_history文件中
不过,需要留意的是,~/.bash_history 记录的是前一次登入以前所执行过的指令,而至于这一次登入所执行的指令都被暂存在内存中,当你成功的注销系统后,该指令记忆才会记录到 .bash_history 当中。
命令与档案补全功能:([tab] 按键的好处)
这个按键的功能就是在 bash 里头才有的
使用 [tab] 按键的时机依据 [tab] 接在指令后或参数后而有所不同:
[Tab] 接在一串指令的第一个字的后面,则为命令补全;
[Tab] 接在一串指令的第二个字以后时,则为档案补齐;
命令删名设定功能(alias)
简化平时使用指令的方式,可以为常用的指令设置别名。
设置别名的方式为:
alias lm='ls -al'
工作控制、前景背景控制(job control, foreground, background)
主要是用来管理我们的job,让它能够更好的在后台运行
可以查看下面的博客:
程序化脚本(shell scripts)
对shell script的支持
通配符(Wildcard)
比如我们指令中使用的*,例如:列出当前文件夹下文件名中包含log关键字的所有文件信息
ls -ltr *log*
Bash shell的内建命令:type
作用:判断一个指令是来自于外部指令(指的是其他非 bash 所提供的指令) 或是内建在 bash 当中的。
[root@www ~]# type [-tpa] name
选项与参数:
不加任何选项和参数时,type 会显示出 name 是外部指令还是 bash 内建指令
-t :当加入 -t 参数时,type 会将 name 以下面这些字眼显示出他的意义:
file :表示为外部指令;
alias :表示该指令为命令别名所设定的名称;
builtin :表示该指令为 bash 内建的指令功能;
-p :如果后面接的 name 为外部指令时,才会显示完整文件名;
-a :会由 PATH变量定义的路径中,将所有含name的指令都列出来,包含alias
例如:
[root@www ~]# type -t ls
alias
[root@www ~]# type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
注意:
利用 type 搜寻后面的名称时,如果后面接的名称不能以执行档的状态被找到,那么该名称是不会被显示出来的。
所以,这个type指令也可以用来作为类似 which 指令的用途(找指令用的)
Shell 变量
定义:就是一组文字或符号等,来取代一些设定或者是一串保留的数据。
取出变量时,只用在变量名称前加上$,或者以${变量名}的方式来取用。
变量的设定规则:
- 变量和变量内容以一个等号=来连接
- 等号两边不能直接接空格符,如下格式错误:
test = 123 或者 test=this is test - 变量名只能是英文字母和数字,但是开头字符不能是数字
- 变量内容中有空格符,则可以用双引号[“”]或者单引号[’’]将变量内容括起来:(注意是英文字符单双引号)
双引号内的特殊字符如 $ 等,可以保有原本的特性:
test=“lang is $LANG”,使用echo $test,则输出lang is en_US
单引号内的特殊字符则仅为一般字符 (纯文本):
test=‘lang is $LANG’,使用echo $test,则输出lang is $LANG - 特殊字符可使用转义字符 \
内容持续更新!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155832.html