码迷,mamicode.com
首页 > 系统相关 > 详细

Shell的变量功能

时间:2020-11-30 15:19:31      阅读:14      评论:0      收藏:0      [点我收藏+]

标签:str   mail   tor   成功   系统   是什么   type   说明   计算   

20.11.24

变量的配置规则

  1. 变量与变量内容以一个等号『=』来连结,如下所示:
    『myname=VBird』

  2. 等号两边不能直接接空格符,如下所示为错误:
    『myname = VBird』或『myname=VBird Tsai』

  3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
    『2myname=VBird』

  4. 变量内容若有空格符可使用双引号『"』或单引号『‘』将变量内容结合起来,但

    • 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
      『var="lang is $LANG"』则『echo $var』可得『lang is en_US』
    • 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
      『var=‘lang is $LANG‘』则『echo $var』可得『lang is $LANG』
  5. 可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, , 空格符, ‘等)变成一般字符;

  6. 在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号『`命令`』或 『$(命令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的配置:
    『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

    在一串命令中,在` 之内的命令将会被先执行,而其执行出来的结果将被作为外部的输入信息。

  7. 若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
    『PATH="$PATH":/home/bin』

  8. 若该变量需要在其他子程序运行,则需要以 export 来使变量变成环境变量:
    『export PATH』,如果单纯执行『export』,则会将所有环境变量显示出来

  9. 通常大写字符为系统默认变量,自行配置变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;

  10. 取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置:
    『unset myname』

  11. 实例:如何进入到目前内核的模块目录

    [root@www ~]# cd /lib/modules/`uname -r`/kernel
    [root@www ~]# cd /lib/modules/$(uname -r)/kernel
    

列出环境变量命令envexport

用env观察环境变量与常见的环境变量说明:

范例一:列出目前的 shell 环境下的所有环境变量与其内容。
[root@www ~]# env
HOSTNAME=www.vbird.tsai    <== 这部主机的主机名
TERM=xterm                 <== 这个终端机使用的环境是什么类型
SHELL=/bin/bash            <== 目前这个环境下,使用的 Shell 是哪一个程序?
HISTSIZE=1000              <== 『记录命令的笔数』在 CentOS 默认可记录 1000 笔
USER=root                  <== 使用者的名称啊!
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:
or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=0
0;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=
00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;3
1:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00
;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: <== 一些颜色显示
MAIL=/var/spool/mail/root  <== 这个用户所取用的 mailbox 位置
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:
/root/bin                  <== 不再多讲啊!是运行文件命令搜寻路径
INPUTRC=/etc/inputrc       <== 与键盘按键功能有关。可以配置特殊按键!
PWD=/root                  <== 目前用户所在的工作目录 (利用 pwd 取出!)
LANG=en_US                 <== 这个与语系有关,底下会再介绍!
HOME=/root                 <== 这个用户的家目录啊!
_=/bin/env                 <== 上一次使用的命令的最后一个参数(或命令本身)
  • HOME
    代表用户的家目录

  • SHELL
    目前这个环境使用的 SHELL 是哪支程序。Linux 默认使用 /bin/bash

  • HISTSIZE
    历史命令记录条数

  • MAIL
    当我们使用 mail 这个命令在收信时,系统会去读取的邮件信箱文件 (mailbox)。

  • PATH
    运行文件搜寻的路径

  • LANG
    语系数据

  • RANDOM

    随机随机数变量

    [root@www ~]# declare -i number=$RANDOM*10/32768 ; echo $number 8 <== 此时会随机取出 0~9 之间的数值喔!


用set观察所有变量

[root@www ~]# set
BASH=/bin/bash           <== bash 的主程序放置路径
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" 
[5]="i686-redhat-linux-gnu")      <== bash 的版本啊!
BASH_VERSION=‘3.2.25(1)-release‘  <== 也是 bash 的版本啊!
COLORS=/etc/DIR_COLORS.xterm      <== 使用的颜色纪录文件
COLUMNS=115              <== 在目前的终端机环境下,使用的字段有几个字符长度
HISTFILE=/root/.bash_history      <== 历史命令记录的放置文件,隐藏档
HISTFILESIZE=1000        <== 存起来(与上个变量有关)的文件之命令的最大纪录笔数。
HISTSIZE=1000            <== 目前环境下,可记录的历史命令最大笔数。
HOSTTYPE=i686            <== 主机安装的软件主要类型。我们用的是 i686 兼容机器软件
IFS=$‘ \t\n‘             <== 默认的分隔符
LINES=35                 <== 目前的终端机下的最大行数
MACHTYPE=i686-redhat-linux-gnu    <== 安装的机器类型
MAILCHECK=60             <== 与邮件有关。每 60 秒去扫瞄一次信箱有无新信!
OLDPWD=/home             <== 上个工作目录。我们可以用 cd - 来取用这个变量。
OSTYPE=linux-gnu         <== 操作系统的类型!
PPID=20025               <== 父程序的 PID (会在后续章节才介绍)
PS1=‘[\u@\h \W]\$ ‘      <== PS1 就厉害了。这个是命令提示字符,也就是我们常见的
                             [root@www ~]# 或 [dmtsai ~]$ 的配置值啦!可以更动的!
PS2=‘> ‘                 <== 如果你使用跳脱符号 (\) 第二行以后的提示字符也
name=VBird               <== 刚刚配置的自定义变量也可以被列出来喔!
$                        <== 目前这个 shell 所使用的 PID
?                        <== 刚刚运行完命令的回传值。
  • PS1:(命令提示符配置)

    • \d :可显示出『星期 月 日』的日期格式,如:"Mon Feb 2"
    • \H :完整的主机名。
    • \h :仅取主机名在第一个小数点之前的名字,如鸟哥主机则为『www』后面省略
    • \t :显示时间,为 24 小时格式的『HH:MM:SS』
    • \T :显示时间,为 12 小时格式的『HH:MM:SS』
    • \A :显示时间,为 24 小时格式的『HH:MM』
    • @ :显示时间,为 12 小时格式的『am/pm』样式
    • \u :目前使用者的账号名称,如『root』;
    • \v :BASH 的版本信息,如鸟哥的测试主板本为 3.2.25(1),仅取『3.2』显示
    • \w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以 ~ 取代;
    • \W :利用 basename 函数取得工作目录名称,所以仅会列出最后一个目录名。
    • # :下达的第几个命令。
    • $ :提示字符,如果是 root 时,提示字符为 # ,否则就是 $ 啰~
  • $:(关于本 shell 的 PID)

    目前这个 Shell 的线程代号,亦即是所谓的 PID (Process ID)。『 echo $$ 』出现的数字就是你的 PID 号码。

  • ?:(关于上个运行命令的回传值)

    上一个运行的命令所回传的值一般来说,如果成功的运行该命令, 则会回传一个 0 值,如果运行过程发生错误,就会回传『错误代码』一般就是以非为 0 的数值来取代。

  • OSTYPE, HOSTTYPE, MACHTYPE:(主机硬件与核心的等级)

    目前个人计算机的 CPU 主要分为 32/64 位,其中 32 位又可分为 i386, i586, i686,而 64 位则称为 x86_64。 由于不同等级的 CPU 命令集不太相同,因此你的软件可能会针对某些 CPU 进行优化,以求取较佳的软件性能。 所以软件就有 i386, i686 及 x86_64 之分。

Shell的变量功能

标签:str   mail   tor   成功   系统   是什么   type   说明   计算   

原文地址:https://www.cnblogs.com/ananing/p/14032323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!