1. 程式人生 > 實用技巧 >【Linux】Linux常用命令及操作 (一)

【Linux】Linux常用命令及操作 (一)

一.Linux簡介

二.Linux基礎命令

三.工作常用命令

----------------------------------------------------------------------------------------------------------------

一.Linux簡介

Linux是一個基於檔案的作業系統。磁碟資料以檔案樹的形式儲存,所有路徑掛載在根目錄(/ 正斜槓)上,然後由其展開。Linux的基本思想有兩點:第一,一切都是檔案;第二,每個檔案都有確定的用途。說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。

其檔案結構如下:

其中,需要注意的重要目錄是:

使用者家目錄: /root,/home/{UserName}

普通使用者可執行檔案: /bin,/usr/bin,/usr/local/bin

系統管理員可執行檔案: /sbin,/usr/sbin,/usr/local/sbin

配置檔案目錄: /etc

臨時檔案目錄: /tmp

核心和啟動檔案: /boot

伺服器資料: /var , /srv

系統資訊: /proc,/sys

共享庫: /lib,/usr/lib,/usr/local/lib

其它掛載點: /media,/mnt

注意:檔案或目錄名:<=255個字元、區分大小寫、不能使用“/”,不允許建立與系統已有的相同名字的目錄。因為不要區分,第二點,防止某些軟體無法自動進行識別。

二.Linux基礎命令和概念

1.簡單命令

cd 開啟
ls 列表

pwd

顯示路徑
touch 建立檔案/修改時間戳
cat 檢視文字內容
mv 移動
rm 刪除
mkdir/rmdir 建/刪資料夾
cp 複製
rename 重新命名

2.網路

靜態IP配置:

ifup eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0 或 setup

ONBOOT=YES;

BOOTPROTO=static;

IPADDR\NETMASK\GATEWAY\DNS1\DNS2;

service network restart

3.NAT&橋接

nat模式和外網非同網段,但是可以通過埠對映訪問;而橋接模式是佔用真實網段下ip;

4.遠端操作:

遠端拷貝:scp [-r] [path]/fie | dir {UserName}@Host_IP:/[path]

      -r 該選項用於傳輸資料夾的時候使用。

遠端登入:ssh {UserName}@Host_IP

遠端免密登入:(兩條命令搭配使用)

命令一:ssh-keygen

第一次提示:你的證書檔案存放位置(保持預設即可,通常情況下證書會儲存在對應賬戶的家目錄下的隱藏目錄,ssh目錄)

第二次提示:對私鑰加密,輸入密碼。如果不需要輸入密碼,直接回車。

第三次提示:私鑰證書的密碼確認操作。

證書檔案會存放在當前賬戶的家目錄下的隱藏目錄".ssh"目錄下,在該目錄下會有以下4個檔案:

id_rsa 私鑰 執行證書生成命令才會有

id_rsa.pub 公鑰 執行證書生成命令才會有

known_hosts 曾經訪問過的伺服器資訊 每次ssh、scp、ssh-copy-id到遠端伺服器時就會儲存記錄到此檔案中,以後再此訪問該伺服器時就不會再提示那一句"你確定要繼續訪問嗎 yes/NO?"

authorized_keys 記錄來訪伺服器的公鑰檔案內容 該檔案會記錄訪問本機的遠端伺服器的公鑰證書檔案內容,只有對應的私鑰才能進行驗證。

命令二:ssh-copy-id {UserName}@Host_IP

作用是證書註冊:將本機的公鑰證書檔案註冊到遠端伺服器上,此後就可以使用私鑰證書進行登入。這一步就是向遠端伺服器註冊本機的id_rsa.pub檔案(公鑰)內容。此後只有本機上與公鑰檔案共同生成的私鑰才能夠進行免密登入。

5.網路下載

wget [引數] [URL地址]

–支援斷點下載功能

–同時支援FTP和HTTP下載方式

–支援代理伺服器

6.執行級別

0 關機

1 單使用者

2 無網路多使用者

3 命令列模式

4 官方預留,未定義內容

5 圖形化模式

6 重啟

