linux学习篇8---- 《鸟哥的Linux私房菜基础学习篇(第三版)》读书笔记
ps.bash为shell中的一种 一般linux的默认shell为bash
ps.bash中 \为跳脱命令 如:\Enter 就是换行
使用 alias 即可!你可以在命令列输入 alias 就可以知道目前的命令别名有哪些了!也可以直接下达命令来配置别名呦:
alias lm='ls -al' 这样输入lm 就等于 ls -al了
unalias lm
取消别名
Bash shell 的内建命令: type
[root@www ~]# type [-tpa] name 选项与参数: :不加任何选项与参数时,type 会显示出 name 是外部命令还是 bash 内建命令 -t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义: file :表示为外部命令; alias :表示该命令为命令别名所配置的名称; builtin :表示该命令为 bash 内建的命令功能; -p :如果后面接的 name 为外部命令时,才会显示完整文件名; -a :会由 PATH 变量定义的路径中,将所有含 name 的命令都列出来,包含 alias相当于whick命令
bash变量:
echo $variable 取变量 如 echo $PATH就是取出环境变量 若变量不存在的时候 输出为空
variable = value 为变量赋值
变量的配置守则:
1.等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』
2.变量名称只能是英文字母与数字
3.变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但
5.若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
『PATH="$PATH":/home/bin』
6.取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置:
『unset myname』
ps. echo $? 表示上一个命令的回传值 如果不为0的话 这上一个命令出错
RANDOM
我们可以透过这个随机数文件相关的变量 ($RANDOM) 来随机取得随机数值
只要 echo $RANDOM 时,系统就会主动的随机取出一个介于 0~32767 的数值。
[root@www ~]# declare -i number=$RANDOM*10/32768 ; echo $number 8 <== 此时会随机取出 0~9 之间的数值喔!
环境变量和shell变量
环境变量相当于全局变量,适用于当前SHELL(父进程)和由父进程调用的子进程,如打开编辑器vi、脚本、应用或是再打开一个子shell。
shell变量就是当前shell使用的变量了,它只是“本地“有效,相当于本地变量,不适用于其他子进程,只在当前shell生命周期内有效。
[root@www ~]# export 变量名称
可以将shell变量变为环境变量
永久变量和临时变量
管是自定义的变量还是通过export导为环境变量的自定义变量都只是在shell生命周期内有效,这样的变量就是临时变量,如果我想设置一个变量使其永久生效怎么办呢?可以修改两个配置文件:/etc/profile和~/.bashrc,前者对所有用户有效,后者只对当前用户有效。
影响显示结果的语系变量 (locale)
[root@www ~]# locale -a
显示所有的语系
要读取来自键盘输入的变量,就是用 read 这个命令了。这个命令最常被用在 shell script 的撰写当中
[root@www ~]# read [-pt] variable 选项与参数: -p :后面可以接提示字符! -t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦! 范例一:让用户由键盘输入一内容,将该内容变成名为 atest 的变量 [root@www ~]# read atest This is a test <==此时光标会等待你输入!请输入左侧文字看看 [root@www ~]# echo $atest This is a test <==你刚刚输入的数据已经变成一个变量内容!
declare 或 typeset 是一样的功能,就是在『宣告变量的类型』。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通叫出来
[root@www ~]# declare [-aixr] variable 选项与参数: -a :将后面名为 variable 的变量定义成为数组 (array) 类型 -i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型 -x :用法与 export 一样,就是将后面的 variable 变成环境变量; -r :将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset 范例一:让变量 sum 进行 100+300+50 的加总结果 [root@www ~]# sum=100+300+50 [root@www ~]# echo $sum 100+300+50 <==咦!怎么没有帮我计算加总?因为这是文字型态的变量属性啊! [root@www ~]# declare -i sum=100+300+50 [root@www ~]# echo $sum 450 <==瞭乎??
范例四:让 sum 变成非环境变量的自定义变量吧! [root@www ~]# declare +x sum <== 将 - 变成 + 可以进行『取消』动作 [root@www ~]# declare -p sum <== -p 可以单独列出变量的类型 declare -ir sum="450" <== 看吧!只剩下 i, r 的类型,不具有 x 啰!ps. 如果你不小心将变量配置为『只读』,通常得要注销再登陆才能复原该变量的类型了! @_@