linux学习篇8--- shell,bash讲解 1

linux学习篇8---- 《鸟哥的Linux私房菜基础学习篇(第三版)》读书笔记


ps.bash为shell中的一种 一般linux的默认shell为bash

ps.bash中  \为跳脱命令 如:\Enter  就是换行

  • 命令别名配置功能: (alias)

使用 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.变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但

  • 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
    『var="lang is $LANG"』则『echo $var』可得『lang is en_US』
  • 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
    『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
4.在一串命令中,还需要藉由其他的命令提供的信息,可以 使用反单引号『`命令`』或 『$(命令)』 。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的配置:
『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

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

要读取来自键盘输入的变量,就是用 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 或 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. 如果你不小心将变量配置为『只读』,通常得要注销再登陆才能复原该变量的类型了! @_@



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值