常用linux命令及shell指令碼

2021-09-07 22:17:19 字數 4246 閱讀 8085

參考:linux命令大全

split命令

$split -l 1000 big_file  字首
$split -b 64m big_file 字首
#a.txtab

c

#b.txt12

3

$cat a.txt >> b.txt
結果:ab

c123

$ paste a.txt b.txt
結果

a 1b 2

c 3

通過-d引數可以制定分隔符額

$paste -d: a.txt  b.txt
結果

a:1b:2

c:3

#a.txt12

4434

$sort a.txt
結果12

3444

引數-n使用數字排序,-t制定分隔符,-k制定排序採用的key值,-r逆序

$sort -u a.ttx

$cat a.txt | sort | uniq
結果12

34

$cat a.txt | sort | uniq -u
結果12

3

以來外部程式`sudo apt-get install imagemagick

examples of imagemagick usage

$convert a.png [-quality 95] b.jpg
$convert a.png -resize 200×100 b.png #處理為200x100的(不精確)
$convert a.png -resize 200×100! b.png #處理為200x100的(精確)
$convert a.png -resize 200 b.png #處理為寬為200的(保持縱橫比)
$convert a.png -resize ×100 b.png #處理為高100的(保持縱橫比)
$convert a.jpg -rotate 90 b.jpg
$convert a.jpg -charcoal 2 b.jpg
$convert a.jpg -implode 1 b.jpg
$for pic in *.png; do convert $pic -rotate 90 rotated-$pic; done
#伺服器登陸指令碼

# 伺服器使用者名稱

arr_server_user=(

[0]='root'

[1]='guest'

)# 伺服器ip位址

arr_server_host=(

[0]='xx.xx.xx.xx'

[1]='xx.xx.xx.xx'

)# 伺服器ssh埠號

arr_server_port=(

[0]='22'

[1]='22'

)# 伺服器ssh密碼,金鑰登陸的值設定為 null

arr_server_password=(

[0]='password'

[1]=null

)# 伺服器說明

arr_server_comment=(

[0]='密碼登陸'

[1]='秘鑰登陸'

)# 金鑰檔案位址. 如果是金鑰登陸的話, 值為金鑰檔案位址. 否則為 null

arr_server_key=(

[0]=null

[1]='/path/***.pem'

)# 統計伺服器台數,方便遍歷輸出

len=$

# 螢幕輸出提示資訊。顯示伺服器序號、主機位址、說明資訊

screen_echo() "

printf "%-30s\n" "$"

done

}# 呼叫函式,讓資訊顯示出來

screen_echo

while true

do # 讓使用者選擇所需要登陸伺服器的所屬序號

read -p '請輸入要登陸的伺服器所屬序號: ' server_num

# 如果輸入為空格或者回車,顯示錯誤資訊,後續**不再執行,重新迴圈。

if [ ! $ ]

then

echo '請輸入序號'

continue

fi# 如果輸入的不是數字,顯示錯誤資訊,後續**不再執行,重新迴圈。

if [[ "$" =~ [^0-9]+ ]]

then

echo '序號是數字'

continue

fi# 如果輸入的以 0 開頭的數字、大於等於伺服器台數、小於 0,顯示錯誤資訊,後續**不再執行,重新迴圈。

if [[ "$" =~ ^0[0-9]+ ]] || [ $ -ge $ ] || [ $ -lt 0 ]

then

echo '請輸入存在的序號'

continue

fi# 跳出迴圈

break

done

# 登陸的函式

# set timeout 設定超時時間。-1 永不超時

# spawn : -noecho 意思為終端中不顯示 spawn .. ssh ... 等資訊,不加此引數會有輸出; -o stricthostkeychecking=no 不提示認證

# $1、$2、$3、$4 代表呼叫函式是所傳輸的第乙個、第二個、第三個、第四個引數值

# *yes/no* 意思為 ssh 後如果返回的資訊當中包含 yes/no,而 *password* 就是代表 ssh 後如果返回的資訊當中包含 password

# send 意思為傳送資訊

# exp_continue 意思為繼續執行下面的匹配

# interact 意思為留在遠端終端上面。如果不寫此語句,自動退出伺服器

auto_login_ssh ()

*password*

}interact

";else

expect -c "

set timeout 10;

spawn -noecho ssh -o stricthostkeychecking=no -i $5 $1@$2;

interact

";fi;

return 0;

}# 呼叫登陸函式並傳值。使用者名稱、位址、埠號、密碼

auto_login_ssh $ $ $ $ $

$ `ps -ef | grep $proc_name | grep -v grep | awk ''` | sh
#!/usr/bin/env bash

#定時檢查指定名稱的程序是否存在,若不存在,重新啟動

proc_name="程式名稱"

log_name="./auto_restart.log"

pid=0

proc_num()

proc_id()'`}

count=0

while (true)

doproc_num

number=$?

if [ $number -eq 0 ]

then

#此處填寫重啟命令

proc_id

count=$[count+1]

echo $count:'restart' >> $log_name

echo $:`date` >> $log_name

sleep 2m

fidone

linux命令 常用shell命令及應用

man command linux下更好用的幫助命令 cheat pip install cheat cheat tar linux下更好用的幫助命令 cheat ubuntu終端視窗中,複製貼上的快捷鍵需要加上 shift 複製 ctrl shift c 貼上 ctrl shift v comma...

linux常用shell命令

常用vi命令 一般模式 游標移動 ctrl f 螢幕向前翻動一頁 ctrl b 螢幕向後翻動一頁 移動到這一行的第乙個字元處 移動到這一行的最後乙個字元處 g移動到這個檔案的最後一行 n游標向下移動n行 一般模式 查詢與替換 word 在游標之後查詢乙個名為word的字串 n1,n2s word1 ...

Linux常用Shell命令

1 使用者資料夾 語法 ls 選項 路徑 功能 顯示指定工作目錄下的內容 a all l 檔案詳細資訊 2 檢視當前工作路徑 語法 pwd 功能 當前工作目錄的絕對路徑 3 切換目錄 語法 cd 路徑 功能 切換到指定路徑 例如 切換到 home資料夾下 cd home 4 清屏 語法 clear ...