Linux命令備忘 -- 持續更新

wget 參數

參數 做用
-b 後臺下載模式。
-O 下載到指定目錄。
-t 最大嘗試次數。
-c 斷點續傳
-p 下載頁面內全部資源,包括圖片、視頻等。
-r 遞歸下載

pidof

pidof XXX 找到參數名的PID.linux


killall

killall XXX 找到並kill找到的進程, 有點像kill+pidofshell


經常使用文件命令

  • stat 顯示文件屬性信息
  • file 查看文件類型

經常使用負載監控

  • watch -n 1 uptime
  • top
  • df -h
  • ps aux | grep xx
  • free -h

tr

替換文本安全

tr [a-z] [A-Z]bash


經常使用安全監控

  • who 當前在線用戶和終端設備
  • last 登錄日誌
  • history 默認保存1000條, 修改/etc/profile的HISTSIZE
  • .bash_history 這個文件用於保存每一個用戶的操做歷史, 在用戶根目錄
  • /etc/passwd 系統的帳戶信息

/etc/passwd 詳解

註冊名:口令:用戶標識號:組標識號:用戶名:用戶主目錄:命令解釋程序

/etc/shadow

真正的密碼文件less

LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
若是PASSWORD字段中的第一個字符是*的話,那麼,就表示該帳號被查封了

cut

按列切割文件測試

cut -d: -f1 /etc/passwd
-d 後面是分隔符
-f 查看第幾列

touch

難點- 設置文件系統信息,擦除文件修改記錄url

參數 做用
-a 僅修改「訪問時間」(atime)
-m 僅修改「更改時間」(mtime)
-d 同時修改atime與mtime

tar

.tar或.tar.gz或.tar.bz2.net

參數 用途
-c 建立壓縮文件
-x 解壓縮
-z 指定使用Gzip格式來壓縮/解壓
-j 指定使用bzip2參數來壓縮/解壓文件
-v 顯示進度
-C 定要解壓到的那個指定的目錄
-f 必須放到參數的最後一位,要壓縮或解壓的軟件包名稱
tar czvf etc.tar.gz /etc
tar xzvf etc.tar.gz -C /root/etc

grep

關鍵詞搜索匹配日誌

參數 用途
-A 輸出找到行及的下N行
-B 輸出找到行及的上N行
-C 輸出找到行及的上/下各N行
-n 顯示行號
-v 反選

find

find ./ -name "test*"

管道輸入輸出

2> 文件	將錯誤輸出重定向到一個文件中(清空原有文件的數據)

 >> 文件 2>&1 或 &> 文件將標準輸出與錯誤輸出共同寫入到文件中(追加到原有內容的後面)
ls test32 > readme.txt 2> error.txt
正常輸出到readme
錯誤輸出到error.txt

管道符 |

其實管道命令符的做用一句話就能歸納:「將前一個命令本來要輸出到屏幕的數據看成是後一個命令的標準輸入」code

echo "linuxprobe" | passwd --stdin root
用管道爲root修改密碼

常見轉義字符

字符 用法
反斜槓(\) 轉義後面的一個字符變爲單純的字符串
單引號('') 轉義其中全部的字符爲單純的字符串
雙引號("") 保留其中的變量屬性不轉義爲普通字符串
反引號(``) 將其中的字符串當作命令執行後返回一個結果

#命令執行的四個步驟

  1. 第一步驟階段是判斷用戶是否以絕對路徑或相對路徑的方式輸入命令(如/bin/ls),若是是的話則直接執行。
  2. 檢查用戶輸入的命令是否爲「別名命令」, alias/unalias 進行別名處理
  3. SHELL解釋器(Bash)來判斷用戶輸入的是內部命令仍是外部命令
    1. 內部命令是解釋器內部的指令,會被直接的執行
    2. 外部指令進入步驟4
    3. type 能夠手動查看指令類型
  4. 系統在多個路徑中查找用戶輸入的命令文件
    1. 在系統的環境變量PATH中尋找
    2. 冒號間隔

yum 倉庫配置

文件位置 : /etc/yum.repos.d/
文件名稱 *.repo
[rhel-media]: yum源的名稱,可自定義。

name=linuxprobe : yum倉庫的名稱,可自定義。

baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)

enabled=1 : 設置此源是否可用,1爲可用,0爲禁用。

gpgcheck=1 : 設置此源是否校驗文件,1爲校驗,0爲不校驗。

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若爲校驗請指定公鑰文件地址。

shell基礎

  1. 條件測試語法可以判斷表達式是否成立,若條件成立則返回數字0,不然便返回其餘隨機數值。

條件判斷

[ -e /home/ow ]
文件操做符 做用
-d 測試是否爲目錄。
-e 測試文件或目錄是否存在。
-f 判斷是否爲文件。
-r 測試當前用戶是否有權限讀取。
-w 測試當前用戶是否有權限寫入。
-x 測試當前用戶是否有權限執行。
整數操做符 做用
-eq 判斷是否等於
-ne 判斷是否不等於
-gt 判斷是否大於
-lt 判斷是否小於
-le 判斷是否等於或小於
-ge 判斷是否大於或等於

判斷計算機內存

FreeMem=free -m | grep "Mem:" | awk '{print $4}'
[ $FreeMem -lt 1024 ] && echo "less memory" || echo "memory enough"

字符串判斷

  • -z 判斷是否爲空
  • =/!=

循環

if [] then;
elif [] then
else
fi

for xx in xx
do
done

while [] 
do
done

日期處理

初始化一個參數,將指定的日期做爲參數處理

START_DATE=`date -d '2015-06-01' "+%Y-%m-%d"`

將一個日期+1天

START_DATE=`date -d "next-day $START_DATE" "+%Y-%m-%d"`
  • -1 month
  • -1 day
  • next day
  • 2 days ago
  • -1 week...

awk

awk help

awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
  1. 執行BEGIN{ commands }語句塊中的語句;
  2. 從文件或標準輸入(stdin)讀取一行,而後執行pattern{ commands }語句塊,它逐行掃描文件,從第一行到最後一行重複這個過程,直到文件所有被讀取完畢。
  3. 當讀至輸入流末尾時,執行END{ commands }語句塊
echo -e "line1 f2 f3\nline2 f4 f5\nline3 f6 f7" | awk '{print "Line No:"NR", No of fields:"NF, "$0="$0, "$1="$1, "$2="$2, "$3="$3}'
相關文章
相關標籤/搜索