【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個字元、區分大小寫、不能使用「/」,不允許創建與系統已有的相同名字的目錄。因為不要區分,第二點,防止某些軟體無法自動進行識別。
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
rename arg1 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