我的隨筆筆記

系統加固

密碼輸入錯誤超過3次鎖定賬號
sed -i '3aauth required pam_tally2.so.deny=3' /etc/pam.d/system-auth
sed -i '17d;16apassword requisite pam_cracklib.so retry=3 minlen=8 ucredit=0 lcredit=-1 dcredit=-1 ocredit=0 try_first_pass' /etc/pam.d/system-auth
sed -i '18d;17apassword sufficient pam_unix.so use_authtok sha512 shadow remember=3 try_first_pass ' /etc/pam.d/system-auth

/etc/motd 設置系統登錄提示語

禁ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

chattr +a /etc/profile
echo "echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all" >>/etc/profile
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"

xargs 可以讀入 stdin 的資料,並且以空白字元或斷行字元作爲分辨,將 stdin 的資料分隔成爲 arguments 。 因爲是以空白字元作爲分隔,所以,如果有一些檔名或者是其他意義的名詞

內含有空白字元的時候, xargs 可能就會誤判了,如果需要處理特殊字符,需要使用-0參數進行處理。
選項解釋
0 :當sdtin含有特殊字元時候,將其當成一般字符,想/'空格等
$ echo "/ / "|xargs echo #不顯示空格
/ /
$ echo "/ / "|xargs -0 echo
/ /

注意,-I 必須指定替換字符 -i 是否指定替換字符-可選
find . | xargs -I {} cp {} $D_PATH
find . | xargs -i cp {} $D_PATH
注意:cshell和tcshell中,需要將{}用單引號、雙引號或反斜槓,否則不認識。bash可以不用。
find /shell -maxdepth 2 -name a -print | xargs -t -i sed -i '1 i\111' ‘{}‘

在當前目錄下查找所有用戶具有讀、寫和執行權限的文件,並收回相應的寫權限:
find . -perm -7 -print | xargs chmod o-w
查找系統中的每一個普通文件,然後使用xargs命令來測試它們分別屬於哪類文件
find . -type f -print | xargs file
./liyao: empty
嘗試用rm 刪除太多的文件,你可能得到一個錯誤信息:/bin/rm Argument list too long. 用xargs 去避免這個問題
$find ~ -name ‘.log’ -print0 | xargs -i -0 rm -f {}
查找所有的jpg 文件,並且壓縮它
find / -name
.jpg -type f -print | xargs tar -cvzf images.tar.gz
拷貝所有的圖片文件到一個外部的硬盤驅動
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

ps -ef
uid pid ppid

ps -ef | grep /usr/local/tomcat/ | grep -v grep | awk '{print $2}' | xargs kill -9

查看現在登錄的用戶IP
who -u | awk -F "[(|)]" '{print $2}'
w | sed -n '{3,$p}' | awk '{print $3}'
w | grep pts | awk '{print $3}'

統計Tomcat日誌中IP連接次數最多的,倒序排列
awk '{print $2}' localhost_access_log-20171201.log |sort -nr |uniq -c | head -n 10
查看Tomcat對應的進程 ps -ef |grep tomcat | grep -v grep | awk '{print $2}'
查看Tomcat的線程數 ps -Lf pid | wc -l
查看tomcat的併發數 netstat -an|grep 10050|awk '{count[$6]++} END{for (i in count) print(i,count[i])}'

怎樣隱藏文件
mv 原文件名 .文件名 ------> 前面加.即可

屏蔽某一列,使其不打印
awk '{$5="",print $0}' /etc/passwd
打印某一列及其後面的列
uptime|awk 'BEGIN{print "1Min""\t","5Min""\t","15Min""\t"}{for(i=10;i<=NF;i++)printf$i"\t";printf"\n"}'

查看CPU型號
cat /proc/cpuinfo | grep "model name" |cut -c 14-

刪除後面重複的內容
awk '!x[$0]++' filename
簡要解釋一下,awk 的基本執行流程是,對文件的每一行,做一個指定的邏輯判斷,如果邏輯判斷成立,則執行指定的命令;如果邏輯判斷不成立,則直接跳過這一行。

我們這裏寫的 awk 命令是!x[$0]++,意思是,首先創建一個 map 叫x,然後用當前行的全文$0作爲 map 的 key,到 map 中查找相應的 value,如果沒找到,則整個表達式的值爲真,可以

執行之後的語句;如果找到了,則表達式的值爲假,跳過這一行。由於表達式之後有++,因此如果某個 key 找不到對應的 value,該++操作會先把對應的 value 設成 0,然後再自增成 1,

這樣下次再遇到重複的行的時候,對應的 key 就能找到一個非 0 的 value 了。

對齊
df -ih|awk '{printf "%-6s %-3s %-5s %5s %-8s\n",$2,$3,$4,$5,$6}'

真正清空終端屏幕.
printf “\033c” 或者 printf “\ec”
reset

文件比較

common 文件比較

比較已經排序的文件

comm [options] file1 file2

comm將逐行比較已經排序的兩個文件。顯示結果包括3列:

第1列爲只在file1中找到的行;第2列爲只在file2中找到的行;第3列爲兩個文件的公用行。

參數

參數file1和file2爲comm要比較的文件的路徑名。用連字符(-)來替代file1或者file2時,comm將從標準輸入讀取輸入信息

注意

如果文件沒有排序,comm就不能正常的工作

diff 文件比較
命令格式:

diff [參數][變動前的文件1或目錄1][變動後的文件2或目錄2]

命令功能:

diff命令能比較單個文件或者目錄內容。如果指定比較的是文件,則只有當輸入爲文本文件時纔有效。以逐行的方式,比較文本文件的異同處。如果指定比較的是目錄的的時候,diff 命令

會比較兩個目錄下名字相同的文本文件。列出不同的二進制文件、公共子目錄和只在一個目錄出現的文件。

y 以並列的方式顯示文件的異同之處。

c 顯示全部內文,並標出不同之處。

u,-U 以合併的方式來顯示文件內容的不同。

r或--recursive  比較子目錄中的文件。

查看文件類型
file 文件

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