修改級別:init 執行級別的數字

配置預設的執行級別:vi /etc/inittab

who -r

可以檢視當前系統的執行級別和系統時間

runlevel

可以檢視之前的執行級別和當前的執行級別。

N表示前面沒有執行級別(NULL)

3表示當前處於執行級別。

7.使用者/使用者組:

理解:

使用者 一個戶口的本的戶主

使用者組 戶口本中的其他成員

其他人 除使用者本人(戶主)和使用者組(戶口本中的成員)外的成員都是其他人

基本概念:

使用者及UID:

在Linux系統中,每一個使用者預設都對應了一個UID,而這個UID可以理解是使用者的身份證號。

CentOS系統中:

UID 0 root

UID 1-499 系統預留,作為系統使用者來使用

UID 500 - 65535 自定義賬戶

使用者資訊儲存的位置:

使用者資訊 /etc/passwd

密碼資訊 /etc/shadow

使用者組資訊 /etc/group

8.使用者操作:

建立:useradd [選項] {UserName}

修改:usermod [選項] {UserName}

刪除:userdel[選項] {UserName} (-r:表示刪除賬戶同時刪除該賬戶的家目錄)

增/刪/改[選項]:

-c comment 指定一段註釋性描述

-d 目錄 指定使用者主目錄,如果目錄不存在,則同時使用-m選項,可以建立主目錄。

-g 使用者組 指定使用者所屬的主使用者組。

-G 使用者組,使用者組 指定使用者所屬的附加組。

-s Shell檔案 指定使用者的登入Shell。有一個特殊的shell程式叫nologin,如果某帳號使用此shell,就表示使用者不允許登入,該使用者通常成為偽使用者。

-u 使用者號 指定使用者的使用者號

密碼管理:passwd [選項] {UserName}

選項:

-l 鎖定賬戶

-u 解鎖賬戶

-d 刪除密碼

passwd 可以不跟選項、使用者名稱,預設是修改自己的帳號密碼。

修改他人密碼,必須具備管理員許可權(並不一定非要是root賬戶)。

普通賬戶,只能修改自己的密碼。

管理員修改他人的密碼,不需要滿足密碼策略。

普通賬戶修改密碼時,必須滿足密碼安全策略。

管理員修改他人密碼:

passwd {UserName}

修改自己的密碼

passwd

切換使用者:su

su {UserName} 表示切換使用者之後,依然停留在當前目錄

su - {UserName} 表示切換使用者之後,去到該使用者的家目錄

普通使用者切換root時,書寫格式不需要寫成su - root,直接su即可。

檢視使用者:id user

9.使用者組操作:

建立:groupadd[選項] {groupName}

修改:groupmod[選項] {groupName}

刪除:groupdel[選項] {groupName}

增/刪/改[選項]:

-g GID 指定新使用者組的GID

-o 通常與-g同時使用,使新使用者組可以與系統已有的組ID系統。

-n 用來修改組ID group -n newGroupName oldGroupName

注:

系統底層會將兩個GID相同使用者組識別為同一個使用者組,這樣做的目的是讓兩個使用者組的許可權相同。識別規則,後者遵循前者。

如果刪除的使用者組,已經被使用者追加為附件組,對應的所有使用者的該附件組會被撤銷掉。

如果被刪除的使用者組,已經被使用者指定為主組,則該使用者組無法被刪除。(可以理解為像Windows中檔案被佔用時不能被刪除。)

使用者組的切換:newgrp {GroupName}

某使用者屬於多個使用者組時,想要訪問其他使用者組中的內容時,必須切換使用者組才行。

10.操作許可權

邏輯許可權:

drwxr-xr-x. 2 root root .....

共有三組

第一組 使用者 user

第二組 使用者組 group

第三組 其他人 other

每組許可權

字元 許可權 數字

r 讀 4

w 寫 2

x 執行 1

修改檔案/夾的邏輯許可權:

chmod 755 xxx

選項

-R 遞迴處理

修改檔案/夾的許可權時,可以使用字元許可權,也可以使用數字許可權。

直接修改檔案、資料夾的屬主、屬組:

