能够操作应用程序的接口都能够称为shell ,狭义的shell指的是命令行方面的软件,包括bash ,广义的shell则包括图形界面的软件
为什么要学习命令行的shell
因为命令行的shell各个版本所使用的bash都是一样的,如此一来,就能轻松转换不同的distributions
再者,远程管理,命令行界面就是比较快。良好的shell程序编写也是需要的
bash作为linux默认的shell的优势
1,命令记忆能力
按上下键 就能找到前/后使用过的命令
2,命令与文件补全功能
TAB 接在一串命令的第一个字的后面,则是命令补全
TAB 接在一串命令的第二个字以后时,则是文件补齐
3,命令别名设置功能(alias)
像把ls -al 换成lm
alias lm='ls -al'
4,通配符
5,程序脚本
6,作业控制,前台、后台的控制
bash shell的内置命令 type
使用type就可以查询是外部命令(非bash所提供的命令)还是内置在bash当中的
比如 type cd 后显示的是shell内嵌的命令
\表示转义
注:\仅转义 下一个字符
shell的变量功能
变量的设置与显示
echo : 显示变量 如: echo $PATH ----需要在变量前加上$ 或以${}的方式
如果下面没有出现任何数据,是因为该变量尚未被设置,是空的
变量的设置规则
1, 变量与变量的内容以一个等号“=“来连接
2,等号两边不能直接接空格符 如myname=bai tutu 是错误的
3,变量名称只能是字母和数字,开头不能是数字 如2myname=baitutu是错误的
4,变量内容若有空格符可使用双引号或单引号将变量内容结合起来
但:双引号内的特殊字符如$等,可以保有原本的特性, 如var="lang is $LANG" 则echo $var 可得 lang is zh_cn.utf-8
若var='lang is $LANG' 则echo $var 可得 lang is $LANG
5,可以通过转义字符 \ 将特殊符号(enter , $,空格, !等)变成一般字符
6,若该变量是为了增加变量的内容时,则可用"$变量名称"或${变量}累加内容 如PATH="$PATH":home/bin
7,通常大写字符为系统默认的变量,自行设置变量可以使用小写字符,方便判断
8,取消变量的方法使用“unset 变量名称”
9,若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量
export PATH