變量替換:用變量的值替換變量名:echo"$AGE"
指令替換:用指令的執行結果替換指令:$(COMMAND)='COMMAND'
echo "Today is 'date+%F'"
touch file-'date+%F-%H-%M-%S'
seq 用來列出一系列數
seq 5 1 2 3 4 5
seq 1 10 1 2 3 4 5 6 7 8 9 10
seq 10 2 100
NUMSEQ=’seq 1 10'
echo $NUSEQ
變量:配置檔案
bash:
全局:
/etc/profile,/etc/profile.d/*, /etc/bashrc
個人
~/.bash_profile ~/.bashrc ~/.bash_history
bash的運作方式:
互動式:先讀取/etc/profile-->/etc/profile.d/*--
>.bash_profile-->~/.bashrc-->/etc/bashrc
非互動式:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*
profile 類
設定環境變量
運作指令或腳本
bashrc類
設定本地變量
設定指令别名
source 檔案名 = . 檔案名 讓bash重新讀取配置檔案
指令别名:
alias cls=clear 将clear換為cls
unalias cls 将cls撤銷
alias cdnet="cd /etc/sysconfig/"
bash腳本解釋器:
shell腳本:
每一個腳本第一行必須加#!/bin/bash
練習:
#!/bin/bash
mkdir /tmp/test
touch /tmp/test/file-'date +%F-%H-%M-%S'
cp -r /etc/profile.d /tmp/test2
DESTDIR='/tmp/test'
mkdir $DESTDIR
touch %DESTDIR/file-'date+%F-%H-%M-%S'
cp -r /etc/profile.d/ $DESTDIR
nuset DESTDIR 撤銷變量
輸入輸出重定向.管道
程式的預設輸入裝置,叫标準輸入,stdin,鍵盤,0
程式的預設輸出裝置,叫标準輸出,stdout,minitor,1
程式的預設錯誤資訊輸出裝置,标準錯誤輸出,stderr ,minitor,2
輸出重定向:
command>FILE 覆寫輸出(慎重)
set -C 關掉标準輸入輸出
set +C 打開标準輸入輸出
set >|強制覆寫
command >>FILE 追加輸出
/dev/null 資料黑洞
date >/dev/null
echo $? 顯示為0,則表示執行成功
/dev/zero 泡泡機,吐0
/dev/urandom 随機數生成器
輸入重定向
COMMAND <FILE
tr 'a-z' 'A-Z' </etc/passwd
COMMAND <<"EOF"
echo -e "the fist line.\nwww.baidu.com.\nwww.qq.com" >/tmp/test
cat >>/tmp/test1
<the fist line
<www.baidu.com
<www.qq.com
<EOF
錯誤輸出:
COMMAND 2>FILE
COMMAND 2>>FILE
正确或錯誤統統重定向
COMAND >FILE 2>&1
COMMAND &>FILE
管道:隻傳遞正确資訊
COMMAND1 |command2 |COMMAND3
ehco "the first line " |tr 'a-z' 'A-Z'
echo "the first line " |tr 'a-z' 'A-Z' |cut -d" " -f2|tr 'A-Z'
'A-Z'
RESULT=echo "the first line " |tr 'a-z' 'A-Z'
echo $RESULT
file 'ls /var/log' |cut -d: -f2|tr -d' ' |sort
uniq 對于連續的内容,隻保留一個
tee
command |tee file |command
ls /etc |tee /tmp/tee.out |gr 'a-z' 'A-Z'
本文轉自 穿越防火牆 51CTO部落格,原文連結:http://blog.51cto.com/sjitwant/1399186