Linux系統管理筆記
linux發展史+安裝+注意事項
Unix的發展
- Multics(油呢可帝特死)工程計劃:最初的Unix
1965年,美國麻省理工學院(MIT)、 通用電氣公司(GE)及AT&T的貝爾實驗室聯合 開發Multics工程計劃,其目標是開發一種互動式的具有多道程式處理能為的分時作業系統,但因 Multics追求的目標過於龐大複雜,專案進度遠遠 落後於計劃,最後貝爾實驗室宣佈退出。
1969年,美國貝爾實驗室的肯•湯普森 在DEC PDP-7機器上開發出了UNIX系統。
- 常見的Unix---全球Unix三大運營商
a) AIX系統:由IBM公司在Unix的核心上開發出來的系統
b) HP-UX:由HP戴爾公司在Unix的核心上開發出來的系統
c) Solaris(蛇牢瑞死):由SUN微軟公司在Unix的核心上開發出來的系統
Linux的版本分類
- 核心版:核心版是由Linux創始人帶領的團隊負責更新升級,公司網址:www.kernel.org
a) Redhat 6.x 2.6.x (瑞的漢的)
b) Redhat7.x 3.10.x
- 發行版:只要系統中的核心是Linux的,其操作跟Linux有百分90%相似
a) Redhat系列
- 企業版:RHEL RedHat Enterprise Linux (安特
- 個人版:Fedora(肥多啦),全功能版本
b) Debian系列
- Fedora,RedHat,centOS,SUSE,Gentoo,紅旗,Mandriva,Turbolinux,RHEL,enterprise
- centOS 5.5 2.6.18 網址:www.kernel.org 3.1.14
- Debian,Ubunto
Linux:主要發行版本
c) Redhat (瑞的漢的)系列
- centOS (汕頭OS)
- SUSE (蘇誰)
- Fedoro (肥多啦)
- Gentoolinux (真吐)
- 紅旗Linux (淘汰了)
- Mandriva (忙拽我)
- Turbolinux (特譜裡牛死)
d) Debian (爹餅)系列
- Ubuntu (烏斑圖)
- Knopplx(坑佛死)
常見開源軟體:
e) Apache:web服務器
f) Nginx(Ng克死):web伺服器
g) Mysql:資料庫
h) PHP:指令碼語言
i) Samba(傷八):Linux跟Windows之間的內網檔案伺服器
j) Python:指令碼語言
k) Ruby(如比):指令碼語言(日本開發)
l) Sphinx(斯分克絲):中文分詞
m) MongoDB(NO誰庫):NOSQL資料庫
n) Redis(瑞地死):Linux中的輔助資料庫
注意:Redis是用來輔助Mysql資料庫的,用來優化SQL效能
GPT:開源軟體規範(擁有法律效率)
檢視伺服器排名網址:www.netcraft.com
Windows格式化續
- o) 分出一小塊空間來做統計塊,統計你有多少塊塊組,塊組裡多少以經佔有的Black,多少空閒沒用。有多少Inode佔有,有多少空閒。就是一個統計資訊用的,剩下的空間,分成一塊塊塊組,一個塊組按你的分割槽格式不同,大小不同。在把塊組分成二部,上部分一點空間放Ionde,剩下的空間分給下部放Black
Linux系統檔案格式
p) EXT2
q) EXT3
r) EXT4
s) XFS
Linux分割槽表類別
a) MBR分割槽表:主引導記錄分割槽表,最大隻支援2.1T硬碟,最多支援4個分割槽。
b) GPT分割槽表:全域性唯一標示分割槽表,支援9.4ZB硬碟,(1ZB=1024PB,1PB=1024EB,1EB=1024TB)理論上GPT支援無限制分割槽。
- MBR分割槽型別
a) 主分割槽:最多隻能有4個
b) 擴充套件分割槽:最多隻能有1個,主分割槽加擴充套件分割槽最多有4個,不能寫入資料,只能包含邏輯分割槽
c) 邏輯分割槽:在擴充套件分割槽能多支援多個邏輯分割槽,至少10個以上,可以寫入資料。
注意:Linux跟windows的二個分割槽表同樣的
Linux分割槽步驟
t) 分割槽
u) 格式化
v) 裝置檔名:給分割槽寫入裝置檔名,有了裝置檔案名才可以給掛載點
w) 掛載點:使用已經建立的空目錄作為掛載點(任何目錄都可以,除了/bin/ /etc/ /lib/)
- 掛載點是Linux訪問分割槽的一個入口,跟windows的碟符相同意思
- Windows:是用ABCD字母來做碟符標誌
- Linux是用數字來做掛載點標誌的、
注意:Linux下一切皆為檔案
swap(死我撲)
分割槽裝置名
x) 裝置檔案名:
- /dev/hda1 (IDE硬碟介面,理論速度:133Mbps)
- /dev/sda1 (SCSI硬碟介面,理論速度:200Mbps)(SATA硬碟介面,理論速度:500Mbps)
注意:/是Linux的根目錄,叫根,是Linux的最高一級目錄
Linux是樹型結構,根目錄下放一級目錄,一級目錄下放二級目錄等。
Windows也是樹型結構,不過他是先分 我的電腦—磁碟—目錄等。
dex是專門用來放硬體裝置的目錄,所以裡面放的內容大多是硬體特殊裝置的
hda1跟sda1,中的a字母是代表你當前是第幾塊硬碟,要是2塊硬碟a字母就會變成b字母
hda1跟sda1,中的1數字是代表你當前是第幾個分割槽,要是第二分割槽1數字就會變成2數字
1-4資料的標誌一定是給主分割槽跟擴充套件分割槽的,無論邏輯分割槽怎麼分,都會從5數字開始
Linux分割槽
y) 必須分割槽:不分不能裝系統
- / (根分割槽,一定要分,單獨分)
- swap分割槽(死我撲):(交換分割槽)
- 可以當成是虛擬記憶體,當真實記憶體不夠用的時候,拿出swap硬碟分割槽當記憶體用,是為了提升系統性能的。
- Swap,如果真實記憶體小於4G,swap位記憶體的兩倍。如果真實記憶體大於4G,swop和記憶體大小一致。實驗環境,不大於2G
z) 推薦分割槽
- /boot (啟動分割槽,200MB)要是硬碟滿了,沒有分配啟動分割槽,就系統在也開不起來了
- /home:這是用來儲存檔案資料的,跟根分割槽隔開
- /www:可以自己建立分割槽類別,但是實際用途這是要伺服器來決定的
注意:如果有單獨的分割槽,他會有單獨的儲存空間,可以往裡面寫入資料,是不會寫在根目錄裡的,是寫在自己的空間裡的。也就是說從系統上來看,他們是從屬關係,根是最高目錄。如果從硬碟來看,要單獨分割槽,他就會有單獨的儲存空間。所以才叫單獨分割槽
Linux安裝
- 安裝或升級 √
- 沒有圖形介面的簡易安裝
- 安全模式
- 從硬碟啟動
- 記憶體檢測
Desktop 圖形介面
Minimal Desktop (祕你樓) 圖形介面
Minimal 最小化安裝
Basic server(貝思客) 基本服務
Database server(達特備四) 整合MySQL資料庫
Web server 整合Apache web服務
Virtual host (我的有豪斯特) 整合虛擬化主機
Software deveiopment workstation整合軟體開發環境
centOS的版本分類
aa) Desktop:圖形介面
ab) Minimal Desktop:圖形介面
ac) Minimal(咪呢NO):最小化安裝
ad) Basic server(A誰庫誰我):基本服務
ae) Database server(爹可唄死誰我)資料中心服務,會裝Mysql
af) Web server:裡面會裝Apache
ag) Virtual Host(我濤好死)濤說本地話:裝虛擬機器主鍵
ah) Software Developmaent Workstation:裝開發環境
遠端登入管理工具
- Putty:古老的遠端管理工具,是綠色化工具,不需要安裝,雙擊開啟就能用,但是因為是很多年開發的,所以他的設定,字型,顏色都比較老化,收費。
- Seret:目前比較主流的工具,也是很強大的一個工具,各方面的設定都很不錯,收費。
- Xshell:目前比較主流也是最新的工具,可以選擇收費企業版或免費個人版,各方面的設定都很不錯。
Linux IP地址配置
- 輸入:setup進入設定頁面,第三行,第一行,回車,設靜態IP地址,oh boot這個服務要啟動,點OK,後儲存退出
- 輸入:service(服務) network(網絡卡) restart(重啟):重啟網絡卡服務
- 以下步驟只針對虛擬機器,虛擬機網絡卡設定為橋接
- 橋接到有線網絡卡
- 輸入:serivce(服務) network(網絡卡) restart(重啟):重啟網絡卡服務
- 要是以上的設定後還不行,檢查IP,要是檢查了IP沒問題,那就可能是UUID衝突,
- UUID衝突(唯一識別符,只針對複製映象生效)
- 輸入:vi /etc/sysconfig/network-scripts/ifcfg-etho:刪除MAC地址行
- 輸入:rm –rf /etc/udev/rules.d/70-persistent-net.rvles:刪除MAC地址和UUID繫結檔案
- 輸入:reboot :重啟Linux系統
一點注意事項
- 家目錄用~代表的
- #:代表超級使用者
- $:代表普通使用者
- Linux嚴格區分大小寫,“命令”都是小寫的,“-”選項是大寫。
- 函式:要是名稱後面有“.so.4”的就是函式
- 虛擬檔案系統:不可以在裡面儲存資料,因為重啟后里面的資料就會被清空
- /OPT/:要把軟體放置到/usr/local/目錄當中
- 清空資料:rm –rf /目錄/* 注意後面一定要加“*”號
- /tmp/:臨時目錄,一般要清空的時候要先看一下目錄,因為要是裝了PHP跟Mysql的軟體,他們會自動在這目錄中新建他們的目錄,一旦刪除了PHP跟Mysql的目錄,PHP跟Mysql他們會自己崩潰。應對方案:在PHP跟Mysql安裝的過程,是可以更改安裝路徑,這樣就可以更改到別的目錄裡面。
- 原始碼包:一般存放在/usr/local/src/目錄中
- 核心原始碼包:一般存放在/usr/src/linux/目錄中
- rar目錄:是放可變資料的
- /var/www/html/目錄:儲存網頁可變資料的
- 目前建議能做實驗的目錄:/root/,/tmp/,中
- Windows下的程式不能直接在Linux上安裝使用,因為Linux中的軟體需要開源軟體,windows的軟體是要不開源的軟體,所以雙方的軟體無法通用
- 在Linux中:“.”是代表當前目錄,“..”是代表上級目錄
- 服務器上不能出現777許可權,777為Linux系統中的最高許可權
Linux中硬碟和光碟
- Linux中所有內容都是以檔案形式儲存的,包括硬體
- 硬碟檔案是:/dev/sd[a-p]
- 光碟檔案是/dev/sro/等
Linux不靠擴充套件名區分檔案型別
- 壓縮包:“*.gz”,“*.bz2”,“tar.bz2”,“*.tgz”
- 二進位制軟體包:“*.rpm”
- 網頁檔案:“*.html”,“*.php”
- 指令碼檔案:“*.sh”
- 配置檔案:“*.conf”,配置檔案一定要加擴充套件名不加系統識別不了
注意:建議要是有以上的檔案在,一定要加副檔名,因為Linux系統不止你一個人在維護,這個也會好分類,容易分得清楚
Linux的儲存裝置掛載
- Liunx所有的儲存裝置都必須掛載之後,使用者才能使用,包括了硬碟,U盤,移動硬碟,光碟等
a) Windows下的儲存裝置全自動分配碟符,但是全都要手動彈出裝置 (碟符=掛載點)
b) Linux中只有硬碟是自動掛載的,其它的儲存裝置全需要手動掛載,但是全都要手動彈出裝置。
注意:在Linux系統中可以設定自動掛載儲存裝置,但是一旦設定了自動掛載,要是開機的話,系統沒有檢測到儲存裝置,那系統會調動全都的運算能力來分析為什麼沒有,因而宕機
服務器注意事項
- 遠端伺服器不允許直接關機,只能重啟。
- 準備重啟時應該關閉所有服務後才重啟。這樣可以保護硬碟防止損壞資料
- 不要在伺服器訪問高峰執行高負載命令,例:大資料的查詢,備份,拷備等
- 遠端配置防火牆時不要把自己踢出伺服器,應對方案:配置前先設定定時任務,每幾分鍾自動清理一下防火牆,建議按自身的能力來設定時間。
- 指定合理的密碼規範並定期更新
- 合理的分配許可權,不要隨便加大許可權,預設許可權的是比較合理的許可權分配,沒必要的時候不要去更改預設許可權。注意:能不給程式設計人員動伺服器就別讓他們動。
- 服務器上不能出現777許可權,777為Linux系統中的最高許可權
CentOS 6.* 安裝流程 & 遠端登入 請看附件
*************************************
linux常用命令
Linux 檔案的命名規則
- 除了 / 之外,所有的字元都合法,但有些字元最好不用,如空格符、製表符、退格符和字元 @ # $ & ( ) - 等
- 避免使用 “ . ” 作為普通檔名的第一個字元
- 大小寫敏感,嚴格區分大小寫(包括檔案命名、命令、命令選項、使用者名稱等)
Linux命令的格式(ls)
- 命令的【選項】【引數】。
a) 選項:是用於調整命令的功能的,不加許可權只能執行,加了許可權就可以執行更復雜的功能
b) 引數:是命令的操作物件,省略引數的原因是預設引數
c) 當有多個選項時,可以寫在一起
d) 兩個特殊的目錄 . 和 .. ,分別代表當前目錄和當前目錄的父目錄
e) 個別命令不遵循此格式
ls命令
ls (選項)(引數)
預設別名:(ll:顯示目錄下所有檔案的配套資訊)
常用:
ls :顯示目錄檔案 路徑:/bin/ls/ 許可權:所有使用者。
ls –a /目錄/ :顯示所有檔案
ls –color=nerern /目錄/ :不顯示顏色顯示目錄下內容
ls –lh :顯示檔案大小單位
ls –l :顯示目錄下所有檔案的配套資訊
可以用(ll命令)作用一樣
ls –ld :只顯示當前輸入的目錄資訊,不顯示該目錄下的子目錄
ls –i :顯示檔案的inode號i節點
man ls :檢視ls下的短選項跟長選項
選項:
-a :顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏檔案“.”和“..”以外的所有檔案列表;
-C:多列顯示輸出結果。這是預設選項;
-l:與“-C”選項功能相反,所有輸出資訊用單列格式輸出,不輸出為多列;
-F:在每個輸出項後追加檔案的型別識別符號,具體含義:“*”表示具有可執行許可權的普通檔案,“/”表示目錄,“@”表示符號連結,“|”表示命令管道FIFO,“=”表示sockets套接字。當檔案為普通檔案時,不輸出任何識別符號;
-b:將檔案中的不可輸出的字元以反斜線“”加字元編碼的方式輸出;
-c:與“-lt”選項連用時,按照檔案狀態時間排序輸出目錄內容,排序的依據是檔案的索引節點中的ctime欄位。與“-l”選項連用時,則排序的一句是檔案的狀態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號連結檔案本身,而不顯示其所指向的目錄列表;
-f:此引數的效果和同時指定“aU”引數相同,並關閉“lst”引數的效果;
-i:顯示檔案索引節點號(inode)。一個索引節點代表一個檔案;
--file-type:與“-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千位元組)為單位顯示檔案大小;
-l:以長格式顯示目錄下的內容列表。輸出的資訊從左到右依次包括檔名,檔案型別、許可權模式、硬連線數、所有者、組、檔案大小和檔案的最後修改時間等;
-m:用“,”號區隔每個檔案和目錄的名稱;
-n:以使用者識別碼和群組識別碼替代其名稱;
-r:以檔名反序排列並輸出目錄內容列表;
-s:顯示檔案和目錄的大小,以區塊為單位;
-t:用檔案和目錄的更改時間排序;
-L:如果遇到性質為符號連結的檔案或目錄,直接列出該連結所指向的原始檔案或目錄;
-R:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理;
--full-time:列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同型別的。
引數:
目錄:指定要顯示列表的目錄,也可以是具體的檔案。
- ll :顯示目錄檔案的配套資訊
檔案格式的意思
- 第一項:drwxr_xr_x. 代表許可權位
- 第二項:2 代表引用計數
a) 引用計數分類
- 檔案:代表此檔案的硬鏈接個數
- 目錄:代表此目錄下一級子目錄的個數,要是該目錄下沒有子目錄,就不顯示。
- 第三項:root 代表所有者(屬主)是那個使用者
- 第四項:root 代表所屬組
- 第五項:4090 代表檔案大小,單位位元組Byst
- 第六項:28 20:16 代表檔案最後一次修改時間
- 第七項:123 代表檔名稱
目錄操作命令(cd,pwd,mkdin,rmdir,rm,tree)
- cd:切換目錄
a) cd :切換目錄,路徑:shell內建命令,許可權:所有使用者
b) cd ~ :進入家目錄,或用cd直接進入
c) cd – :進入上次目錄
d) cd . :進入當前目錄
e) cd .. : 進入上級目錄
- pwd :顯示當前所在目錄,路徑:/bin/pwd,許可權:所有使用者
- mkdir :建立目錄
a) mkdir :建立目錄,路徑:/bin/mkdir/,許可權:所有使用者
b) mkdir –p :遞迴建立目錄,一級過一級的建立
- rmdir :刪除目錄,路徑:/bin/rmdir/,許可權:所有使用者
- rm:刪除
a) rm :刪除檔案,路徑:/bin/rm/,許可權:所有使用者
b) rm –rf :刪除檔案跟目錄
c) -r :遞迴,刪除目錄
d) -f :強制
- tree(吹):目錄名顯示指定目錄下所有內容的目錄樹,路徑:/bin/tree/,許可權:所有使用者
相對路徑跟絕對路徑
1. 相對路徑:參照當前所在的目錄,進行查找,一定要確實當前所有的目錄,從當前位置開始查詢開啟。
2. 絕對路徑:從根目錄開始指定,一級一級遞迴查詢。在任何目錄下,都能進入指定位置,從根目錄開始查詢開啟。
檔案操作命令(touch,rm,cat,more,less,head,tail,echo)
- touch(踏刺):建立空檔案或修改檔案時間,路徑:/bin/touch/,許可權:所有使用者,注意:touch也稱為觸控,要是檔案不存在,建立新檔案。要是存在,會修改檔案的最後修改時間
拓展:
echo “hello” > 檔名
> 會覆蓋原始檔的內容
>> 追加內容到原始檔中
touch {5..10}.txt
- rm:刪除
a) rm :刪除檔案,路徑:/bin/rm/,許可權:所有使用者
b) rm –rf :刪除檔案跟目錄
c) -r :遞迴,刪除目錄
d) -f :強制
- cat(卡特) :檢視檔案內容,從頭到尾。路徑:/bin/cat/,許可權:所有使用者,加“-n”:列出行號
拓展:
-n 列出行號
cat 顯示多個檔案的內容
cat 將多個檔案合併(按照檔案先後順序)
- more(莫兒) :分屏顯示檔案內容。路徑:/bin/more/。許可權:所有使用者,
操作方式:
空格鍵向下翻頁,b鍵向上翻頁?,q鍵退出,,Enter鍵換行
拓展:
head -n 顯示檔案前n行
tail -n 顯示檔案最後n行
tail -f 實時監控檔案尾部變化
- less(烈死) :分行顯示檔案內容,路徑:/bin/less/,許可權:所有使用者,操作方式:空格鍵換行,q鍵退出。
- head(嚇的)(嚇用本地話說) :顯示檔案頭
a) head :預設顯示檔案頭10行。路徑:/bin/head/。許可權:所有使用者,
b) head -n 20 檔案名 :顯示檔案頭20行
- tail(菜O) :預設顯示檔案尾
a) tail :預設顯示檔案尾10行。路徑:/bin/tail/。許可權:所有使用者,
b) tail -n 20 檔案名 :顯示檔案尾20行
c) tail –f 檔名:監聽檔案尾,不退出,適合監聽實時檔案
- echo(唉扣) 輸入或插入的內容 》》 /目錄名/檔案名: 是輸出命令,可以插入檔案內容,會寫在檔案最後面,從最後開始寫起
檔案和目錄都能操作的命令(rm,cp,mv,shell,type,ln)
- rm:刪除檔案或目錄
a) rm :刪除檔案,路徑:/bin/rm/,許可權:所有使用者
b) rm –rf :刪除檔案跟目錄
c) -r :遞迴,刪除目錄
d) -f :強制
- cp :複製
a) cp 源檔案 目標位置:複製。路徑:/bin/cp/。許可權:所有使用者
b) cp -a 源檔案 目標位置:相當有-r -p -d 這三個的功能
c) cp –r 源檔案 目標位置:複製目錄
d) cp -p 源檔案 目標位置:連帶檔案屬性複製,包括時間等
e) cp -d 源檔案 目標位置:若源檔案是連結檔案則複製連結屬性
f) cp 源檔案 /目標目錄/:原名複製
g) cp 源檔案 /目標目錄/新檔名:改名複製
- mv:剪下或改名。路徑:/bin/mv/。許可權:所有使用者
a) mv 檔案 /目標目錄/:剪下
b) mv 檔案 .新檔案名:改名,用“.”來代表當前目錄
- shell(誰歐) :命令解釋器,路徑:/bin/bash linux標準shell/
a) 內部命令:shell自帶的。沒有明確的可執行檔案
b) 外部命令:後期開發。有可執行檔案
- type(菜譜) 命令 :用來區分命令型別
- ln :連結檔案:路徑:/bin/ln/。許可權:所有使用者
a) ln 源檔案 目標檔案:硬連結
b) ln –s 源檔案 目標檔案:軟連結,檔案名都必須要寫絕對路徑
軟連結跟硬連結的分類
- 軟連結
a) 類似windows快捷方式
b) 軟連結擁有自己的I節點和Block塊,但是資料塊中只儲存原檔案的檔案名和I節點,並沒有實際的檔案資料
c) 軟連結的許可權為1rwxrwxrwx。為系統中最高許可權
d) 修改任何一個檔案,另一個都改變
e) 刪除連結檔案,原始檔不愛影響。刪除原檔案,軟連結無法訪問
f) 軟連結可以連線檔案,也可以連線目錄,可以跨分割槽
g) ln 原始檔 目標檔案:硬連結
- 硬連結
a) 擁有相同的I節點和儲存Block塊,可以看做是同一個檔案
b) 修改任何一個檔案,另一個都改變
c) 刪除任何一個檔案,另一個都能訪問
d) 硬連結檔案和原檔案的Inode號一致,只有這個標記代表硬連結,很不容易找到
e) 不能連結目錄,不能跨分割槽
f) 刪除原始檔,快捷方式檔案還可以訪問,這就是跟軟連結的區別
g) ln –s 原始檔 目標檔案:軟連結,檔名都必須要寫絕對路徑
alias:別名
alias(a裡兒死) :別名(照顧管理員的使用習慣)
alias :查詢系統現有別名
alias ser(別名)=“命令” :給命令起個別名,方便使用
注意事項
命令列臨時生效,永久生效需要寫入對應的系統檔案
別名的優先順序高於系統命令,除非必要時不能和命令名重疊
許可權位
- “.”許可權圖後面的.是SELinux,用來限制管理員的許可權,保護系統
許可權位為10位
- 第一位:檔案型別
a) - :普通檔案
b) d :目錄檔案
c) l :連結檔案
d) b :塊裝置檔案
e) c :字符裝置檔案
f) s :套接字
g) p :管道
注意:常用是前三個檔案型別,後四個是特殊檔案型別
- 後九位才是許可權
a) 後九位分類
- 前三位為:屬主或所有者許可權,“u”代表
- 中三位為:屬組許可權,“g”代表
- 後三位為:其他人許可權,“o”代表
b) 三位許可權分類
- “r”:讀,“4”代表
- “w”:寫,“2”代表
- “x”:執行,“1”代表
修改許可權(chmod)
- chmod(撐技莫的) :修改許可權。路徑:/bin/chmod/。執行許可權:所有使用者
a) chmod 許可權 檔案名:修改許可權
b) chmod 755 abc
c) chmod 644 abc
chmod u+x aa 給aa檔案的所有者新增x許可權
chmod g+w,o+w aa 給aa檔案的所屬組和其他人新增w許可權
chmod u=rwx aa 給aa檔案的所有者賦予rwx許可權
chmod 644 aa 修改aa檔案的許可權為755,對應為rw-r--r--
常見許可權
- 644許可權:標準檔案許可權
- 755許可權
a) 檔案:執行許可權
b) 目錄:標準許可權
- 777許可權:代表最大許可權。伺服器不允許出現最大許可權
- 467許可權:代表最小許可權。只有在實驗中使用
許可權的意義(讀寫執行基本許可權)
- 許可權對檔案的含義
a) r :讀取檔案內容(cat,more.head,tail)
b) w :編輯,新增,修改檔案內容,但是不包含刪除檔案,要是要刪除檔案,需要在檔案的當前目錄中刪除檔案(vi,echo)
c) x :檔案可執行
注意:要想刪除檔案需要擁有w目錄的許可權,因為刪除檔案是在目錄中刪的
- 許可權對目錄的含義
a) r :可以查詢目錄下檔名
b) w :具有修改目錄結構的許可權。如新建檔案和目錄,刪除此目錄下檔案和目錄,重命名此目錄下檔案和目錄,剪下(tovch,rm,mv,cp)
c) x :可以進入目錄(cd)
對檔案有寫許可權,只代表可以修改這個檔案的內容;要想刪除檔案,需要對檔案所在目錄有寫許可權
只要對目錄有寫許可權,目錄中的檔案,就算是root建立的,普通使用者一樣能刪除
目錄一般都同時有r-x許可權,如果一個目錄只有r卻沒有x,你能用ls檢視,卻不能cd 進去!(用普通使用者測試)
許可權命令
- chown(撐技O能):屬主和屬組命令,路徑:/bin/chown/,許可權:所有使用者
a) chown 使用者名稱 檔案名 :改變檔案屬主者/所有者。 (例:chown user1 aa )user1必須存在
b) chown :使用者名 檔案名:修改屬組者(例:chown :user1 aa)
c) chown 使用者名:使用者名稱 檔案名 :改變屬主/所有者同時改變屬組,(例:chown user1:user1 aa)
例:
chown user1 aa :將aa檔案的所有者修改為user1使用者
chown user1:user1 aa :將aa檔案的所有者修改為user1使用者並且所屬組修改為user1組
chown :user1 aa:將aa檔案的所屬組修改為user1組
- chgrp 屬組名 檔案名:改變屬組,路徑:/bin/chgrp/,許可權:所有使用者
例:
chgrp adm file1:改變檔案file1的所屬組為adm
使用者的建立
- whoami(好咪) :查詢當前使用者的等級,是普通使用者還是管理員
- user(優蛇)add(按的) 使用者名 :建立使用者
- passwd 使用者名 :建立密碼
退出遠端管理:logout (落狗兒刺)
許可權的注意事項
- 檔案目錄的最大許可權
a) 檔案最大許可權:x許可權
b) 目錄最大許可權:w許可權
- 目錄可用許可權
a) 0:最小許可權
b) 5:基本許可權,可進入,可檢視。
c) 7:完整許可權
- 普通使用者可以改檔案和目錄,前提是普通使用者對檔案或目錄有所有者許可權,要是要轉移檔案,就要有超級使用者同意。
- 普通使用者能改許可權,不能改所有者是誰,管理員可以更改
- 管理員擁有最高許可權
- 注意:檔案是誰建立的,所有者的許可權就是誰的,要是一個使用者在一個檔案擁有所有者跟屬組。那所有者的許可權優先。(所有者的許可權是給建立檔案的人,屬組者是給普通使用者的)
系統檔案目錄預設許可權
- umask(u罵死可) 許可權:修改系統檔案和目錄的預設許可權,路徑:shell內建命令,許可權:所有使用者。(umask 644 臨時修改umask值)
- umask :檢視當前系統檔案跟目錄的預設許可權。 (-S(大寫)以字母顯示許可權)
- umask所在的環境變數配置檔案:/etc/profile
- 檔案跟目錄
a) 檔案:
- 666減去022等於644,按下面的計算
- –wr-wr-wr- 減去 -----w--w- 等於 –wr--r--r-
b) 目錄:
- 777減去022等於755,按下面的計算
- wrxwrxwrx 減去 -----w--w- 等於 wrx-rx-rx
- 系統檔案的預設許可權是:644
- 系統目錄的預設許可權是:755
- 普通使用者的umask值是500
- 超級使用者的umask值是0
總結:Linux的安全機制,不給新建檔案x許可權。
幫助命令(help,lnfo,man)
- help(蝦O破 蝦:說本地話) 命令,路徑:Shell內建命令
a) help 內部命令 :檢視內部命令幫助
b) 命令 --help :檢視命令的常見選項
- -q 隱藏檔名
- -v 顯示檔名
- -c 顯示位元組數
- -n 顯示的行數
- Info (音否) 命令
a) 回車:進入子幫助頁面(帶有*號標記)
b) u :進入上層頁面
c) n :進入下一個幫助小節
d) p :進入上一個幫助小節
e) q :退出
- man(慢的)命令,路徑:/bin/man/
a) man 命令 :檢視命令幫助
b) man 級別 命令 :檢視命令在級別分類中的命令
c) whatis 命令 :檢視命令擁有那些特別的幫助
查詢命令
- which(劃去 劃:說本地話) 命令名 :查詢命令的命令,能看到相關別名跟路徑,路徑:/usr/bin/which。
- whereis 命令名 :查詢命令的命令,同時看到幫助文件位置,路徑/usr/bin/whereis。
- locate (露K刺) 檔名 :按照檔名查詢,按照資料庫查詢,路徑:/usr/bin/locate
a) updatedb(O破強) :強制更新資料庫
b) /var/lib/mlocate :命令所搜尋的後臺資料庫
c) /etc/updated.conf :配置檔案,用於定義locate命令
d) PRUNE_BIND_MOUNTS=”yes”:開啟搜尋限制
e) PRUNEFS= :搜尋時,不搜尋的檔案系統
f) PRUNENAMES= :搜尋時,不搜尋的檔案型別
g) PRUNEPATHS= :搜尋時,不搜尋的路徑
注意:有些系統檔案開啟後出現的是亂碼,這是為了保護系統安全
find 搜尋命令
- 按照檔名查詢
a) find(返的) 查詢位置 –name 檔案名 :按照檔名查詢(例:find / -name aabbcc)
- 按照時間查詢
a) –ctime :按照檔案狀態修改時間(天)change
b) –mtime :按照檔案資料修改時間 modify
c) –atime :按照訪問時間 acces
注意:-4指的是前三天
+4指的是前五天
d) 例:find / -ctime +4
按天 :ctime atime mtime
按分鐘 :cmin amin mmin
c change #表示屬性被修改過:所有者、所屬組、許可權
a access #被訪問過(被檢視過)
m modify #表示內容被修改過
例:
find /etc -mmin -120 :120分鐘內內容被修改過的
find /etc -ctime +7 :七天之前屬性被修改過的檔案
- 按照使用者
a) –uid 數字 :按照使用者屬主ID查詢檔案
b) –gid 數字 :按照屬組組ID查詢檔案
c) –user 使用者名 :按照屬主使用者名查詢檔案
例
find /home -user lisi
在/home中,查詢所有lisi使用者的檔案
注意,在系統中需要存在此使用者,否則報錯
d) –group 組名 :按照屬組組名查詢檔案
e) –nouser :找沒有屬主的檔案(常用)
f) 例:find / -nouser
- 按照檔案許可權
a) –name :按照檔名
b) –size :按照檔案大小,不能加小數點,(單位:k(小寫),M(大寫))(+50k:大於50k。-50k:小於50k。50k:等於50k。)(例:find / -size +50k )
單位是資料塊 一塊是512位元組
1M -> 1024k -> 2048塊 (1塊是0.5k 也就是512位元組)
100M -> 102400k -> 204800塊
例:
find /etc -size -10k 查詢小於10k的檔案
find /etc -size +2M 查詢大於2M的檔案
注意+-號,如果沒有,是精確這麼大,通常都會帶上+或-號,表示一個範圍
c) –type 型別 :按檔案型別查詢,(f:普通。d:目錄。l:連結)
d) –perm 755: 按照許可權查詢(例:find . –perm 644) (-400:只要比這個許可權大,包含在內的就會列出所有來) (+400:只要有一個包含你寫的許可權就會顯現出來)
e) –inum :按照i節點查詢 (例:find . inum 節點數)
f) –iname :按照檔名查詢,不區分大小寫
通配符跟正則表示式
- 通配符:用於匹配檔名,完全匹配
a) * :用於匹配任意內容
b) ?:用於匹配任意一個內容,必須有一個,不然是出不來的
c) [] :用於匹配中括號內任意一個內容:[a-z]任意一個小寫字母,[A-Za-z] 任意一個字母,[0-9]任意一個數字
- 正則表示式:用於匹配檔案中的字串,是包含匹配
a) * :前一個字元重複任意多次
b) ?:前一個字元重複1次或0次
c) [] :匹配中括號中任意一個內容:[a-z]任意一個小寫字母,[A-Za-z] 任意一個字母,[0-9]任意一個數字
Linux沒有所有者的正常檔案
- 外來檔案(光碟,U盤,行動硬碟,網路檔案)注意:目錄顯示包含30120的目錄不是垃圾檔案,是正常檔案
- 極少數的核心直接產生的檔案(/proc/sys/net)
注意:要是不在這2行內的檔案,要很注意。有可能是入侵檔案
-exec命令的疊加查詢
-exec :find 目錄 –perm(第一種命令) -444 -exec ls(第二種命令) –l {} \ ;
命令一的執行結果作為命令二的操作物件
例:find . –size +5k -exec ls -lh {}\;
find ... -exec 命令 {} \;
{}表示find查詢的結果集
\是轉義符,不使用命令別名,直接使用命令本身
;分號是表示語句的結束
注意:固定格式,只能這樣寫。注意中間的空格。
邏輯跟運算
find . –type f -a -size +2k 注意(-a=AMD)
邏輯與運算,兩個條件都成立才成立
find . –type f -o -size +2k 注意(-o=OR)
邏輯或運算,兩個條件成立一個,就成立
邏輯連線符:
-a (and 邏輯與)
-o (or 邏輯或)
例:find /etc -size +1k -a -size -10k
在etc目錄下查詢大於1k並且小於10k的檔案
find跟grep的意義
- find:在系統當中,搜尋符全條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配。
- grep:在檔案當中,搜尋符合條件的字串,如果需要匹配,使用正則表示式匹配,正則表示式是包含匹配
grep
- grep “字元串” 檔案名 :查詢符合條件的字序列,路徑:/bin/grep/。(例:grep “root” /etc/passwd)
- grep