Linux+Shell基礎入門總結

1、Linux文件處理常用命令

grep  -ri“xxx” 文件名(查找文件內包含的文本)

find  .  -name  文件名(查找文件)

vi 文件名   或 touch 文件名   或 >文件名(新建文件的三種方式)

rm -f  文件名(刪除文件)

rm -rf  目錄(刪除文件夾)

2、vi命令 

vi命令模式:一般模式、指令模式、編輯模式

一般模式>>

移動跳轉:  跳到文本開頭/結尾 >> gg G、[[ ]]、 :0  :9999    

                   跳到行頭/尾>> ^$   

                  上下左右移動>>j k h l 

複製粘貼: y yy yw y^ y$ yG   p

刪除: x  dd  cw

撤回:u(undo)

指令模式>>

搜索: /xxx 自上而下    ?xxx  自下而上

                   n :下一個  N:上一個

:1,$s/word1/word2/g  替換

:set  nu   顯示行號

:set ic  忽略大小寫

:set fileencoding 顯示文件編碼

編輯模式>>

i,o,a(插入)、R(取代)

3、shell - 基礎

(1)執行規則

第一行 #!/bin/bash 在宣告這個 script 使用的 shell 命令,如果沒有這個標識就不是個shell腳本;

除了第一行的『 #! 』是用來宣告 shell 的之外,其他的 # 都是『註解』用途;

命令的運行是從上而下、從左而右的分析與運行;

命令、選項與參數間的多個空白都會被忽略掉,空白行將被忽略掉;

變量與等號之間不能有空格;

如果讀取到一個 Enter 符號 (CR) ,就嘗試開始運行該行命令;如果一行的內容太多,則可以使用『 \[Enter] 』來延伸至下一行;

(2)符號

單引號(' '):所見即所得,即原樣打印,不會對變量解析

雙引號(" "):所見非所得,會對變量解析後再輸出(常用於框住某個範圍,比如內部有空格場景時)

反引號(` ` piao號):命令替換,通常用於把命令輸出結果傳給變量中(功能同$( ))

反斜槓(\):轉義字符

(3)參數

${param} 或 $param 參數使用

$0 命令本身

$1 第一個參數 。。。$9第9個參數,後面的參數要???

$# 參數的總個數

$*  獲取所有的參數

$?  獲取上一命令執行結果,0-成功,1及其他-失敗

(4)時間 date

​>>date + "%Y-%m-%d %H:%M:%S"

>>2019-10-18 17:00:00

>>date -d 1day + "%Y-%m-%d %H:%M:%S"(增加一天)

>>date -d -1day + "%Y-%m-%d %H:%M:%S"(減去一天)

>>date -d  "-1day -1hour -1min" + "%Y-%m-%d %H:%M:%S"(減去一天一小時一分鐘)

(5)數據運算

數學計算要用’[ ]’括起來並且外頭要帶一個’$’

>>a=1

>>b=1

>>sum=$[$a+$b]

(6)和用戶交互---read命令

>>read a(read -p "Please input a number:" a)

>>read b

>>sum=$[$a+$b]

(7)邏輯判斷

>>第一種:if

if 判斷語句; then
command
fi

>>第二種:if else

if 判斷語句 ; then
command
else
command
fi

>>第三種:if elseif else

if 判斷語句一 ; then
command
elif 判斷語句二; then
command
else
command
fi

在判斷數值大小可以用  >, < , =  &&,  || ,但是要在( )中使用,除了可以用”(( ))”的形式外,還可以使用”[ ]”,但是就不能使用>, < , = 這樣的符號了,要使用 -lt (小於),-gt (大於),-le (小於等於),-ge (大於等於),-eq (等於),-ne (不等於)。

shell 腳本中if還經常判斷關於檔案屬性,比如判斷是普通文件還是目錄,判斷文件是否有讀寫執行權限等。常用的也就幾個選項:

-e :判斷文件或目錄是否存在
-d :判斷是不是目錄,並是否存在
-f :判斷是否是普通文件,並存在
-r :判斷文檔是否有讀權限
-w :判斷是否有寫權限
-x :判斷是否可執行

使用if判斷時,具體格式爲: if [ -e filename ] ; then

(8)循環

>>for 循環

for 變量名 in 循環的條件; do
command
done

>>while 循環

while 條件; do
command
done

(9)函數

function 函數名() {

command

}

4、shell - 數據流重定向

標準輸入  (stdin) :代碼爲 0 ,使用 < 或 << ;

標準輸出  (stdout):代碼爲 1 ,使用 > 或 >> ;

標準錯誤輸出(stderr):代碼爲 2 ,使用 2>(中間無空格) 或 2>> ;

垃圾桶黑洞裝置:/dev/null

啓動應用(後臺模式運行)>> nohup ./start.sh >./logs/start.log 2>&1 &

例:清空文件內容>> echo > insert_olc_trading_day_info.sh 或 echo ""> insert_olc_trading_day_info.sh

標準輸出到test.sh,錯誤輸出到test2.sh>> cat  insert_olc_trading_day_info.sh>test.sh 2>test2.sh

標準輸出到test.sh,錯誤輸出也重定向到test.sh>> cat  insert_olc_trading_day_info.sh>test.sh 2>&1

將異常吞掉不做任何處理>>cat  insert_olc_trading_day_info.sh>/dev/null

5、其他常用:

查看系統結構>>pstree

查看歷史執行記錄>>history

查看所有變量(環境變量+自定義變量)>>set   刪除變量>>unset

定義環境變量>>export

增加文件權限>>chmod +x insert_olc_trading_day_info.sh

改變文件擁有者>>chown user insert_olc_trading_day_info.sh

查看文件夾大小>>du --max-depth=1 -h 

分析磁盤使用情況>>df -h 文件目錄

查看當前內存使用情況>>free -m
                                       >> top

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