一些常用的linux命令(基於centos)

master_bro發表於2018-04-26

檔案操作

LS命令-作用:顯示目錄內容,類似DOS下的DIR-格式:LS【options】【filename】-常用引數:  
>-a:all,不隱藏任何以"."字元開始的檔案  
>-l:使用較長的格式列出資訊  
>-r:按照檔名的逆序列印輸出  
>-F:加上檔案型別的指示符  ls -lF | grep /  過濾  man ls          
查詢ls的幫助檔案  cat命令-作用:顯示檔案內容,concatenate的縮寫,類似dos的type命令。-格式:cat【options】【fielname】-常用引數:  
>-n:顯示檔案內容的行號。  
>-b:類似-n,但是不對空白行進行編號。  
>-s:當遇到有連續兩行以上的空白行時,就代換為一行的空白行。

mv命令-作用:更改檔案或者目錄的名字。-格式:mv[options]source destination-常用引數:  
>-f:強制模式,覆蓋檔案不提示。  
>-i:互動模式,當要覆蓋檔案的時候給提示。

rm命令-作用:刪除檔案命令,類似dos的del命令-格式:rm【options】filenames-常用引數: 
>-f:強制模式,不給提示。 
>-r,-R:刪除目錄,recursive

mkdir命令-作用:建立目錄,類似dos的md命令-格式:mkdir【options】directory-常用引數: 
>-p:建立目錄和它的父目錄。 
>-m:指定模式,類似chmod。

more命令-作用:分屏顯示輸出結果,同DOS下的more命令。-格式:more【options】【filename】-常用引數: 
>-p:通過清屏而不是滾動來顯示資訊 
>-+num:從第num行開始顯示 
>-s:把連續的多行空白行壓縮成一行

cat aa.txt | more  通過管道的作用連線兩個命令

grep命令-作用:在檔案中搜尋特定的字串。       
 Global Regular Expression Print-格式:grep【options】PATTERN【filename】-常用引數: 
>-i:不區分大小寫 
>-n:顯示序號 
>-v:顯示不匹配的內容

-多條件查詢

grep -E "exe|dll" aa.txt

find命令-作用:搜尋指定目錄下的檔案-格式:find【path】【options】【expression】-常用引數: 
>-name:搜尋指定檔名字的檔案,支援萬用字元 
>-atime n:搜尋過去n天之內訪問的檔案 
>-ctime n:搜尋過去n天之內修改的檔案 
>-group gname:搜尋指定組屬的檔案

file命令-作用:判斷檔案的型別-格式:file【options】filename-常用引數: 
>-z:檢測壓縮過的檔案型別說明:     
file命令可以檢測某個檔案是否是目錄,shell指令碼,英文文字,二進位制可執行檔案,c語言原始檔,文字檔案,dos的可執行檔案。

chmod命令-作用:改變檔案存取許可權。-格式:chmod【options】 mode filename-常用引數: 
>-R:對目錄下的檔案進行遞迴操作 
>+r:增加讀許可權 
>-W:刪除寫許可權 
>-x:增加執行許可權

root相關操作

更改密碼:sudo passwd root
獲取root許可權:sudo su -

本地檔案上傳下載

下載安裝
sudo yum install lrzsz
sz命令傳送檔案到本地:
# sz filename
rz命令本地上傳檔案到伺服器:
# rz

打包解壓縮命令

.tar
壓縮:tar cvf FileName.tar FileName
解壓:tar xvf FileName.tar
--------------------------------------------- 
.gz
解壓1:gunzip FileName.gz 
解壓2:gzip -d FileName.gz 
壓縮:gzip FileName 
.tar.gz 
解壓:tar zxvf FileName.tar.gz 
壓縮:tar zcvf FileName.tar.gz DirName 
--------------------------------------------- 
.bz2 
解壓1:bzip2 -d FileName.bz2 
解壓2:bunzip2 FileName.bz2 
壓縮: bzip2 -z FileName 
.tar.bz2 
解壓:tar jxvf FileName.tar.bz2 
壓縮:tar jcvf FileName.tar.bz2 DirName 
--------------------------------------------- 
.bz 
解壓1:bzip2 -d FileName.bz 
解壓2:bunzip2 FileName.bz 
壓縮:未知 
.tar.bz 
解壓:tar jxvf FileName.tar.bz 
壓縮:未知 
--------------------------------------------- 
.Z 
解壓:uncompress FileName.Z 
壓縮:compress FileName 
.tar.Z 
解壓:tar Zxvf FileName.tar.Z 
壓縮:tar Zcvf FileName.tar.Z DirName 
--------------------------------------------- 
.tgz 
解壓:tar zxvf FileName.tgz 
壓縮:未知 
.tar.tgz 
解壓:tar zxvf FileName.tar.tgz 
壓縮:tar zcvf FileName.tar.tgz FileName 
--------------------------------------------- 
.zip 
解壓:unzip FileName.zip 
壓縮:zip FileName.zip DirName 
--------------------------------------------- 
.rar 
解壓:rar a FileName.rar 
壓縮:rar e FileName.rar 

