Linux入門與基礎
linux的目錄結構
打開終端,輸入ls
查看linux根目錄下的情況
$ ls /
----------------
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YALF6zaX-1584500883766)(images/linux目錄結構.png)]
/bin (/usr/bin /usr/local/bin )
是Binary的縮寫, 這個目錄存放着最經常使用的命令
/sbin (/usr/sbin 、 /usr/local/sbin)
s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序
/home
存放普通用戶的主目錄,在Linux中每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
/root
該目錄爲系統管理員,也稱作超級權限者的用戶主目錄。
/lib
系統開機所需要最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。
/lost+found
這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件。
/etc
所有的系統管理所需要的配置文件和子目錄。
/usr
這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似與windows下的program files目錄。
/boot
這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件,自己的安裝別放這裏
/proc
這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
/srv
service縮寫,該目錄存放一些服務啓動之後需要提取的數據。
/sys
這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。
/tmp
這個目錄是用來存放一些臨時文件的。
/dev
類似於windows的設備管理器,把所有的硬件用文件的形式存儲,在linux中一切皆文件。
/media
linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。
/mnt
系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將外部的存儲掛載在/mnt/上,然後進入該目錄就可以查看裏的內容了,比如你掛載的其他硬盤或者u盤等
/opt
這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。hadoop就可以安裝在此
/usr/local
這是另一個給主機額外安裝軟件所擺放的目錄。一般是通過編譯源碼方式安裝的程序。
/var
這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。
/selinux
SELinux是一種安全子系統,它能控制程序只能訪問特定文件。
VIM/VI 編輯器
VI是Unix操作系統和類Unix操作系統中最通用的文本編輯器。
VIM編輯器是從VI發展出來的一個性能更強大的文本編輯器。可以主動的以字體顏色辨別語法的正確性,方便程序設計。VIM與VI編輯器完全兼容。
準備測試數據
拷貝/etc/kdump.conf數據到/root目錄下
$ cp /etc/kdump.conf /root
一般模式
以vi打開一個檔案就直接進入一般模式了(這是默認的模式)。在這個模式中, 你可以使用『上下左右』按鍵來移動光標,你可以使用『刪除字符』或『刪除整行』來處理檔案內容, 也可以使用『複製、貼上』來處理你的文件數據。
常用語法
語法 | 功能描述 |
---|---|
yy | 複製光標當前一行 |
y數字y | 複製一段(從第幾行到第幾行) |
p | 箭頭移動到目的行粘貼 |
u | 撤銷上一步 |
dd | 刪除光標當前行 |
d數字d | 刪除光標(含)後多少行 |
x | 刪除一個字母,相當於del,向後刪 |
X | 刪除一個字母,相當於Backspace,向前刪 |
yw | 複製一個詞 |
dw | 刪除一個詞 |
h 或 向左箭頭鍵(←) | 光標向左移動一個字符 |
j 或 向下箭頭鍵(↓) | 光標向下移動一個字符 |
k 或 向上箭頭鍵(↑) | 光標向上移動一個字符 |
l 或 向右箭頭鍵(→) | 光標向右移動一個字符 |
[Ctrl] + [f] | 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵 (常用) |
[Ctrl] + [b] | 屏幕『向下』移動半頁 |
shift+^ | 移動到行頭 |
shift+$ | 移動到行尾 |
gg或者1+G | 移動到頁頭 |
G | 移動到頁尾 |
數字+G(先輸入數字,在按G) | 移動到目標行 |
塊選擇模式
V | : 字符選擇,會把光標經過的位置反白選擇 |
---|---|
v | 行選擇,會把光標經過的行反白選擇 |
Ctrl + v: | 塊選擇,可以使用長方形的方式反白選擇內容 |
y | 將反白的地方複製 |
d | 將反白的地方刪除 |
r | 修改內容 |
vi/vim鍵盤映射圖圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-n4LXyrk1-1584500883767)(images/vi鍵盤圖.png)]
編輯模式
在一般模式中可以進行刪除、複製、粘貼等的動作,但是無法編輯文件內容!要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之後纔會進入編輯模式。
注意了!通常在Linux中,按下這些按鍵時,在畫面的左下方會出現『INSERT或 REPLACE』的字樣,此時纔可以進行編輯。而如果要回到一般模式時, 則必須要按下『Esc』這個按鍵即可退出編輯模式。
1.進入編輯模式
常用語法
按鍵 | 功能 |
---|---|
i | 當前光標前 |
a | 當前光標後 |
o | 當前光標行的下一行 |
I | 光標所在行最前 |
A | 光標所在行最後 |
O | 當前光標行的上一行 |
2.退出編輯模式
按『Esc』鍵
指令模式
在一般模式當中,輸入『 : / ?』3箇中的任何一個按鈕,就可以將光標移動到最底下那一行。
在這個模式當中, 可以提供你『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 vi 、顯示行號等動作是在此模式中達成的!
1.基本語法
表1-3
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 強制執行 |
/ 要查找的詞 | n 查找下一個,N 往上查找 |
? 要查找的詞 | n是查找上一個,N是往下查找 |
:nohlsearch 或:noh | 取消查找高亮 |
n | 搜索下一個匹配字符串 |
N | 搜索上一個匹配 |
:n1,n2s/word1/word2/g | n1 與 n2 爲數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代爲 word2舉例來說,在 100 到 200 行之間搜尋 vbird 並取代爲 VBIRD 則:『:100,200s/vbird/VBIRD/g』。(常用) |
:1,$s/word1/word2/g 或 :%s/word1/word2/g | 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(常用) |
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc | 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代!(常用) |
:w [filename] | 將編輯的數據儲存成另一個檔案(類似另存新檔) |
:n1,n2 w [filename] | 將 n1 到 n2 的內容儲存成 filename 這個檔案。 |
:set nu | 顯示行號 |
:set nonu | 關閉行號 |
ZZ(shift+zz) | 沒有修改文件直接退出,如果修改了文件保存後退出 |
:! command | 暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息! |
2.案例
(1)強制保存退出
:wq!
模式間轉換
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3rXxPUnh-1584500883767)(images/模式間轉換.png)]
vim技巧篇
我們可以利用塊選擇模式完成一些批量編輯工作
示例 1:縱向編輯在批量修改代碼的應用演示
將數列:
10.1.1.214
10.1.1.212
10.1.1.210
編輯成序列:
ping -c 4 10.5.5.214 >> result0
ping -c 4 10.5.5.212 >> result0
ping -c 4 10.5.5.210 >> result0
這是一個將 IP 數列修改成可執行的 ping 命令序列的過程。
第一步:修改
將 IP 數列中第二段所有數字“1” 修改爲“5”:
將遊標定位第一個行 IP 地址第二段的“1”
ctrl-v
進入縱向編輯模式
G
移動遊標到最後一行,可視塊覆蓋所要修改的列
r
進入修改模式
5
輸入數字“5”
ESC
退出縱向編輯模式,同時所有被選中的數字都被改成了“5”,並回到命令模式
結果如下:
10.5.5.214
10.5.5.212
10.5.5.210
第二步:前添加
在所有行之前添加“ping – c 4 ”:
將遊標定位到第一行第一列
ctrl-v
進入縱向編輯模式
G
移動遊標到最後一行第一列,可視塊覆蓋了第一列
I
進入行首插入模式
ping -c 4
輸入所要求字符“ping – c 4 ”
ESC
按兩下退出縱向編輯模式的同時所有選中的字符前都添加了“ping – c 4 ”,回到命令模式
結果如下:
ping -c 4 10.5.5.214
ping -c 4 10.5.5.212
ping -c 4 10.5.5.210
第三步:後添加
在所有行之後添加“>> result0”:
將遊標定位到第一行最後一列
ctrl-v
進入縱向編輯模式
G
移動遊標到最後一行最後一列,VISUAL BLOCK 覆蓋了最後一列
A
進入行尾插入模式
>> result
輸入所要求字符“>> result0”
ESC
按兩下退出縱向編輯模式的同時所有選中的字符後都添加了“ >> result0”,回到命令模式
結果如下:
ping -c 4 10.5.5.214 >> result0
ping -c 4 10.5.5.212 >> result0
ping -c 4 10.5.5.210 >> result0
以上三個步驟有一個共同特點,就是都縱向爲編輯方向。以上由三行代碼爲例的方法同樣也可以適用於更多的行。
示例2 批量添加註釋
方法一 :塊選擇模式
批量註釋:
Ctrl + v 進入塊選擇模式,然後移動光標選中你要註釋的行,再按大寫的 I 進入行首插入模式輸入註釋符號如 // 或 #,輸入完畢之後,按兩下 ESC,Vim 會自動將你選中的所有行首都加上註釋,保存退出完成註釋。
取消註釋:
Ctrl + v 進入塊選擇模式,選中你要刪除的行首的註釋符號,注意 // 要選中兩個,選好之後按 d 即可刪除註釋,ESC 保存退出。
方法二: 替換命令
批量註釋。
使用下面命令在指定的行首添加註釋。
使用名命令格式: :起始行號,結束行號s/^/註釋符/g(注意冒號)。
取消註釋:
使用名命令格式: :起始行號,結束行號s/^註釋符//g(注意冒號)。
vim配置模板
參考:https://my.oschina.net/wangzilong/blog/760292
systemctl後臺服務管理
從CentOS 7.x開始,CentOS開始使用systemd服務來代替daemon,
原來管理系統啓動和管理系統服務的相關命令全部由systemctl命令來代替。
原來的 service 命令與 systemctl 命令對比
daemon命令 | systemctl命令 | 說明 |
---|---|---|
service [服務] start | systemctl start [unit type] | 啓動服務 |
service [服務] stop | systemctl stop [unit type] | 停止服務 |
service [服務] restart | systemctl restart [unit type] | 重啓服務 |
此外還是二個systemctl參數沒有與service命令參數對應
- status:參數來查看服務運行情況
- reload:重新加載服務,加載更新後的配置文件(並不是所有服務都支持這個參數,比如network.service)
應用舉例:
#啓動網絡服務
systemctl start network.service
#停止網絡服務
systemctl stop network.service
#重啓網絡服務
systemctl restart network.service
#查看網絡服務狀態
systemctl status network.serivce
原來的chkconfig 命令與 systemctl 命令對比
設置開機啓動/不啓動
daemon命令 | systemctl命令 | 說明 |
---|---|---|
chkconfig [服務] on | systemctl enable [unit type] | 設置服務開機啓動 |
chkconfig [服務] off | systemctl disable [unit type] | 設備服務禁止開機啓動 |
應用舉例:
#停止cup電源管理服務
systemctl stop cups.service
#禁止cups服務開機啓動
systemctl disable cups.service
#查看cups服務狀態
systemctl status cups.service
#重新設置cups服務開機啓動
systemctl enable cups.service
查看系統上上所有的服務
命令格式:
systemctl [command] [–type=TYPE] [–all]
參數詳解:
command – list-units:依據unit列出所有啓動的unit。加上 –all 纔會列出沒啓動的unit; – list-unit-files:依據/usr/lib/systemd/system/ 內的啓動文件,列出啓動文件列表
–type=TYPE – 爲unit type, 主要有service, socket, target
應用舉例:
systemctl命令 | 說明 |
---|---|
systemctl | 列出所有的系統服務 |
systemctl list-units | 列出所有啓動unit |
systemctl list-unit-files | 列出所有啓動文件 |
systemctl list-units –type=service –all | 列出所有service類型的unit |
systemctl list-units –type=service –all grep cpu | 列出 cpu電源管理機制的服務 |
systemctl list-units –type=target –all | 列出所有target |
systemctl特殊的用法
systemctl命令 | 說明 |
---|---|
systemctl is-active [unit type] | 查看服務是否運行 |
systemctl is-enable [unit type] | 查看服務是否設置爲開機啓動 |
systemctl mask [unit type] | 註銷指定服務 |
systemctl unmask [unit type] | 取消註銷指定服務 |
應用舉例:
#查看網絡服務是否啓動
systemctl is-active network.service
#檢查網絡服務是否設置爲開機啓動
systemctl is-enable network.service
#停止cups服務
systemctl stop cups.service
#註銷cups服務
systemctl mask cups.service
#查看cups服務狀態
systemctl status cups.service
#取消註銷cups服務
systemctl unmask cups.service
關機重啓命令
在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已纔會關機。
正確的關機流程爲:sync > shutdown > reboot > halt
1. 基本語法
(1)sync (功能描述:將數據由內存同步到硬盤中)
(2)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重啓,等同於 shutdown -r now)
(4)shutdown [選項] 時間
選項 | 功能 |
---|---|
-h | -h=halt關機 |
-r | -r=reboot重啓 |
參數 | 功能 |
---|---|
now | 立刻關機 |
時間 | 等待多久後關機(時間單位是分鐘)。 |
2. 經驗技巧
Linux系統中爲了提高磁盤的讀寫效率,對磁盤採取了 “預讀遲寫”操作方式。當用戶保存文件時,Linux核心並不一定立即將保存數據寫入物理磁盤中,而是將數據保存在緩衝區中,等緩衝區滿時再寫入磁盤,這種方式可以極大的提高磁盤寫入數據的效率。但是,也帶來了安全隱患,如果數據還未寫入磁盤時,系統掉電或者其他嚴重問題出現,則將導致數據丟失。使用sync指令可以立即將緩衝區的數據寫入磁盤。
3. 案例
(1)將數據由內存同步到硬盤中
$ sync
(2)重啓
$ reboot
(3)關機
$ halt
(4)計算機將在1分鐘後關機,並且會顯示在登錄用戶的當前屏幕中
$ shutdown -h 1 ‘This server will shutdown after 1 mins’
(5)立馬關機(等同於 halt)
$ shutdown -h now
(6)系統立馬重啓(等同於 reboot)
$ shutdown -r now
常用基本命令
與linux的交互除有圖形化界面之外,都是採用命令方式
首次進入終端,會看到如下的顯示
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dtCWMT2p-1584500883768)(images/命令格式.png)]
1.幫助命令
1.1 man獲得幫助信息
基本語法
$ man [命令或配置文件] (功能描述:獲得幫助信息)
顯示說明
信息 | 功能 |
---|---|
NAME | 命令的名稱和單行描述 |
SYNOPSIS | 怎樣使用命令 |
DESCRIPTION | 命令功能的深入討論 |
EXAMPLES | 怎樣使用命令的例子 |
SEE ALSO | 相關主題(通常是手冊頁) |
案例
查看ls命令的幫助信息
$ man ls
1.2 help 獲得shell內置命令的幫助信息
注意:help命令只能獲取shell腳本對應的內置命令
基本語法
$ help 命令 (功能描述:獲得shell內置命令的幫助信息)
案例
查看cd命令的幫助信息help cd
2.文件目錄命令
2.1 pwd顯示當前工作目錄絕對路徑
pwd:print working directory 打印工作目錄
基本語法
$ pwd (功能描述:顯示當前工作目錄的絕對路徑)
案例
顯示當前工作目錄的絕對路徑
[root@hadoop150 ~]# pwd
/root
2.2 ls列出目錄的內容
ls:list 列出目錄內容
基本語法
$ ls [選項] [目錄或是文件]
選項說明
選項 | 功能 |
---|---|
-a | 全部的文件,連同隱藏檔( 開頭爲 . 的文件) 一起列出來(常用) |
-l | 長數據串列出,包含文件的屬性與權限等等數據;(常用) |
顯示說明
每行列出的信息依次是: 文件類型與權限 鏈接數 文件屬主 文件屬組 文件大小用byte來表示 建立或最近修改的時間 名字
案例
查看當前目錄的所有內容信息
$ ls -al
總用量 44
drwx------. 5 neuedu neuedu 4096 5月 27 15:15 .
drwxr-xr-x. 3 root root 4096 5月 27 14:03 ..
drwxrwxrwx. 2 root root 4096 5月 27 14:14 hello
##### -rwxrw-r--. 1 neuedu neuedu 34 5月 27 14:20 test.txt
2.3 cd 切換目錄
cd:Change Directory切換路徑
基本語法
$ cd [參數]
參數說明
參數 | 功能 |
---|---|
cd 絕對路徑 | 切換路徑 |
cd相對路徑 | 切換路徑 |
cd ~或者cd | 回到自己的家目錄 |
cd - | 回到上一次所在目錄 |
cd … | 回到當前目錄的上一級目錄 |
cd -P | 跳轉到實際物理路徑,而非快捷方式路徑 |
案例
(1)使用絕對路徑切換到root目錄
$ cd /root/
(2)使用相對路徑切換到“/srv”目錄
$ cd srv
(3)表示回到自己的家目錄,亦即是 /root 這個目錄
$ cd ~
(4)cd- 回到上一次所在目錄
$ cd -
(5)表示回到當前目錄的上一級目錄
$ cd ..
2.4 mkdir創建一個新的目錄
mkdir:Make directory 建立目錄
基本語法
mkdir [選項] 要創建的目錄
選項說明
表1-10 選項說明
選項 | 功能 |
---|---|
-p | 創建多層目錄 |
案例
(1)創建一個目錄
$ mkdir xiyou
$ mkdir xiyou/mingjie
(2)創建一個多級目錄
$ mkdir -p xiyou/dssz/meihouwang
2.5 rmdir 刪除一個空的目錄
rmdir:Remove directory 移動目錄
基本語法:
$ rmdir 要刪除的空目錄
案例
刪除一個空的文件夾
$ rmdir xiyou/dssz/meihouwang
2.6 touch 創建空文件
基本語法
$ touch 文件名稱
案例
$ touch xiyou/dssz/sunwukong.txt
2.7 cp 複製文件或目錄
基本語法
$ cp [選項] source dest (功能描述:複製source文件到dest)
選項說明
選項 | 功能 |
---|---|
-r | 遞歸複製整個文件夾 |
參數說明
參數 | 功能 |
---|---|
source | 源文件 |
dest | 目標文件 |
經驗技巧
強制覆蓋不提示的方法:\cp
案例
(1)複製文件
$ cp xiyou/dssz/suwukong.txt xiyou/mingjie/
(2)遞歸複製整個文件夾
$ cp -r xiyou/dssz/ ./
2.7 rm 移除文件或目錄
基本語法
$ rm [選項] deleteFile (功能描述:遞歸刪除目錄中所有內容)
選項說明
選項 | 功能 |
---|---|
-r | 遞歸刪除目錄中所有內容 |
-f | 強制執行刪除操作,而不提示用於進行確認。 |
-v | 顯示指令的詳細執行過程 |
案例
(1)刪除目錄中的內容
$ rm xiyou/mingjie/sunwukong.txt
(2)遞歸刪除目錄中所有內容
$ rm -rf dssz/
2.8 mv 移動文件與目錄或重命名
基本語法
$ mv oldNameFile newNameFile (功能描述:重命名)
$ mv /temp/movefile /targetFolder (功能描述:移動文件)
案例
(1)重命名
$ mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt
(2)移動文件
$ mv xiyou/dssz/houge.txt ./
2.9 cat 查看文件內容
查看文件內容,從第一行開始顯示。
基本語法
$ cat [選項] 要查看的文件
選項說明
選項 | 功能描述 |
---|---|
-n | 顯示所有行的行號,包括空行。 |
經驗技巧
一般查看比較小的文件,一屏幕能顯示全的。
案例
(1)查看文件內容並顯示行號
$ cat -n houge.txt
2.10 more 文件內容分屏查看器
more指令是一個基於VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。more指令中內置了若干快捷鍵,詳見操作說明。
基本語法
$ more 要查看的文件
操作說明
操作 | 功能說明 |
---|---|
空白鍵 (space) | 代表向下翻一頁; |
Enter | 代表向下翻『一行』; |
q | 代表立刻離開 more ,不再顯示該文件內容。 |
Ctrl+F | 向下滾動一屏 |
Ctrl+B | 返回上一屏 |
= | 輸出當前行的行號 |
:f | 輸出文件名和當前行的行號 |
案例
(1)採用more查看文件
$ more test
2.11 less 分屏顯示文件內容
less指令用來分屏查看文件內容,它的功能與more指令類似,但是比more指令更加強大,支持各種顯示終端。less指令在顯示文件內容時,並不是一次將整個文件加載之後才顯示,而是根據顯示需要加載內容,對於顯示大型文件具有較高的效率。
基本語法
$ less 要查看的文件
操作說明
操作 | 功能說明 |
---|---|
空白鍵 | 向下翻動一頁; |
[pagedown] | 向下翻動一頁 |
[pageup] | 向上翻動一頁; |
/字串 | 向下搜尋『字串』的功能;n:向下查找;N:向上查找; |
?字串 | 向上搜尋『字串』的功能;n:向上查找;N:向下查找; |
q | 離開 less 這個程序; |
案例
(1)採用less查看文件
$ less /var/log/boot.log
2.12 echo
echo輸出內容到控制檯
基本語法
$ echo [選項] [輸出內容]
選項:
-e: 支持反斜線控制的字符轉換
控制字符 | 作用 |
---|---|
\ | 輸出\本身 |
\n | 換行符 |
\t | 製表符,也就是Tab鍵 |
案例
$ echo "hello\tworld"
------------------
hello\tworld
$ echo -e "hello\tworld"
--------------------------
hello world
2.13 head 顯示文件頭部內容
head用於顯示文件的開頭部分內容,默認情況下head指令顯示文件的前10行內容。
基本語法
$ head 文件 (功能描述:查看文件頭10行內容)
$ head -n 5 文件 (功能描述:查看文件頭5行內容,5可以是任意行數)
選項說明
選項 | 功能 |
---|---|
-n <行數> | 指定顯示頭部內容的行數 |
案例
(1)查看文件的頭2行
$ head -n 2 smartd.conf
2.14 tail 輸出文件尾部內容
tail用於輸出文件中尾部的內容,默認情況下tail指令顯示文件的後10行內容。
基本語法
$ tail 文件 (功能描述:查看文件後10行內容)
$ tail -n 5 文件 (功能描述:查看文件後5行內容,5可以是任意行數)
$ tail -f 文件 (功能描述:實時追蹤該文檔的所有更新)
選項說明
選項 | 功能 |
---|---|
-n<行數> | 輸出文件尾部n行內容 |
-f | 顯示文件最新追加的內容,監視文件變化 |
案例
(1)查看文件頭1行內容
$ tail -n 1 smartd.conf
(2)實時追蹤該檔的所有更新
$ tail -f houge.txt
2.15 >覆蓋 和 >> 追加
其實這是UNIX系統的標準輸入與標準輸出功能,在shell中會說到,這裏先知道基本用法
基本語法
$ ll >文件 (功能描述:列表的內容寫入文件a.txt中(覆蓋寫))
$ ll >>文件 (功能描述:列表的內容**追加**到文件aa.txt的末尾)
$ cat 文件1 > 文件2 (功能描述:將文件1的內容覆蓋到文件2)
$ echo “內容” >> 文件
案例
(1)將ls查看信息寫入到文件中
$ ls -l>houge.txt
(2)將ls查看信息追加到文件中
$ ls -l>>houge.txt
(3)採用echo將hello單詞追加到文件中
$ echo hello>>houge.txt
2.16 ln 軟鏈接
軟鏈接也成爲符號鏈接,類似於windows裏的快捷方式,有自己的數據塊,主要存放了鏈接其他文件的路徑。
linux連接種類參考:https://www.runoob.com/linux/linux-comm-ln.html
基本語法
$ ln -s [原文件或目錄] [軟鏈接名] (功能描述:給原文件創建一個軟鏈接)
經驗技巧
刪除軟鏈接: rm -rf 軟鏈接名,而不是rm -rf 軟鏈接名/
查詢:通過ll就可以查看,列表屬性第1位是l,尾部會有位置指向。
案例
(1)創建軟連接
[root@hadoop101 ~]# mv houge.txt xiyou/dssz/
[root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi
[root@hadoop101 ~]# ll
-------------------
lrwxrwxrwx. 1 root root 20 6月 17 12:56 houzi -> xiyou/dssz/houge.txt
(2)刪除軟連接
[root@hadoop101 ~]# rm -rf houzi
(3)進入軟連接實際物理路徑
[root@hadoop101 ~]# ln -s xiyou/dssz/ ./dssz
[root@hadoop101 ~]# cd -P dssz/
2.17 history 查看已經執行過歷史命令
基本語法
$ history (功能描述:查看已經執行過歷史命令)
案例
(1)查看已經執行過的歷史命令
$ history
3. 時間日期命令
3.1 date命令
基本語法
$ date [OPTION]... [+FORMAT]
選項說明
選項 | 功能 |
---|---|
-d<時間字符串> | 顯示指定的“時間字符串”表示的時間,而非當前時間 |
-s<日期時間> | 設置系統日期時間 |
參數說明
參數 | 功能 |
---|---|
<+日期時間格式> | 指定顯示時使用的日期時間格式 |
3.2 date 顯示當前時間
基本語法
$ date (功能描述:顯示當前時間)
$ date +%Y (功能描述:顯示當前年份)
$ date +%m (功能描述:顯示當前月份)
$ date +%d (功能描述:顯示當前是哪一天)
$ date "+%Y-%m-%d %H:%M:%S" (功能描述:顯示年月日時分秒)
案例
(1)顯示當前時間信息
$ date
(2)顯示當前時間年月日
$ date +%Y%m%d
(3)顯示當前時間年月日時分秒
$ date "+%Y-%m-%d %H:%M:%S"
3.3 date 顯示非當前時間
基本語法
$ date -d '1 days ago' (功能描述:顯示前一天時間)
$ date -d '-1 days ago' (功能描述:顯示明天時間)
案例
(1)顯示前一天
$ date -d '1 days ago'
(2)顯示明天時間
$ date -d '-1 days ago'
3.4 date 設置系統時間
基本語法
$ date -s 字符串時間
案例
(1)設置系統當前時間
$ date -s "2017-06-19 20:52:18"
3.5 cal 查看日曆
基本語法
$ cal [選項] (功能描述:不加選項,顯示本月日曆)
選項說明
選項 | 功能 |
---|---|
具體某一年 | 顯示這一年的日曆 |
案例
(1)查看當前月的日曆
$ cal
(2)查看2017年的日曆
$ cal 2017
4. 用戶管理命令
4.1 useradd 添加新用戶
基本語法
$ useradd 用戶名 (功能描述:添加新用戶)
$ useradd -g 組名 用戶名 (功能描述:添加新用戶到某個組)
案例
(1)添加一個用戶
$ useradd tangseng
$ ll /home/
4.2 passwd 設置用戶密碼
基本語法
$ passwd 用戶名 (功能描述:設置用戶密碼)
案例
(1)設置用戶的密碼
$ passwd tangseng
4.3 id查看用戶是否存在
基本語法
$ id 用戶名
案例
(1)查看用戶是否存在
$ id tangseng
4.4 cat /etc/passwd 查看創建了哪些用戶
基本語法
$ cat /etc/passwd
4.5 su 切換用戶
su: swith user 切換用戶
基本語法
$ su 用戶名稱 (功能描述:切換用戶,只能獲得用戶的執行權限,不能獲得環境變量)
$ su - 用戶名稱 (功能描述:切換到用戶並獲得該用戶的環境變量及執行權限)
案例
(1)切換用戶
[root@hadoop101 ~]#su tangseng
[root@hadoop101 ~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@hadoop101 ~]#exit
[root@hadoop101 ~]#su - tangseng
[root@hadoop101 ~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin
4.6 userdel 刪除用戶
基本語法
$ userdel 用戶名 (功能描述:刪除用戶但保存用戶主目錄)
$ userdel -r 用戶名 (功能描述:用戶和用戶主目錄,都刪除)
選項說明
選項 | 功能 |
---|---|
-r | 刪除用戶的同時,刪除與用戶相關的所有文件。 |
案例
(1)刪除用戶但保存用戶主目錄
[root@hadoop101 ~]#userdel tangseng
[root@hadoop101 ~]#ll /home/
(2)刪除用戶和用戶主目錄,都刪除
[root@hadoop101 ~]#useradd zhubajie
[root@hadoop101 ~]#ll /home/
[root@hadoop101 ~]#userdel -r zhubajie
[root@hadoop101 ~]#ll /home/
4.7 who 查看登錄用戶信息
基本語法
$ whoami (功能描述:顯示自身用戶名稱)
$ who am i (功能描述:顯示登錄用戶的用戶名)
案例
(1)顯示自身用戶名稱
[root@hadoop101 opt]# whoami
(2)顯示登錄用戶的用戶名
[root@hadoop101 opt]# who am i
4.8 sudo 設置普通用戶具有root權限
要想讓普通用戶具有root的權限,我們需要使用sudo命令,但前提是這個用戶必須在sudoers名單中
1.添加neuedu用戶,並對其設置密碼。
[root@hadoop101 ~]#useradd neuedu
[root@hadoop101 ~]#passwd neuedu
2.修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
neuedu ALL=(ALL) ALL
或者配置成採用sudo命令時,不需要輸入密碼
\## Allow root to run any commands anywhere
root ALL=(ALL) ALL
neuedu ALL=(ALL) NOPASSWD:ALL
修改完畢,現在可以用neuedu帳號登錄,然後用命令 sudo ,即可獲得root權限進行操作。
3.案例
(1)用普通用戶在/opt目錄下創建一個文件夾
[neuedu@hadoop101 opt]$ sudo mkdir module
[root@hadoop101 opt]# chown neuedu:neuedu module/
4.9 usermod 修改用戶
基本語法
$ usermod -g 用戶組 用戶名
選項說明
選項 | 功能 |
---|---|
-g | 修改用戶的初始登錄組,給定的組必須存在 |
案例
(1)將用戶加入到用戶組
[root@hadoop101 opt]#usermod -g root zhubajie
5 用戶組管理命令
每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統對用戶組的規定有所不同,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在創建用戶時同時創建。用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。
5.1 groupadd 新增組
基本語法
$ groupadd 組名
案例
(1)添加一個xitianqujing組
[root@hadoop101 opt]#groupadd xitianqujing
5.2 groupdel 刪除組
基本語法
$ groupdel 組名
案例
(1)刪除xitianqujing組
[root@hadoop101 opt]# groupdel xitianqujing
5.3 groupmod 修改組
基本語法
$ groupmod -n 新組名 老組名
選項說明
選項 | 功能描述 |
---|---|
-n<新組名> | 指定工作組的新組名 |
案例
(1)修改neuedu組名稱爲neuedu1
[root@hadoop101 ~]#groupadd xitianqujing
[root@hadoop101 ~]# groupmod -n xitian xitianqujing
5.4 cat /etc/group 查看創建了哪些組
基本操作
[root@hadoop101 neuedu]# cat /etc/group
6 文件權限類
6.1 文件屬性
Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。爲了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。在Linux中我們可以使用ll或者ls -l命令來顯示一個文件的屬性以及文件所屬的用戶和組。
1.從左到右的10個字符表示,如圖所示:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9EKmsCRM-1584500883770)(images/wps1.jpg)]
如果沒有權限,就會出現減號[ - ]而已。從左至右用0-9這些數字來表示:
(1)0首位表示類型
在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等
- 代表文件
d 代表目錄
l 鏈接文檔(link file);
(2)第1-3位確定屬主(該文件的所有者)擁有該文件的權限。—User
(3)第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,—Group
(4)第7-9位確定其他用戶擁有該文件的權限 —Other
2.rxw作用文件和目錄的不同解釋
(1)作用到文件:
[ r ]代表可讀(read): 可以讀取,查看
[ w ]代表可寫(write): 可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目 錄有寫權限,才能刪除該文件.
[ x ]代表可執行(execute):可以被系統執行
(2)作用到目錄:
[ r ]代表可讀(read): 可以讀取,ls查看目錄內容
[ w ]代表可寫(write): 可以修改,目錄內創建+刪除+重命名目錄
[ x ]代表可執行(execute):可以進入該目錄
3.案例
[root@hadoop101 ~]# ll
---------------------
total 104
-rw-------. 1 root root 1248 1月 8 17:36 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 1月 12 14:02 dssz
lrwxrwxrwx. 1 root root 20 1月 12 14:32 houzi -> xiyou/dssz/houge.tx
文件基本屬性介紹,如圖所示:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5tyCFfwf-1584500883770)(images/wps2.jpg)]
(1)如果查看到是文件:鏈接數指的是硬鏈接個數。創建硬鏈接方法
$ ln [原文件] [目標文件]
[root@hadoop101 ~]# ln xiyou/dssz/houge.txt ./hg.txt
(2)如果查看的是文件夾:鏈接數指的是子文件夾個數。
[root@hadoop101 ~]# ls -al xiyou/
--------------------------
總用量 16
drwxr-xr-x. 4 root root 4096 1月 12 14:00 .
dr-xr-x---. 29 root root 4096 1月 12 14:32 ..
drwxr-xr-x. 2 root root 4096 1月 12 14:30 dssz
drwxr-xr-x. 2 root root 4096 1月 12 14:04 mingjie
6.2 chmod 改變權限
基本語法
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bEfqpt0I-1584500883771)(images/wps3.jpg)]
第一種方式變更權限
$ chmod [{ugoa}{+-=}{rwx}] 文件或目錄
第二種方式變更權限
$ chmod [mode=421 ] [文件或目錄]
經驗技巧
u:所有者 g:所有組 o:其他人 a:所有人(u、g、o的總和)
r=4 w=2 x=1 rwx=4+2+1=7
案例
(1)修改文件使其所屬主用戶具有執行權限
[root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./
[root@hadoop101 ~]# chmod u+x houge.txt
(2)修改文件使其所屬組用戶具有執行權限
[root@hadoop101 ~]# chmod g+x houge.txt
(3)修改文件所屬主用戶執行權限,並使其他用戶具有執行權限
[root@hadoop101 ~]# chmod u-x,o+x houge.txt
(4)採用數字的方式,設置文件所有者、所屬組、其他用戶都具有可讀可寫可執行權限。
[root@hadoop101 ~]# chmod 777 houge.txt
(5)修改整個文件夾裏面的所有文件的所有者、所屬組、其他用戶都具有可讀可寫可執行權限。
[root@hadoop101 ~]# chmod -R 777 xiyou/
6.3 chown 改變所有者
基本語法
$ chown [選項] [最終用戶] [文件或目錄] (功能描述:改變文件或者目錄的所有者)
選項說明
選項 | 功能 |
---|---|
-R | 遞歸操作 |
案例
(1)修改文件所有者
[root@hadoop101 ~]# chown neuedu houge.txt
[root@hadoop101 ~]# ls -al
---------------------------
-rwxrwxrwx. 1 neuedu root 551 5月 23 13:02 houge.txt
(2)遞歸改變文件所有者和所有組
[root@hadoop101 xiyou]# ll
---------------------------------------
drwxrwxrwx. 2 root root 4096 9月 3 21:20 xiyou
----------------------------------------
[root@hadoop101 xiyou]# chown -R neuedu:neuedu xiyou/
[root@hadoop101 xiyou]# ll
-----------------------------------------------------
drwxrwxrwx. 2 neuedu neuedu 4096 9月 3 21:20 xiyou
6.4 chgrp 改變所屬組
基本語法
$ chgrp [最終用戶組] [文件或目錄] (功能描述:改變文件或者目錄的所屬組)
案例
(1)修改文件的所屬組
[root@hadoop101 ~]# chgrp root houge.txt
[root@hadoop101 ~]# ls -al
------------------------------------
-rwxrwxrwx. 1 neuedu root 551 5月 23 13:02 houge.txt
7 搜索查找類
7.1 find 查找文件或者目錄
find指令將從指定目錄向下遞歸地遍歷其各個子目錄,將滿足條件的文件顯示在終端。
基本語法
$ find [搜索範圍] [選項]
選項說明
選項 | 功能 |
---|---|
-name<查詢方式> | 按照指定的文件名查找模式查找文件 |
-user<用戶名> | 查找屬於指定用戶名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件。 |
案例
(1)按文件名:根據名稱查找/目錄下的filename.txt文件。
[root@hadoop101 ~]# find xiyou/ -name “*.txt”
(2)按擁有者:查找/opt目錄下,用戶名稱爲-user的文件
[root@hadoop101 ~]# find xiyou/ -user neuedu
(3)按文件大小:在/home目錄下查找大於200m的文件(+n 大於 -n小於 n等於)
[root@hadoop101 ~]find /home -size +204800
7.2 grep 過濾查找及“|”管道符
管道符,“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理
基本語法
$ grep 選項 查找內容 源文件
選項說明
選項 | 功能 |
---|---|
-n | 顯示匹配行及行號。 |
案例
(1)查找某文件在第幾行
[root@hadoop101 ~]# ls | grep -n test
7.3 which 查找命令
查找命令在那個目錄下
基本語法
$ which 命令
案例
$ which ll
8 壓縮和解壓類
8.1 gzip/gunzip 壓縮
基本語法
$ gzip 文件 (功能描述:壓縮文件,只能將文件壓縮爲*.gz文件)
$ gunzip 文件.gz (功能描述:解壓縮文件命令)
經驗技巧
(1)只能壓縮文件不能壓縮目錄
(2)不保留原來的文件
案例
(1)gzip壓縮
[root@hadoop101 ~]# ls
------
test.java
-----
[root@hadoop101 ~]# gzip houge.txt
[root@hadoop101 ~]# ls
----------
houge.txt.gz
(2)gunzip解壓縮文件
[root@hadoop101 ~]# gunzip houge.txt.gz
[root@hadoop101 ~]# ls
houge.txt
8.2 zip/unzip 壓縮
基本語法
$ zip [選項] XXX.zip 將要壓縮的內容 (功能描述:壓縮文件和目錄的命令)
$ unzip [選項] XXX.zip (功能描述:解壓縮文件)
選項說明
zip選項 | 功能 |
---|---|
-r | 壓縮目錄 |
unzip選項 | 功能 |
---|---|
-d<目錄> | 指定解壓後文件的存放目錄 |
經驗技巧
zip 壓縮命令在window/linux都通用,可以壓縮目錄且保留源文件。
案例
(1)壓縮 1.txt 和2.txt,壓縮後的名稱爲mypackage.zip
[root@hadoop101 opt]# touch bailongma.txt
[root@hadoop101 ~]# zip houma.zip houge.txt bailongma.txt
-----------------------------
adding: houge.txt (stored 0%)
adding: bailongma.txt (stored 0%)
[root@hadoop101 opt]# ls
-------------------
houge.txt bailongma.txt houma.zip
(2)解壓 mypackage.zip
[root@hadoop101 ~]# unzip houma.zip
----------------------
Archive: houma.zip
extracting: houge.txt
extracting: bailongma.txt
[root@hadoop101 ~]# ls
-----------------------
houge.txt bailongma.txt houma.zip
(3)解壓mypackage.zip到指定目錄-d
[root@hadoop101 ~]# unzip houma.zip -d /opt
[root@hadoop101 ~]# ls /opt/
8.3 tar 打包
基本語法
$ tar [選項] XXX.tar.gz 將要打包進去的內容 (功能描述:打包目錄,壓縮後的文件格式.tar.gz)
選項說明
選項 | 功能 |
---|---|
-z | 打包同時壓縮 |
-c | 產生.tar打包文件 |
-v | 顯示詳細信息 |
-f | 指定壓縮後的文件名 |
-x | 解包.tar文件 |
案例
(1)壓縮多個文件
[root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt
------------
houge.txt
bailongma.txt
[root@hadoop101 opt]# ls
----------------
houma.tar.gz houge.txt bailongma.txt
(2)壓縮目錄
[root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/
----------
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt
(3)解壓到當前目錄
[root@hadoop101 ~]# tar -zxvf houma.tar.gz
(4)解壓到指定目錄
[root@hadoop101 ~]# tar -zxvf xiyou.tar.gz - /opt
[root@hadoop101 ~]# ll /opt/
9 磁盤分區類
9.1 df 查看磁盤空間使用情況
df: disk free 空餘硬盤
基本語法
$ df 選項 (功能描述:列出文件系統的整體磁盤使用量,檢查文件系統的磁盤空間佔用情況)
選項說明
選項 | 功能 |
---|---|
-h | 以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示; |
案例
(1)查看磁盤使用情況
[root@hadoop101 ~]# df -h
------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 3.5G 11G 26% /
tmpfs 939M 224K 939M 1% /dev/shm
/dev/sda1 190M 39M 142M 22% /boot
9.2 fdisk 查看分區
基本語法
$ fdisk -l (功能描述:查看磁盤分區詳情)
選項說明
選項 | 功能 |
---|---|
-l | 顯示所有硬盤的分區列表 |
經驗技巧
該命令必須在root用戶下才能使用
功能說明
(1)Linux分區
Device:分區序列
Boot:引導
Start:從X磁柱開始
End:到Y磁柱結束
Blocks:容量
Id:分區類型ID
System:分區類型
(2)Win7分區,如圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YPYFruX1-1584500883771)(images/wps4.jpg)]
案例
(1)查看系統分區情況
[root@hadoop101 /]# fdisk -l
----------------------------
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e654
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 1332 10485760 83 Linux
/dev/sda3 1332 1593 2097152 82 Linux swap / Solaris
9.3 mount/umount 掛載/卸載
對於Linux用戶來講,不論有幾個分區,分別分給哪一個目錄使用,它總歸就是一個根目錄、一個獨立且唯一的文件結構。
Linux中每個分區都是用來組成整個文件系統的一部分,它在用一種叫做“掛載”的處理方法,它整個文件系統中包含了一整套的文件和目錄,並將一個分區和一個目錄聯繫起來,要載入的那個分區將使它的存儲空間在這個目錄下獲得。
1.掛載前準備(必須要有光盤或者已經連接鏡像文件)
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gEfbvtUt-1584500883772)(images/wps5.jpg)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2VTaZMaw-1584500883773)(images/wps6.jpg)]
基本語法
$ mount [-t vfstype] [-o options] device dir (功能描述:掛載設備)
$ umount 設備文件名或掛載點 (功能描述:卸載設備)
參數說明
參數 | 功能 |
---|---|
-t vfstype | 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有:光盤或光盤鏡像:iso9660DOS fat16文件系統:msdosWindows 9x fat32文件系統:vfatWindows NT ntfs文件系統:ntfsMount Windows文件網絡共享:smbfsUNIX(LINUX) 文件網絡共享:nfs |
-o options | 主要用來描述設備或檔案的掛接方式。常用的參數有:loop:用來把一個文件當成硬盤分區掛接上系統ro:採用只讀方式掛接設備rw:採用讀寫方式掛接設備 iocharset:指定訪問文件系統所用字符集 |
device | 要掛接(mount)的設備 |
dir | 設備在系統上的掛接點(mount point) |
案例
(1)掛載光盤鏡像文件
[root@hadoop101 ~]# mkdir /mnt/cdrom/ 建立掛載點
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 設備/dev/cdrom掛載到 掛載點 : /mnt/cdrom中
[root@hadoop101 ~]# ll /mnt/cdrom/
(2)卸載光盤鏡像文件
[root@hadoop101 ~]# umount /mnt/cdrom
5.設置開機自動掛載
[root@hadoop101 ~]# vi /etc/fstab
添加紅框中內容,保存退出。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IdeaSnIv-1584500883774)(images/wps7.jpg)]
10 進程線程類
進程是正在執行的一個程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔用一定的系統資源。
10.1 ps 查看當前系統進程狀態
ps:process status 進程狀態
基本語法
$ ps aux | grep xxx (功能描述:查看系統中所有進程)
$ ps -ef | grep xxx (功能描述:可以查看子父進程之間的關係)
選項說明
選項 | 功能 |
---|---|
-a | 選擇所有進程 |
-u | 顯示所有用戶的所有進程 |
-x | 顯示沒有終端的進程 |
功能說明
(1)ps aux顯示信息說明
USER:該進程是由哪個用戶產生的
PID:進程的ID號
%CPU:該進程佔用CPU資源的百分比,佔用越高,進程越耗費資源;
%MEM:該進程佔用物理內存的百分比,佔用越高,進程越耗費資源;
VSZ:該進程佔用虛擬內存的大小,單位KB;
RSS:該進程佔用實際物理內存的大小,單位KB;
TTY:該進程是在哪個終端中運行的。其中tty1-tty7代表本地控制檯終端,tty1-tty6是本地的字符界面終端,
tty7是圖形終端。pts/0-255代表虛擬終端。
STAT:進程狀態。常見的狀態有:R:運行、S:睡眠、T:停止狀態、s:包含子進程、+:位於後臺
START:該進程的啓動時間
TIME:該進程佔用CPU的運算時間,注意不是系統時間
COMMAND:產生此進程的命令名
(2)ps -ef顯示信息說明
UID:用戶ID
PID:進程ID
PPID:父進程ID
C:CPU用於計算執行優先級的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越 小,表明進程是I/O密集型運算,執行優先級會提高
STIME:進程啓動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:啓動進程所用的命令和參數
經驗技巧
如果想查看進程的CPU佔用率和內存佔用率,可以使用aux; 如果想查看進程的父進程ID可以使用ef;
案例
[root@hadoop101 datas]# ps aux
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8RxaPdAm-1584500883775)(images/wps8.jpg)]
[root@hadoop101 datas]# ps -ef
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8gpPouwX-1584500883775)(images/wps9.jpg)]
10.2 kill 終止進程
基本語法
$ kill [選項] 進程號 (功能描述:通過進程號殺死進程)
$ killall 進程名稱 (功能描述:通過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢時很有用)
選項說明
選項 | 功能 |
---|---|
-9 | 表示強迫進程立即停止 |
案例
(1)殺死瀏覽器進程
[root@hadoop101 桌面]# kill -9 5102
(2)通過進程名稱殺死進程
[root@hadoop101 桌面]# killall firefox
10.3 pstree 查看進程樹
pstree命令在centos minimal版中要單獨安裝
$ yum -y install psmisc
基本語法
$ pstree [選項]
選項說明
選項 | 功能 |
---|---|
-p | 顯示進程的PID |
-u | 顯示進程的所屬用戶 |
案例
(1)顯示進程pid
[root@hadoop101 datas]# pstree -p
(2)顯示進程所屬用戶
[root@hadoop101 datas]# pstree -u
10.4 top 查看系統健康狀態
基本語法
$ top [選項]
選項說明
選項 | 功能 |
---|---|
-d 秒數 | 指定top命令每隔幾秒更新。默認是3秒在top命令的交互模式當中可以執行的命令: |
-i | 使top不顯示任何閒置或者僵死進程。 |
-p | 通過指定監控進程ID來僅僅監控某個進程的狀態。 |
操作說明
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默認就是此項 |
M | 以內存的使用率排序 |
N | 以PID排序 |
q | 退出top |
查詢結果字段解釋
第一行信息爲任務隊列信息
內容 | 說明 |
---|---|
12:26:46 | 系統當前時間 |
up 1 day, 13:32 | 系統的運行時間,本機已經運行1天13小時32分鐘 |
2 users | 當前登錄了兩個用戶 |
load average: 0.00, 0.00, 0.00 | 系統在之前1分鐘,5分鐘,15分鐘的平均負載。一般認爲小於1時,負載較小。如果大於1,系統已經超出負荷。 |
第二行爲進程信息
Tasks: 95 total | 系統中的進程總數 |
---|---|
1 running | 正在運行的進程數 |
94 sleeping | 睡眠的進程 |
0 stopped | 正在停止的進程 |
0 zombie | 殭屍進程。如果不是0,需要手工檢查殭屍進程 |
第三行爲CPU信息
Cpu(s): 0.1%us | 用戶模式佔用的CPU百分比 |
---|---|
0.1%sy | 系統模式佔用的CPU百分比 |
0.0%ni | 改變過優先級的用戶進程佔用的CPU百分比 |
99.7%id | 空閒CPU的CPU百分比 |
0.1%wa | 等待輸入/輸出的進程的佔用CPU百分比 |
0.0%hi | 硬中斷請求服務佔用的CPU百分比 |
0.1%si | 軟中斷請求服務佔用的CPU百分比 |
0.0%st | st(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。 |
第四行爲物理內存信息
Mem: 625344k total | 物理內存的總量,單位KB |
---|---|
571504k used | 已經使用的物理內存數量 |
53840k free | 空閒的物理內存數量,我們使用的是虛擬機,總共只分配了628MB內存,所以只有53MB的空閒內存了 |
65800k buffers | 作爲緩衝的內存數量 |
第五行爲交換分區(swap)信息
Swap: 524280k total | 交換分區(虛擬內存)的總大小 |
---|---|
0k used | 已經使用的交互分區的大小 |
524280k free | 空閒交換分區的大小 |
409280k cached | 作爲緩存的交互分區的大小 |
案例
[root@hadoop101 neuedu]# top -d 1
[root@hadoop101 neuedu]# top -i
[root@hadoop101 neuedu]# top -p 2575
執行上述命令後,可以按P、M、N對查詢出的進程結果進行排序。
10.5 netstat 顯示網絡統計信息和端口占用情況
基本語法
$ netstat -anp |grep 進程號 (功能描述:查看該進程網絡信息)
$ netstat -nlp | grep 端口號 (功能描述:查看網絡端口號佔用情況)
選項說明
選項 | 功能 |
---|---|
-n | 拒絕顯示別名,能顯示數字的全部轉化成數字 |
-l | 僅列出有在listen(監聽)的服務狀態 |
-p | 表示顯示哪個進程在調用 |
案例
(1)通過進程號查看該進程的網絡信息
[root@hadoop101 hadoop-2.7.2]# netstat -anp | grep 火狐瀏覽器進程號
--------------
unix 2 [ ACC ] STREAM LISTENING **20670** 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
unix 3 [ ] STREAM CONNECTED 20673 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
unix 3 [ ] STREAM CONNECTED 20668 3115/firefox
unix 3 [ ] STREAM CONNECTED 20666 3115/firefox
(2)查看某端口號是否被佔用
[root@hadoop101 桌面]# netstat -nlp | grep 20670
----------------------------
unix 2 [ ACC ] STREAM LISTENING 20670 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
11 crond 系統定時任務
11.1 crond 服務管理
重新啓動crond服務
[root@hadoop101 ~]# sytemctl restart crond
11.2 crontab 定時任務設置
基本語法
$ crontab [選項]
選項說明
選項 | 功能 |
---|---|
-e | 編輯crontab定時任務 |
-l | 查詢crontab任務 |
-r | 刪除當前用戶所有的crontab任務 |
參數說明
[root@hadoop101 ~]# crontab -e
(1)進入crontab編輯界面。會打開vim編輯你的工作。
* * * * * 執行的任務
項目 | 含義 | 範圍 |
---|---|---|
第一個“*” | 一小時當中的第幾分鐘 | 0-59 |
第二個“*” | 一天當中的第幾小時 | 0-23 |
第三個“*” | 一個月當中的第幾天 | 1-31 |
第四個“*” | 一年當中的第幾月 | 1-12 |
第五個“*” | 一週當中的星期幾 | 0-7(0和7都代表星期日) |
(2)特殊符號
特殊符號 | 含義 |
---|---|
* | 代表任何時間。比如第一個“*”就代表一小時中每分鐘都執行一次的意思。 |
, | 代表不連續的時間。比如“0 8,12,16 * * * 命令”,就代表在每天的8點0分,12點0分,16點0分都執行一次命令 |
- | 代表連續的時間範圍。比如“0 5 * * 1-6命令”,代表在週一到週六的凌晨5點0分執行命令 |
*/n | 代表每隔多久執行一次。比如“*/10 * * * * 命令”,代表每隔10分鐘就執行一遍命令 |
(3)特定時間執行命令
時間 | 含義 |
---|---|
45 22 * * * 命令 | 在22點45分執行命令 |
0 17 * * 1 命令 | 每週1 的17點0分執行命令 |
0 5 1,15 * * 命令 | 每月1號和15號的凌晨5點0分執行命令 |
40 4 * * 1-5 命令 | 每週一到週五的凌晨4點40分執行命令 |
*/10 4 * * * 命令 | 每天的凌晨4點,每隔10分鐘執行一次命令 |
0 0 1,15 * 1 命令 | 每月1號和15號,每週1的0點0分都會執行命令。注意:星期幾和幾號最好不要同時出現,因爲他們定義的都是天。非常容易讓管理員混亂。 |
案例
(1)每隔1分鐘,向/root/bailongma.txt文件中添加一個11的數字
$ */1 * * * * /bin/echo ”11” >> /root/bailongma.txt
軟件包管理
1 RPM
1.1 RPM概述
RPM(RedHat Package Manager),RedHat軟件包管理工具,類似windows裏面的setup.exe是Linux這系列操作系統裏面的打包安裝工具,它雖然是RedHat的標誌,但理念是通用的。
RPM包的名稱格式:
Apache-1.3.23-11.i386.rpm
- “apache” 軟件名稱
- “1.3.23-11”軟件的版本號,主版本和此版本
- “i386”是軟件所運行的硬件平臺,Intel 32位微處理器的統稱
- “rpm”文件擴展名,代表RPM包
1.2 RPM查詢命令(rpm -qa)
基本語法
$ rpm -qa (功能描述:查詢所安裝的所有rpm軟件包)
經驗技巧
由於軟件包比較多,一般都會採取過濾。rpm -qa | grep rpm軟件包
案例
(1)查詢firefox軟件安裝情況
[root@hadoop101 Packages]# rpm -qa |grep firefox
-------------
firefox-45.0.1-1.el6.centos.x86_64
1.3 RPM卸載命令(rpm -e)
基本語法
$ rpm -e RPM軟件包
$ rpm -e --nodeps 軟件包
選項說明
選項 | 功能 |
---|---|
-e | 卸載軟件包 |
–nodeps | 卸載軟件時,不檢查依賴。這樣的話,那些使用該軟件包的軟件在此之後可能就不能正常工作了。 |
案例
(1)卸載firefox軟件
[root@hadoop101 Packages]# rpm -e firefox
1.4 RPM安裝命令(rpm -ivh)
基本語法
$ rpm -ivh RPM包全名
選項說明
選項 | 功能 |
---|---|
-i | -i=install,安裝 |
-v | -v=verbose,顯示詳細信息 |
-h | -h=hash,進度條 |
–nodeps | –nodeps,不檢測依賴進度 |
案例
(1)安裝firefox軟件
[root@hadoop101 Packages]# pwd
-------------------------------
/media/CentOS_6.8_Final/Packages
[root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
---------------------------------------
warning: firefox-45.0.1-1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:firefox ########################################### [100%]
2 YUM倉庫配置
2.1 YUM概述
YUM(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝,
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-eXeZvpht-1584500883776)(images/wps10.png)]
2.2 YUM的常用命令
基本語法
$ yum [選項] [參數]
選項說明
選項 | 功能 |
---|---|
-y | 對所有提問都回答“yes” |
參數說明
參數 | 功能 |
---|---|
install | 安裝rpm軟件包 |
update | 更新rpm軟件包 |
check-update | 檢查是否有可用的更新rpm軟件包 |
remove | 刪除指定的rpm軟件包 |
list | 顯示軟件包信息 |
clean | 清理yum過期的緩存 |
deplist | 顯示yum軟件包的所有依賴關係 |
案例實操
(1)採用yum方式安裝firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
2.3 修改網絡YUM源
默認的系統YUM源,需要連接國外apache網站,網速比較慢,可以修改關聯的網絡YUM源爲國內鏡像的網站,比如網易163。
1.前期文件準備
(1)前提條件linux系統必須可以聯網
(2)在Linux環境中訪問該網絡地址:http://mirrors.163.com/.help/centos.html,在使用說明中點擊CentOS6->再點擊保存,
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-TjziQfM1-1584500883776)(images/wps11.jpg)]
(3)查看文件保存的位置,
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-u4z5s3Cv-1584500883777)(images/wps12.jpg)] [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Flvj9YFa-1584500883777)(images/wps13.jpg)]
在打開的終端中輸入如下命令,就可以找到文件的保存位置。
[neuedu@hadoop101 下載]$ pwd
-----------------
/home/neuedu/下載
2.替換本地yum文件
(1)把下載的文件移動到/etc/yum.repos.d/目錄
[root@hadoop101 下載]# mv CentOS6-Base-163.repo /etc/yum.repos.d/
(2)進入到/etc/yum.repos.d/目錄
[root@hadoop101 yum.repos.d]# pwd
--------------------------
/etc/yum.repos.d
(3)用CentOS6-Base-163.repo替換CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo
3.安裝命令
[root@hadoop101 yum.repos.d]#yum clean all
[root@hadoop101 yum.repos.d]#yum makecache
yum makecache就是把服務器的包信息下載到本地電腦緩存起來
4.測試
[root@hadoop101 yum.repos.d]#yum list | grep firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64