shell學習筆記 一

2021-10-01 03:59:50 字數 1870 閱讀 1751

shell是命令直譯器,最常用的是bash

檢視bash所在位置echo $bash

df -h檢視分割槽情況

第一行是環境,#!/bin/bash 第二行通常是註解指令碼作用,第三行是註解,作者這類資訊

編輯後賦予執行許可權 chmod +x filename

shell變數可以是區域性變數和全域性變數,變數可以在建立該變數的指令碼中使用,全域性變數可以在全域性環境中使用。

$uid(當前使用者id,0是root使用者) 

$pwd(當前所在目錄)

$0 當前程式的名稱

$n 當前程式的第 n 個引數 ,n=1,2, , 9

$* 當前程式的所有引數 ( 不包括程式本身 )

$# 當前程式的引數個數 ( 不包括程式本身)

$? 命令或程式執行完後的狀態,一般返回0,代表是返回成功,我們常用來判斷上一條命令是否執行成功

if、while、case、for語句

-f 判斷檔案是否存在 eg: if [ -f filename ] -d 判斷目錄是否存在 eg: if [ -d dir ]

-eq 等於 應用於:整型比較

-ne 不等於 應用於:整型比較

-lt 小於 應用於:整型比較(less than)

-gt 大於 應用於:整型比較(grater than)

-le 小於或等於 應用於:整型比較(less equal)

-ge 大於或等於 應用於:整型比較(greater equal)

-a 雙方都成立( and)  -o 單方成立( or ) 邏輯表示式 –o 邏輯表示式

-z空字串

if 中括號是判斷數字大小,兩個小括號也可以

乙個中括號是判斷檔案或者目錄是否存在

sh -n  指令碼名稱,判斷指令碼是否有問題

>>追加到檔案 >覆蓋文

編寫自動mysql備份指令碼

編寫指令碼自動安裝mysql這類工具

&&成功後繼續判斷

幾個基本符號及其含義

為何2>&1要寫在後面?

命令:index.php task testone >/dev/null 2>&1

我們可以理解為,左邊是標準輸出,好,現在標準輸出直接輸入到 /dev/null 中,而2>&1是將標準錯誤重定向到標準輸出,所以當程式產生錯誤的時候,相當於錯誤流向左邊,而左邊依舊是輸入到/dev/null中。

在安裝軟體時候常用的命令:make 編譯軟體 make install 安裝軟體

for迴圈,範圍要用反引號,比如

for i in `seq 1 $4`
example:

案例一,列印 seq 數字迴圈

#!/bin/sh

for i in `seq 15`

doecho 「num is $i 」

done

案例二,求和 1-100 的值

#!/bin/bash

#auto sum 1 100

j=0for ((i=1;i<=100;i++))

doj=`expr $i + $j`

done

echo $j

案例三,找到相關log ,然後批量打包

#!/bin/sh

for i in `find /var/log -name

dotar –czf 2014log.tgz $i

done

shell學習筆記(一)

1.在變數的設定中,單引號與雙引號有什麼不同呢?單引號與雙引號的最大的不同在於雙引號仍然可以保有變數的內容,但單引號僅能是一般字元,而不會有特殊符號。2.在指令下達的過程中,quote 這個符號代表的意義為何?在一串指令中,在 之內的指令將會被先執行,而其執行出來的結果將作為外部的輸入資訊!例如 u...

shell學習筆記(一)

1.history 執行命令歷史紀錄 2.執行上一次命令3.n執行這條命令4.vim執行最近的乙個 vim 5.alias 可以簡單修改名字別名也就是把貓叫個咪 也可以比如 alias ls 6.ctrl z jobs,fg bg作業控制 7.mail s vayne 1219345363 qq.c...

shell學習筆記(一)

一.指令碼編寫和使用 1.sh指令碼宣告 bin sh 2.注釋寫法 該行都是 3.使指令碼可執行 chmod x filename 4.執行指令碼 在終端terminal中輸入.filename即可 二.變數的定義和使用 1.定義變數 變數名 屬性值 2.使用變數 變數名 大括號用來表示變數名的範...