chown user:group file | dir

物理許可權:修飾某個檔案/夾不允許被修改。

lsattr 檢視檔案的物理許可權(屬性)

lsattr [選項] 檔案/夾

選項:

R 表示遞迴處理

a 表示檢視所有檔案的屬性,包括隱藏

d 顯示目錄的屬性,而不是目錄下的檔案的屬性

chattr [選項] file/dir

選項:

i 表示不能以任何方式進行檔案/夾的修改,增加,刪除

a 表示檔案/夾只能追加,不能修改,刪除

+ <屬性> 表示開啟某檔案/夾的許可權

- <屬性> 表示關閉某檔案/夾的許可權

R 表示遞迴處理。

11.關於sudo

sudo(SuperUser Do),它可以讓普通使用者執行root的許可權。sudo可以限制使用者執行部分root的許可權。

sudo會記錄使用者執行過的每一條命令,便於查閱服務起出事之前的狀態。

好處:

使用自己配置好的使用者環境

不需要知道root密碼,保證root的密碼安全,不用讓root裸奔

避免root賬戶引起管理員之間的惡性衝突、流血事件。

可以限制使用者執行有限的root許可權

sudo執行的每條命令都會被記錄,便於日後的日誌審計,例如使用者執行過高危操作命令。

三.工作常用命令

工作中實用命令:

ps:將某個時間點的程式運作情況擷取下來

常用組合選項 -aux

a 關聯的所有 process,通常與x一起使用,列出完整資訊。

x 後臺程式

u 有效使用著的相關聯的程式

ajxf 可以讓ps的結果以樹狀的格式顯示出來。

ps查詢結果各項解釋:

USER 使用者

PID 程式ID

%CPU cpu佔用率

%MEM 記憶體使用率

VSS 虛擬記憶體使用量

RSS 實體記憶體使用量

TTY tty1-tty6 是本機上面的登入者程式。

pts/0 等等的,則表示為由網路連線進主機的程式。

如果顯示?則表示與終端機無關。

STAT 程式的狀態

START 程式啟動的時間

TIME 累計消耗CPU的時間

COMMAND 表示哪個命令/程式執行的該程式

狀態標識:

R 正在執行,或在佇列中的程式

S 處於休眠狀態

< 高優先順序

N 低優先順序

s 包含子程式

+ 位於後臺的程式組

殭屍程式:

由於該程式已經執行完畢,但是父程式沒有終止或其他原因導致該程式並沒有真正的結束,所形成的程式稱之為殭屍程式。

此程式對伺服器的危害在於它會持續的消耗伺服器資源,消耗量會越來越大。最終導致其他的程式無資源可用,伺服器崩潰。pstree:

選項:

A ASCII

U UTF-8

u 使用者相關的程式

p 程式的ID

注:使用哪個賬戶執行此命令,那麼與其相關的程式則不會顯示使用者名稱、

動態查詢:top:

動態查詢系統的程式狀態。預設是3秒一更新。

選項:

-d 跟時間,可以修改top預設更新(重新整理)的時間

-b : 以批次的方式執行 top ,還有更多的引數可以使用,通常會搭配資料流 重導向來將批次的結果輸出成為檔案;

-n Number: 與 -b 搭配,意義是需要進行幾次 top 的輸出結果;

-p : 指定某些個 PID 來進行觀察監測而已;

互動式按鍵:(並不常用)

? : 顯示在 top 當中可以輸入的按鍵指令

P : 以CPU的使用資源排序顯示

M : 以Memory的使用資源排序顯示

N : 以PID來排序

T : 由該Process使用的CPU時間累積 (TIME+) 排序

k : 給予某個PID後kill該程式(核心2.6後失效)

q : 離開top軟體的按鍵

單程式的管理:

kill:結束某個程式

語法:kill 訊號量 PID

訊號量:

-15: 以正常的程式方式終止一個程式!!!

-9 : 立刻強制終止一個程式!!!(!!不能強制結束系統級別的程式)

-2 : 代表由鍵盤輸入 [ctrl] + c 同樣的動作;

