《Linux入門與基礎》課程教案

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 進入行首插入模式輸入註釋符號如 //#,輸入完畢之後,按兩下 ESCVim 會自動將你選中的所有行首都加上註釋,保存退出完成註釋。

取消註釋:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章