环境变量 

bash的一部分内容

 

变量 常量 此概念我认为你懂。

 

变量的设置:

#a=5 自定义变量,在shell环境大部分情况下不需指定变量类型。

 

变量的查看:

#env | grep a=5 查看环境变量

#set | grep a=5 查看所有变量

 

打印变量的值:

#echo $变量名称

#echo $a

 

环境变量:用来修饰用户工作环境的变量,这些变量都可以在env查到,所有的环境变量都拥有继承性

 

怎样让变量拥有继承性:

#export a

#export a=8

 

环境变量什么时候生效:在账户登录的时候

 

账户登录(一般,为什么一般,因为视情况可能会读取其他文件)要读取的4个脚本文件

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

 

4个文件区别:3方面

1)作用范围:

/etc 对所有人生效

~/   只对单独的某一个账户生效

 

2)登录shell:

当用户登录一个nologin shell的时候只会读取bashrc

当用户登录一个login shell的时候会读取全部4个文件

3) 一般我们自己设置变量会修改家目录下的两个文件

login shell  :账户登录的时候需要输入用户名称

nologin shell:账户登录的时候无需输入用户名称(比如ctrl+shift+n打开的shell)

 

到底读不读,需读者自行测试,我这里就不在累述。

 

常用预定义系统环境变量:

#echo $USER    当前登录账户

root

#echo $HOSTNAME  当前主机名称

Wing.up.com

#echo $PWD 当前工作目录

/root/Desktop

# echo $PS1 一级提示符格式

[\u@\h \w]\$

#echo $PS2 二级提示符格式

>

 

PS2举例:

# for i in 1 2 3 4 5

> do

> echo $i

> done

1

2

3

4

5

 

# echo $PATH 所有命令所在路径都在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/apache2/bin

 

#echo $HOME       当前登录账户家目录

/root

 

#echo $LANG 当前所使用环境语言

zh_CN.utf8

 

#echo $HISTSIZE 历史命令个数

1000

 

#echo $SHELL

/bin/bash

 

#unset 变量名称

 

shell脚本初识:(看好。。是初始,哈哈,其中awk只为看,后面博客大概10几天左右会有详解

bash

脚本怎么写:(没有涉及到bash语法)

ls cd rpm mv cp等等这些非交互式命令写到一个文本文件里,然后再给他们指定一个命令解释器

 

1:

#vim status.sh

1 #!/bin/bash 指定命令解释器为bash

2 #注释

3 #脚本作用

4 #version:0.1  author:tom

5 #version:0.2  author:wing

6 ip=`ifconfig eth0 | grep Bc |awk -F " " '{print $3}'|awk -F ":"

'{print $ 2}'`

8 echo "主机名称是:" $HOSTNAME

9 echo "ip地址是:" $ip

10 echo "当前时间是:"

11 date

12 echo "当前登录系统的账户:"

13 w

14 echo "当前磁盘分区情况:"

15 df -Th

16 rm -rf /tmp/*

 

2:用shell添加类似以下用户到系统

# cat name.txt 

xiaoming

xiaoli

lili

liming

 

1 #!/bin/bash

2 for ((i=1;i<=4;i=i+1))

3 do

4     name=`awk -v num=$i 'NR~num{print}' /tmp/name.txt`

5     useradd $name

6     echo 添加 $name 账户成功....

7 done

 

附:

Root账户桌面路径为中文想修改成英文怎么办(注:你之前会改,现在不会了,不知道你听懂没听懂,呵呵)?

1.将以下配置写到~/.bash_profile文件内

 export LANG=en_US.UTF-8

注销==》登录==》弹出对话框==》点击右下更新目录名称==》注销==》输入用户名回车==》下方修改中文==》回车弹出对话框==》点击左下角保留目录名称==OK祝你成功

 

2.主机名称设置,放在这里不论不类,为什么还放?哎,必须放,有人想看

#hostname 查看

wing.uplooking.com

#hostname wing.up.com 临时修改

#hostname

wing.up.com

#vim /etc/sysconfig/network 永久修改,测试不重启系统,直接重启网卡,会不会生效

#vim /etc/hosts 添加主机名称与IP对应关系(不添?自己看着办)

192.168.0.250 wing.up.com