環境變量

     要想學會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)

批量添加用戶





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章