Linux基础shell(上)

bash(第一章)

简介

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。

bash 指的就linux常用的shell脚本语言,
这个常见于脚本第一行 : #!/bin/bash或者 #!/bin/sh
terminal:终端用来启动shell环境 。
shell命令:用户向系统内核发起控制请求。
shell脚本:shell命令的有序集合。
bash:Linux中shell种类很多,bash就是其中一种。

参数说明

-c
若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数。

-n
检测脚本是否正确,并不执行脚本

-i
若用-i参数,则bash是交互的。

-s
若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到输入exit。

-x
执行脚本,输出执行过程,调试利器

  • 单一的号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看作是文件名。

-norc
如果bash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh来运行,这个参数缺省是关闭的。

-noprofile
不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件。

–refile文件名
如果bash是交互的,则以此文件作为bash的启动文件。替代-/.bashrc。

-version
在bash开始时显示此bash的版本号。

-quiet
不显示版本号和其他信息,这是缺省值。

-login
激活bash,伪装为登录shell。

-nobraceexpansion
不执行大括号扩展。

-nolineediting
在交互状态下不使用GNU的readline库去读取命令。即取消了命令行编辑功能。

-posix
改变bash的行为,使其符合Posix 1003.2规定的标准。

举个例子1
#bash -n database.sh #检测脚本是否正确,并不执行
#bash -x database.sh #执行脚本,输出执行过程

终端,附着在终端的接口程序:

	GUI:KDE, GNome, Xfce
	CLI:/etc/shells
		bash
		zsh
		Fish

bash的特性:

	命令行展开:~, {}
	命令别名:alias, unalias
	命令历史:history
	文件名通配:glob
	快捷键:Ctrl+a, e, u, k, l
	命令补全:$PATH
	路径补全:

bash特性:命令hash
缓存此前命令的查找结果:key-value
key:搜索键
value:值
hash命令:
hash:列出
hash -d COMMAND:删除
hash -r:清空
bash的特性之:变量
程序:指令+数据
指令:由程序文件提供;
数据:IO设备、文件、管道、变量

变量

	程序:算法+数据结构
	变量名+指向的内存空间	
	String name ;
	name ="";
	string name= “”;
	变量赋值:name=value
	变量类型:存储格式、表示数据范围、参与的运算
		编程语言:
			强类型变量:强类型意思:有明确的严格的变量类型的规范。并且需要强制类型转换才可以进行类型的变换的语言 如 Java C#
			弱类型变量:没有明确的类型区分 如:Javascript等
				bash把所有变量统统视作字符型;
				bash中的变量无需事先声明;相当于,把声明和赋值过程同时实现;
					声明:类型,变量名
	变量替换:把变量名出现的位置替换为其所指向的内存空间中数据;
	变量引用:${var_name}, $var_name
	变量名:变量名只能包含数字、字母和下划线,而且不能以数字开头;
		变量名:见名知义,命名机制遵循某种法则;不能够使用程序的保留字,例如if, else, then, while等等;

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

本地变量:

			变量赋值:name=value
			变量引用:${name}, $name
				"":变量名会替换为其值;  软(弱)引用
				'':变量名不会替换为其值;强引用,变量引用不执行替换;
			查看变量:set
			撤销变量:unset name
				注意:此处非变量引用;

环境变量:

			变量赋值:
				(1) export name=value
				(2) name=value
				    export name
				(3) declare -x name=value
				(4) name=value
					declare -x name
			变量引用:${name}, $name

注意:bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境
PATH, HISTFILE, HISTSIZE, HISTFILESIZE, HISTCONTROL, SHELL, HOME, UID, PWD, OLDPWD

查看环境变量:export, declare -x, printenv, env
撤销环境变量:unset name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值