-1 : 對於sshd這樣的守護程式,重新讀取一次引數的配置檔案

(類似 reload),如果程式為非守護程式,預設為終止程式; !!

多程式的管理:

killall:結束基於某個程式執行程式。

語法:killall 訊號量 程式名/命令名

訊號量:

-15: 以正常的程式方式終止一個程式!!!

-9 : 立刻強制終止一個程式!!!(!!不能強制結束系統級別的程式)

-2 : 代表由鍵盤輸入 [ctrl] + c 同樣的動作;

-1 : 對於sshd這樣的守護程式,重新讀取一次引數的配置檔案

(類似 reload),如果程式為非守護程式,預設為終止程式; !!

free:記憶體監控

選項:

-b bytes

-k kb

-m mb

-g gb

-t 統計總量

uname:查閱系統與核心相關資訊

選項:

-a 所有系統相關的資訊,包括以下的資料都會被列出來;

-s 系統核心名稱

-r 核心版本

-m 本系統的硬體名稱,例如 i686或x86_64 等;

-p CPU 的型別,與 -m 類似,是顯示的是CPU的型別;

-i 硬體的平臺(ix86);

uptime:觀察系統啟動時間與工作負載

netstat:網路監控

-a 將目前系統上所有的已經連線、監聽、Socket資料都列出來

-t 列出tcp網路包的資訊

-u 列出udp網路包的資訊

-n 以埠(port number)方式來顯示(不以程式的服務名稱)

-l 列出目前正在監聽(listen)的服務;

-p 列出該網路服務的程式id(PID)、程式名

Linux防火牆:

它具備一定的防護功能,比如說埠的開放和禁止,也可做資料的轉發(類似路由功能),策略及其他功能。

臨時處理防火牆:如果系統重啟,那麼防火牆將恢復到之前的狀態。

開啟 service iptables start

or

/etc/init.d/iptables start

關閉 service iptables stop

or

/etc/init.d/iptables stop

重啟 service iptables restart

or

/etc/init.d/iptables restart

檢視 service iptables status

or

/etc/init.d/iptables status

永久處理防火牆:

開啟: chkconfig iptables on

關閉: chkconfig iptables off

任務管理:

進入後臺:ctrl + z

檢視任務:jobs

選項:

-r 僅檢視後臺執行的任務

-s 僅檢視後臺暫停的任務

-l 檢視後臺的任務,並顯示其PID

任務調至前臺:

fg命令+jobnumber來把後臺任務調至前臺。(無論在後臺是暫停還是執行)

最後放置後臺的任務就會帶有+號。+ 表示最近一次放置後臺的任務

bg命令 + jobnumber 可以將後臺任務的暫停狀態修改為執行狀態。(互動式的應用無法修改為執行狀態)

bg命令不加jobnumber也是可以調後臺的任務,但是預設就會調取後臺帶有+號的那個任務。最後放置後臺的任務就會帶有+號。

終止job:

jobs -l查詢出ID,之後通過: kill -9 PID 結束

vim:

什麼是VIM:

是一個類似vi的文字編輯器,不過在vi的基礎上增加了很多新特性,vim被公認為類vi編輯器中最好用的一個。

為什麼要學習VIM,vi不夠?

vim在vi的基礎之上增加了很多的小功能。可以有效的幫助程式設計師快速的排查問題。

vim的三種模式:

一般模式、編輯模式、命令模式

三種模式的轉換圖:

一般模式(預設模式)的快捷鍵:

h或←遊標左移一個字元。如果是20h,表示左移20個字元。

j或→遊標下移一個字元 同上

k或↑遊標上移一個字元 同上

l或↓遊標右移一個字元 同上

[Ctrl]+[f]螢幕向下移動一頁 Page Down!!

[Ctrl]+[b]螢幕向上移動一頁 Page Up !!

0或[Home]移動到此行最前面字元處!!

$或[End]移到遊標所在行的行尾!!

H 遊標移到當前螢幕最上方行的第一個字元!!

M遊標移到當前螢幕中間行的第一個字元!!

L遊標移動到當前螢幕最下方行第一個字元!!