獲取當前路徑

pwd

ps操作

PID: 執行著的命令(CMD)的程式編號    TTY: 命令所執行的位置(終端)    TIME: 執行著的該命令所佔用的CPU處理時間    CMD: 該程式所執行的命令這些資訊在顯示時未排序。
1.顯示所有當前程式
使用 -a 引數。-a 代表 all。同時加上x引數會顯示沒有控制終端的程式。
$ ps -ax
這個命令的結果或許會很長。為了便於檢視,可以結合less命令和管道來使用。
$ ps -ax | less

2.根據使用者過濾程式
在需要檢視特定使用者程式的情況下,我們可以使用 -u 引數。比如我們要檢視使用者'pungki'的程式,可以通過下面的命令:
$ ps -u pungki
通過cpu和記憶體使用來過濾程式
也許你希望把結果按照 CPU 或者記憶體用量來篩選,這樣你就找到哪個程式佔用了你的資源。要做到這一點,我們可以使用 aux 引數,來顯示全面的資訊:
$ ps -aux | less
當結果很長時,我們可以使用管道和less命令來篩選。
預設的結果集是未排好序的。可以通過 --sort命令來排序。

3.根據 CPU 使用來升序排序
$ ps -aux --sort -pcpu | less

4.根據 記憶體使用 來升序排序
$ ps -aux --sort -pmem | less
我們也可以將它們合併到一個命令,並通過管道顯示前10個結果:
$ ps -aux --sort -pcpu,+pmem | head -n 10

5.通過程式名和PID過濾
使用 -C 引數,後面跟你要找的程式的名字。比如想顯示一個名為getty的程式的資訊,就可以使用下面的命令:
$ ps -C getty
如果想要看到更多的細節,我們可以使用-f引數來檢視格式化的資訊列表:
$ ps -f -C getty

6.根據執行緒來過濾程式
如果我們想知道特定程式的執行緒,可以使用-L 引數,後面加上特定的PID。
$ ps -L 1213

7.樹形顯示程式
有時候我們希望以樹形結構顯示程式,可以使用 -axjf 引數。
$ps -axjf
或者可以使用另一個命令。
$ pstree

8.顯示安全資訊
如果想要檢視現在有誰登入了你的伺服器。可以使用ps命令加上相關引數:
$ ps -eo pid,user,args
引數 -e 顯示所有程式資訊,-o 引數控制輸出。Pid,User 和 Args引數顯示PID,執行應用的使用者和該應用。
能夠與-e 引數 一起使用的關鍵字是args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart 和 start。

9.格式化輸出root使用者(真實的或有效的UID)建立的程式
系統管理員想要檢視由root使用者執行的程式和這個程式的其他相關資訊時,可以通過下面的命令:
$ ps -U root -u root u
-U 引數按真實使用者ID(RUID)篩選程式,它會從使用者列表中選擇真實使用者名稱或 ID。真實使用者即實際建立該程式的使用者。
-u 引數用來篩選有效使用者ID(EUID)。
最後的u引數用來決定以針對使用者的格式輸出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND這幾列組成。

