[root@localhost ~]# - []:這是提示符的分隔符號,沒有特殊含義。 - root:顯示的是當前的登陸用戶,使用的是root用戶登陸。 - @:分隔符號,沒有特殊含義。 - localhost:當前系統的簡寫主機名(完整主機名是localhost.localdomain)。 - ~:表明用戶當前所在的目錄,此例中用戶當前所在的目錄是家目錄。 - #:命令提示符。超級用戶是#,普通用戶是$ PS1="\[\e[1;36m\][\[\e[1;32m\]\u@\[\e[0m\]\[\e[1;31m\]\h \e[0m\W\[\e[1;36m\]]\[\e[31m\]# \[\e[1;0m\]"
[root@localhost ~]# 命令[選項] [參數] [root@localhost ~]# ls -l 總用量 44 -rw-------. 1 root root 1207 1月14 18:18 anaconda-ks.cfg #權限引用計數 全部者 所屬組 大小 文件修改時間 文件名
Tab 鍵 | 命令或文件補全 |
---|---|
ctrl + A | 把光標移動到命令行開頭。若是咱們輸入的命令過長,想要把光標移 動到命令行開頭時使用。 |
ctrl + E | 把光標移動到命令行結尾。 |
ctrl + C | 強制終止當前的命令 |
ctrl + L | 清屏,至關於 clear 命令。 |
ctrl + U | 刪除或剪切光標以前的命令。我輸入了一行很長的命令,不用使用退 格鍵一個一個字符的刪除,使用這個快捷鍵會更加方便 |
ctrl + K | 刪除或剪切光標以後的命令 |
ctrl + Y | 粘貼 ctrl+U 剪切的內容。 |
ctrl + F | 光標向後移動一個字符 |
ctrl + B | 光標向前移動一個字符 |
ctrl + H | 光標向前刪除一個字符 |
ctrl + D | 光標向後刪除一個字符 |
主要做用是顯示目錄下的內容。html
參數:node
-a: 顯示全部文件 --color=when: 支持顏色輸出,when的值默認是always(總顯示顏色),也能夠是never(從不顯示顏色)和auto(自動) -d: 顯示目錄信息,而不是目錄下的文件 -h: 人性化顯示,按照咱們習慣的單位顯示文件大小 -i: 顯示文件的i節點號 -l: 長格式顯示
做用:切換所在目錄python
絕對路徑和相對路徑linux
絕對路徑:以跟目錄爲參照物,從根目錄開始,一級一級進入目錄shell
相對路徑:以當前目錄做爲參照物,進行目錄查找vim
用法:安全
cd 目錄名稱: 切換到你要進入的目錄下服務器
特殊符號 | 做用 |
---|---|
~ | 用戶的家目錄 |
- | 上一次所在目錄 |
. | 當前目錄 |
.. | 上級目錄 |
做用:查詢所在工做目錄網絡
[root@localhost ~]# pwd /root
做用:建立空目錄less
[root@localhost ~]# mkdir Test [root@localhost ~]# ls Test [root@localhost ~]# mkdir -p /A/B/C # -p參數 建立多級目錄
做用: 刪除空目錄,rmdir命令的做用十分有限,由於只能刪除空目錄,因此一旦目錄中有內容,就會報錯
[root@localhost ~]# rmdir Test [root@localhost ~]# ls # 文件已經刪除
做用:建立空文件或修改文件時間
[root@localhost ~]# touch test.txt [root@localhost ~]# ls -rw-r--r-- 1 root root 0 May 21 18:42 test.txt
做用:stat是查看文件詳細信息的命令,並且能夠看到文件的三個時間
[root@localhost ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg" 大小:1453 塊:8 IO 塊:4096 普通文件 設備:803h/2051dInode:33574991 硬連接:1 權限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root) 環境:system_u:object_r:admin_home_t:s0 最近訪問:2018-11-06 23:22:23.409038121 +0800 #訪問文件的時間,cat等 最近更改:2018-10-24 00:53:08.760018638 +0800 #數據修改時間 最近改動:2018-10-24 00:53:08.760018638 +0800 #狀態修改時間 建立時間:-
做用:查看文件的內容
參數 | 做用 |
---|---|
-A | 至關於-vET選項的整合,用於列出全部隱藏符號 |
-E | 列出每行結尾的回車符$ |
-n | 顯示行號 |
-T | 把Tab鍵用^I顯示出來 |
-v | 列出特殊字符 |
做用:分屏顯示文件內容。
經常使用交互式命
b | 向上翻頁。 |
---|---|
/字符串 | 搜索指定的字符串 |
f 或空格 | 向下翻頁 |
q | 退出 |
回車鍵 | 向下滾動一行 |
做用:less命令和more命令相似,只是more是分屏顯示命令,而less是分行顯示命令
做用:顯示文件開頭的內容。默認顯示10行
參數 | 做用 |
---|---|
-n 行數 | 從文件頭開始,顯示指定行數 |
-v | 顯示文件名 |
做用:顯示文件結尾的內容。
參數 | 做用 |
---|---|
-n | 行數從文件頭開始,顯示指定行數 |
-f | 監聽文件的新增內容 |
做用:在文件之間創建連接。
[root@localhost ~]# ln [選項] 源文件目標文件 選項: -s: 創建軟連接文件。若是不加「-s」選項,則創建硬連接文件 -f: 強制。若是目標文件已經存在,則刪除目標文件後再創建連接文件
硬連接與軟鏈接的特徵
硬連接特徵:
軟連接特徵:
做用: rm是強大的刪除命令,不只能夠刪除文件,也能夠刪除目錄
[root@localhost ~]# rm [選項] 文件或目錄 選項: -f: 強制刪除(force) -i: 交互刪除,在刪除以前會詢問用戶
做用:複製文件和目錄
[root@localhost ~]# cp [選項] 源文件目標文件 選項: -a: 至關於-dpr選項的集合,這幾個選項咱們一一介紹 -d: 若是源文件爲軟連接(對硬連接無效),則複製出的目標文件也爲軟連接 -i: 詢問,若是目標文件已經存在,則會詢問是否覆蓋 -p: 複製後目標文件保留源文件的屬性(包括全部者、所屬組、權限和時間) -r: 遞歸複製,用於複製目錄
做用:移動文件、目錄或者更名
[root@localhost ~]# mv [選項] 源文件目標文件 選項: -f: 強制覆蓋,若是目標文件已經存在,則不詢問,直接強制覆蓋 -i: 交互移動,若是目標文件已經存在,則詢問用戶是否覆蓋(默認選項) -v: 顯示詳細信息
權限位的含義
[root@localhost ~]# ls -l install.log -rw-r--r--. 1 root root 24772 1月14 18:17 install.log
第1位表明文件類型。Linux不像Windows使用擴展名錶示文件類型,而是使用權限位的第1位表示文件類型。雖然Linux文件的種類不像Windows中那麼多,可是分類也很多,詳細狀況可使用「info ls」命令查看。常見的文件類型。
- | 普通文件。 |
---|---|
c | 字符設備文件。這也是特殊設備文件,輸入設備通常都是這種文件,如鼠標、鍵盤等。 |
b | 塊設備文件。這是一種特殊設備文件,存儲設備都是這種文件,如分區文件/dev/sda1就是這種文件 |
d | 目錄文件。Linux中一切皆文件,因此目錄也是文件的一種 |
p | 管道符文件。這是一種很是少見的特殊設備文件 |
l | 軟連接文件 |
s | 套接字文件。這也是一種特殊設備文件,一些服務支持Socket訪問,就會產生這樣的文件 |
第2~4位表明文件全部者的權限。
r | 表明read,是讀取權限 |
---|---|
w | 表明write,是寫權限 |
x | 表明execute,是執行權限 |
若是有字母,則表明擁有對應的權限;若是是「-」,則表明沒有對應的權限
第5~7位表明文件所屬組的權限,一樣擁有「rwx」權限
第8~10位表明其餘人的權限,一樣擁有「rwx」權限
做用:修改文件的權限模式
[root@localhost ~]# chmod [選項] 權限模式文件名 選項: -R: 遞歸設置權限,也就是給子目錄中的全部文件設定權限
chmod命令的權限模式的格式是「[ugoa][[+-=][perms]]」,也就是「[用戶身份][[賦予方式][權限]]」的格式
用戶身份:
u | 表明全部者(user) |
---|---|
a | 表明所有身份(all) |
g | 表明所屬組(group) |
o | 表明其餘人(other) |
+ | 加入權限 |
---|---|
= | 設置權限 |
- | 減去權限。 |
權限:
r | 讀取權限(read) |
---|---|
x | 執行權限(execute) |
w | 寫權限(write)。 |
例子:
# 給test.txt文件全部者添加執行權限 [root@localhost ~]# chmod u+x test.txt # 給test.txt文件全部者減去執行權限 [root@localhost ~]# chmod u-x test.txt
4 | 表明「r」權限。 |
---|---|
2 | 表明「w」權限。 |
1 | 表明「x」權限 |
例子:
[root@localhost ~]# chmod 755 test.txt
644:這是文件的基本權限,表明全部者擁有讀、寫權限,而所屬組和其餘人擁有隻讀權限
755:這是文件的執行權限和目錄的基本權限,表明全部者擁有讀、寫和執行權限,而所屬組和其餘人擁有讀和執行權限
777:這是最大權限。在實際的生產服務器中,要盡力避免給文件或目錄賦予這樣的權限,這會形成必定的安全隱患
讀、寫、執行權限對文件和目錄的做用是不一樣的
權限含義的解釋:
目錄的可用權限:
目錄的可用權限其實只有如下幾個。
0:任何權限都不賦予。
5:基本的目錄瀏覽和進入權限。
7:徹底權限。
做用:修改文件和目錄的全部者和所屬組
[root@localhost ~]# chown [選項] 全部者:所屬組文件或目錄 選項: -R: 遞歸設置權限,也就是給子目錄中的全部文件設置權限 [root@localhost ~]# ll -rw-r--r-- 1 root root 342 6月 15 11:37 test.txt # 改變text.txt文件的全部者和所屬組 [root@localhost ~]# chown python:python test.txt # 再查看就test.txt文件的全部者和所屬組就變成python [root@localhost ~]# ll -rw-r--r-- 1 python python 342 6月 15 11:37 test..txt ## 注意!python用戶要存在
普通用戶不能修改文件的全部者,哪怕本身是這個文件的全部者也不行。
普通用戶能夠修改全部者是本身的文件的權限。
做用:修改文件和目錄的所屬組
[root@localhost ~]# ll -rw-r--r-- 1 python python 342 6月 15 11:37 test.txt [root@localhost ~]# groupadd test # 建立test組 [root@localhost ~]# chgrp test test.txt [root@localhost ~]# ll -rw-r--r-- 1 python test 342 6月 15 11:37 test.txt # 文件的所屬組已經變成test # chown也能夠實現 [root@localhost ~]# chown python.test test.txt [root@localhost ~]# ll -rw-r--r-- 1 python test 342 6月 15 11:37 test.txt
#用八進制數值顯示umask權限 [root@localhost ~]# umask 0022
文件和目錄的最大權限
umask權限的計算方法
umask默認權限須要使用二進制進行邏輯與和邏輯非聯合運算才能夠獲得正確的新建文件和目錄的默認權限
第一種狀況: umask值的每一位爲偶數
## 文件的權限計算 [root@localhost ~]# umask 0022 [root@localhost ~]# touch a.txt # a.txt的權限=文件的最大權限(666) - umask權限(022)=644 [root@localhost ~]# ll -rw-r--r-- 1 root root 0 6月 16 13:51 a.txt # 改變umask的值 [root@localhost ~]# umask 044 [root@localhost ~]# umask 0044 [root@localhost ~]# touch b.txt # 此時b.txt的權限爲文件的最大權限(666) - umask權限(044)=622 -rw--w--w- 1 root root 0 6月 16 14:00 b.txt # 總結:umask的值的每一位爲偶數時,新建文件的權限=文件的最大權限 - umask的值, 新建目錄的權限=目錄的最大權限(777) - umask值(022) ## 目錄的權限計算 [root@localhost ~]# umask 022 [root@localhost ~]# umask 0022 [root@localhost ~]# mkdir Test # 新建目錄的權限=目錄的最大權限(777) - umask值(022) = 755 [root@localhost ~]# ll drwxr-xr-x 2 root root 6 6月 16 14:10 Test
第二種狀況: umask值的每一位爲奇數
## 文件的權限計算 [root@localhost ~]# umask 043 [root@localhost ~]# umask 0043 [root@localhost ~]# touch c.txt # 此時c.txt的權限爲文件的最大權限(666) - umask權限(043)=623,在結果的奇數位上+1就變成624 -rw--w--r- 1 root root 0 6月 16 14:00 c.txt #umask的值的每一位爲奇數時,新建文件的權限=文件的最大權限 666減去umask值,而後在結果的基礎上,在umask的奇數位上+1 ## 目錄的權限計算 [root@localhost ~]# umask 043 [root@localhost ~]# umask 0043 [root@localhost ~]# mkdir Test # 新建目錄的權限=目錄的最大權限(777) - umask值(043) = 734 # 目錄不影響 [root@localhost ~]# ll drwx-wxr-- 2 root root 6 6月 16 14:14 ABC
man是最多見的幫助命令,顯示命令的幫助手冊
參數:
-f | 查看命令擁有哪一個級別的幫助 |
---|---|
-k | 查看和命令相關的全部幫助 |
man命令的快捷鍵:
上箭頭 | 向上移動一行 |
---|---|
下箭頭 | 向下移動一行 |
PgUp | 向上翻一頁 |
PgDn | 向下翻一頁 |
g | 移動到第一頁 |
G | 移動到最後一頁 |
q | 退出 |
/字符串 | 從當前頁向下搜索字符串 |
?字符串 | 從當前頁向上搜索字符串 |
n | 當搜索字符串時,可使用n鍵找到下一個字符串 |
N | 當搜索字符串時,使用N鍵反向查詢字符串。也就是說,若是使用「/字符串」方式搜索,則N鍵表示向上搜索字符串;若是使用「?字符串」方式搜索,則N鍵表示向下搜索字符串 |
man命令的幫助級別:
級 別 | 做 用 |
---|---|
1 | 普通用戶能夠執行的系統命令和可執行文件的幫助 |
2 | 內核能夠調用的函數和工具的幫助 |
3 | C語言函數的幫助 |
4 | 設備和特殊文件的幫助 |
5 | 配置文件的幫助 |
6 | 遊戲的幫助(我的版的Linux中是有遊戲的) |
7 | 雜項的幫助 |
8 | 超級用戶能夠執行的系統命令的幫助 |
9 | 內核的幫助 |
info命令的幫助信息是一套完整的資料,每一個單獨命令的幫助信息只是這套完整資料中的某一個小章節。
infor命令的快捷鍵:
上箭頭 | 向上移動一行 |
---|---|
下箭頭 | 向下移動一行 |
PgUp | 向上翻一頁 |
PgDn | 向下翻一頁 |
Tab | 在有「*」符號的節點間進行切換 |
回車 | 進入有「*」符號的子頁面,查看詳細幫助信息 |
u | 進入上一層信息(回車是進入下一層信息) |
n | 進入下一小節信息 |
p | 進入上一小節信息 |
? | 查看幫助信息 |
q | 退出info信息 |
大多數命令均可以使用「--help」選項來查看幫助
[root@localhost ~]# ls --help
做用:查找二進制命令路徑、源文件和幫助文檔的命令
[root@localhost ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
做用:查找到二進制命令路徑的同時,若是這個命令有別名,則能夠找到別名命令
[root@localhost ~]# which pwd alias grep='grep --color=auto' /usr/bin/grep
做用:搜索文件。
按文件名查找文件和目錄:
## 按名稱查找文件 [root@localhost ~]# find 路徑信息 -type 文件類型 -選項 "文件名" # -name選項 find 路徑信息 -type f -iname "文件名" # 按照文件名搜索,不區分文件名大小寫 find 路徑信息 -type f -name "文件名" # 按照文件名搜索, 精確查找 find 路徑信息 -type f -name "*文件名*" # 按照文件名搜索, 模糊查找 find 路徑信息 -type f -name "文*件名*" # 按照文件名搜索, 模糊查找 # 在/data下查找hello.txt文件 [root@localhost ~]# find /data -type f -name "hello.txt" ## 按名稱查找目錄 find 路徑信息 -type d -name "目錄名" # 按照目錄名搜索 # 在/data下查找Test目錄 [root@localhost ~]# find /data -type d -name "Test"
按文件大小查找文件:
[root@localhost ~]# find 路徑信息 -type 文件類型 -size [+|-]單位 # -size選項的單位: 'b':這是默認單位,若是單位爲b或不寫單位,則按照512 Byte搜索 'c':搜索單位是c,按照字節搜索 'w':搜索單位是w,按照雙字節(中文)搜索 'k':按照KB單位搜索,必須是小寫的k 'M':按照MB單位搜索,必須是大寫的M 'G':按照GB單位搜索,必須是大寫的G # 在/data目錄下查找大於50MB的文件 [root@localhost ~]# find /data -type f -size +50M
按文件修改時間查找:
[root@localhost ~]# find 路徑信息 -type 文件類型 +|-時間 搜索內容 # 修改時間: 'mtim(modification timee)': 當修改文件的內容數據的時候,就會更新這個時間,而更改權限或者屬性,mtime不會改變,這就是和ctime的區別 'ctime(status time)':當修改文件的權限或者屬性的時候,就會更新這個時間 'atime(access time)':訪問文件時如cat,atime早於mtime或者ctime,會修改這個時間 # +-時間的含義: -5:表明5天內修改的文件 +5:表明6天前修改的文件。 5:表明前5~6天那一天修改的文件。 # 查找/data下7天前建立的文件 [root@localhost ~]# find /data -type f -mtime +6
按文件權限搜索:
# 查找/data下權限爲755的文件 [root@localhost ~]# find /data -type f -perm 755
按照全部者和所屬組搜索:
# 查找/data下用戶名爲root的全部文件 [root@localhost ~]# find /data -type f -user root -uid 用戶ID: 按照用戶ID查找全部者是指定ID的文件 -gid 組ID: 按照用戶組ID查找所屬組是指定ID的文件 -user 用戶名: 按照用戶名查找全部者是指定用戶的文件 -group 組名: 按照組名查找所屬組是指定用戶組的文件 -nouser: 查找沒有全部者的文件
在 Linux 中能夠識別的常見壓縮格式有十幾種,好比「.zip」「 .gz」「 .bz2」 「.tar」 「.tar.gz」「 .tar.bz2」 等。
zip壓縮:
命令格式:zip [選項] 壓縮包名 源文件或源目錄
選項: -r
壓縮目錄
# 壓縮文件 [root@m01 ~]# zip t1.txt.zip t1.txt adding: t1.txt (deflated 45%) [root@m01 ~]# ll |grep t1 -rw-r--r-- 1 root root 459 Jun 29 13:25 t1.txt -rw-r--r-- 1 root root 415 Jun 29 14:36 t1.txt.zip # 壓縮目錄 [root@m01 ~]# zip -r linux.zip linux/ [root@m01 ~]# ll |grep linux drwxr-xr-x 4 root root 39 Jun 26 23:51 linux -rw-r--r-- 1 root root 29255 Jun 29 14:42 linux.zip
unzip解壓縮
命令格式:unzip [選項] 壓縮包名
選項:-d
指定解壓目錄
# 把當前目錄下的linux.zip解壓到/tmp下 [root@m01 ~]# unzip -d /tmp linux.zip
".tar"格式的打包和解打包都使用 tar 命令,區別只是選項不一樣
tar打包
[root@m01 ~]# tar [選項] [-f 壓縮包名] 源文件或目錄 選項: -c: 打包 -f: 指定壓縮包的文件名。壓縮包的擴展名是用來給管理員識別格式的,因此必定要正確指定擴展名 -v: 顯示打包文件過程 # 打包文件 [root@m01 ~]# tar -cvf t1.txt.tar t1.txt t1.txt [root@m01 ~]# ll |grep t1.txt -rw-r--r-- 1 root root 459 Jun 29 13:25 t1.txt -rw-r--r-- 1 root root 10240 Jun 29 14:57 t1.txt.tar # 打包目錄 [root@m01 ~]# tar -cvf linux.tar linux linux/ ...... [root@m01 ~]# ll |grep linux.tar -rw-r--r-- 1 root root 81920 Jun 29 14:58 linux.tar
tar解打包
[root@localhost ~]# tar [選項] 壓縮包 選項: -x: 解打包 -f: 指定壓縮包的文件名 -v: 顯示解打包文件過程 -t: 測試,就是不解打包,只是查看包中有哪些文件 -C(大) 目錄: 指定解打包位置 # 解壓到當前目錄下 [root@m01 ~]# tar -xvf linux.tar # 解壓到指定目錄下 /tmp [root@m01 ~]# tar tar -xvf linux.tar -C /tmp
使用 tar 命令直接打包壓縮
[root@localhost ~]# tar [選項] 壓縮包 源文件或目錄 選項: -z: 壓縮和解壓縮「.tar.gz」格式 -j: 壓縮和解壓縮「.tar.bz2」格式 # .tar.gz 」格式 [root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/ # 解壓縮與解打包「 .tar.gz 」格式 [root@localhost ~]# tar -zxvf tmp.tar.gz # .tar.bz2格式 [root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/ [root@localhost ~]# tar -jxvf tmp.tar.bz2
做用:刷新文件系統緩衝區
做用:關機和重啓
[root@localhost ~]# shutdown [選項] 時間 [警告信息] 選項: -c: 取消已經執行的shutdown命令 -h: 關機 -r: 重啓
做用:重啓系統
IP 地址是計算機在互聯網中惟一的地址編碼。每臺計算機若是須要接入網絡和其餘計算機進行數 據通訊,就必須配置惟一的公網 IP 地址
1. setup工具
2. 手工配置
[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE:設備名稱 TYPE:網絡類型(以太網等) ONBOOT:開機時是否自動啓用(yes/no) HWADDR:MAC地址(物理地址) BOOTPROTO:網卡獲取配置的方式(dhcp/static/none/其餘) IPADDR:IP地址 NETMASK:子網掩碼 GATEWAY:網關地址 BROADCAST:廣播地址 DNS:DNS服務器地址 NAME:網卡名稱 USERCTL:普通用戶是否能夠控制(yes/no) [root@m01 ~]# service network restart ## 啓動失敗解決 # 刪除MAC地址行 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 刪除MaC地址和UUID綁定文件 [root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules #重啓Linux [root@localhost ~]# reboot
1. nmtui工具
沒有就手動安裝:yum install NetworkManager-tui
2. 手動 配置
[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet # 以太網 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #配置靜態IP地址 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME=ens33 # 網卡名稱 DEVICE=ens33 ONBOOT=yes # 開機自啓動 IPADDR=192.168.1.61 # IP地址 PREFIX=24 # 子網掩碼 GATEWAY=192.168.1.2 # 網關 DNS1=114.114.114.114 #DNS DNS2=8.8.8.8 #DNS # 重啓網絡服務 [root@m01 ~]# systemctl restart network ## 啓動失敗解決 # 刪除MAC地址行和UUID [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 關閉NetworkManager服務 [root@m01 ~]# systemctl stop NetworkManager [root@localhost ~]# reboot
做用:查看 IP 地址的信息
[root@localhost ~]# ifconfig eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #標誌 最大傳輸單元 inet 192.168.252.20 netmask 255.255.255.0 broadcast 192.168.252.255 #IP地址 子網掩碼 廣播地址 inet6 fe80::546e:994b:30c:e2f7 prefixlen 64 scopeid 0x20<link> #IPv6地址(目前沒有生效) ether 00:0c:29:aa:d2:96 txqueuelen 1000 (Ethernet) #MAC地址 RX packets 3728 bytes 310958 (303.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 #接收的數據包狀況 TX packets 3051 bytes 1495119 (1.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #發送的數據包狀況 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 #本地迴環網卡 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 8 bytes 696 (696.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 696 (696.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
做用:經過 ICMP 協議進行網絡探測,測試網絡中主機的通訊狀況
[root@localhost ~]# ping [選項] IP 選項: -b: 後面加入廣播地址,用於對整個網段進行探測 -c 次數: 用於指定ping的次數 -s 字節: 指定探測包的大小 [root@localhost ~]# ping -b -c 3 192.168.103.255 WARNING: pinging broadcast address PING 192.168.103.255 (192.168.103.255) 56(84) bytes of data. 64 bytes from 192.168.103.199: icmp_seq=1 ttl=64 time=1.95 ms 64 bytes from 192.168.103.168: icmp_seq=1 ttl=64 time=1.97 ms (DUP!) 64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29 ms (DUP!) ......
做用:
netstat 是網絡狀態查看命令,既能夠查看到本機開啓的端口,也能夠查看有哪些客戶端鏈接
[root@localhost ~]# netstat [選項] 選項: -a: 列出全部網絡狀態,包括Socket程序 -c 秒數: 指定每隔幾秒刷新一次網絡狀態 -n: 使用IP地址和端口號顯示,不使用域名與服務名 -p: 顯示PID和程序名 -t: 顯示使用TCP協議端口的鏈接情況 -u: 顯示使用UDP協議端口的鏈接情況 -l: 僅顯示監聽狀態的鏈接 -r: 顯示路由表 # 經常使用組合 [root@localhost ~]# netstat -tulnp
做用:向其餘用戶發送信息
#向在pts/1(遠程終端 1 )登陸的user1用戶發送信息,使用「 Ctrl+D 」 快捷鍵 保存發送的數據 [root@localhost ~]#write user1 pts/1 hello I will be in 5 minutes to restart, please save your data
做用:write 命令用於給指定用戶發送信息,而 wall 命令用於給全部登陸用戶發送信息,包括本身
[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"
mail 是 Linux 的郵件客戶端命令,能夠利用這個命令給其餘用戶發送郵件
做用:發送和接收電子郵件
[root@localhost ~]# mail user1 Subject: hello < - 郵件標題 Nice to meet you! < - 郵件具體內容 . <- 使用「.」來結束郵件輸入 #發送郵件給user1用戶 #咱們接收到的郵件都保存在「/var/spool/mail/用戶名」中,每一個用戶都有一個以本身的用戶名命名的郵箱。
查看郵件
[root@localhost ~]# mail Heirloom Mail version 12.4 7/29/08.Type ?for help. "/var/spool/mail/root": 1 message 1 new >N 1 root Mon Dec 5 22:45 68/1777 "test mail" <-以前收到的郵件 >N 2 root Mon Dec 5 23:08 18/602 "hello" #未閱讀編號 發件人 時間 標題 & <-等待用戶輸入命令
能夠看到已經接收到的郵件列表,「N」表明未讀郵件,若是是已經閱讀過的郵件,則前面是不會有這個「N」的;以後的數字是郵件的編號,咱們主要經過這個編號來進行郵件的操做。若是咱們想要查看第一封郵件,則只需輸入郵件的編號「1」就能夠了。
在交互命令中執行「?」,能夠查看這個交互界面支持的命令
[root@localhost ~]# mail Heirloom Mail version 12.4 7/29/08.Type ?for help. "/var/spool/mail/root": 1 message 1 new >N 1 root Mon Dec 5 22:45 68/1777 "test mail" <-以前收到的郵件 >N 2 root Mon Dec 5 23:08 18/602 "hello" #未閱讀編號 發件人 時間 標題 & ? <-輸入"?"查看幫助 mail commands type<message list> type messages next goto and type next message from<message list> give head lines of messages headers print out active message headers ...... # headers:列出郵件標題列表,直接輸入「h」命令便可。 # delete:刪除指定郵件。好比想要刪除第二封郵件,能夠輸入「d 2」。 # save:保存郵件。能夠把指定郵件保存成文件,如「s 2 /tmp/test.mail」。 # quit:退出,並把已經操做過的郵件進行保存。好比移除已刪除郵件、保存已閱讀郵件等。 # exit:退出,可是不保存任何操做。
安裝郵件服務 yum -y install postfix
登錄163郵箱,開啓POP3/SMTP郵件服務
新增受權碼,驗證信息;記錄這個碼,配置的時候用
編寫配置文件,重啓postfix.service服務,測試
# 在最後添加如下內容 [root@localhost ~]# vim /etc/mail.rc set from=xxx@163.com # 郵箱地址 set smtp=smtp.163.com # 默認就行 set smtp-auth-user=xxx@163.com # 認證用戶,也是郵件地址 set smtp-auth-password=xxx # 你開啓SMTP時候的受權碼 set smtp-auth=login # 重啓服務 [root@localhost ~]# systemctl restart postfix.service # 測試發送郵件,並能成功接受到郵件消息 [root@localhost ~]# echo "test mail !!!" |mail -s xxx@163.com
系統中有一些重要的痕跡日誌文件,如/var/log/wtmp、/var/run/utmp、/var/log/btmp、/var/log/lastlog等日誌文件,若是你用vim打開這些文件,你會發現這些文件是二進制亂碼。這是因爲這些日誌中保存的是系統的重要登陸痕跡,包括某個用戶什麼時候登陸了系統,什麼時候退出了系統,錯誤登陸等重要的系統信息。這些信息要是能夠經過vim打開,就能編輯,這樣痕跡信息就不許確,因此這些重要的痕跡日誌,只能經過對應的命令來進行查看。
顯示系統中正在登錄的用戶信息的命令,這個命令查看的痕跡日誌是/var/run/utmp
做用: 顯示登錄用戶,查看他正在作什麼操做
[root@m01 ~]# w 12:56:10 up 3:12, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.1 11:04 2.00s 0.64s 0.01s w python pts/1 192.168.1.41 11:15 1:22 0.72s 0.50s vim dead.letter ## 第一行說明: 12:56:10 up 3:12 # 系統已經開機3小時12分鐘 2 users # 當前登錄了兩個用戶 load average: 0.00, 0.01, 0.05 # 系統在以前1分鐘、5分鐘、15分鐘的平均負載。若是CPU是單核的,則這個數值超過1就是高負載;若是CPU是四核的,則這個數值超過4就是高負載 ## 第二行說明 USE TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
第一行說明:
內容 | 說明 |
---|---|
12:56:10 | 系統當前時間 |
up 3:12 | 系統已經運行3小時12分鐘 |
2 users | 當前登錄了兩個用戶 |
load average: 0.00, 0.01, 0.05 | #系統在以前1分鐘、5分鐘、15分鐘的平均負載。若是CPU是單核的,則這個數值超過1就是高負載;若是CPU是四核的,則這個數值超過4就是高負載(這個平均負載徹底是依據我的經驗來進行判斷的,通常認爲不該該超過服務器CPU的核數) |
第二行說明:
內容 | 說明 |
---|---|
USER | 當前登錄的用戶 |
TTY | 登錄的終端:tty1-6: 本地字符終端(alt+F1-6切換) tty7: 本地圖形終端(ctrl+alt+F7切換,必須安裝啓動圖形界面) pts/0-255: 遠程終端 |
FROM | 登錄的IP地址,若是是本地終端,則是空 |
LOGIN@ | 登錄時間 |
IDLE | 用戶閒置時間 |
JCPU | 全部的進程佔用的CPU時間 |
PCPU | 當前進程佔用的CPU時間 |
WHAT | 用戶正在進行的操做 |
who命令和w命令相似,用於查看正在登錄的用戶,可是顯示的內容更加簡單,也是查看/var/run/utmp日誌
[root@m01 ~]# who root pts/0 2020-06-30 11:04 (192.168.1.1) 登錄用戶 登錄終端 登錄時間(來源IP) python pts/1 2020-06-30 11:15 (192.168.1.41)
last命令是查看系統全部登錄過的用戶信息的,包括正在登錄的用戶和以前登錄的用戶。這個命令查看的是/var/log/wtmp痕跡日誌文件。
[root@localhost ~]# last root tty1 Mon Nov 12 23:59 still logged in root pts/2 192.168.252.1 Mon Nov 12 23:42 still logged in root pts/1 192.168.252.1 Mon Nov 12 23:37 - 23:59 (00:22) root tty1 Mon Nov 12 19:17 - 23:58 (04:41) root pts/0 192.168.252.1 Mon Nov 12 18:20 - 23:52 (05:32) reboot system boot 3.10.0-862.el7.x Mon Nov 12 18:18 - 00:22 (06:03) #系統重啓信息記錄 root pts/1 192.168.252.1 Mon Nov 12 08:48 - down (01:29) root pts/1 192.168.252.1 Thu Nov 8 21:04 - 22:29 (01:25) #用戶名 終端號 來源IP地址 登錄時間 - 退出時間
lastlog命令是查看系統中全部用戶最後一次的登錄時間的命令,他查看的日誌是/var/log/lastlog文件
[root@localhost ~]# lastlog Username Port From Latest root tty1 Mon Nov 12 23:59:03 +0800 2020 bin **Never logged in** daemon **Never logged in** adm **Never logged in** lp **Never logged in** sync **Never logged in** python pts/1 192.168.1.41 Tue Jun 30 11:15:51 +0800 2020 .......... #用戶名 終端 來源IP 登錄時間
lastb命令是查看錯誤登錄的信息的,查看的是/var/log/btmp痕跡日誌
[root@localhost ~]# lastb (unknown tty1 Mon Nov 12 23:58 - 23:58 (00:00) root tty1 Mon Nov 12 23:58 - 23:58 (00:00) #錯誤登錄 用戶終端 嘗試登錄的時間
# 查看磁盤使用和掛載狀況 [root@m01 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 471M 0 471M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 8.0M 479M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/sda2 14G 8.1G 5.9G 58% / /dev/sda1 2.8G 272M 2.6G 10% /boot tmpfs 98M 0 98M 0% /run/user/0 tmpfs 98M 0 98M 0% /run/user/1000 # 查看磁盤分區狀況 [root@m01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 2.8G 0 part /boot ├─sda2 8:2 0 14G 0 part / └─sda3 8:3 0 2.8G 0 part [SWAP] sr0 11:0 1 1024M 0 rom # 查看分區UUID [root@m01 ~]# blkid /dev/sda1: UUID="45f0e357-2102-419a-9b26-2fbd8795f2ad" TYPE="xfs" /dev/sda2: UUID="5788eabe-abdb-41c2-b1be-4b12482553a3" TYPE="xfs"
linux全部存儲設備都必須掛載使用,包括硬盤
[root@localhost ~]# mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] \ 設備文件名 掛載點 # \表明這一行沒有寫完,換行 選項: -t 文件系統: 加入文件系統類型來指定掛載的類型,能夠ext四、xfs等文件系統 -L 卷標名: 掛載指定卷標的分區,而不是安裝設備文件名掛載 -o 特殊選項: 能夠指定掛載的額外選項,好比讀寫權限、同步異步等,若是不指定 則默認值生效 # 把/devs/da1磁盤分區掛載到/mnt下 [root@localhost ~]# mount -t xfs /dev/sda1 /mnt # umount /nmt 取消掛載 [root@localhost ~]#umount /mnt
-o 特殊選項參數
參數 | 說明 |
---|---|
atime/noatime | 更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認爲更新 |
async/sync | 異步/同步,默認爲異步 |
auto/noauto | 自動/手動,mount –a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認爲自動 |
defaults | 定義默認值,至關於rw,suid,dev,exec,auto,nouser,async這七個選項 |
exec/noexec | 執行/不執行,設定是否容許在文件系統中執行可執行文件,默認是exec容許 |
remount | 從新掛載已經掛載的文件系統,通常用於指定修改特殊權限 |
rw/ro | 讀寫/只讀,文件系統掛載時,是否具備讀寫權限,默認是rw |
suid/nosuid | 具備/不具備SUID權限,設定文件系統是否具備SUID和SGID的權限,默認是具備 |
user/nouser | 容許/不容許普通用戶掛載,設定文件系統是否容許普通用戶掛載,默認是不容許,只有root能夠掛載分區 |
usrquota | 寫入表明文件系統支持用戶磁盤配額,默認不支持 |
grpquota | 寫入表明文件系統支持組磁盤配額,默認不支持 |
不論哪一個系統都有軟鏈接/dev/cdrom,與能夠做爲光盤的設備文件名
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ #掛載光盤
[root@localhost ~]# umount /dev/sr0 [root@localhost ~]# umount /mnt/cdrom #由於設備文件名和掛載點已經鏈接到一塊兒,卸載哪個均可以
U盤會和硬盤共用設備文件名,因此U盤的設備文件名不是固定的,須要手工查詢
#參看U盤設備名 [root@localhost ~]# fdisk -l #掛載U盤。由於是Windows分區,因此是vfat文件系統格式 [root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/ #掛載U盤。由於是Windows分區,因此是vfat文件系統格式 #掛載U盤,指定中文編碼格式爲UTF-8 [root@localhost ~]# mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb/