Linux shell日常使用

JavaDog發表於2019-03-07

執行後臺任務

nohup ~/bin/xxx.sh &

複製程式碼

執行 SpringBoot 的jar包:
nohup java -jar http_request_tool-0.0.1-SNAPSHOT.jar &
命令格式: nohup <命令> &

定時器

編輯定時器:

crontab -e
複製程式碼

範例:
*/20 * * * * /Users/whuanghkl/study/cron/todo.sh
每20分鐘執行一次

20 7 * * * /home/whuang/software/auto_start_tomcat.sh
每天的上午7點20分執行指令碼

30 18 * * * /home/whuang/software/auto_innerSign.sh
每天的下午6點

每月末執行, 00 23 28-31 * * [ date -d tomorrow +%e -eq 1 ] && /bin/bash youshell.sh

獲取命令列引數

if [ x"$1" == x"i" ];then
echo "ignore io0007-0.0.1-SNAPSHOT.jar"
else
cd /Users/whuanghkl/code/mygit/io0007
mvn install
result2=$?
echo $result2
if [ $result2 -ne 0 ];then
echo "error."
exit 4
fi
fi

複製程式碼

示例:

格式含義
1|命令列的第一個引數|||
1
|
|
|
|
2
命令列的第二個引數

建立使用者

1,建立使用者組
groupadd whuang

2,建立使用者
useradd whuang -g whuang
-g 指定使用者組

3,設定使用者密碼
passwd whuang

判斷檔案是否存在

test -f 判斷是否存在
test -f ~/.bash_profile && source ~/.bash_profile1

獲取檔案大小

du -sh /Users/whuanghkl/.share_http.properties*

image.png | left | 747x300

防止別人攻擊

檢視攻擊的ip
linux命令:
grep "authentication failure" /var/log/secure

image.png | left | 747x183

防止別人嘗試登入

/etc/hosts.deny
編輯vim /etc/hosts.deny ,新增:
sshd:115.28.240.
sshd:89.163.134.

sshd:112.74.113.
sshd:89.34.24.

搜尋文字檔案

grep -rn "*ROLE_SPECIFY*" --exclude-dir "node_modules" ./
ROLE_SPECIFY是要搜尋的關鍵字
重要引數說明:
1. --colour:指定搜尋的關鍵字的顏色,取值範圍:never',always' or `auto'
2. --exclude-dir:要排除在外的目錄名稱,
Note that
--exclude-dir patterns take priority over --include-dir patterns
3. -i, --ignore-case:忽略大小寫;
4. -n, --line-number:顯示行號 ;
5. -R, -r, --recursive:遞迴搜尋目錄及子目錄;
6. -v, --invert-match:反轉,所有不匹配的行;
7. -w, --word-regexp:作為整個單詞來搜尋
8. -E:使用正規表示式:例如:
tail -f ../../logs/catalina.out|grep -E "sameFileName|isEscapestr"
注意:必須是大寫的E

檢視後臺日誌檔案

目標 :

檢視日誌檔案中,所有空指標異常發生的位置,及前後10行,
前10行是為了看到請求的詳細資訊(介面 ,引數等),
後10行是為了檢視異常發生的程式碼行號,定位程式碼bug.

命令:

grep -rnw "java.lang.NullPointerException" house_error.log |cut  -d ':' -f 1 |xargs -n1 -i expr  {} + 10 |xargs -i awk '{if(NR>={}-16 && NR<={})print NR":"$0;if(NR=={}) print "\n\n" }'  house_error.log
複製程式碼

命令解釋 :
259786ce-983a-3ca7-a54e-b84e3af8a1f5.jpg

命令執行結果
d921876e-798d-3e12-8987-c7ddb0d71a4c.jpg
awk 中:

  1. dollar 0:表示整行;
  2. dollar 1:表示以分隔符分割之後的第一個欄位(域);
  3. dollar 2:表示以分隔符分割之後的第二個欄位(域); 分隔符:預設是空格,換行,\Tab

awk 引數說明 :

  1. -f(小寫):指定awk指令碼;
  2. -F(大寫):指定分隔符;
  3. -v:指定變數

awk的內建常量

在awk中有很多的系統變數,這些系統變數在我們編寫awk指令碼的時候會經常使用到,我現在將經常使用到的系統變數列舉出來,並做簡要說明。
2019-03-07_09-33-13.jpg

Linux shell日常使用


相關文章