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