10.使用PS實時監控程式狀態
ps 命令會顯示你係統當前的程式狀態,但是這個結果是靜態的。
當有一種情況,我們需要像上面第四點中提到的通過CPU和記憶體的使用率來篩選程式,並且我們希望結果能夠每秒重新整理一次。
為此,我們可以將ps命令和watch命令結合起來。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
如果輸出太長,我們也可以限制它,比如前20條,我們可以使用head命令來做到。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
這裡的動態檢視並不像top或者htop命令一樣。但是使用ps的好處是你能夠定義顯示的欄位,你能夠選擇你想檢視的欄位。
舉個例子,如果你只需要看名為'pungki'使用者的資訊,你可以使用下面的命令:
$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

 

CentOS SSH金鑰登陸改為密碼登陸

1.檢查安裝系統時是否已經安裝SSH服務端軟體包:   rpm -qa|grep openssh 

若顯示結果中包含openssh-server-*,則說明已經安裝,直接啟動   sshd服務就可以了(service sshd start).(其中*的內容是該包的版本,一般為3.5p1-6)

netstat -a | more看有沒正常啟動

如果出現:

tcp   0      0 *:ssh         *:*         LISTEN

就說明正常啟動了

vi /etc/ssh/sshd_config

2.設定為密碼登陸方式

查詢

PermitRootLogin yes

刪除前面的#註釋

查詢

PasswordAuthentication no

改為

PasswordAuthentication yes


儲存

3.重啟ssh服務或重啟伺服器

service sshd restart

檔案檢視

tail -f      等同於--follow=descriptor,根據檔案描述符進行追蹤,當檔案改名或被刪除,追蹤停止

tail -F     等同於--follow=name  --retry,根據檔名進行追蹤,並保持重試,即該檔案被刪除或改名後,如果再次建立相同的檔名,會繼續追蹤

tailf        等同於tail -f -n 10(貌似tail -f或-F預設也是列印最後10行,然後追蹤檔案),與tail -f不同的是,如果檔案不增長,它不會去訪問磁碟檔案,所以tailf特別適合那些便攜機上跟蹤日誌檔案,因為它減少了磁碟訪問,可以省電

新增新使用者並授權

(一)建立一個admin使用者


adduser admin


(二)為admin使用者設定密碼

passwd admin


(四) 查詢sudoers檔案所在

whereis sudoers

(五)檢視一下檔案的許可權


ls -l /etc/sudoers

可以看到只有只讀的許可權,這時候我們要加入一個可寫的(w)的許可權

(六)加入可寫的許可權


chmod -v u+w /etc/sudoers

(七)把admin使用者新增到sudoers中

vi /etc/sudoers1



## Allow root to run any commands anywher  
root    ALL=(ALL)       ALL  
admin ALL=(ALL)       ALL  #新增admin使用者123

(八)wq儲存,然後把sudoers檔案許可權改回去,畢竟這是一個重要的檔案

chmod -v u-w /etc/sudoers


(九)測試新使用者admin進行登陸,使用su  admin操作:


su admin

檢視埠狀態

netstat命令各個引數說明如下:

  -t : 指明顯示TCP埠

  -u : 指明顯示UDP埠

  -l : 僅顯示監聽套接字(所謂套接字就是使應用程式能夠讀寫與收發通訊協議(protocol)與資料的程式)

  -p : 顯示程式識別符號和程式名稱,每一個套接字/埠都屬於一個程式。

  -n : 不進行DNS輪詢,顯示IP(可以加速操作)

即可顯示當前伺服器上所有埠及程式服務,於grep結合可檢視某個具體埠及服務情況··

netstat -ntlp   //檢視當前所有tcp埠·

netstat -ntulp |grep 80   //檢視所有80埠使用情況·

netstat -an | grep 3306   //檢視所有3306埠使用情況·

檢視一臺伺服器上面哪些服務及埠

netstat  -lanp

檢視一個服務有幾個埠。比如要檢視mysqld

ps -ef |grep mysqld

檢視某一埠的連線數量,比如3306埠

netstat -pnt |grep :3306 |wc

檢視某一埠的連線客戶端IP 比如3306埠

netstat -anp |grep 3306

netstat -an 檢視網路埠 

lsof -i :port,使用lsof -i :port就能看見所指定埠執行的程式,同時還有當前連線。 

nmap 埠掃描
netstat -nupl  (UDP型別的埠)
netstat -ntpl  (TCP型別的埠)
netstat -anp 顯示系統埠使用情況

 

 

 

 

 

 

相關文章