首页 > 代码库 > 环境变量

环境变量

     要想学会Linux中的shell脚本,掌握环境变量尤为重要。下面跟大家分享下环境变量相关知识。


     环境变量
常量  可以赋值给变量的任何字符串
变量  字符串  不能以数字开头,只能由数字,字母和下划线组成,可以接受赋值的字符串

如何自定义变量?
A=10

如何查看变量的值?
echo $A

取消变量
unset A

查看所有变量
set
set | grep HOSTNAME

查看环境变量
env
env | grep HOSTNAME

创建环境变量
    USER    用户名
    HOSTNAME 主机名
    PWD  工作目录
    PS1 一级提示符 PS1=hello  
    PS2 二级提示符  PS2=@    cat > a.txt << ok
    HISTSIZE  历史记录
    LANG  语言
    UID   uid
    PATH  

echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

PATH=$PATH:/usr/local/apache/bin/

存放命令文件的目录 凡是在PATH路径下的命令可以在任何路径下执行


自定义变量 A=10   
环境变量  export A 把自定义变量转换为环境变量

export A=10  直接设置环境变量

预定义变量   
$#  位置参数的个数
$*  位置参数本身
$?  返回脚本或命令的执行状态  0为真  非0为假    
$!  

[root@server1 tmp]# cat a.sh
#!/bin/bash
echo 第一个位置次数为:$1
echo 第二个位置次数为:$2
echo 第三个位置次数为:$3
echo 第四个位置次数为:$4
echo $#
echo $*

./a.sh   a b c d
 
a b c d  叫做位置参数 $n
$1 第一个位置参数  =a
$2 第二个位置参数  =b
$3 第三个位置参数  =c


位置变量
$1 $2 ...

循环控制
判断

shell基本功能
命令解释器 负责人机交互

shell分类
bash是redhat主流默认的shell

unix  ---sh

cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

bash的特点:
1.支持历史记录
history 查看历史记录



历史命令
!38  直接执行第38条记录
!$    上面操作的最有一个参数
alt.  上面操作的最有一个参数
ctrl+r

设置历史记录的条数
cat /etc/profile
HISTORY=1000

2.支持快捷键
ctrl +a  行首
     +e  行尾
     +u  往光标前删除
     +k  删除光标后的包含光标

3.支持定义环境变量
/etc/bashrc
/etc/profile
~/.bashrc
~/.bash_profile

作用范围上:
/etc/下的针对所有用户有效
~/针对具体用户有效   

非登录shell(无用户认证)
/etc/bashrc
~/.bashrc

登录shell(需要用户认证)
读取四个配置文件

vim /etc/bashrc
useradd user1

vim ~/.bashrc
useradd user2

/etc/profile
useradd user3

vim ~/.bash_profile
useradd user4

4.别名

查看
alias

设置
alias disk="df -h"

取消
unalias disk
 

命令表达式
“” 弱引用 (如果有变量的化可以取出变量的值)
cat a.sh
echo "中国人民欢迎您"


‘’   强引用 有特殊变也不取值

``   `date +%F`  返回命令执行的结果  
   
\    转意符   还原为字符本身   fi\\e ---》fi\e

;    当一行执行多条命令的时候有;分隔      
ls /home/ ;cat /etc/yum.conf   

||   
A||B 当前面A执行的结果为假的时候才执行后面的B

&  
make & make install   两条命令一起执行 make成功后才可以make install


1.统计磁盘的使用率为:
 
2.当前登录的用户是:

3.本机的ip地址为:

4.当前的日期为:

5.当前的系统账户有几个?

6.当前系统的主机名为:


test

for
        for (a=1;a<=10;a++){
             command
             command
         for (a=1;a<=10;a++){
             command
             command
                             }
                           }

for  i  in {1..10}
for  i  in 1 2 3 4 5 6 7 8 9 10
for  i  in `seq 1 10 `
for  i  in $(seq 1 10)

批量添加用户





环境变量