1. 程式人生 > 其它 >Linux常見使用命令

Linux常見使用命令

目錄

一、目錄及檔案操作

1.1建立目錄

命令:mkdir --建立目錄命令
1|mkdir abc 在當前目錄下建立一個名為abc的資料夾

2|mkdir /usr/abc 在指定目錄下建立一個名為abc的資料夾

1.2刪除目錄活檔案

刪除:rm[-rf]目錄/檔案
刪除目錄
1|1.rm 檔名稱 刪除當前目錄下的指定檔案

2|2.rm -f 檔名稱 刪除當前目錄下的指定檔案(不詢問)

1.3重新命名目錄或檔名稱

命令:mv 當前目錄/檔案 需改成的目錄/檔名稱
1|1.mv aaa bbb 將目錄aaa改為bbb(重新命名)</br> 2|2.mv aaa.text bbb.text 將檔案aaa改為bbb(重新命名)

1.4目錄切換

命令:cd --切換目錄
1|1.cd / 切換到根目錄;</br> 2|2.cd /root 切換到根目錄下的root目錄;</br> 3|3.cd .. 切換到上一級目錄;</br> 4|4.cd ~ 切換到home目錄;</br> 5|5.cd - 切換到上次訪問的目錄

1.5目錄及檔案列表檢視

