08-常用指令(2)
阿新 • • 發佈:2020-08-24
組管理
在 Linux 中的每個使用者必須屬於一個組,不能獨立於組外。在 Linux 中每個檔案有所有者、所在組、其它組的概念。
組的建立
- 指令:
groupadd 組名
- 建立指定組的使用者:
useradd -g 組名 使用者名稱
相關概念
所有者
- 檢視檔案的所有者:
ls –ahl
- 修改檔案所有者:
chown 使用者名稱 檔名
- 示例:將 finch 建立的檔案 machine 的所有者修改成 liujiaqi
所在組
當某個使用者建立了一個檔案後,預設這個檔案的所在組就是該使用者所在的組。
- 檢視檔案/目錄所在組:
ls –ahl
- 修改檔案所在的組:
chgrp 組名 檔名
使用 finch 使用者建立檔案helper,看看當前這個檔案屬於哪個組,然後將這個檔案所在組修改為 liujiaqi 組。
其他組
除檔案的所有者和所在組的使用者外,系統的其它使用者都是檔案的其它組。
修改使用者所在組
在新增使用者時,可以指定將該使用者新增到哪個組中,同樣的用 root 的管理許可權可以改變某個使用者所在的組。
- 改變使用者所在組:
usermod –g 組名 使用者名稱
- 改變該使用者登陸的初始目錄:
usermod –d 目錄名 使用者名稱
許可權管理
檢視檔案許可權
以 ls -ahl
結果中的一條記錄為例:
- 第 0 位確定檔案型別
- d:目錄
- l:軟連結
- c:字元裝置(鍵盤、滑鼠)
- b:塊檔案(硬碟)
- 第 1~3 位確定所有者(該檔案的所有者)擁有該檔案的許可權 --- User
- 第 4~6 位確定所屬組(同用戶組的)擁有該檔案的許可權 --- Group
- 第 7~9 位確定其他使用者擁有該檔案的許可權 --- Other
rwx 許可權詳解
- rwx 作用到檔案
[r]
代表可讀(read):可以讀取,檢視[w]
代表可寫(write):可以修改,但是不代表可以刪除該檔案!刪除一個檔案的前提條件是對該檔案所在的目錄有寫許可權,才能刪除該檔案[x]
代表可執行(execute):可以被執行
- rwx 作用到目錄
[r]
代表可讀(read):可以讀取,ls 檢視目錄內容[w]
代表可寫(write):可以修改,目錄內:建立+刪除+重新命名目錄[x]
代表可執行(execute):可以進入該目錄
修改許可權
通過chmod指令,可以修改檔案或者目錄的許可權。
方式一:算符
+ 、-、=
變更許可權- u:所有者 | g:所有組 | o:其他人 | a:所有人(ugo總和)
- 示例
chmod u=rwx,g=rx,o=x 檔案目錄名
給所有者賦予 rwx 許可權,所有組使用者賦予 rx 許可權,其他組使用者賦予 x 許可權chmod o+w 檔案目錄名
:給其他組使用者增加 w 許可權chmod a-x 檔案目錄名
:給所有使用者去除 x 許可權
- 練習、
- 給 abc 檔案 的所有者讀寫執行的許可權,給所在組讀執行許可權,給其它組讀執行許可權
- 給 abc 檔案的所有者除去執行的許可權,增加組寫的許可權
- 給 abc 檔案的所有使用者新增讀的許可權
- 給 abc 檔案 的所有者讀寫執行的許可權,給所在組讀執行許可權,給其它組讀執行許可權
方式二:數和
- r=4,w=2,x=1,rwx=4+2+1=7
- 算符賦權的
chmod u=rwx,g=rx,o=x 檔案目錄名
相當於chmod 751 檔案目錄名
修改檔案所有者
- 指令格式
chown newowner file
改變檔案的所有者chown newowner:newgroup file
改變檔案的所有者和所有組
- 常用引數:
[-R]
若是目錄,則使其下所有子檔案和目錄遞迴生效
修改檔案所在組
- 指令格式:
chgrp newgroup file
改變檔案的所有組 - 示例
練習題
- 前置準備
- 2 個組:straight,curly
- 2 個 straight 組員:finch,reese
- 2 個curly 組員:groves,shaw
- finch 建立一個檔案 machine,自己可以讀寫,本組人可以讀,其它組沒有任何許可權
- finch 修改該檔案,讓其它組人可以讀,本組人可以讀寫
- shaw 投靠 straight,看看是否可以讀寫
任務排程
概述
- 任務排程:是指系統在某個時間執行的特定的命令或程式。
- 任務排程分類
- 系統工作:有些重要的工作必須周而復始地執行。比如病毒掃描等
- 個別使用者工作:個別使用者可能希望執行某些程式。比如對 MySQL 資料庫的備份
- 基本語法:
crontab [選項]
- 功能描述:crontab 進行定時任務的設定;通過
service crond restart
重啟任務排程。 - 常用選項
- 圖示
Quick Start
- 鍵入命令:
crontab -e
- 編輯指令碼:
*/1 * * * * ls -l /etc >> /tmp/to.txt
- 儲存退出後的每一分鐘都會自動地呼叫該指令碼
引數細節
- 5 個佔位符的說明
- 特殊符號的說明
- 特定時間執行任務案例
應用例項
- 每隔 1 分鐘,就將當前的日期資訊,追加到 /tmp/mydate 檔案中
- 編寫指令碼檔案 /home/mytask1.sh,寫入內容:
date >> /tmp/mydate
- 給 mytask1.sh 可執行許可權:
chmod 744 mytask1.sh
- 執行命令:
crontab -e
,繼而將*/1 * * * * /home/mytask1.sh
寫入 - 每個 1 min 檢視 mydate 檔案內容
- 編寫指令碼檔案 /home/mytask1.sh,寫入內容:
- 每隔 1 分鐘, 將當前日期和日曆都追加到 /home/mycal 檔案中
- 編寫指令碼檔案 /home/mytask2.sh,寫入內容:
date >> /tmp/mycal cal >> /tmp/mycal
- 給 mytask2.sh 可執行許可權:
chmod 744 mytask2.sh
- 執行命令:
crontab -e
,繼而將*/1 * * * * /home/mytask2.sh
寫入 - 每個 1 min 檢視 mycal 檔案內容
- 編寫指令碼檔案 /home/mytask2.sh,寫入內容:
- 每天凌晨 2:00 將 MySQL 資料庫 testdb ,備份到檔案中
- 編寫指令碼檔案 /home/mytask3.sh,寫入內容:
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
- 給 mytask3.sh 可執行許可權:
chmod 744 mytask3.sh
- 執行命令:
crontab -e
,繼而將0 2 * * * * /home/mytask3.sh
寫入 - 每天凌晨 2 點 起來檢視 mycal 檔案內容(哈哈哈哈哈哈
- 編寫指令碼檔案 /home/mytask3.sh,寫入內容:
磁碟分割槽
分割槽基礎
分割槽的方式
- MBR 分割槽
- 最多支援 4 個主分割槽(因為分割槽表只能記錄 4 條分割槽記錄)
- 系統只能安裝在主分割槽
- 擴充套件分割槽要佔一個主分割槽;在擴充套件分割槽裡面,還可以再分邏輯分割槽
- MBR 最大隻支援 2TB,但擁有最好的相容性
- GTP 分割槽
- 支援無限多個主分割槽 (但 OS 可能限制,比如 Windows 下最多 128 個分割槽)
- 最大支援 18EB 的大容量 (1EB=1024 PB,1PB=1024 TB)
- Windows7 64 位以後支援 GTP
Win 磁碟分割槽
Linux 分割槽
原理簡述
- Linux 來說無論有幾個分割槽,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的檔案結構 , Linux 中每個分割槽都是用來組成整個檔案系統的一部分。
- Linux 採用了一種叫“載入”的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一個分割槽和一個目錄聯絡起來 [掛載(Mount)]。這時要載入的一個分割槽將使它的儲存空間在一個目錄 [掛載點(Mount Point)] 下獲得。
硬碟說明
- Linux 硬碟分為 IDE 硬碟和 SCSI 硬碟,目前基本上是 SCSI 硬碟。
- 對於 IDE 硬碟,驅動器識別符號為 "hdx~"。其中 "hd" 表明分割槽所在裝置的型別,這裡是指 IDE 硬碟了。"x" 為盤號(a 為基本盤,b 為基本從屬盤,c 為輔助主盤,d 為輔助從屬盤),"~" 代表分割槽,前 4 個分割槽用數字 1 到 4 表示,它們是主分割槽或擴充套件分割槽,從 5 開始就是邏輯分割槽。
- hda3 表示為第 1 個 IDE 硬碟上的第 3 個主分割槽或擴充套件分割槽
- hdb2 表示為第 2 個 IDE 硬碟上的第 2 個主分割槽或擴充套件分割槽
- 對於 SCSI 硬碟則標識為 "sdx~",SCSI 硬碟是用 "sd" 來表示分割槽所在裝置的型別的,其餘則和 IDE 硬碟的表示方法一樣。
掛載案例
VM 增加硬碟步驟:
- VM [設定] 中新增硬碟
- 分割槽
- 格式化
- 掛載
- 設定可以自動掛載
VM 新增硬碟
分割槽
格式化
格式化之後分割槽就有 UUID 了。
掛載
這種方式的掛在是臨時掛在,系統重啟之後就沒了。
自動掛載
解除安裝
- 掛載:將一個分割槽與一個目錄聯絡起來
- 命令:
mount 裝置名稱 掛載目錄
- 例如:
mount /dev/sdb1 /newdisk
- 命令:
- 解除安裝:將一個分割槽與一個目錄斷開聯絡
- 命令:
umount 裝置名稱 | 掛載目錄
- 例如:
umount /dev/sdb1
|umount /newdisk
- 命令:
磁碟情況查詢
系統整體磁碟使用情況
基本語法:df -h
指定目錄的磁碟佔用情況
- 基本語法:
du -h /目錄
- 功能描述:查詢指定目錄的磁碟佔用情況,預設為當前目錄
- 常用選項:
[-s]
指定目錄佔用大小彙總[-h]
帶計量單位[-a]
含檔案[--max-depth=n]
子目錄深度[-c]
列出明細的同時,增加彙總值
- 示例:查詢 /opt 目錄的磁碟佔用情況,深度為 1
工作實用指令
- 統計 /home 資料夾下檔案的個數
- 統計 /home 資料夾下目錄的個數
- 統計 /home 資料夾下檔案的個數,包括子資料夾裡的
- 統計 /home 資料夾下目錄的個數,包括子資料夾裡的
- 以樹狀顯示 /home 資料夾目錄結構