G移到此檔案最後一行!!!

nG移到第n行

gg相當於1G,即移到第一行!!!

n[Enter]遊標下移n行

/word向下查詢單詞“word”(!!!)

?word向上查詢單詞“word”(!!!)

n表示重複前一個查詢操作

N與n相反(反向查詢)

yy複製遊標所在行(!!)

nyy複製遊標所在向下n行(n為數字)

y1G複製遊標所在行到第一行所有資料

yG複製遊標所在行到最後一行所有資料

y$複製遊標所在處到同行最後一個字元

y0複製遊標所在處到同行第一個字元

p將已複製的資料貼上到遊標所在下一行

P將已複製的資料貼上到遊標所在上一行

u復原前一個操作(類似於windows中的ctrl+z)!!!

Ctrl+r恢復一個操作。

x向後刪除一個字元

nx向後刪除n個字元(n為數字)

X向前刪除一個字元

dd刪除遊標所在行(!!!)

ndd刪除遊標所在行以下n行(n為數字,包含當前行在內)

d1G刪除遊標所在行到第一行所有資料(包括所在的行)

dG刪除遊標所在行到最後一行(!!)

d$或d end刪除遊標所在處到同行最後一個字元(!!)

d0或d home刪除遊標所在處到同行第一個字元。(!!)

編輯模式:

進入編輯模式:

i從遊標所在處插入(!!!)

I從所在行第一個非空白字元處插入(!!)

a從遊標所在下一個字元處插入

A從遊標所在行最後一個字元處插入(!!)

o在遊標所在處下一行插入新的一行(!!)

O在遊標所在處上一行插入新的一行(!!)

r替換遊標所在處字元一次

R一直替換遊標所在處文字直到按下Esc(!!!)

命令模式:

如何進入命令模式:

: ? / 三個符號任意都可以進入編輯模式

:w [filename] 另存為filename

:r [filename] 讀取filename指定檔案中的內容到遊標所在的行。

:n1,n2 w [filename] 將n1到n2行另存為filename

:! command 臨時切換到命令列模式下執行command命令。

例如 “:!find / -name Helllo.java”即可在vim當中執行命令。

:wq 儲存後離開

:q 不儲存離開(未改可以離開,如果修改了需要q!強制離開)

:q! 不儲存離開

:set nu 顯示行號 (number)

:set nonu 取消顯示行號 (noNumber)

:s/word1/word2/g 在當前行將word1替換成word2(!!)

:%s/word1/word2/g 在當前檔案將word1替換成word2(!!)

:n1,n2s/word1/word2/g在n1到n2行查詢word1替換成word2 (n1、n2為數字)

:10,$ s/word1/word2/g從第一行到最後一行查詢word1替換成word2

:%s/word1/word2/gc 同上,在替換前確認是否替換。(!!!)只能單行確認,需要逐個確認。

替換為 b (y/n/a/q/l/^E/^Y)?

y表示yes,n表示no,a表示all(限遊標當前到最後一行),q表示quit,l表示替換後移動遊標到行首,^E(Ctrl+E)表示向下翻,^y(Ctrl+Y)表示向上翻

壓縮和打包:

gzip擁有更快的壓縮效能。

bzip2擁有更高的壓縮比。

單純從壓縮比方面來說,那麼bzip2 > gzip > compress

gzip:

壓縮/解壓命令

選項:

-c : 將壓縮的資料輸出到標準輸出(stdout)上

-d : 解壓縮

-t : 可以用來檢驗一個壓縮檔案的一致性,看看檔案有無錯誤

-v : 可以顯示出原檔案/壓縮檔案的壓縮比等資訊

-(1,2,...,9): 壓縮等級,1最快,但是壓縮比最差;9最慢,但是壓縮比最好,預設是6。

-l : 檢視壓縮檔案的壓縮比: gzip –l *.gz

bzip2:

壓縮/解壓命令:

選項:

-c : 將壓縮的過程產生的資料輸出到標準輸出(stdout)

-d : 解壓縮的引數

-k : 保留原始檔,而不會刪除原始的檔案

-f : 強制壓縮