命令:ls [-al]或ll
1|1. ls 檢視當前目錄下的所有目錄和檔案 2|2. ls -a 檢視當前目錄下的所有目錄和檔案(包含隱藏的檔案) 3|3. ls -l 或 ll 檢視當前目錄下的所有目錄和檔案(以列表方式顯示檢視,顯示更多資訊) 4|4. ls /data 檢視指定目錄下的所有目錄和檔案(如:ls /

data

1.6複製目錄或檔案

命令:cp -r/cp 目錄/檔名稱 目錄/檔案拷貝的目標位置 -r代表遞迴(僅只複製檔案不需要加-r,如果複製目錄必須加此-r選項,加上後則會拷貝資料夾——包括下一級的子資料夾,以及子資料夾中的子資料夾,以此類推。)
1|1.將/data/a目錄下的aaa目錄複製到 /usr目錄下面 cp -r /data/a/aaa /usr 2|2.將/data/a目錄下的aaa.text檔案複製到 /usr目錄下面 cp /data/a/aaa.text /usr 3|3.將/data/a目錄下的aaa.text檔案備份到 /data/a目錄下面bbb.text cp /data/a/aaa.text /data/a/aaa.text(當前目錄下的檔案複製則備份檔名稱不能跟原來一致)

1.7剪下目錄或檔案

命令:mv 目錄/檔名稱 目錄/檔案的新位置
1|1.將/data/a目錄下的aaa目錄剪下到 /usr目錄下面 mv /data/a/aaa /usr 2|2.將/data/a目錄下的aaa.text檔案剪下到 /usr目錄下面 mv /data/a/aaa.text /usr

1.8搜尋目錄或檔案

命令:find -name 目錄/檔案 引數 檔名稱
1|1.find /data/tmp -name 'a*' 查詢/usr/tmp目錄下的所有以a開頭的目錄或檔案 2|2.find -name 'a*' 查詢當前目錄下的所有以a開頭的目錄或檔案

1.9建立檔案

命令:touch檔名
1.在當前目錄建立一個名為aa.txt的檔案 touch aa.txt

1.10檢視及修改檔案內容資訊

命令 vi或vim 檔名
1.開啟檔案
vim test.txt 進入一般模式 注意:使用vi編輯器開啟檔案後,並不能編輯,因為此時處於命令模式。 可以控制螢幕游標的移動,字元、字或行的刪除,查詢,移動複製某區段及點選鍵盤i/a/o進入編輯模式 命令列模式下的常用命令: 【1】控制游標移動:↑,↓,j 【2】刪除當前行:dd 【3】查詢:/字元 【4】進入編輯模式:i o a 【5】進入底行模式::
2.編輯檔案
i(按鍵):在游標所在字元前開始插入 a(按鍵):在游標所在字元後開始插入 o(按鍵):在游標所在行的下面另起一新行插入
3.ESC(按鍵) 退出編輯模式,將檔案儲存或退出vi
:wq (shift+:調起輸入框)(儲存退出) :wq! (shift+:調起輸入框)(表示強制儲存退出) :x (shift+:調起輸入框)(表示儲存退出,寫入檔案並退出。僅當檔案被修改時才寫入,並更新檔案修改時間;否則不會更新檔案修改時間) :q! (shift+:調起輸入框)(強制退出,內容不儲存) :q (shift+:調起輸入框)(如果內容修改則會提示是否儲存)

1.11檢視檔案內容資訊(僅支援檢視)

命令:cat/more/less/tail/head
cat:看最後一屏
1.cat /data/aa.txt 檔案,只能顯示最後一頁內容
more:百分比顯示
1.more /data/aa.txt檔案 可以顯示百分比,從第一頁開始檢視aa.txt檔案內容,按回車鍵一行一行進行查看回車可以向下一行,空格可以向下一頁,q可以退出檢視
less:翻頁檢視
1.less /data/aa.txt 從第一頁開始檢視aa.txt檔案內容,按回車鍵一行一行的看,按空格鍵一頁一頁的看,支援使用PageDown和PageUp翻頁,q結束檢視
tail:指定行數或者動態檢視(實時檢視日誌)
1|1.tail -10 /data/aa.log 檢視aa.log檔案的後10行,Ctrl+C結束。 2|2.tail -f /data/aa.log 檢視aa.log檔案的後10行內容,Ctrl+C結束。 3|3.tail -n 7 /data/aa.log 檢視aa.log檔案的後7行內容,Ctrl+C結束。 4|4.head /data/aa.log 檢視aa.log檔案的前10行內容,Ctrl+C結束。 5|5.head -n 7 /data/aa.log 檢視aa.log檔案的前7行內容,Ctrl+C結束。

1.12終止當前操作

命令:Ctrl+c和Ctrl+z都是中斷命令,作用不一樣。
Ctrl+Z將任務中斷,但是此任務並沒有結束,在程序中只是維持掛起的狀態,使用者可以使用fg/bg操作前臺或後臺的任務,bg命令把被中斷的任務放在後臺執行,fg命令重新啟動前臺被中斷的任務。
Ctrl+C是強制中斷程式的執行。

1.13重定向功能

可以使用 > 或 < 將命令的輸出的命令重定向到aa.txt檔案中(如果沒有這個檔案則建立一個)
命令:echo [選項] [輸出內容]
選項:
-e:支援反斜線控制的字元轉換
-n:取消輸出後行末的換行符號(內容輸出後不換行)
1|1.echo 'Hello World' > /root/test.txt 將字串“Hello World” 寫入到test.txt檔案中 2|2.echo "c.biancheng.net" echo後面的內容就會列印到螢幕上
在 echo 命令中如果使用了"-e"選項,則可以支援控制字元,如下所示。
控制字元 作 用
\ 輸出\本身
\a 輸出警告音
\b 退格鍵,也就是向左刪除鍵
\c 取消輸出行末的換行符。和“-n”選項一致
\e Esc鍵
\f 換頁符
\n 換行符
\r 回車鍵
\t 製表符,也就是Tab鍵
\v 垂直製表符
\Onnn 按照八進位制 ASCII 碼錶輸出字元。其中 0 為數字 0,nnn 是三位八進位制數
\xhh 按照十六進位制 ASCH 碼錶輸出字元。其中 hh 是兩位十六進位制數
1|1.echo -e "\\ \a" 輸出 \,同時會在系統音響中輸出一聲警告音 2|2.echo -e "ab\bc" 輸出 ac 在這個輸出中,在 b 的左側有"\b",所以輸出時只有 ac 3|3.echo -e "a\tb\tc\nd\te\tf" 4|因為加入了製表符"\t"和換行符"\n",所以會按照格式輸出 5|a b c 6|d e f 7|4.echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146" 會按照制ASCII碼輸出的如141 這個八制數在 ASCII碼中代表小寫的"a",其他的以此類推 8|a b c 9|d e f 10|5.echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66" 會按照十六進位制ASCII碼同樣可以輸出 11|a b c 12|d e f 13|6.echo -e "e[1;31m abed \e[0m" 會把 abcd 按照紅色輸出。\e[1 是標準格式,代表顏色輸出開始,\e[0m 代表顏色輸出結束,31m 定義字型顏色是紅色;echo 命令能夠識別的顏色程式碼如下:30m代表黑色,31m代表紅色,32m代表綠色,33m代表黃色,34m代表藍色,35m代表洋紅,36m代表青色,37m代表白色。 14|7.echo -e "e[1;42m abed \e[0m" 會給 abcd 加入一個綠色的背景。echo 命令可以使用的背景顏色如下:40m=黑色,41m=紅色,42m=綠色,43m=黃色,44m=藍色,45m=洋紅,46m=青色,47m=白色。
在 echo 命令中如果使用了"-n"選項,則表示在輸出內容結束後,不會換行,直接顯示新行的提示符。
1.echo -n "c.biancheng.net" 回車則螢幕顯示:c.biancheng.net[root@localhost ~]#

二、檔案打包和壓縮及解壓操作

2.1檔案打包和壓縮

命令:tar/unzip/zip

1.命令:tar -zcvf 打包壓縮後的檔名 要打包的檔案可以多個

linux中的打包檔案格式:.tar
linux中的壓縮檔案格式:.gz
linux中打包並壓縮的檔案格式:.tar.gz

Linux中的打包檔案一般是以.tar結尾的,壓縮的命令一般是以.gz結尾的。
而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的字尾名一般.tar.gz。

其中:z:呼叫gzip壓縮命令進行壓縮
c:打包檔案
v:顯示執行過程
f:指定檔名
1.cd /data/aa 如aa目錄下有1|1.txt 2.txt兩個檔案進行打包壓縮 2|2.tar -cvf ab.tar 1.txt 2.txt 將當前目錄下1.txt 2.txt打包 3|3.tar -cvf ab.tar ./* 將當前目錄下的所有檔案打包壓縮成ab.tar檔案 4|4..tar -zcvf ab.tar.gz 1.txt 2.txt 打包並壓縮/data/aa目錄下的1.txt 2.txt檔案 壓縮後的壓縮包指定名稱為ab.tar.gz 5|5..tar -zcvf ab.tar.gz * 打包並壓縮/data/aa目錄下的所有檔案 壓縮後的壓縮包指定名稱為ab.tar.gz
2.命令:unzip/zip
壓縮(zip)
1|1.zip a.zip 1.txt 將單個檔案壓縮(a.zip) 2|2.zip -r a.zip a/ 將目錄進行壓縮(a.zip) 3|3.zip -r a.zip 1.tx 2.txt 將多個檔案壓縮為zip檔案(a.zip)

2.2檔案解壓

命令:tar [-zxvf] 壓縮檔案
其中:x:代表解壓
1|1.tar -xvf(-zxvf) a.tar 解壓a.tar壓縮包,到當前資料夾下; 2|2.tar -xvf a.tar -C data/local 解壓a.tar壓縮包,到/data/local目錄下(C為大寫,中間無空格,C代表指定解壓的位置) 3|3.tar -zxvf a.tar.gz 解壓a.tar.gz壓縮包,到當前資料夾下 4|4.tar -zxvf a.tar.gz -C usr/local 解壓a.tar.gz壓縮包,到/data/local目錄下(C為大寫,中間無空格,C代表指定解壓的位置) 5|5.tar xf a.tar.xz 解壓a.tar.xz壓縮包,到當前資料夾下
解壓縮(unzip)
1|1.unzip a.zip 解壓一個zip格式壓縮包 2|2.unzip -d /data/app/a.zip 將a.zip包,解壓到指定/data/app/目錄下

三、查詢操作命令

命令:grep
1|1.grep abc test.txt 在test.txt檔案中搜索abc字串,大小寫敏感且顯示行; 2|2.grep -n abc test.txt 在test.txt檔案中搜索abc字串,大小寫敏感且顯示行及行號; 3|3.grep -v abc test.txt 在test.txt檔案中搜索abc字串,大小寫敏感且顯示沒搜尋到的行; 4|4.grep -i abc test.txt 在test.txt檔案中搜索abc字串,大小寫敏感且顯示行; 5|5.grep -ni abc test.txt 在test.txt檔案中搜索abc字串,大小寫敏感且顯示行及行號; 6|6.ps -ef | grep nginx 查詢指定nginx服務程序 7|7.ps -ef | grep nginx | grep -v grep 查詢指定服務程序,排除gerp身 8|8.ps -ef | grep nginx -c 查詢指定程序個數

四、處理文字檔案命令

4.1awk

awk是一種處理文字檔案的語言,簡單來說awk就是把檔案逐行讀入
awk [選項引數] 'script' var=value file(s)或awk [選項引數] -F scriptfile var=value file(s)
-F 定義欄位分割符號;-v 定義變數並賦值

例項:
1|1.awk -F: '{print $0}' /data/test 列印檔案所有內容 2|2.awk -F: '{print NR, $0}' /etc/passwd /etc/hosts 列印檔案所有內容,幷包括行號 3|3.awk -F: '{print FNR,$0}' /etc/passwd /etc/hosts 4|4.awk -F: '{print $0,NF}' /data/test 保留記錄的欄位數 5|5.awk 'BEGIN{FS=":"}{print $1,$3}' /data/test 輸入欄位分隔符,預設為空格 6|6.awk '{print $1,$4}' testlog.txt 每行按空格或TAB分割,輸出文字中的1、4項 7|7.awk '{printf "%-8s %-10s\n",$1,$4}' testlog.txt 每行按空格或TAB分割,輸出文字中的1、4項(格式化輸出) 8|8.awk -F, '{print $1,$2}' testlog.txt (awk 'BEGIN{FS=","} {print $1,$2}' testlog.txt) 使用","分割 9|9.awk -F '[ ,]' '{print $1,$2,$5}' testlog.txt 使用多個分隔符.先使用空格分割,然後對分割結果再使用","分割 10|10.echo "this is a test" | awk '{ print $0 }' 輸出為:this is a test 為列印一個或多個欄位或所有欄位,使用print命令。這是一個awk動作 11|11.echo "this is a test" | awk '{ print $1 }' 輸出為:this is a test 12|12.echo "this is a test" | awk '{ print $1, $2 }' 輸出為:this is a test 13|13.awk '$1>2' testlog.txt 過濾第一列字串大於2的行 14|14.awk '$1==2 {print $1,$3}' testlog.txt 過濾第一列字串等於2的行 15|15.awk '$1>2 && $2=="Are" {print $1,$2,$3}' testlog.txt 過濾第一列字串大於2並且第二列等於'Are'的行 16|16.awk '{print NR,FNR,$1,$2,$3}' testlog.txt 輸出順序號 NR, 匹配文字行號 17|17.awk '{print $1,$2,$5}' OFS=" $ " testlog.txt 指定輸出分割符 18|18.awk '$2 ~ /th/ {print $2,$4}' testlog.txt 輸出第二列包含 "th",並列印第二列與第四列 19|19.awk '/re/ ' testlog.txt 輸出包含 "re" 的行 20|20.awk 'BEGIN{IGNORECASE=1} /re/' testlog.txt 輸出包含 "re" 的行忽略大小寫 21|21.$ awk '$2 !~ /th/ {print $2,$4}' log.txt(awk '!/th/ {print $2,$4}' log.txt) 輸出第二列不包含 "th",並列印第二列與第四列 22|22.ls -l *.txt | awk '{sum+=$5} END {print sum}' 計算檔案大小 23|23.awk 'length>80' log.txt 從檔案中找出長度大於 80 的行 24|24.seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}' 列印九九乘法表 25|25.awk -F : '{ print $1 }' /etc/passwd 列印第一個":"前內容 26|26.awk -F ':' 'BEGIN {print "start1,start7"} {print $1 "," $7} END {print "end1,end7"}' /etc/passwd 顯示/etc/passwd的第1列和第7列,用逗號分隔顯示,所有行開始前新增列名start1,start7,最後一行新增,end1,end7(BEGIN語句在所有文字處理動作執行之前被執行,END在所有文字處理動作執行之後被執行) 27|27.awk -F : '{ print NR " " NF " " $0 }' /etc/passwd 統計/etc/passwd檔案中,每行的行號,每行的列數,對應的完整行內容 28|28.awk 'BEGIN { print length("this is a text") }' 輸出字串的長度 29|29.awk -F ':' '{ print toupper($1) }' /etc/passwd 將/etc/passwd的第一個":"前內容變成大寫輸出

4.2sed

sed 命令是利用指令碼來處理文字檔案
sed的命令格式:sed [options] 'command' file(s);
sed的指令碼格式:sed [options] -f scriptfile file(s);
選項說明:

-e :直接在命令列模式上進行sed動作編輯,此為預設選項;
-f :將sed的動作寫在一個檔案內,用–f filename 執行filename內的sed動作;
-i :直接修改檔案內容;
-n :只打印模式匹配的行;
-r :支援擴充套件表示式;
-h或--help:顯示幫助;
-V或--version:顯示版本資訊。

引數說明:

a :新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行);
c :取代, c 的後面可以接字串,這些字串可以把選定的行改為新的文字;
d :刪除, 刪除選擇的行, d 後面通常不接任何東東;
i :插入, i 的後面可以接字串,而這些字串會在新的一行出現(在當前行上面插入文字);
p :列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed -n 一起執行;
s :取代,可以直接進行取代的工作,通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g ;
l :列表不能列印字元的清單;
n :讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令;
N :追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼;
q :退出Sed;
w :表示把行寫入一個檔案;
= :列印當前行號;
y :表示把一個字元翻譯為另外的字元(但是不用於正則表示式);

例項:
1.sed -e 4a\newLine test 在test檔案的第四行後新增一行內容"newline",並將結果輸出到標準輸出 2.sed -e '4 a newline\nnewline2' test 在test檔案的第四行後新增二行內容"newline",並將結果輸出到標準輸出 3.sed -e '4 a newline\nnewline2\n' test 在test檔案的第四行後新增二行內容"newline"和 1 行空行,並將結果輸出到標準輸出 4.sed -e '4 a \ ' testfile 在test檔案的第四行之後追加 1 行空行 5.nl /data/test | sed '2a drink tea' 在test檔案第二行後(亦即是加在第三行)加上"drink tea"內容 6.nl /data/test | sed '2i drink tea' 在test檔案第二行前加上"drink tea"內容 7.nl /data/test | sed '2a Drink tea or\drink beer 2' 在test檔案在第二行後面加入兩行字,例如 Drink tea or與 drink beer2,每一行之間都必須要以反斜槓"\"來進行新行的新增 8.sed -n '/test/w file' example 在example中所有包含test的行都被寫入file裡(w命令) 9.sed 's/book/books/' test 替換文字中的字串把book替換為books 10.sed -n 's/test/TEST/p' test -n選項和p命令一起使用表示只打印那些發生替換的行: 11.sed -i 's/book/books/g' test 直接編輯檔案選項-i,會匹配file檔案中每一行的第一個book替換為books 12.sed -i '5i\this is a test line' test.conf 在test.conf檔案第5行之前插入this is a test line: 13.sed '/^test/i\this is a test line' file i\命令 將 this is a test line 追加到以test開頭的行前面: 14.sed -i '2a\this is a test line' test.conf 在 test.conf 檔案第2行之後插入 this is a test line 15.sed '/^test/a\this is a test line' file 將 this is a test line 追加到 以test 開頭的行後面: 16.sed 's/book/books/g' test 使用字尾 /g 標記會替換每一行中的所有匹配: 17.nl /data/test | sed '2,5c No 2-5 number' 將第2-5行的內容取代成為(No 2-5 number) 18.echo sksksksksksk | sed 's/sk/SK/2g' 當需要從第N處匹配開始替換時,可以使用 /Ng: 輸出:skSKSKSKSKSK echo sksksksksksk | sed 's/sk/SK/3g' 輸出:skskSKSKSKSK echo sksksksksksk | sed 's/sk/SK/4g' 輸出:skskskSKSKSK 19.nl /data/test | sed -n '5,7p' 僅列出 /data/test 檔案內的第 5-7 行 20.nl /data/test | sed '2,5d' 將 /data/test 的內容列出並且列印行號,同時,請將第 2~5 行刪除;sed 的動作為 '2,5d' ,那個 d 就是刪除!因為 2-5 行給他刪除了,所以顯示的資料就沒有2-5行,注意一下,sed 後面接的動作,請務必以 '' 兩個單引號括住. 21.nl /data/test | sed '2d' 只要刪除第 2 行 22.sed '2d' test 刪除test檔案的第2行 23..nl /data/test | sed '3,$d' 要刪test檔案的除第 3 到最後一行 24.sed '3,$d' test 刪除test檔案的第3行到末尾所有行 25.sed '$d' file 刪除檔案最後一行: 26.sed '/^$/d' test 刪除test檔案空白行 27.nl /etc/passwd | sed '/root/d' 刪除/data/test所有包含root的行,其他行輸出 28.nl /data/test | sed '/root/p' 搜尋/data/test有root關鍵字的行並列印,如果root找到,除了輸出所有行,還會輸出匹配行 29.nl /data/test | sed -n '/root/p' 搜尋/data/test有root關鍵字的行並列印,如果root找到,只會輸出匹配行,使用-n的時候將只打印包含模板的行。 30.nl /data/test | sed -n '/root/{s/bash/bash2/;p;q}' 搜尋/data/test,找到root對應的行,執行後面花括號中的一組命令,每個命令之間用分號分隔,這裡把bash替換為bash2,再輸出這行 31.nl /data/test | sed -e '3,$d' -e 's/bash/bash2/' 刪除/data/test第三行到末尾的資料,並把bash替換為bash2 32.sed '1,10y/abcde/ABCDE/' test 把1~10行內所有abcde轉變為大寫,注意,正則表示式元字元不能使用這個命令(y命令) 33.sed -n 'p;n' test.txt(sed -n '1~2p' test.txt) 列印奇數行 34.sed -n 'n;p' test.txt(sed -n '2~2p' test.txt) 列印偶數行

五、使用者及許可權操作命令

5.1建立使用者

命令:useradd或adduser(需要超級使用者)

格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

(新增使用者)useradd 【引數】 使用者名稱

賬號建好之後,再用passwd設定賬號的密碼。使用useradd命令所建立的賬號,是儲存在/etc/passwd文字檔案中。

-g 屬組,指定使用者所屬的群組
-u 設定uid,該值在系統中必須是唯一的。0~499預設是保留給系統使用者賬號使用的,所以該值必須大於499。
-m 建立家目錄
-M 沒有家目錄
-G 指定屬於多個組
-s 指定登入shell
-d 指定家目錄,替換系統預設值/home/<使用者名稱>
-c 註釋
-D 改變它預設的屬性
-e 指定的日期是帳號失效的日期(日期格式為MM/DD/YY,例如06/30/12。預設表示永久有效)
-f:指定在密碼過期後多少天即關閉該賬號。如果為0賬號立即被停用;如果為-1則賬號一直可用。預設值為-1.
-n:取消建立以使用者名稱稱為名的群組。
-r:建立系統賬號。

(修改密碼)passwd 引數 使用者名稱
-l:鎖定已經命名的賬戶名稱
-u:解開賬戶鎖定狀態
-x, --maximum=DAYS:密碼使用最大時間(天)
-n, --minimum=DAYS:密碼使用最小時間(天)
-d:刪除使用者的密碼
-S:檢查指定使用者的密碼認證種類
--stdin:非互動式修改/設定密碼,弊端是操作日誌能查密碼,用history -c 幹掉。
1|1.useradd wly 建立一個新使用者賬戶wly無關聯組等 2|2.useradd -u 544 -d /usr/wly -g users -m wly 建立一個新使用者賬戶wly,並設定UID為544,主目錄為/usr/wly,屬於users組: 加-m 如果主目錄不存在則自動建立 3|3.passwd wly 修改密碼
(修改賬號資訊)usermod 引數 使用者名稱
-c:修改使用者帳號的註釋。
-d:修改使用者登入時的目錄。
-e:修改帳號的有效期限。
-f: 修改在密碼過期後多少天即關閉該帳號。
-g:修改使用者所屬的群組。
-G:修改使用者所屬的附加群組。
-l:修改使用者帳號名稱。
-L:鎖定使用者密碼,使密碼無效。
-s:修改使用者登入後所使用的shell。
-u:修改使用者ID。
-U:解除密碼鎖定。
常用的引數包括-c, -d, -m, -g, -G, -s, -u以及-o等,與useradd命令中的選項一樣,可以為使用者指定新的資源值。

1.usermod -c "貴賓" wly 將wly使用者備註改為“貴賓”

5.2刪除使用者

命令:userdel 引數 使用者名稱
1|1.1.userdel wly 只刪除使用者wly使用者所長的家目錄不刪除 2|2.userdel -r wly 刪除使用者wly常用的選項是-r,它的作用是把使用者的家目錄一起刪除

5.3切換登入使用者

命令:su

作用於使用者之間的切換。但是切換前的使用者依然保持登入狀態。如果是root 向普通或虛擬使用者切換不需要密碼,反之普通使用者切換到其它任何使用者都需要密碼驗證。
1|1.su wly:切換到wly使用者,但是路徑還是/root目錄 2|2.su - wly : 切換到wly使用者,路徑變成了/home/wly 3|3.su : 切換到root使用者,但是路徑還是原來的路徑 4|4.su - : 切換到root使用者,並且路徑是/root 5|5.exit:退出返回之前的使用者

5.4許可權賦予

命令:sudo

普通使用者能使用root許可權的權利。只需輸入自己賬戶的密碼即可。

六、系統操作命令

1關機和重啟命令

命令:shutdown(關閉計算機)

shutdown是最常用也是最安全的關機和重啟命令,它會在關機之前呼叫fsck檢查磁碟,其中-h和-r是最常用的引數:

-h:停止系統服務並關機 ;-r: 停止系統服務後重啟
1|關機 2| shutdown -h now 立刻關機 3| shutdown -h 15:30 到15:30關機,如果該時間小於當前時間,則到隔天關機 4| shutdown -h 5 5分鐘後關機 5| poweroff 立刻關機 6|重啟 7| shutdown -r now 立刻重啟 8| shutdown -r 5 5分鐘後重啟 9| reboot 立刻重啟
2查詢幫助命令

命令:--help;man命令(命令說明書)
1|1.shutdown --help: 2|2.ifconfig --help: 檢視網絡卡資訊 3|3.man shutdown 注意:man shutdown開啟命令說明書之後,使用按鍵q退出
3.檢視歷史使用命令:history
4.過濾與es相關命令:history | grep es
5.檢視佔用資源情況
1).ps -au 佔用的資源是從程序啟動開始,計算的平均佔用資源,比如cpu等
2).top 實時佔用的資源;

6.檢視當前目錄所佔儲存情況
1).du -lh 檢視當前檔案下各資料夾佔用儲存空間
2).du -sh 檢視當前資料夾所佔儲存空間
3).du --max-depth=<目錄層數> 超過指定層數的目錄後,予以忽略。
4).du --max-depth=1 只檢視當前目錄下檔案佔用的儲存空間7.管道命令:根據專案檢視程序,更加PID檢視專案,以及專案路徑
1).ps -ef 檢視所有的程序
2).ps -ef | grep nginx 檢視nginx相關的程序
8.檢視機器間是否網路連通:ping 192.168.xx.xx
9.檢視當前系統埠:
1).命令:netstat -an 檢視全部埠
2).命令:netstat -an | grep 8080 搜尋指定埠
10.檢查遠端機器或本地機器上某埠是否開啟: telnet www.baidu.com 80
11.檢視IP資訊:ifconfig 或 ifconfig | more
12.檢視Linux 系統上的檔案系統磁碟使用情況統計檢視:df -h
13.用於顯示目錄或檔案的大小:du -h 目錄路徑 檢視指定目錄
14.檢視當前目錄:pwd
15.殺死程序(根據PID):命令:kill pid 或者 kill -9 pid(強制殺死程序) pid:程序號
16.配置網路:命令:setup 命令會開啟一個圖形化的配置工具
17.重啟網路命令:service network restart
18.清屏命令:ctrl + l
19.檢視liunx核心:(uname -a)/(cat /proc/version)/(uname -r)
20.檢視linux版本:cat /etc/redhat-release
21.檢視LINUX是多少位:getconf LONG_BIT
22.檢視時區:date -R
23.關閉防火牆
1).service iptables stop 臨時關閉防火牆
2).chkconfig iptables off 防火牆開啟不啟動
3).service iptables status 檢視防火牆狀態
24.開機啟動選項
1)msconfig 檢視開機啟動選項
2)chkconfig 檢視開機啟動服務列表
25.修改檔案許可權命令:chmod

檔案呼叫許可權分為三級 : 檔案所有者(Owner)、使用者組(Group)、其它使用者(Other Users)

只有檔案所有者和超級使用者可以修改檔案或目錄的許可權。可以使用絕對模式(八進位制數字模式),符號模式指定檔案的許可權。

rwx:r-代表可讀,w-代表可寫,x-代表該檔案是一個可執行檔案,如rwx任意位置變為-則代表不可讀或不可寫或不可執行檔案。

其他引數:

X-特殊執行許可權只有當檔案為目錄檔案,或者其他型別的使用者有可執行許可權時,才將檔案許可權設定可執行,s-當檔案被執行時,根據who引數指定的使用者型別設定檔案的setuid或者setgid許可權,t-設定貼上位,只有超級使用者可以設定該位,只有檔案所有者u可以使用該位,-R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更)

示例1:給test.txt檔案許可權改為可執行檔案許可權,test.txt檔案的許可權是chmod -rw------- test.txt

第一位:-就代表是檔案,d代表是資料夾
第一段(2 ~ 4 個字元3位):代表擁有者的許可權
第二段(5 ~ 7 個字元3位):代表擁有者所在的組,組員的許可權
第三段(8 ~ 10個字元最後3位):代表的是其他使用者的許可權
示例2:chmod -rw-r--r-- test.txt
前三位代表當前使用者對檔案許可權:可以讀/可以寫/不能執行
中間三位代表當前組的其他使用者對當前檔案的操作許可權:可以讀/不能寫/不能執行
後三位其他使用者對當前檔案許可權:可以讀/不能寫/不能執行

chmod命令也可以使用八進位制數來指定許可權。檔案或目錄的許可權位是由9個許可權位來控制,每三位為一組,它們分別是檔案所有者(User)的讀、寫、執行,使用者組(Group)的讀、寫、執行以及其它使用者(Other)的讀、寫、執行。歷史上,檔案許可權被放在一個位元掩碼中,掩碼中指定的位元位設為1,用來說明一個類具有相應的優先順序。

例如, 755 將這樣解釋:

所有者的許可權用數字表達:屬主的那三個許可權位的數字加起來的總和。如 rwx ,也就是 4+2+1 ,應該是 7。
使用者組的許可權用數字表達:屬組的那個許可權位數字的相加的總和。 如 r-x ,也就是 4+0+1 ,應該是 5。
其它使用者的許可權數字表達:其它使用者許可權位的數字相加的總和。 如 r-x ,也就是 4+0+1 ,應該是 5。

使用符號模式可以設定多個專案:who(使用者型別),operator(操作符)和 permission(許可權),每個專案的設定可以用逗號隔開。 命令 chmod 將修改 who 指定的使用者型別對檔案的訪問許可權,使用者型別由一個或者多個字母在 who 的位置來說明,如 who 的符號模式表所示:

示例1:將檔案 test.txt 設為所有人皆可讀取 :
chmod ugo+r test.txt
chmod a+r test.txt
chmod r--r--r-- test.txt
chmod 444 test.txt
chmod 100100100 test.txt
示例1:將檔案 test1.txt 與 test2.txt 兩個檔案設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :
chmod ug+w,o-w test1.txt test2.txt
示例2:為 test.jar 檔案擁有者增加可執行許可權:
chmod u+x test.jar
示例3:將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :
chmod -R a+r *

示例4:設為該檔案擁有者,與其所屬同一個群體者可讀寫執,但其他以外的人則只能執行 :
chmod ug=rwx,o=x file
chmod 771 file
示例5:
chmod u+x test.txt (---x------) 為檔案擁有者(user)新增執行許可權;
chmod g+x test.txt (------x---) 為檔案擁有者所在組(group)新增執行許可權;
chmod 111 test.txt (---x--x--x) 為所有使用者分類,新增可執行許可權;
chmod 222 test.txt(--w--w--w-) 為所有使用者分類,新增可寫入許可權;
chmod 444 test.txt (-r--r--r--) 為所有使用者分類,新增可讀取許可權;

./
26.liunx開放指定埠及刪除指定埠:
1、centos7以下
1)開放指定埠這裡以開放的8080埠為例
方法一:直接編輯/etc/sysconfig/iptables檔案
1、vi /etc/sysconfig/iptables
2、-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
3、service iptables restart或(systemctl restart iptables.service)(修改完儲存退出,重啟網絡卡服務)
4、service iptables status或netstat -nalp|grep 80(檢視埠開放資訊)
方法二:命令列方式

  1. 開放埠命令: /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    2.儲存:/etc/rc.d/init.d/iptables save
    3.重啟服務:/etc/init.d/iptables restart
    4.檢視埠是否開放:/sbin/iptables -L -n

2)關閉指定埠以8080埠為例
方法一:。
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 8080 -j DROP"
方法二:關掉對應的應用程式,則埠就自然關閉了
"kill -9 PID"(PID:程序號)
如:通過"netstat -anp | grep ssh"
有顯示: tcp 0 127.0.0.1:2121 0.0.0.0:*LISTEN 7555/ssh
則:"kill -9 7555"

2、centos7
因為centos7預設的防火牆是firewalld防火牆,不是使用iptables,使用預設的firewalld防火牆。
這裡以開放的8080埠為例
1)對外開放指定埠(8080)

新增指定需要開放的埠(8080),設定成功輸出:success:

firewall-cmd --add-port=8080/tcp --permanent或firewall-cmd --zone=public --add-port=28080/tcp --permanent
引數解釋:
zone=public 作用域
add-port=8080/tcp 新增的埠,格式為:埠/通訊協議
permanent 永久生效,沒有此引數則重啟後失效

過載入新增的埠:

firewall-cmd --reload

查詢3306埠是否開啟成功,開啟成功輸出:yes,未開啟:no:

firewall-cmd --query-port=8080/tcp
2)對外關閉指定埠(移除8080埠)
firewall-cmd --permanent --remove-port=8080/tcp或firewall-cmd --zone= public --remove-port=80/tcp (public可以不加)

過載入新增的埠:

firewall-cmd --reload或firewall-cmd --complete-reload
(兩者的區別就是第一個無需斷開連線,就是firewalld特性之一動態新增規則,第二個需要斷開連線,類似重啟服務)
3)其他命令:
檢視防火牆狀態相關
檢視防火牆狀態:systemctl status firewalld或者 firewall-cmd --state

開啟防火牆:systemctl start firewalld或service firewalld start

關閉防火牆:systemctl stop firewalld
設定開機啟動:systemctl enable firewalld
停止並禁用開機啟動:sytemctl disable firewalld
查詢已開放的埠:netstat -ntulp | grep 80
若遇到無法開啟

先用:
systemctl unmask firewalld.service
然後:
systemctl start firewalld.service

七、掛載盤操作命令

7.1先檢視檢視磁碟狀況

命令:fdisk

1.fdisk -l 檢視磁碟情況

7.2進入需要掛載的磁碟中

命令:fdisk xxx 磁碟路徑
1|1.fdisk /dev/vdb //對/dev/vdb 進行分割槽 2|2.Command (m for help):n //然後輸入n新建分割槽 3|Command action 4|   e extended //輸入e為建立擴充套件分割槽 5|   p primary partition (1-4) //輸入p為建立邏輯分割槽 6|輸入p 7|3.Partion number(1-4):1 //在這裡輸入l,就進入劃分邏輯分割槽階段了; 8|4.First cylinder (51-125, default 51): //注:這個就是分割槽的Start 值;這裡最好直接按回車,如果您輸入了一個非預設的數字,會造成空間浪費; 9|Using default value 51 10|5.Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:這個是定義分割槽大小的,自己計算大小,然後輸入 11|6.Command (m for help): w //最後輸入w回車儲存 12|7.d //如果要刪除已儲存分割槽則輸出d然後刪除指定分割槽

再次輸入命令:fdisk -l
可以看到/dev/vdb1分割槽剛才所建分割槽

7.3格式化分割槽

命令:mkfs----指將分割槽格式化成不同的檔案系統

檔案系統:指作業系統用於明確儲存裝置或分割槽上的檔案的方法和資料結構:即在儲存裝置上組織檔案的方法。

Linux下的檔案型別有ext2、ext3、ext4、xfs等等
1|1.mkfs -t ext2 /dev/vdb1或 mkfs.ext2 /dev/vdb1 (ext2 格式)兩者命令皆可 2|2.mkfs -t ext3 /dev/vdb1或 mkfs.ext3 /dev/vdb1 (ext3 格式)兩者命令皆可 3|3.mkfs -t ext4 /dev/vdb1或 mkfs.ext4 /dev/vdb1 (ext4 格式)兩者命令皆可 4|4.mkfs -t xfs/dev/vdb1或 mkfs.xfs/dev/vdb1 (xfs 格式)兩者命令皆可
格式化好後,我們就可以用mount命令 載入這個分割槽,然後使用這個檔案系統;

7.4載入掛載盤

命令:mount
1|1.mkdir /data 新增data資料目錄 2|2.mount /dev/vdb1 /data 將 /dev/vdb1 掛載到 data目錄中。 3|3.umount /dev/vdb1 或者是 umount /data 將掛載的 vdb1 給解除安裝掉。注意解除安裝時一定要退出目錄,不然無法進行解除安裝

7.5設定永久掛載(開機自動掛載)

因為mount掛載在重啟伺服器後會失效,所以需要將分割槽資訊寫到/etc/fstab檔案中讓它永久掛載

命令:vi(vim) /etc/fstab

在最後面增加:/dev/vdb1(磁碟分割槽) /data(掛載目錄) xfs(檔案格式)defaults 0 0

重啟系統

命令:df -h --檢視自動掛載成功

八、連線ftp或sftp命令

8.1連線ftp伺服器

命令:格式:ftp [hostname| ip-address]
1|1.在linux命令列下輸入:ftp xxx.xxx.xxx.xxx(ip地址) 2|2.伺服器詢問你使用者名稱和口令,分別輸入使用者名稱和相應密碼,待認證通過即可。

8.2下載檔案

命令:下載檔案通常用get和mget這兩條命令。

a) get--單個檔案下載

格式:get [remote-file] [local-file]
將檔案從遠端主機中下載至本地主機中.
如要獲取伺服器上/Z848/node/20220101/11.txt檔案下載到本地/data/ftp/20220126下
1|1.mkdir /data/ftp20220126 新增資料夾 2|2.ftp xxx.xxx.xxx.xxx(ip地址) 伺服器詢問你使用者名稱和口令,分別輸入使用者名稱和相應密碼,待認證通過即可。 3|3.cd /Z848/node/20220101 進入ftp伺服器下載目錄下 4|4.lcd /data/ftp20220126 使用這個命令改變本地伺服器當前目錄為/data/ftp20220126 5|5.get 11.txt 下載11.txt這個檔案

b) mget--批量下載
格式:mget [remote-files]
1.ftp> mget *.* (回車)

8.3上傳檔案

a) put--單個檔案上傳
格式:put local-file [remote-file]
將本地一個檔案傳送至遠端主機中.
如要把本地的/data/ftp20200126/1.bmp傳送到遠端主機/Z848/node/20220101/目錄下,並改名為333.bmp
1.ftp> put 1.bmp /Z848/node/20220101/333.bmp (回車) 先進入/data/ftp20200126/目錄下,在此目錄下執行的ftp命令進行連線登入,然後執行這個命令進行檔案上傳
b) mput--批量檔案上傳
格式:mput local-files
將本地主機中一批檔案傳送至遠端主機.
如要把本地當前/data/ftp20200126目錄下所有bmp檔案上傳到遠端伺服器/Z848/node/20220101/目錄下
1|1.cd /data/ftp20200126 先進入/data/ftp20200126/目錄下,在此目錄下執行的ftp命令進行連線登入 2|2.ftp> cd /Z848/node/20220101 (回車) 進入ftp遠端/Z848/node/20220101目錄下 3|3.ftp> mput *.bmp (回車) 批量檔案上傳

九、ssh遠端登入命令

遠端登入命令:ssh
1|1.ssh 192.168.1.100 預設利用當前宿主使用者的使用者名稱登入 2|2.ssh [email protected] 利用遠端機的使用者登入 3|3.ssh [email protected] -o stricthostkeychecking=no 首次登陸免輸yes登入 4|4.ssh [email protected] "ls /home/root" 當前伺服器A遠端登入伺服器B後執行某個命令 5|5.ssh [email protected] -t "sh /home/root/ftl.sh" 當前伺服器A遠端登入伺服器B後執行某個指令碼