Bash shell的内置命令
1.(查看命令属性) type [-tpa] name:不加任何参数时,会显示出那么是外部命令还是bash内部命令
-t :
file :表示为外部命令
alias:该命令为命令别名设置的命令
builtin:该命令为bash内置的命令功能
-p:如果后面接name为命令,会显示完整的文件名(外部命令)或者显示内置命令
-a: 在PATH变量定义的路径中,列出所有含有name的命令,包含alias
2.变量的获取与设置:
1.使用echo获取变量名称(前面要加$)
eg: echo $PATH
2.设置变量
name=value
注意事项:
a.变量与变量之间以"="连接
b.等号两边不能直接接空格符号
c.变量名称之间只能英文字母与数字,不能以数字开头
d.若存在空格符,要使用的双引号“"”或者单引号“‘”将变量内容结合起来,但是双引号内的
特殊字符可以保持变量的特性,但是单引号内的特殊字符仅为一般字符
e.必要时需要将转义字符“\”将特殊符号(如Enter,$,\,空格符,‘)等变成一般符号
f.若变量为扩展变量内容,需以双引号及$变量名称,如“"$PATH":/home”继续累加内容
g.若变量需要在其他子程序中执行,则需要使用export将变量导成环境变量,如export PATH ;
h.取消变量的方法为: unset 变量名称
3.环境系统的功能
a.环境变量的说明 : env (enviroment的简称) 可查看当前shell环境下所有的环境变量
b.其他在shell环境下有效的变量
4.重要的变量设置
a.PS1(提示符的设置)
-\d:代表日期 格式为 "星期 月 日"
-\H:完整的主机名
-\h:仅取主机的第一个名字
-\t:显示24小时格式时间,HH:MM:ss
-\T:显示12小时格式时间, hh:MM:ss
-\u:显示当前用户名
-\v:bash版本信息
-\w:完整的工作目录名称,家目录会议~替换
-\W:使用basename取得工作目录名称,会显示最后一个目录名称
-\#:执行的第几个命令
-\$:执行结束符,root用户会以#结束,否则为$
eg:PS1=‘[\[email protected]\h \w \t #\#]\$‘
将会显示[[email protected] /root 15:23:23 #23]#
5.将自定义变量转换成环境变量:export
定义变量xxxx=linux
转换成环境变量export xxxx
查询所有环境变量 export就可以发现自己定义的xxxx位于最底端了
3.变量键盘的读取,数组与声明:read,array,declare
1.read [-pt] variable
-p:后面接提示符
-t:后面可以接等待的时间“秒数”,不会一直等待用户
1.eg:通过键盘输入内容存到变量vt1中
[[email protected] ~/Desktop 15:32:24 #28]#read vt1
falkfjakfhruh
[[email protected] ~/Desktop 15:32:43 #29]#echo $vt1
falkfjakfhruh
[[email protected] ~/Desktop 15:32:54 #30]#
2.提示用户20秒内输入内容到变量vt2中
[[email protected] ~/Desktop 15:35:51 #33]#read -p ‘input your words within 30 seconds :‘ -t 20 vt2
input your words within 30 seconds :fajjfahufhefhahfeuhfa
[[email protected] ~/Desktop 15:36:09 #35]#echo $vt2
fajjfahufhefhahfeuhfa
[[email protected] ~/Desktop 15:36:15 #36]#
2.declare/typeset :声明变量属性
declare -[aixr] variable
-a : 将variable 定义为数组
-i: 将variable定义为整型数字
-x:与export一样,将variable定义为环境变量
-r:将variable定义为只读对象,不可更改内容,也不能取消对象
3.数组属性array说明
var[index] = content
eg: var[1] = "good day "
var[2] = "nice day"
var[3]="happy great day"
显示数组: echo "${var[1]} , {var[2]} , {var[3]}"
4.与文件系统及程序相关的限制关系:ulimit
原因:使用bash可以限制某些用户的系统资源(包括打开的文件数量,使用的CPU时间和使用的内存总量)
格式如下:ulimit -[SHacdflptu]
-H: hard limit 严格限制,必定不能超过设置的值
-S:sot limit 警告限制,可以超过该值,但会有警告
-a:列出所有的限制额度
-c:可建立的最大核心文件容量(core files)
-d:程序数据可使用的最大容量
-f:此shell可建立的最大文件容量(一般为2G),单位为KB
-l:可用户锁定(lock)的内存量
-p:可用于管道(pipe)的数量
-t:可使用的最大CPU时间(单位为s)
-u:单用户可以使用的最大进程(process)数量
eg:1.列出所有限制数据
ulimit -a
2.设置其他用户新建文件大小在1M以内
ulimit -f 1024
5.附加的变量的设置功能
变量设置方式 | str无设置时 | str为空字符串时 | str设置为非空字符串时 |
var=${str-expr} | var=expr | var= | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var=expr | var=expr | var=expr |
var=${str:+expr} | var=expr | var= | var=expr |
var=${str=expr} | str=expr
var=expr |
str不变
var= |
str不变
var=$str |
var=${str:=expr} | str=expr
var=expr |
str=expr
var=expr |
var=$str |
var=${str?expr} | expr输至stderr | var= | var=str |
var=${str:?expr} | expr输至stderr | expr输至stderr | var=str |
6.命令别名和历史命令
A.alias cls="clear"
B.hostory
n: 列出最近的n行命令
-c:将当前shell命令中所有的命令清除
-a:将当前新增的history命令加入histfiles中,若没有加入histfiles,默认加入 ~/.bash_history
-r:将histfiles的内容读到当前shell的历史记录中
-w:将当前的历史记录写入到histfiles中
补充命令:a.!number : 再次执行history中第number条命令
b.!command:由最近的命令向前搜索"命令串开头为command"的命令,并执行
c.!!:执行上一条命令