-v : 可以顯示出原檔案/壓縮檔案案的壓縮比等資訊;

-(1,2,...,9): 與gzip同樣的,都是在計算壓縮比的引數,-9最佳,-1最快

檢視壓縮檔案中的內容:

cat:可以用來檢視文字檔案中的內容。

zcat:可以用來檢視gzip演演算法壓縮的壓縮檔案內容。

bzcat:可以用來檢視bzip2演演算法壓縮的壓縮檔案內容。

tar:

可以將一個檔案/夾打包成一個檔案。可以結合gzip、bzip2的演演算法對包檔案進行相應的壓縮和解壓。

語法:

壓縮: tar [選項] newFileName.tar.gz sourceFileName

解壓: tar [選項] fileName.tar.gz [-C /path]

選項:

-c : 建立打包檔案,

-t : 檢視打包檔案的內容含有哪些檔案

-x : 解打包或解壓縮的功能,可以搭配-C(大寫)在指定目錄解開

-j : 通過bzip2的支援進行壓縮/解壓縮:此時檔案最好為 *.tar.bz2

-z : 通過gzip的支援進行壓縮/解壓縮:此時檔案最好為 *.tar.gz

-v : 在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來

-f filename: -f 後面跟處理後檔案的全名稱(路徑+檔名+字尾名)

-C 目錄: 這個選項用在解壓的時候,若要在特定目錄解壓,可以使用這個選項

注:

使用命令進行打包、壓縮的時候,使用了什麼演演算法,檔案字尾名就一定要與其對應。

軟體管理(centos)

rpm最早是由RedHat Package Manager,由於該機制非常的好用,被很多的發行版本當作自己的軟體管理。

優點:

自帶編譯後的檔案,免除使用者對軟體編譯的過程

可以自動檢測檔案系統(硬碟)的容量、系統的版本。避免軟體被錯誤的安裝。

自帶軟體的版本資訊、幫助檔案、用途說明等資訊。

使用資料記錄rpm的檔案資訊,便於安裝、升級、查詢、解除安裝。

缺點:

無論安裝還是解除安裝,RPM都有一個噁心人的依賴關係。

安裝的軟體需要依賴,那麼優先安裝依賴。

解除安裝的軟體存在依賴,那麼優先解除安裝依賴。

預設路徑:

/etc 一些配置檔案放置的目錄,例如/etc/crontab

/usr/bin 一些可執行檔案

/usr/lib 一些程式使用的動態連結庫

/usr/share/doc 一些基本的軟體使用手冊與說明檔案

/usr/share/man 一些man page(Linux命令的隨機幫助說明)檔案

安裝:

語法:rpm -ivh packageName.rpm

選項:

i 表示安裝

v 表示處理過程(囉嗦模式)

h 顯示處理進度(進度條)

查詢:

rpm -[選項]

選項:

-q : 僅查詢,後面接的軟體名稱是否有安裝

-qa : 列出所有的,已經安裝在本機Linux系統上面的所有軟體名稱 !!!

-RPqi : 列出該軟體的詳細資訊,包含開發商、版本和說明等 !!

-ql : 列出該軟體所有的檔案與目錄所在完整檔名 !!

-qc : 列出該軟體的所有配置檔案 !

-qd : 列出該軟體的所有說明檔案

-qR : 列出和該軟體有關的相依軟體所含的檔案

-qf : 由後面接的檔名,找出該檔案屬於哪一個已安裝的軟體

解除安裝:

rpm -e package_Name # package_Name需要通過qa的選項來查詢出來。

升級:

語法:

rpm -i[選項] package_Name

選項:

Uvh 不管軟體是否安裝到系統中,都會更新至最新版

Fvh 只有系統中已安裝的軟體才會被升級到最新版。

yum的由來,是因為rpm的缺點所導致,因為rpm無論安裝還是解除安裝都需要解決依賴關係,並且比較繁瑣,所以誕生yum的技術。

yum通過分析rpm的資訊來進行軟體的安裝、升級、解除安裝。

優點: 可以一鍵解決rpm的依賴關係。

缺點: yum的所有執行操作全都都需要repo檔案(YUM源)。

使用yum安裝軟體,中招機率高達90%。

所有的yum源都存放在/etc/yum.repos.d/目錄下。

工作環境中,一般都會遮蔽系統自帶的yum源,而選擇權威機構的yum源。

yum的查詢:

search 查詢某個軟體名稱或者是描述的關鍵字

list 列出目前yum所管理的所有的軟體名稱與版本,有點類似 rpm -qa

info 同上,格式不太一樣,不過有點類似 rpm -qai 的執行結果

yum的安裝:

yum install package_Name

案例:

# bash

yum install lrzsz

期間會提示y/N

輸入y即可。

yum的解除安裝:

yum remove package_Name

案例:

# bash

yum remove lrzsz

yum的更新:

yum update package_Name

yum安裝、解除安裝、更新的過程中出現的y/N,可以通過在命令的結尾出 -y,表示全部過執行yes操作。

yum list updates

工作中遇到過的命令:

1.統計條數: ls -l | wc -l

2.統計檔案總大小: du -sh

3.檢視當前目錄下的檔案或資料夾記憶體佔用: du --max-depth=1 -h

4.監控日誌 tailf

5.ls /proc/PID 檢視執行

6.遮蔽日誌:java -jar ../start.jar jetty.http.port=8087 > /dev/null 2>&1 &

7.springboot不結束通話:nohup java -jar XXX.jar >/dev/null 2>&1 &

nohup命令:如果正在執行一個程式,而且覺得在退出賬戶時該程式不會結束,那麼可以使用nohup命令。

8.cat /proc/cpuinfo 或者 top 或者 free 9.killall wget 關閉wget下載

10.修改pdsh預設採用rsh,export PDSH_RCMD_TYPE=ssh

11.jobs關閉後臺任務 kill %jobid

12.查詢檔案 find ./ -name '*building2d' 獲取 ll | grep building2d

13.head -n fileName 檢視檔案前n行 || tail -n fileName 檢視檔案後n行

14.linux臨時變數定義: tmpVar=`find ./ -name '*building*'`; cd $tmpVar

15.查詢上一個命令的返回型別:echo $?

16.獲取外網ip:curl ip.sb

17.iptables -t nat -A OUTPUT -d 192.168.0.1 -j DNAT --to-destination 152.132.125.96

將內網對192.168.0.1[埠]的訪問全部轉到152.132.125.96[埠]

18.hadoop叢集錯誤排查

firewall-cmd --state

netstat -an | grep 9000

telnet 172.16.16.2 9000

hdfs dfsadmin -report

19.nmom可替代top的效能監控

20.fish自動推薦歷史命令

21.重新命名 mv/rename mv /dir/file1 /dir2/file1

renamearg1 arg2 arg3 (可以批量修改)

arg3:匹配要重新命名的檔案,可以使用3種萬用字元,*、?、[char],*表示任意多個字元,?表示單個字元,[char]匹配char單個自定的精確字元,可以填寫任意字元,foo[a]*表示只匹配fooa開頭的檔名,如果一個檔案是foobcc.txt,是不會被匹配的。

Ubuntu系統:rename ‘s/a/xxx/’ *.txt 前兩個引數為1個

22.grep “Global Regular Expressions Print” 全域性正則表示式列印

egrep “Extended Global Regular Expressions Print”

(egrep(與grep -E相同)將 +, ?, |, (, ) 作為元字元)

fgrep "Fixed-string Global Regular Expressions Print" 固定字串全域性正則表示式列印

(fgrep(與grep -F相同)是固定的或快速的grep,它只處理簡單的字串)

pgrep “Process-ID Global Regular Expressions Print” 查程式的PID

23.按行匹配文字檔案,grep -E 引數執行速度最快

grep -P '^(\(\d{3}\) |\d{3}-)\d{3}-\d{4}$' file.txt

grep -E '^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$' file.txt

cat file.txt | grep -P '^(\([0-9]{3}\) )?[0-9]{3}-[0-9]{3}$'

其他類似命令awk/gawk awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt

gawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt