shell腳步攻略-1

一、需要留意的坑

  1. echo命令:
    雙引號中不能放入shell中起作用的字符,如 !,!用來執行歷史命令中的某一條,如 !30 表示執行第三十條命令:
    例子詳解:

echo “hello world!”
echo -e “1\t2\t3”
echo ‘$PATH’
單引號,裏面的字符字面輸出,不會進行變量替換

  1. 查看某個進程的環境變量:

cat /proc/$PID/environ

如:

cat /proc/215/environ
cat /proc/$PID/environ | tr ‘\0’ ‘\n’

  1. 變量賦值

var=“value”
echo $var
echo &{var}

  1. export聲明瞭將由子進程繼承的一個或多個變量,執行這個命令後,當前shell腳步執行的任何應用程序都能獲得這個變量,如:

HTTP_PROXY=192.168.0.1:443
export HTTP_PROXY
unset HTTP_PROXY
export PATH="$PATH:/home/user/bin"

  1. 數學運算:
#!/bin/bash
no1=4
no2=5

let result=no1+no2
echo $result

let no1++
let no2--

echo $[ no1 + no2 ]
echo $[ $no1 + $no2 ]

let no1+=6
let no2-=5

echo $(( no1 + no2 ))

result=`expr 3 + 4`
echo ${result}

result=$(expr $no1 + 5)
echo $result
  1. 輸入輸出重定向:

ls /root > cmd.log 2>&1
ls /root &> cmd.log 2

  1. tee命令,輸出內容到文件和stdout:

ls /root | tee root.log
cat -n test.txt | tee test.log
cat -n test.txt2 | tee -a test.log # -a ,用於追加內容

  1. /dev/null會丟棄接收到的任何數據:

ls /root > /dev/null & 2>&1

  1. 重定向腳本的文件塊:

cat <<EOF > cat.txt
this is the content i want to input!
EOF

  1. alias的使用

alias
alias install=‘sudo apt install’
echo ’ alias install=“sudo apt install” ’ >> ~/.bashrc

執行非別名命令:

\ls 讓ls使用最原始的定義來執行

  1. 設置系統時間:

date -s ‘2019-06-04 17:40:35’
timedatectl set-time “YYYY-MM-DD HH:MM:SS”
ntpdate -s ntpserver.com
clock -w
hwclock -w

#!/bin/bash
start=`date +%s`
sleep 6
end=`date +%s`
echo hehe=$((end-$start))

[root@localhost ~]# date +%F-%T
2019-06-04-21:39:43
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章