第1章 Linux入門
1.1 概述
1.1.1 作業系統的作用
作業系統是現代計算機系統中最基本和最重要的系統軟體;配置在計算機硬體上的第一層軟體,是對硬體系統的首次擴充。
主要作用是管理好硬體裝置,并為使用者和應用程式提供一個簡單的接口,以便于使用;而其它的諸如編譯程式、資料庫管理系統,以及大量的應用軟體,都直接依賴于作業系統的支援。
1.1.2 不同應用領域的主流作業系統
-
桌面作業系統
A. Windows系列:使用者群體大
B. MacOS:适用于開發人員
C. Linux:應用軟體少
-
伺服器作業系統
A. Linux:安全、穩定、免費;占用率高
B. Windows Service:付費;占用率低
-
嵌入式作業系統
Linux
-
移動裝置作業系統
A. IOS
B. Android(基于Linux)
1.1.3 虛拟機(Virtual Machine)
虛拟機指通過軟體模拟的具有完整硬體系統功能的、運作在一個完全隔離環境中的完整計算機系統;
虛拟系統通過生成現有作業系統的全新虛拟鏡像,具有真實作業系統完全一樣的功能;
進入虛拟系統後,所有操作都是在這個全新的獨立的虛拟系統裡面進行,可以獨立安裝運作軟體,儲存資料,擁有自己的獨立桌面,不會對真正的系統産生任何影響;
而且能夠在現有系統與虛拟鏡像之間靈活切換的一類作業系統。
1.1.4 Linux發行版
Linux發行版(也被叫做 GNU/Linux 發行版)通常包含了包括桌面環境、辦公套件、媒體播放器、資料庫等應用軟體
常見的發行版本如下:Ubuntu、Redhat、Fedora、openSUSE、Linux Mint、Debian、Manjaro、Mageia、CentOS、Arch
1.1.5 Linux的應用領域
-
伺服器領域
A. Linux 在伺服器領域的應用是其重要分支
B. Linux 免費、穩定、高效等特點在這裡得到了很好的展現;早期因為維護、運作等原因同樣受到了很大的限制
C. 近些年來 Linux 伺服器市場得到了飛速的提升,尤其在一些高端領域尤為廣泛
D. 此領域是傳統 Linux 應用最薄弱的環節;傳統 Linux 由于界面簡單、操作複雜、應用軟體少的缺點,一直被 Windows 所壓制
-
嵌入式領域
A. 近些年來 Linux 在嵌入式領域的應用得到了飛速的提高
B. Linux 運作穩定、對網絡的良好支援性、低成本,且可以根據需要進行軟體裁剪,核心最小可以達到幾百 KB 等特點,使其近些年來在嵌入式領域的應用得到非常大的提高
C. 主要應用:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA、等都是其應用領域,得到了Google、三星、摩托羅拉、NEC 等公司的大力推廣
-
個人桌面領域
A. 此領域是傳統 Linux 應用最薄弱的環節
B. 傳統 Linux 由于界面簡單、操作複雜、應用軟體少的缺點,一直被 Windows 所壓制
C. 近些年來随着 Ubuntu、Fedora 等優秀桌面環境的興起,同時各大硬體廠商對其支援的加大,Linux 在個人桌面領域的占有率在逐漸的提高
1.2 Linux和Windows的差別
比較 | Windows | Linux |
---|---|---|
費用 | 收費且很貴 | Linux免費或少許費用 |
軟體與支援 | 數量和品質的優勢,不過大部分為收費軟體;由微軟官方提供支援和服務 | 開源自由軟體,使用者可以修改定制和再釋出,由于基本免費沒有資金支援,部分軟體品質和體驗欠缺;有全球所有的Linux開發者和自由軟體社群提供支援 |
安全性 | 三天兩頭打更新檔安裝系統安全性更新,還是會中病毒木馬 | 要說Linux沒有安全問題,那當然是不可能的,這一點仁者見仁智者見智,相對來說肯定比Windows平台更加安全 |
使用習慣 | 普通使用者基本都是純圖形界面下操作使用,依靠滑鼠和鍵盤完成一切操作,使用者上手容易入門簡單 | 兼具圖形界面操作和完全的指令行操作,可以用鍵盤完成一切操作,新手入門較困難,需要一些學習和指導,一旦熟練以後效率極高 |
可定制型 | 封閉的,系統的可定制性很差 | 開源,可定制性很強 |
應用場景 | 桌面作業系統主要使用Windows | 支撐百度、谷歌、淘寶等應用軟體和服務,是背景成千上萬的Linux伺服器主機,世界上大部分軟體和服務都運作Linux上的 |
2章 Linux檔案與目錄結構
2.1 Linux目錄結構
目錄結構 | 說明 |
---|---|
/bin | 是Binary的縮寫,這個目錄存放着最經常使用的指令 |
/sbin | s就是Super User的意思,這裡存放的系統管理者使用的系統管理程式 |
/home | 存放普通使用者的主目錄,在Linux中每個使用者都有自己的一個目錄,一般該目錄是以使用者的賬戶命名 |
/root | 該目錄為系統管理者,也稱作超級權限者的使用者主目錄 |
/lib | 系統開機所需要最基本的動态連接配接共享庫,其作用類似于Windows裡面的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫 |
/etc | 所有的系統管理所需要的配置檔案和子目錄 |
/usr | 這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似于Windows下的program files目錄 |
/boot | 這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連接配接檔案以及鏡像檔案,自己的安裝别放這裡 |
/proc | 這個目錄是一個虛拟目錄,它是系統記憶體的映射,我們可以通過直接通路這個目錄來擷取系統資訊 |
/srv | Servic的縮寫,該目錄存放一些服務啟動之後需要提取的資料 |
/sys | 這是Linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統sysfs |
/tmp | 這個目錄是用來存放一些臨時檔案的 |
/dev | 類似于Windows的裝置管理器,把所有的硬體用檔案的形式存儲 |
/media | Linux系統會自動識别一些裝置,例如U盤、光驅等等,當識别後,Linux會把識别的裝置挂載到這個目錄下面 |
/mnt | 系統提供該目錄是為了讓使用者臨時挂載别的檔案系統,我們可以将外部存儲挂載在/mnt/上,然後進入該目錄就可以檢視裡的内容了 |
/opt | 這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個MySQL資料則就可以放到這個目錄下。預設是空的 |
/var | 這個目錄中存放着在不斷擴充着的東西,我們習慣将那些經常被修改的目錄放在這個目錄下。包括日志檔案 |
/selinux | Selinux是一種安全自系統,它能控制程式隻通路特定檔案 |
/lost+found | 這個目錄一般情況下空的,當系統非法關機後,這裡就存放了一些檔案 |
第3章 VI/VIM編輯器
3.1 VI/VIM是什麼
VI是Unix作業系統和類Unix作業系統中最通用的文本編輯器。
VIM編輯器是從VI發展出來的一個性能更強大的文本編輯器;
可以主動的以字型顔色辨識文法的正确性,友善程式設計;
VIM與VI編輯器完全相容。
3.2 一般模式
文法 | 功能描述 |
---|---|
yy | 複制光标目前一行 |
y數字y | 複制一段(從第幾行到第幾行) |
p | 箭頭移動到目的行粘貼 |
u | 撤銷上一步 |
dd | 删除光标目前行 |
d數字d | 删除光标(含)後多少行 |
x | 删除一個字母,相當于del,向後删 |
X | 删除一個字母,相當于Backspace,向前删 |
yw | 複制一個詞 |
dw | 删除一個詞 |
shift+^ | 移動到行頭 |
shift+$ | 移動到行尾 |
gg或者1+G | 移動到頁頭 |
G | 移動到頁尾 |
數字+G(先輸入數字,在按G) | 移動到目标行 |
3.3 編輯模式
按鍵 | 功能 |
---|---|
i | 目前光标前 |
a | 目前光标後 |
o | 目前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最後 |
O | 目前光标行的上一行 |
3.4 指令模式
指令 | 功能 |
---|---|
:w | 儲存 |
:q | 退出 |
:! | 強制執行 |
/ 要查找的詞 | n 查找下一個,N 往上查找 |
? 要查找的詞 | n是查找上一個,N是往下查找 |
:set nu | 顯示行号 |
:set nonu | 關閉行号 |
ZZ(shift+zz) | 沒有修改檔案直接退出,如果修改了檔案儲存後退出 |
3.5 模式間轉換
第4章 網絡配置和系統管理操作
4.1 檢視網絡IP和網關
A. 檢視虛拟網絡編輯器
B. 修改IP位址
C. 檢視網關
D. 檢視Windows環境中的VMnet8網絡配置
4.2 配置網絡IP位址
4.2.1 ifconfig配置網絡接口
ifconfig
:network interfaces configuring網絡接口配置
檢視點給錢網絡IP:
ifconfig
4.2.2 ping測試主機之間網絡連通性
測試目前伺服器是否可以連接配接百度:
ping www.baidu.com
4.2.3 修改IP位址
修改IP位址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
之後進行檔案修改
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.28.129 # IP位址
GATEWAY=192.168.28.2 # 網關
DNS1=114.114.114.114 # 域名解析器
DNS2=8.8.8.8
4.3 配置主機名
檢視目前伺服器主機名稱:
hostname
修改主機名稱:
vim /etc/sysconfig/network
4.4 關閉防火牆
4.4.1 Service背景服務管理
檢視網絡服務的狀态:
service network status
停止網絡服務:
service network stop
啟動網絡服務:
service network start
重新開機網絡服務:
service network restart
檢視系統中所有的背景服務:
service –status-all
4.4.2 chkconfig設定背景服務的自啟配置
關閉iptables服務的自啟動:
chkconfig iptables off (永久關)
開啟iptables服務的自啟動:
chkconfig iptables on
檢視服務開機啟動狀态:
chkconfig iptables –list
4.4.3 程序級别
- A. 運作級别(runlevel)
開機 --> BIOS --> /boot --> init程序 --> 運作級别 --> 運作級對應的服務
檢視預設級别:vim /etc/inittab
- B. Linux系統有7種運作級别:常用的是級别3和5
級别 | 描述 |
---|---|
系統停機狀态,系統預設運作級别不能設為0,否則不能正常啟動 | |
1 | 單使用者工作狀态,root權限,用于系統維護,禁止遠端登陸 |
2 | 多使用者狀(沒有NFS),不支援網絡 |
3 | 完全的多使用者狀态(有NFS),登陸後進入控制台指令行模式 |
4 | 系統未使用,保留 |
5 | X11控制台,登陸後進入圖形GUI模式 |
6 | 系統正常關閉并重新開機,預設運作級别不能設為6,否則不能正常啟動 |
4.4.4 關閉防火牆
檢視防火牆狀态:
service iptables status
關閉防火牆:
service iptables stop 臨時關
4.4.5 關機重新開機指令
正确的關機流程:
sync --> shutdown --> reboot --> halt
sync:将資料由記憶體同步到硬碟中
halt:關閉系統;等同于shutdown -h now和poweroff
reboot:就是重新開機;等同于shutdown -r now
shutdown [選項] 時間
:
[選項]:
-h=halt關機 -r=reboot重新開機
時間:
now=立即關機 時間預設機關是分鐘
4.4.6 克隆虛拟機
- 關閉要被克隆的虛拟機
- 找到克隆選項
- 歡迎頁面
- 克隆虛拟機
- 設定建立完整克隆
- 設定克隆的虛拟機名稱和存儲位置
- 等待正在克隆
- 點選關閉
- 克隆後修改虛拟機的IP:
vim /etc/udev/rules.d/70-persistent-net.rules
-
修改IP位址:vim /etc/sysconfig/network-scripts/ifcfg-eth0
把複制的實體ip位址更新:
修改成想要的ip:HWADDR=… #MAC位址
IPADDR=… #IP位址
- 修改主機名稱
- 重新啟動伺服器
第5章 常用基本指令
5.1 幫助指令
5.1.1 man獲得幫助資訊
資訊 | 功能 |
---|---|
NAME | 指令的名稱和單行描述 |
SYNOPSIS | 怎樣使用指令 |
DESCRIPTION | 指令功能的深入讨論 |
EXAMPLES | 怎樣使用指令的例子 |
SEE ALSO | 相關主題(通常是手冊頁) |
看ls指令的幫助資訊:
man ls
5.1.2 help獲得shell内置指令的幫助資訊
檢視cd指令的幫助資訊:
help cd
5.1.3 常用快捷鍵
常用快捷鍵 | 功能 |
---|---|
ctrl + c | 停止程序 |
ctrl+l | 清屏;徹底清屏是:reset |
ctrl + q | 退出 |
善于用tab鍵 | 提示(更重要的是可以防止敲錯) |
上下鍵 | 查找執行過的指令 |
ctrl +alt | linux和Windows之間切換 |
5.2 檔案目錄類
5.2.1 pwd顯示目前工作目錄的絕對路徑
pwd
:print working directory列印工作目錄
顯示目前工作目錄的絕對路徑:
pwd
5.2.2 ls列出目錄的内容
基本文法:
ls [選項] [目錄或是檔案]
選項:
-a:全部的檔案,連同隐藏的一起列出來 -l:長資料串列出,包含檔案的屬性與權限等資料
每行列出的資訊依次是:
檔案類型與權限 連結數 檔案屬主 檔案屬組 檔案大小(byte) 建立或最近修改的時間 名字
5.2.3 cd切換目錄
cd
:change directory切換路徑
參數 | 功能 |
---|---|
cd 絕對路徑 | 切換路徑 |
cd相對路徑 | 切換路徑 |
cd ~或者cd | 回到自己的家目錄 |
cd - | 回到上一次所在目錄 |
cd … | 回到目前目錄的上一級目錄 |
cd -P | 跳轉到實際實體路徑,而非快捷方式路徑 |
5.2.4 mkdir建立一個新的目錄
mkdir
:make directory建立目錄
建立一個目錄:
mkdir 要建立的目錄
建立一個多級目錄:
mkdir -p 要建立的多級目錄
5.2.5 rmdir删除一個空的目錄
rmdir
:remove directory移動目錄
删除一個空的檔案夾:
rmdir 要删除的空目錄
5.2.6 touch建立空檔案
建立空檔案:
touch 檔案名稱
5.2.7 cp複制檔案或目錄
基本文法:
cp [選項] source dest #複制sourc(源檔案)檔案到dest(目标檔案)
複制檔案:
cp 源檔案 目标檔案
遞歸複制整個檔案夾:
cp -r 源檔案 目标檔案
5.2.8 rm移除檔案或目錄
基本文法:
rm [選項] deleteFile
選項:
-r:遞歸删除目錄中所有内容 -f:強制執行删除操作,而不提示用于進行确認 -v:顯示指令的詳細執行過程
删除目錄中的内容:
rm 檔案
遞歸删除目錄中所有内容:
rm -rf 檔案
5.2.9 mv移動檔案與目錄或重命名
重命名:
mv oldFileName newFileName
移動檔案:
mv 移動前檔案路徑 移動後檔案路徑
5.2.10 cat檢視檔案内容
一般檢視比較小的檔案,一螢幕能顯示全的
檢視檔案内容并顯示行号:
cat -n 檔案
5.2.11 more檔案内容分屏檢視器
以全螢幕的方式按頁顯示文本檔案的内容
采用more檢視檔案:
more 檔案
操作 | 功能說明 |
---|---|
空白鍵 (space) | 代表向下翻一頁 |
Enter | 代表向下翻『一行』 |
q | 代表立刻離開 more ,不再顯示該檔案内容 |
Ctrl+F | 向下滾動一屏 |
Ctrl+B | 傳回上一屏 |
= | 輸出目前行的行号 |
:f | 輸出檔案名和目前行的行号 |
5.2.12 less分屏顯示檔案内容
分屏檢視檔案内容,和more功能類似,但是比more更加強大,支援各種顯示終端;less指令在顯示檔案内容時,并不是一次将整個檔案加載之後才顯示,而是根據顯示需要加載内容,對于顯示大型檔案具有較高的效率
采用less檢視檔案:
less 檔案
操作 | 功能說明 |
---|---|
空白鍵 | 向下翻動一頁 |
[pagedown] | 向下翻動一 |
[pageup] | 向上翻動一頁 |
/字串 | 向下搜尋『字串』的功能;n:向下查找;N:向上查找 |
?字串 | 向上搜尋『字串』的功能;n:向上查找;N:向下查找 |
q | 離開 less 這個程式 |
5.2.13 echo輸出内容到控制台
基本文法:
echo [選項] [輸出内容]
選項:
-e:支援反斜杠控制的字元轉義
輸出内容中:
\\:輸出\本身 \n:換行符 \t:tab鍵
5.2.14 head顯示檔案頭部内容
檢視檔案頭10行内容:
head 檔案
檢視檔案的頭n行:
head -n 數字 檔案
5.2.15 tail輸出檔案尾部内容
檢視檔案後10行内容:
tail 檔案
檢視檔案後n行内容:
tail -n 數字 檔案
實時追蹤該文檔的所有更新:
tail -f 檔案
5.2.16 >覆寫和>>追加
将ls檢視資訊寫入到檔案中:
ls “11” > 檔案
将ls檢視資訊追加到檔案中:
ls “11” >> 檔案
采用echo将hello單詞追加到檔案中:
echo hello >> 檔案
5.2.17 In軟連結
建立軟連結:
in -s 原檔案或目錄 軟連結名
删除軟連結:
rm -rf 軟連結名
進入軟連結實際實體路徑:
cd -P 軟連結名
5.2.18 history檢視已經執行過的曆史指令
檢視已經執行過的曆史指令:
history
5.3 時間日期類
Date [OPTION]… [+日期時間格式]
5.3.1 date顯示目前時間
顯示目前時間資訊:
date
顯示目前時間年月日時分秒:
date “+%Y年%m月%d日 %H:%M:%S”
5.3.2 date顯示非目前時間
顯示前一天:
date -d “1 days ago”
顯示明天時間:
date -d “-1 days ago”
5.3.3 date設定系統時間
設定系統目前時間:
date -s “2019-12-12 12:12:30”
5.3.4 cal檢視月曆
檢視目前月的月曆:
cal
檢視2019年的月曆:
cal 2019
5.4 使用者管理指令
5.4.1 useradd添加新使用者
添加一個使用者:
useradd 使用者名
5.4.2 passwd設定使用者密碼
設定使用者的密碼:
passwd 使用者名
5.4.3 id檢視使用者是否存在
檢視使用者是否存在:
id 使用者名
5.4.4 cat /etc/passwd檢視建立了哪些使用者
基本文法:
cat /etc/passwd
5.4.5 su切換使用者
su
:swith user切換使用者
su 使用者名稱
:切換使用者,隻能獲得使用者的執行權限,不能獲得環境變量
su – 使用者名稱
:切換到使用者并獲得該使用者的環境變量及執行權限
5.4.6 userdel删除使用者
删除使用者但儲存使用者主目錄:
userdel 使用者名
删除使用者和使用者主目錄,都删除:
userdel -r 使用者名
5.4.7 who檢視登陸使用者資訊
顯示自身使用者名稱:
whoami
顯示登陸使用者的使用者名:
who am i
5.4.8 sudo設定普通使用者具有root權限
- huachenyu使用者,并對其設定密碼
eradd huachenyu
- 配置檔案
vim /etc/sudoers
用普通使用者在/opt目錄下建立一個檔案夾:sudo mkdir 檔案找到91行,在root下面添加一行 root ALL=(ALL) ALL huachenyu ALL=(ALL) NOPASSWD:ALL
5.4.9 usermod修改使用者
将使用者加入到使用者組:
usermod -g root 使用者名
5.5 使用者組管理指令
使用者組的管理涉及使用者組的添加、删除和修改。組的增加、删除和修改實際上就是對/etc/group檔案的更新
5.5.1 groupadd新增組
添加一個組:
groupadd 組名
5.5.2 groupdel删除組
删除組:
groupdel 組名
5.5.3 groupmod修改組
修改組名:
groupmod -n 新組名 老組名
5.5.4 cat /etc/group檢視建立了哪些組
基本操作:
cat /etc/group
5.6 檔案權限類
5.6.1 檔案屬性
A. 左到右10個字元表示
如果沒有權限,就會出現減号[ - ]而已。從左至右用0-9這些數字來表示:
-
0首位表示類型
在Linux中第一個字元代表這個檔案是目錄、檔案或連結檔案等等
[-] 代表檔案 代表目錄 連結文檔(link file);
- 第1-3位确定屬主(該檔案的所有者)擁有該檔案的權限。—User
- 第4-6位确定屬組(所有者的同組使用者)擁有該檔案的權限,—Group
- 第7-9位确定其他使用者擁有該檔案的權限 —Other
B. 作用檔案和目錄的不同解釋
-
作用到檔案:
[ r ]代表可讀(read): 可以讀取,檢視
[ w ]代表可寫(write): 可以修改,但是不代表可以删除該檔案,删除一個檔案的前提條件是對該檔案所在的目錄有寫權限,才能删除該檔案.
[ x ]代表可執行(execute):可以被系統執行
-
作用到目錄:
[ r ]代表可讀(read): 可以讀取,ls檢視目錄内容
[ w ]代表可寫(write): 可以修改,目錄内建立+删除+重命名目錄
[ x ]代表可執行(execute):可以進入該目錄
C. 檔案基本屬性介紹
如果檢視的是檔案:連結數指的是硬連結個數。建硬連結方法:ln [原檔案] [目标檔案]
如果檢視的是檔案夾:連結數指的是子檔案夾個數
5.6.2 chmod改變權限
基本文法:u:所有者 g:所有組 o:其他人 a:所有人(u、g、o的總和)
第一種方式變更權限
chmod [{ugoa}{+-=}{rwx}] 檔案或目錄
第二種方式變更權限
hmod [mode=421 ] [檔案或目錄]
5.6.3 chown改變所有者
基本文法:
chown [選項] [最終使用者] [檔案或目錄]
5.6.4 chgrp改變所屬組
基本文法:
chgrp [最終使用者組] [檔案或目錄]
5.7 搜尋查找類
5.7.1 find查找檔案或者目錄
基本文法:
find [搜尋範圍] [選項]
選項 | 功能 |
---|---|
-name<查詢方式> | 按照指定的檔案名查找模式查找檔案 |
-user<使用者名> | 查找屬于指定使用者名所有檔案 |
-size<檔案大小> | 按照指定的檔案大小查找檔案 |
5.7.2 grep過濾查找及“|”管道符
查找某檔案在第幾行:
ls | grep -n 檔案
5.7.3 which查找指令
查找指令:
which 指令
5.8 壓縮和解壓類
5.8.1 gzip/gunzip壓縮
隻能壓縮檔案不能壓縮目錄;不保留原來的檔案
gzip壓縮:
gzip 檔案
gunzip解壓縮檔案:
gunzip 檔案.gz
5.8.2 zip/unzip壓縮
zip壓縮指令在Windows/Linux都通用,可以壓縮目錄且保留源檔案
壓縮1.txt和2.txt:
解壓:
unzip 壓縮檔案.zip
解壓到指定目錄中:
unzip 壓縮檔案.zip -d /opt
5.8.3 tar打包
選項 | 功能 |
---|---|
-z | 打包同時壓縮 |
-c | 産生.tar打封包件 |
-v | 顯示詳細資訊 |
-f | 指定壓縮後的檔案名 |
-x | 解包.tar檔案 |
縮多個檔案:
tar -zcvf 壓縮檔案
壓縮目錄:
tar -zcvf 壓縮檔案 目錄
解壓到目前目錄:
tar -zcvf 壓縮檔案
解壓到指定目錄:
tar -zcvf 壓縮檔案 -c /opt
5.9 磁盤分區類
5.9.1 df檢視磁盤空間使用情況
檢視磁盤使用情況:
df -h
5.9.2 du檢視指定目錄的磁盤占用情況
基本文法:
du -h /目錄
(查詢指定目錄的磁盤暫用情況,預設為目前目錄)
選項 | 介紹 |
---|---|
-s | 指定目錄占用大小彙總 |
-h | 帶計量機關 |
-a | 含檔案 |
-c | 列出明細的同時,增加彙總值 |
–max-depth=1 | 子目錄深度 |
查詢 /opt 目錄的磁盤占用情況,深度為1:du -ach --max-depth=1 /opt
5.9.3 磁盤情況-工作實用指令
統計/root檔案夾下的檔案的個數:
ls -l /root | grep "^-" | wc -l
統計/root檔案夾下的目錄的個數:
ls -l /root | grep "^d" | wc -l
統計/root檔案夾下檔案的個數,包括子檔案夾裡的:
ls -lR /root | grep "^-" | wc -l
統計檔案夾下目錄的個數,包括子檔案夾裡的:
ls -lR /root | grep "^d" | wc -l
以樹狀顯示目錄結構:
yum install tree
5.9.4 fdisk 檢視分區
分區方式 | 說明 |
---|---|
mbr分區 | 最多支援四個主分區;系統隻能安裝再主分區;擴充分區要占一個主分區;MBR最大隻支援2TB,但是擁有較好的相容性 |
gpt 分區 | 支援無限個主分區(但系統可能限制,如windowns下最多128個分區);最大支援18EB的大容量(EB=1024PB,PB=1024TB);Windowns7 64位以後才支援gpt分區 |
檢視磁盤分區詳情:
fdisk -l
(-l:顯示所有硬碟的分區清單)(該指令必須在root使用者下才能使用)
Linux分區 | 說明 |
---|---|
Device | 分區序列 |
Boot | 引導 |
Start | 從X磁柱開始 |
End | 到Y磁柱結束 |
Blocks | 容量 |
Id | 分區類型ID |
System | 分區類型 |
5.9.5 mount/umount 挂載/解除安裝
A. 挂載前必須要有CD光牒或者已經連接配接鏡像檔案
挂載裝置:
mount [-t vfstype] [-o options] device dir
解除安裝裝置:
umount 裝置檔案名或挂載點
-
指定檔案系統的類型,通常不必指定。mount 會自動選擇正确的類型。常用類型有:-t vfstype
CD光牒或CD光牒鏡像:iso9660 DOS fat16檔案系統:msdos Windows 9x fat32檔案系統:vfat Windows NT ntfs檔案系統:ntfs Mount Windows檔案網絡共享:smbfs UNIX(LINUX) 檔案網絡共享:nfs
-
主要用來描述裝置或檔案的挂接方式。常用的參數有:-o options
loop:用來把一個檔案當成硬碟分區挂接上系統 ro:采用隻讀方式挂接裝置 rw:采用讀寫方式挂接裝置 iocharset:指定通路檔案系統所用字元集
-
要挂接(mount)的裝置device
-
dir
A. 裝置在系統上的挂接點(mount point)
B. 挂載CD光牒鏡像檔案
建立挂載點:
裝置/dev/cdrom挂載到 挂載點/mnt/cdrom中:mkdir /mnt/cdrom/
解除安裝CD光牒鏡像檔案:mount -t iso9660 /dev/cdrom /mnt/cdrom/
設定開機自動挂載:umount /mnt/cdrom
添加紅框中内容,儲存退出vi /etc/fstab
C. 添加挂載硬碟
添加磁盤,添加完成後要重新開機電腦
使用:
分區:lsblk -l
格式化分區:fdisk /dev/sdb
檢視格式化結果:mkfs -t ext4 /dev/sdb1
先建立一個目錄/root/newdisk,挂載lsblk -f
mount /dev/sdb1 /root/newdisk
mkdir newdisk
mount /dev/sdb1 newdisk/
cd newdisk/
5.10 程序線程類
5.10.1 ps檢視目前系統程序狀态
檢視系統中所有程序:
ps aux | grep xxx
檢視子父程序之間的關系:
ps -ef | grep xxx
如果想檢視程序的CPU占用率和記憶體占用率,可以使用aux;
如果想檢視程序的父程序ID可以使用ef;
選項 | 功能 |
---|---|
-a | 選擇所有程序 |
-u | 顯示所有使用者的所有程序 |
-x | 顯示沒有終端的程序 |
A. 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 | 産生此程序的指令名 |
B. ps -ef顯示資訊說明
顯示資訊 | 說明 |
---|---|
UID | 使用者ID |
PID | 程序ID |
PPID | 父程序ID |
C | CPU用于計算執行優先級的因子;數值越大,表明程序是CPU密集型運算,執行優先級會降低;數值越小,表明程序是I/O密集型運算,執行優先級會提高 |
STIME | 程序啟動的時間 |
TTY | 完整的終端名稱 |
TIME | CPU時間 |
CMD | 啟動程序所用的指令和參數 |
5.10.2 kill終止程序
殺死浏覽器程序:
kill -9 5102
(-9:表示強迫程序立即停止)
通過程序名稱殺死程序:
killall firefox
5.10.3 pstree檢視程序樹
顯示程序pid:
pstree -p
顯示程序所屬使用者:
pstree -u
5.10.4 top檢視系統健康狀态
top [選項]
選項 | 功能 |
---|---|
-d 秒數 | 指定top指令每隔幾秒更新。預設是3秒在top指令的互動模式當中可以執行的指令 |
-i | 使top不顯示任何閑置或者僵死程序 |
-p | 通過指定監控程序ID來僅僅監控某個程序的狀态 |
A. 操作介紹
操作 | 功能 |
---|---|
P | 以CPU使用率排序,預設就是此項 |
M | 以記憶體的使用率排序 |
N | 以PID排序 |
q | 退出top |
B. 查詢結果字段解釋
第一行資訊為任務隊列資訊
内容 | 說明 |
---|---|
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 | 作為緩存的互動分區的大小 |
5.10.5 netstat顯示網絡統計資訊和端口占用情況
檢視該程序網絡資訊:
netstat -anp | grep 程序号
檢視網絡端口号占用情況:
netstat -nlp | grep 端口号
選項 | 功能 |
---|---|
-n | 拒絕顯示别名,能顯示數字的全部轉化成數字 |
-l | 僅列出有在listen(監聽)的服務狀态 |
-p | 表示顯示哪個程序在調用 |
5.11 crond 系統定時任務
5.11.1 crond 服務管理
重新啟動crond服務:
service crond restart
5.11.2 crontab 定時任務設定
crontab [選項]
選項 | 功能 |
---|---|
-e | 編輯crontab定時任務 |
-l | 查詢crontab任務 |
-r | 删除目前使用者所有的crontab任務 |
A. 進入crontab編輯界面,會打開vim編輯你的工作
[* * * * * ]
執行的任務
項目 | 含義 | 範圍 |
---|---|---|
第一個“*” | 一小時當中的第幾分鐘 | 0-59 |
第二個“*” | 一天當中的第幾小時 | 0-23 |
第三個“*” | 一個月當中的第幾天 | 1-31 |
第四個“*” | 一年當中的第幾月 | 1-12 |
第五個“*” | 一周當中的星期幾 | 0-7(0和7都代表星期日) |
B. 特殊符号
特殊符号 | 含義 |
---|---|
* | 代表任何時間;如第一個“*”就代表一小時中每分鐘都執行一次的意思 |
, | 代表不連續的時間;如“0 8,12,16 * * *指令”,代表在每天的8點0分,12點0分,16點0分都執行一次指令 |
- | 代表連續的時間範圍;如“0 5 * * 1-6指令”,代表在周一到周六淩晨5點0分執行指令 |
*/n | 代表每隔多久執行一次;如“*/10 * * * *指令”,代表每隔10分鐘就執行一遍指令 |
C. 特定時間執行指令
時間 | 含義 |
---|---|
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分都會執行指令。注意:星期幾和幾号最好不要同時出現,因為他們定義的都是天。非常容易讓管理者混亂 |
第6章 軟體包管理
6.1 RPM
6.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包
6.1.2 RPM查詢指令(rpm -qa)
查詢firefox軟體安裝情況:
rpm -qa |grep firefox
由于軟體包比較多,一般都會采取過濾。
rpm -qa | grep rpm軟體包
6.1.3 RPM解除安裝指令(rpm -e)
解除安裝軟體包:
rpm -e RPM
解除安裝軟體包:
rpm -e –nodeps
解除安裝軟體時,不檢查依賴。這樣的話,那些使用該軟體包的軟體在此之後可能就不能正常工作了
6.1.4 RPM安裝指令(rpm -ivh)
rpm -ivh RPM包全名
選項 | 說明 |
---|---|
-i | -i=install,安裝 |
-v | -v=verbose,顯示詳細資訊 |
-h | -h=hash,進度條 |
–nodeps | –nodeps,不檢測依賴進度 |
6.2 YUM倉庫配置
6.2.1 YUM概述
YUM(全稱為Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。
基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。
6.2.2 YUM的常用指令
基本文法:
yum [選項] [參數]
選項 | 功能 |
---|---|
-y | 對所有提問都回答“yes” |
參數說明
參數 | 功能 |
---|---|
install | 安裝rpm軟體包 |
update | 更新rpm軟體包 |
check-update | 檢查是否有可用的更新rpm軟體包 |
remove | 删除指定的rpm軟體包 |
list | 顯示軟體包資訊 |
clean | 清理yum過期的緩存 |
deplist | 顯示yum軟體包的所有依賴關系 |
6.2.3 修改網絡YUM源
預設的系統YUM源,需要連接配接國外apache網站,網速比較慢,可以修改關聯的網絡YUM源為國内鏡像的網站
-
前期檔案準備
A. 前提條件linux系統必須可以聯網
B. 在Linux環境中通路該網絡位址:http://mirrors.163.com/.help/centos.html,在使用說明中點選CentOS6,再點選儲存
C. 檢視檔案儲存的位置
D. 在打開的終端中輸入如下指令,就可以找到檔案的儲存位置
-
替換本地yum檔案
A. 把下載下傳的檔案移動到/etc/yum.repos.d/目錄:
B. 進入到/etc/yum.repos.d/目錄:mv CentOS6-Base-163.repo /etc/yum.repos.d/
C. 用CentOS6-Base-163.repo替換CentOS-Base.repo:pwd /etc/yum.repos.d
mv CentOS6-Base-163.repo CentOS-Base.repo
-
安裝指令
A.
B. 把伺服器的包資訊下載下傳到本地電腦緩存起來:yum clean all
yum makecache
-
測試
A.
B.yum list | grep firefox
yum -y install firefox.x86_64