bash特性及bash脚本编程初步

什么是Bash?
Bash:是一个命令处理器,通常运行在文本窗口中,用户键入操作的命令。实质上是一个可执行程序,一个用户的工作环境.Bash还可以从文件中读取和执行命令,称为shell脚本。

什么是shell?
shell是一个命令语言解释器。即你在提示符下输入的每个命令,都由shell先解释,然后传给Linux内核并执行。shell也提供了一些内置命令,类似于DOS的内部命令,也支持调用外部工具.shell也是一个解释型的程序设计语言,也拥有像js类的程序控制结构。

用户是如何与计算机进行交互的?
终端+附着在终端上的用户接口程序。
用户接口程序主要有两类:GUI 和 CLI
GUI :图形化界面,例如 KDE , GNOME , Xfce
CLI : 命令行界面,例如 /etc/shells 包括 bash zsh 和 fish

bash的基础特性之:六点

①.命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;	

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,
在这里插入图片描述
在/tmp目录下创建目录:x_y, x_z, q_y, q_z
在这里插入图片描述

②命令别名

通过alias命令实现
   (1)alias:显示当前shell进程所有可用的别名
   (2)alias = NAME=‘VALUE’:定义别名为NAME,代表的命令是VALUE
     在命令行定义的别名,只对当前shell进程有效,如果想永久有效,需要定义在配置文件中

③文件名通配:glob

bash中用于实现文件名通配:,?,[ ],^
      (1)
:任意长度的任意字符:
          例如:a*b可能是: aab,aabbb,a12b,所有以a开头,以b结尾
      (2)?:任意单个字符:
          例如:a?b代表,以a开头以b结尾,中间有且只有一个字符
      (3)[ ] :匹配指定范围内任意单个字符:
          例如:[0-9]代表0到9的任意一个数字;[a-z]代表a到z任意一个字母,不区分大小写;[A-Z]代表A到Z任 意一个大写字母
      (4)^:匹配指定范围外的任意单个字符:
          例如:[^0-9]代表非数字
      专用字符集合:
        [:digit:]:任意数字
        [:lower:]:任意小写字母
        [:upper:]:任意大写字母
        [:alpha:]:任意字母
        [:alnum:]:任意数字或字母
        [:punct:]:任意标点符号
        [:space:]:空格

④命令历史:history

   shell进程会在其会话中保存此前用户提交执行过的命令;

在这里插入图片描述

⑤快捷键

bash基础特性:快捷键
ctrl+a:跳转至命令行行首
ctrl+e:跳转至命令行行尾
ctrl+c:取消命令的执行
ctrl+w: 移除光标前的一个单词
Ctrl+u:删除行首至光标所在处之间的所有字符
ctrl+k:删除光标所在处至行尾的所有字符
Ctrl+l:清屏,相当于clear
ctrl+s:锁定键盘
ctrl+q:解锁键盘

⑥命令补全,路径补全

1.命令查找和补全机制: 
(1) 查找内部命令; 
(2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名; 
(3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全; 
不能惟一标识某命令程序文件,再击tab键一次,会给出列表; 
2.路径补全 
在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件: 
TAB按键; 
如果能惟一标识,则直接补全; 

bash特性之:命令hash

hash 可缓存命令(记录结果次数)key-value 记录命令历史
key:搜索键
value:值
hash命令:
hash:列出
hash -d COMMAND:删除
hash -r :清空

bash的特性之:变量

程序:指令+数据
指令:由程序文件提供;
数据:IO设备、文件、管道、变量

1.bash变量类型:

		本地变量:作用域仅为当前shell进程;
		环境变量:作用域为当前shell进程及其子进程;
		局部变量:作用域仅为某代码片断(函数上下文);
		位置参数变量:当执行脚本的shell进程传递的参数;
		特殊变量:shell内置的有特殊功用的变量;

2.本地变量:

			变量赋值:name=value
			变量引用:${name}, $name

在这里插入图片描述

3.环境变量

1.变量赋值:
(1) export name=value
(2) name=value
export name
(3) declare -x name=value
(4) name=value
declare -x name
变量引用:${name}, $name
export name=farwish  # 声明环境变量
env           # 查询环境变量
unset name       # 删除变量

2.常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGUGE  语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$

3.环境变量的查看
1 使用echo命令查看单个环境变量。例如:
echo $PATH
2 使用env查看所有环境变量。例如:
env
3 使用set查看所有本地定义的环境变量

4.撤销环境变量
unset 变量名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值