CH1 安裝Ubuntu
一.基本知識
1.磁碟分割:
每顆硬碟在分割時最多只能分割出四個主要分割區(Primary Partition)或延伸分割區(Extended Partition)。其中,延伸分割區可再細分出數個邏輯分割區,但主要分割區只能直接拿來使用,不可再細分
﹡每顆硬碟最多只能有一個延伸分割區
2.磁碟代號:
IDE裝置:/dev/hd[a-z]
隨身碟或讀卡機:/dev/sd[a-z]
光碟機:/dev/cdrom
3.樹狀目錄管理
/bin:常用命令的存放目錄
/sbin:常用系統命令的存放目錄
/usr/bin:與使用者平常作業相關的命令存放目錄
/usr/sbin:與使用者系統管理作業相關的命令存放目錄
/root:root使用者的家目錄
/home:一般使用者的家目錄
/etc:系統設定檔的存放目錄
/dev:裝置存取檔的所在目錄
/lib:程式庫檔案的存放處
/usr/local:使用者自行安裝軟體的存放處
「/」表示根目錄
「.」表示目前目錄
「..」表示上一層目錄
「~」表示目前使用者的家目錄
「~Tom」表示Tom的家目錄
CH2 套件管理
一.APT
1.apt-get
sudo apt-get update:會先從系統預設的套件來源網站中取得所有套件的列表,以便使用者可以直接取得套件的最新版本。並不會自更新軟體套件
sudo apt-get upgrade:自動將系統上所有已安裝的套件進行更新
sudo apt-get install xxx:安裝xxx套件。若為「xxx*」則會自動安裝所有以xxx開頭的套件
sudo apt-get remove xxx:移除xxx套件。會保留其設定檔
sudo apt-get autoremove xxx:自動移除xxx及其他相依套件
sudo apt-get puge xxx:移除xxx套件及相關設定檔
sudo apt-get dist-upgrade xxx:升級xxx及其他相依套件
sudo apt-get clean:清除更新時所下載的套件檔案
sudo apt-get autoclean:只移除過舊版版本的套件檔案
2.apt-cache
apt-cache search xxx:在套件列表中搜尋有xxx關鍵字的套件
apt-cache showpkg xxx:顯示xxx套件的所有資訊,如套件版本、相依套件的關係等
apt-cache stats:查詢套件在系統上的統計資訊
apt-cache show xxx:顯示xxx套件的相關資訊,包含套件所屬性質、分類、檔案大小、相依套件以及是否會與其他套件產生衝突等訊息
apt-cache depends xxx:顯示xxx的相依套件
apt-cache pkgnames:將系統所有可用的套件名稱列出,可在其後加上「 | more」,以便閱讀
二.手動安裝deb套件
sudo dpkg -i xxx.deb:安裝xxx 套件
sudo dpkg -r xxx.deb:移除xxx套件
dpkg -l:查詢已安裝的套件
CH3 指令介紹
一.基本指令
1.線上操作手冊 man
NAME:大略說明指令的用途
SYNOPSIS:說明指令參數的使用格式
DESCRIPTION:說明指令的詳細用途及參數
SEE ALSO:列出與該指令相關的其他指令
HISTORY:說明此指令的改版歷史、改版提供的新功能等
2在指令後方加上「--help」參數,可查到該指令的基本用法
3.輸入「clear」可清除終端機畫面
二.檔案與磁碟管理
1.列出檔案 ls
-a:顯示所有檔案,包含以「.」開頭的隱藏檔
--color:是否啟用以顏色區分檔案的功能。「--color=never」表示不啟用,「--color=always」表示一律使用
-d:僅顯示目錄名稱而非顯示目錄內的檔案列表
-F:顯示特殊檔案時,會在檔案名稱後方加上特定字元。執行檔會加上「*」號,捷徑會加上「@」等
-l:以較完整的方式顯示檔案。例如檔案的讀取權限、擁有者與群組名稱、檔案大小、修改日期等資訊
-h:顯示檔案時,以KB、MB、GB等較易閱讀的方式顯示檔案大小。此參數需與「-l」參數合用才有效果
-m:在檔案名稱後方加上逗號,但與「-l」合用時失效
-n:類似「-l」參數的功能,但檔案擁有者與群組以數字直接呈現UID/GID為何,而非顯示名稱
-o:類似「-l」參數的功能,但不顯示群組名稱
-r:顯示檔名時以反向進行排序
-R:顯示目錄下所有子目錄中的檔案
-s:以區塊為單位顯示檔案大小
-S:以檔案大小進行排序
-t:以時間進行排序
-v:以版本進行排序
-X:以副檔名進行排序
2.切換目錄 cd
3.顯示目前目錄 pwd
4.建立目錄 mkdir
﹡若要一次建立多層子目錄,則加上「-p」參數
5.刪除目錄 rmdir
﹡僅能刪除空目錄
﹡加上參數「-p」可直接刪除子目錄及其上層目錄
6.刪除檔案 rm
﹡加上參數「-i」可確認使用者是否要刪除檔案
﹡加上參數「-r」會自動刪除目錄下的所有檔案與子目錄
7.複製檔案 cp
﹡加上參數「-i」可確認使用者是否要複製除檔案
8.移動檔案 mv
﹡若來源目錄與目的目錄都是位於相同的目錄,則mv指令為更名的動作
﹡加上參數「-i」可確認使用者是否要移動除檔案
9.顯示檔案內容 cat
﹡加上參數「-n」可在每一行的前面加上行號
10.擷取字串 grep
﹡加上參數「-v」會隱藏包含關鍵字的行數,而其他的行數則全數顯示
11.尋找檔案
find:可以在檔案中找尋任何檔案,只要檔名符合即可,檔案屬性並不影響搜尋結果
﹡find指令格式為「find <搜尋開始目錄> -name <檔案名稱>」
which:只會在PATH環境變數所設定的目錄中找尋可執行檔。如果檔案只是一般檔案,如普通的文字檔,則不會被找到
﹡環境變數指的是系統運行時,供作業系統本身或應用程式參考的特殊變數。而PATH環境變數會定義一連串的路徑位置,表示系統執行指令時預設搜尋指令執行檔所在路徑的順序
whereis:類似which指令,但whereis會另外搜尋像man page的目錄等額外目錄與指令
12.分頁顯示
more:只能向下捲動
less:可以上下捲動,也可以利用Page Up或Page Down按鍵上下捲動一頁的資料
13.顯示檔頭、檔尾
head:僅顯示檔案的前幾行。指令為「head -<行數> <檔案名稱>」,預設為10行
﹡加上參數「-f」可用來監控像是記錄檔之類會隨時更新內容的檔案。若要中止,則按下CTRL + C
tail:僅顯示檔案的後幾行。指令為「tail -<行數> <檔案名稱>」,預設為10行
﹡加上參數「-f」可用來監控像是記錄檔之類會隨時更新內容的檔案。若要中止,則按下CTRL + C
14.更新檔案時間 touch
﹡若檔案不存在,則會建立指定名稱的檔案
15.建立連結 ln
硬連結:指令為「ln <連結來源檔案> <連結目的檔案>」。不能跨越磁碟分割區,所以在使用硬連結時,無論是連結目的檔案或是連結來源檔案,都必須在同個硬碟分割區中。此外,因為連結目的檔案與連結來源檔案使用相同的inode number,所以針對連結來源檔案所進行的任何操作,都會即時反應到連結目的檔案上。例如「touch」指令更新連結來源檔案,則連結目的檔案也會跟著一起更新最後修改時間的資訊
﹡建立一個與連結來源檔案使用相同incode number的檔案
軟連結:又稱為符號連結。指令為「ln -s <連結來源檔案> <連結目的檔案>」。可以跨越磁碟分割區,且針對連結來源檔案所進行的檔案資料結構修改,並不會影響連結目的檔案的屬性
16.檔案佔用大小 du
﹡預設會將目錄下所有子目錄的佔用空間全數列出,最後才計算總大小
﹡「du」指令所顯示的數字是以KB為單位
﹡加上參數「-h」可以將數字以MB為單位
﹡加上參數「-s」可以單純計算某個目錄所佔用的空間
17.已掛載的檔案系統使用量 df
﹡指令同du
三.權限管理
1.當使用「ls -l」指令時,會看到檔案或目錄前方有十個字元,這些即為檔案存取權限。這些字元可分為四組,各擁有1、3、3、3個字元。第一個字元用來表示檔案的特殊性,當此檔案為目錄時,則顯示「d」;當為連結檔時,則顯示「l」。後面三組各三個字元則分別代表檔案擁有者、群組與其他使用者對於此檔案的存取權限
2.更改讀取權限 chmod
除了以數字方式進行修改外,也可利用文字指定的模式,如「chmod 644 <檔案名稱>」效果與「chmod u=rw,g=r,o=r <檔案名稱>」。其中「u」為檔案擁有者的權限;「g」為相同群組使用者;「o」為其他使用者。設定全現實可以使用「=」直接設定,如果只需要修改某種權限,則可以使用「+」或「-」
﹡若要同時修改檔案的擁有者與群組,則使用「chmod <使用者帳號>.<群組> <檔案名稱>」
3.更改擁有者 chown
4.更改群組 chgrp
四.系統管理
1.工作監控 top
2.顯示行程 ps
﹡加上參數「u」可顯示執行該行程的使用帳號
﹡加上參數「a」可顯示系統上所有使用者執行的行程列表
﹡加上參數「x」可顯示非使用者所執行的行程
﹡加上參數「w」則包含所有的參數
3.查詢系統負載、已開機時間 uptime
﹡「load average」後面的三個數字分別表示過去一、五、十五分鐘系統的負載程度。0.00表示負載十分輕微,1.00以上表示有些負荷,若到了5以上,則該系統可能正在進行大工程
4.刪除行程 kill
﹡先以「ps」指令查詢欲刪除行程的PID,再以「kill <PID>」刪除。若該行程被kill後仍繼續執行,可輸入「kill -9 <PID>」強制刪除
5.調整優先權 nice
﹡所有使用者執行的命令預設都是以優先權20進行運作
﹡格式為「nice --adjustment=<數字> <指令>」,其中數字若為正值,表示要降低優先權;若為負值,則表示提高優先權。數字越小表示優先權越高
5.開機訊息 dmesg
6.查詢線上使用者 who
7.查詢目前所使用的身份 whoami
8.最後登入時間 last
9.切換使用者 su
﹡若輸入「su <使用者帳號>」,不會套用該使用者的登入環境;若輸入「su - <使用者帳號>」,則會自動套用該使用者所有的環境變數
10.掛載磁碟 mount
﹡可使用「mount -t <檔案系統> <來源裝置代號> <掛載目錄>」,將其他磁碟掛載到系統中
11.卸載磁碟 umount
12.格式化檔案系統 mkfs
﹡需umount後才可格式化
﹡格式為「mkfs -t <檔案系統類型> <磁碟代號>」
13.檢查檔案系統 fsck
﹡最好先umount後再檢查
﹡若要檢查的磁碟是系統磁碟,無法卸載時,可執行「sudo init 1」指令進入擔使用者模式,再進行卸載即可
14.寫入快取 sync
﹡LInux在進行磁碟存取時,並不會立即將資料寫入磁碟中,而是會先存放在快娶記憶體中,等到CPU有空或快取記憶體滿載時,才一次寫入。而此指令是強迫系統立即將這些資料寫入
15.關機 shutdown
﹡格式為「shutdown <參數> <執行時間>」
﹡加上參數「-h」表示停止運行後直接關機。相當於「-H」加上「-P」
﹡加上參數「-H」表示停止運行但不關機,直到使用者按下電源鍵才算是真正關機
﹡加上參數「-r」表示停止運行後重新開機
﹡加上參數「-P」表示執行完hitdown過程後便立即關機
﹡加上參數「+ <時間>」表示過了<時間>分後便執行shutdown指令
﹡關機前為確保快取記憶體有被寫入磁碟,最好先執行二到三次的「sync」指令再進行關機
﹡若要立即進行關機,使用「halt」指令可以代替使用「shutdown -h now」
﹡若要立即重新開機,使用「reboot」指令可以代替使用「shutdown -r now」
16.新增群組 addgroup
17.刪除群組 delgroup
18.新增使用者 adduser
19.刪除使用者 deluser
﹡通常執行時會加上「--remove-home」參數,表示一併移除此帳號的家目錄
20.修改密碼 passwd
21.預約執行at
﹡格式為「at <HH:MM>」
﹡執行「atq」指令可查詢目前系統上已建立的預約行程
﹡執行「atrm <佇列序號>」可刪除指定行程
22.定期執行 crontab
﹡設定格式為「<分鐘> <小時> <日期> <月份> <星期幾> <命令>」,「*」表示所有時間都可接受
﹡加上參數「-l」可列出目前已排程的行程表
﹡加上參數「-r」可移除所有的排程
﹡加上參數「-e」可編輯排程
23.背景執行 bg
﹡在執行指令時,若在命令列的最後面加上「&」符號,表示要將此命令放置背景執行,與執行「bg %<工作編號> 」指令效果相同
﹡若指令執行到一半,想將指令放到背景執行,可先按下CTRL+Z暫停程式的執行
﹡使用「jobs」指令,會列出目前使用者所執行的背景程式,並顯示這些程式的執行狀態
24.前景執行 fg
25.離線執行 nohup
﹡使用「cat nohup.out」指令可查詢離線執行的工作
26.服務管理 service
﹡格式為「service <服務名稱> <命令>」。允許的命令包括start、stop、restart
﹡執行「service --status-all」指令可查詢目前系統所有服務的啟動狀態。狀態若為「+」表示目前運作中;「-」表示未執行;「?」表示狀態不明
五.壓縮程式
1.tar
﹡單純以「tar」指令打包只能將一些檔案或目錄集合成一個檔案,但不進行壓縮
﹡格式為「tar cpf <目的檔案> <來源目錄或檔案>」。其中「c」參數表示打包檔案;「p」參數表示保留檔案原先的存取權限;「f」參數表示打包的結果要存成檔案
﹡若要解壓縮,則將參數「c」改為「x」。「x」參數表示解開已打包的檔案
2.gzip
﹡gzip只有壓縮功能,故需tar後才能壓縮
﹡附檔名為.gz
﹡解壓縮使用「gunzip」指令
3.bzip2
﹡bzip2只有壓縮功能,故需tar後才能壓縮
﹡附檔名為.bz2
﹡解壓縮使用「bunzip2」
4.zip
﹡解壓縮使用「unzip」
﹡可直接壓縮,不必tar打包
﹡若要壓縮的是目錄下所有的檔案,則應在目錄名稱後加上「/*」
5.rar
﹡壓縮使用「rar a xxx.rar <來源檔案或目錄>」指令
﹡解壓縮使用「rar x <壓縮檔案名稱>」指令
六.日期與時間
1.顯示目前系統時間 date
2.萬年曆 cal
七.網路指令
1.ifconfig:查詢網路的設定狀態,亦可用來設定IP位址,或是啟用、停止網路介面
﹡設定IP位址的指令格式為「ifconfig <網路介面代號> <IP Address> netmask <NET MASK>」
﹡啟用網路介面指令為「ifconfig <網路介面代號> up」
﹡停止網路介面指令為「ifconfig <網路介面代號> down」
2.route:查詢主機的路由表(routing table),也可用來指定預設路由器
﹡設定預設路由器指令為「route add default gw <IP Address>」
3.ping:提供網路檢測的功能,但Linux版本的「ping」不會自動停止,除非設定測試次數,否則會持續傳送ping封包,直到按下CTRL+C為止
﹡指定ping測試次數的指令為「ping -c <次數>」
﹡指定ping封包大小的指令為「ping -s <封包大小>」
4.traceroute:檢測網路的工具程式,會列出目前主機與被測主機之間所經過的所有路由器IP位址,並測試速度
5.netstat:查詢目前主機上有多少來自網路的連線,或是系統所開放的通訊埠有哪些
﹡加上參數「-a」可顯示所有的連線
6.hostname:顯示目前主機所設定的主機名稱
﹡加上參數「-fqdn」可顯示完整的主機名稱
7.wget:可直接從FTP或網站連結中下載檔案,或是用來下載整個網站作為離線閱讀之用
﹡加上參數「-c」可進行續傳
﹡加上參數「-q」可在下載過程中不顯示任何資訊
8.ftp:開啟FTP通訊協定以傳輸檔案
9.ncftp:為FTP的傳輸程式,支援書籤、續傳功能
八.驗證工具
1.MD5
﹡ 產生MD5檢查碼的指令為「md5sum」,格式為「md5sum <檔案>」
2.SHA-1
﹡ 產生SHA-1檢查碼的指令為「sha1sum」,格式為「sha1sum <檔案>」
3.SHA-2
﹡ 產生SHA-2檢查碼的指令為「sha256sum」,格式為「sha256sum <檔案>」
九.別名 alias
設定別名能讓任何指令加上參數,以使用者自行定義的方式做連結,如「ls -l」,可設定為「lls」
﹡格式為「alias <別名名稱>=’<原指令>’」
﹡使用「unalias <別名名稱>」可取消別名的設定
十.SHELL簡介
SHELL:提供介面供使用者操作電腦的特殊程式
1.bash:包含自動補齊指令、紀錄歷史命令、同時輸出導向
2.環境變數
﹡PATH決定執行指令時的搜尋路徑
﹡LS_COLORS決定ls執行時如何已不同的色彩顯示檔案的屬性
﹡使用「env」指令可查詢系統目前所有的環境變數
﹡使用「echo $<變數名稱>」指令可只顯示單一環境變數
﹡使用「echo $USER」指令可查詢目前使用者的名稱
﹡使用「echo $PWD」指令可顯示目前的工作路徑
﹡使用「export <變數名稱> = “<變數內容>”」指令可設定環境變數
﹡使用「unset <變數名稱>」可消除環境變數的設定
3.提示字元:Shell提醒使用者目前可以輸入指令的一小段字串
4.移動腳本(RC Files):bash執行時會先檢查系統上的特定檔案,即啟動腳本檔。若RC檔案存在,則會先執行這些檔案的內容。通常這些檔案存放的是一些初始設定,如PATH環境變數
5.Shell Script:一種純文件檔案,檔案中的每一行都會被Shell視為是一個指令或動作而加以執行
﹡當撰寫完成後,務必以「chmod a+x <檔案名稱>」指令加上指令權限,此檔案才可執行
一.基本知識
1.磁碟分割:
每顆硬碟在分割時最多只能分割出四個主要分割區(Primary Partition)或延伸分割區(Extended Partition)。其中,延伸分割區可再細分出數個邏輯分割區,但主要分割區只能直接拿來使用,不可再細分
﹡每顆硬碟最多只能有一個延伸分割區
2.磁碟代號:
IDE裝置:/dev/hd[a-z]
隨身碟或讀卡機:/dev/sd[a-z]
光碟機:/dev/cdrom
3.樹狀目錄管理
/bin:常用命令的存放目錄
/sbin:常用系統命令的存放目錄
/usr/bin:與使用者平常作業相關的命令存放目錄
/usr/sbin:與使用者系統管理作業相關的命令存放目錄
/root:root使用者的家目錄
/home:一般使用者的家目錄
/etc:系統設定檔的存放目錄
/dev:裝置存取檔的所在目錄
/lib:程式庫檔案的存放處
/usr/local:使用者自行安裝軟體的存放處
「/」表示根目錄
「.」表示目前目錄
「..」表示上一層目錄
「~」表示目前使用者的家目錄
「~Tom」表示Tom的家目錄
CH2 套件管理
一.APT
1.apt-get
sudo apt-get update:會先從系統預設的套件來源網站中取得所有套件的列表,以便使用者可以直接取得套件的最新版本。並不會自更新軟體套件
sudo apt-get upgrade:自動將系統上所有已安裝的套件進行更新
sudo apt-get install xxx:安裝xxx套件。若為「xxx*」則會自動安裝所有以xxx開頭的套件
sudo apt-get remove xxx:移除xxx套件。會保留其設定檔
sudo apt-get autoremove xxx:自動移除xxx及其他相依套件
sudo apt-get puge xxx:移除xxx套件及相關設定檔
sudo apt-get dist-upgrade xxx:升級xxx及其他相依套件
sudo apt-get clean:清除更新時所下載的套件檔案
sudo apt-get autoclean:只移除過舊版版本的套件檔案
2.apt-cache
apt-cache search xxx:在套件列表中搜尋有xxx關鍵字的套件
apt-cache showpkg xxx:顯示xxx套件的所有資訊,如套件版本、相依套件的關係等
apt-cache stats:查詢套件在系統上的統計資訊
apt-cache show xxx:顯示xxx套件的相關資訊,包含套件所屬性質、分類、檔案大小、相依套件以及是否會與其他套件產生衝突等訊息
apt-cache depends xxx:顯示xxx的相依套件
apt-cache pkgnames:將系統所有可用的套件名稱列出,可在其後加上「 | more」,以便閱讀
二.手動安裝deb套件
sudo dpkg -i xxx.deb:安裝xxx 套件
sudo dpkg -r xxx.deb:移除xxx套件
dpkg -l:查詢已安裝的套件
CH3 指令介紹
一.基本指令
1.線上操作手冊 man
NAME:大略說明指令的用途
SYNOPSIS:說明指令參數的使用格式
DESCRIPTION:說明指令的詳細用途及參數
SEE ALSO:列出與該指令相關的其他指令
HISTORY:說明此指令的改版歷史、改版提供的新功能等
2在指令後方加上「--help」參數,可查到該指令的基本用法
3.輸入「clear」可清除終端機畫面
二.檔案與磁碟管理
1.列出檔案 ls
-a:顯示所有檔案,包含以「.」開頭的隱藏檔
--color:是否啟用以顏色區分檔案的功能。「--color=never」表示不啟用,「--color=always」表示一律使用
-d:僅顯示目錄名稱而非顯示目錄內的檔案列表
-F:顯示特殊檔案時,會在檔案名稱後方加上特定字元。執行檔會加上「*」號,捷徑會加上「@」等
-l:以較完整的方式顯示檔案。例如檔案的讀取權限、擁有者與群組名稱、檔案大小、修改日期等資訊
-h:顯示檔案時,以KB、MB、GB等較易閱讀的方式顯示檔案大小。此參數需與「-l」參數合用才有效果
-m:在檔案名稱後方加上逗號,但與「-l」合用時失效
-n:類似「-l」參數的功能,但檔案擁有者與群組以數字直接呈現UID/GID為何,而非顯示名稱
-o:類似「-l」參數的功能,但不顯示群組名稱
-r:顯示檔名時以反向進行排序
-R:顯示目錄下所有子目錄中的檔案
-s:以區塊為單位顯示檔案大小
-S:以檔案大小進行排序
-t:以時間進行排序
-v:以版本進行排序
-X:以副檔名進行排序
2.切換目錄 cd
3.顯示目前目錄 pwd
4.建立目錄 mkdir
﹡若要一次建立多層子目錄,則加上「-p」參數
5.刪除目錄 rmdir
﹡僅能刪除空目錄
﹡加上參數「-p」可直接刪除子目錄及其上層目錄
6.刪除檔案 rm
﹡加上參數「-i」可確認使用者是否要刪除檔案
﹡加上參數「-r」會自動刪除目錄下的所有檔案與子目錄
7.複製檔案 cp
﹡加上參數「-i」可確認使用者是否要複製除檔案
8.移動檔案 mv
﹡若來源目錄與目的目錄都是位於相同的目錄,則mv指令為更名的動作
﹡加上參數「-i」可確認使用者是否要移動除檔案
9.顯示檔案內容 cat
﹡加上參數「-n」可在每一行的前面加上行號
10.擷取字串 grep
﹡加上參數「-v」會隱藏包含關鍵字的行數,而其他的行數則全數顯示
11.尋找檔案
find:可以在檔案中找尋任何檔案,只要檔名符合即可,檔案屬性並不影響搜尋結果
﹡find指令格式為「find <搜尋開始目錄> -name <檔案名稱>」
which:只會在PATH環境變數所設定的目錄中找尋可執行檔。如果檔案只是一般檔案,如普通的文字檔,則不會被找到
﹡環境變數指的是系統運行時,供作業系統本身或應用程式參考的特殊變數。而PATH環境變數會定義一連串的路徑位置,表示系統執行指令時預設搜尋指令執行檔所在路徑的順序
whereis:類似which指令,但whereis會另外搜尋像man page的目錄等額外目錄與指令
12.分頁顯示
more:只能向下捲動
less:可以上下捲動,也可以利用Page Up或Page Down按鍵上下捲動一頁的資料
13.顯示檔頭、檔尾
head:僅顯示檔案的前幾行。指令為「head -<行數> <檔案名稱>」,預設為10行
﹡加上參數「-f」可用來監控像是記錄檔之類會隨時更新內容的檔案。若要中止,則按下CTRL + C
tail:僅顯示檔案的後幾行。指令為「tail -<行數> <檔案名稱>」,預設為10行
﹡加上參數「-f」可用來監控像是記錄檔之類會隨時更新內容的檔案。若要中止,則按下CTRL + C
14.更新檔案時間 touch
﹡若檔案不存在,則會建立指定名稱的檔案
15.建立連結 ln
硬連結:指令為「ln <連結來源檔案> <連結目的檔案>」。不能跨越磁碟分割區,所以在使用硬連結時,無論是連結目的檔案或是連結來源檔案,都必須在同個硬碟分割區中。此外,因為連結目的檔案與連結來源檔案使用相同的inode number,所以針對連結來源檔案所進行的任何操作,都會即時反應到連結目的檔案上。例如「touch」指令更新連結來源檔案,則連結目的檔案也會跟著一起更新最後修改時間的資訊
﹡建立一個與連結來源檔案使用相同incode number的檔案
軟連結:又稱為符號連結。指令為「ln -s <連結來源檔案> <連結目的檔案>」。可以跨越磁碟分割區,且針對連結來源檔案所進行的檔案資料結構修改,並不會影響連結目的檔案的屬性
16.檔案佔用大小 du
﹡預設會將目錄下所有子目錄的佔用空間全數列出,最後才計算總大小
﹡「du」指令所顯示的數字是以KB為單位
﹡加上參數「-h」可以將數字以MB為單位
﹡加上參數「-s」可以單純計算某個目錄所佔用的空間
17.已掛載的檔案系統使用量 df
﹡指令同du
三.權限管理
1.當使用「ls -l」指令時,會看到檔案或目錄前方有十個字元,這些即為檔案存取權限。這些字元可分為四組,各擁有1、3、3、3個字元。第一個字元用來表示檔案的特殊性,當此檔案為目錄時,則顯示「d」;當為連結檔時,則顯示「l」。後面三組各三個字元則分別代表檔案擁有者、群組與其他使用者對於此檔案的存取權限
2.更改讀取權限 chmod
除了以數字方式進行修改外,也可利用文字指定的模式,如「chmod 644 <檔案名稱>」效果與「chmod u=rw,g=r,o=r <檔案名稱>」。其中「u」為檔案擁有者的權限;「g」為相同群組使用者;「o」為其他使用者。設定全現實可以使用「=」直接設定,如果只需要修改某種權限,則可以使用「+」或「-」
﹡若要同時修改檔案的擁有者與群組,則使用「chmod <使用者帳號>.<群組> <檔案名稱>」
3.更改擁有者 chown
4.更改群組 chgrp
四.系統管理
1.工作監控 top
2.顯示行程 ps
﹡加上參數「u」可顯示執行該行程的使用帳號
﹡加上參數「a」可顯示系統上所有使用者執行的行程列表
﹡加上參數「x」可顯示非使用者所執行的行程
﹡加上參數「w」則包含所有的參數
3.查詢系統負載、已開機時間 uptime
﹡「load average」後面的三個數字分別表示過去一、五、十五分鐘系統的負載程度。0.00表示負載十分輕微,1.00以上表示有些負荷,若到了5以上,則該系統可能正在進行大工程
4.刪除行程 kill
﹡先以「ps」指令查詢欲刪除行程的PID,再以「kill <PID>」刪除。若該行程被kill後仍繼續執行,可輸入「kill -9 <PID>」強制刪除
5.調整優先權 nice
﹡所有使用者執行的命令預設都是以優先權20進行運作
﹡格式為「nice --adjustment=<數字> <指令>」,其中數字若為正值,表示要降低優先權;若為負值,則表示提高優先權。數字越小表示優先權越高
5.開機訊息 dmesg
6.查詢線上使用者 who
7.查詢目前所使用的身份 whoami
8.最後登入時間 last
9.切換使用者 su
﹡若輸入「su <使用者帳號>」,不會套用該使用者的登入環境;若輸入「su - <使用者帳號>」,則會自動套用該使用者所有的環境變數
10.掛載磁碟 mount
﹡可使用「mount -t <檔案系統> <來源裝置代號> <掛載目錄>」,將其他磁碟掛載到系統中
11.卸載磁碟 umount
12.格式化檔案系統 mkfs
﹡需umount後才可格式化
﹡格式為「mkfs -t <檔案系統類型> <磁碟代號>」
13.檢查檔案系統 fsck
﹡最好先umount後再檢查
﹡若要檢查的磁碟是系統磁碟,無法卸載時,可執行「sudo init 1」指令進入擔使用者模式,再進行卸載即可
14.寫入快取 sync
﹡LInux在進行磁碟存取時,並不會立即將資料寫入磁碟中,而是會先存放在快娶記憶體中,等到CPU有空或快取記憶體滿載時,才一次寫入。而此指令是強迫系統立即將這些資料寫入
15.關機 shutdown
﹡格式為「shutdown <參數> <執行時間>」
﹡加上參數「-h」表示停止運行後直接關機。相當於「-H」加上「-P」
﹡加上參數「-H」表示停止運行但不關機,直到使用者按下電源鍵才算是真正關機
﹡加上參數「-r」表示停止運行後重新開機
﹡加上參數「-P」表示執行完hitdown過程後便立即關機
﹡加上參數「+ <時間>」表示過了<時間>分後便執行shutdown指令
﹡關機前為確保快取記憶體有被寫入磁碟,最好先執行二到三次的「sync」指令再進行關機
﹡若要立即進行關機,使用「halt」指令可以代替使用「shutdown -h now」
﹡若要立即重新開機,使用「reboot」指令可以代替使用「shutdown -r now」
16.新增群組 addgroup
17.刪除群組 delgroup
18.新增使用者 adduser
19.刪除使用者 deluser
﹡通常執行時會加上「--remove-home」參數,表示一併移除此帳號的家目錄
20.修改密碼 passwd
21.預約執行at
﹡格式為「at <HH:MM>」
﹡執行「atq」指令可查詢目前系統上已建立的預約行程
﹡執行「atrm <佇列序號>」可刪除指定行程
22.定期執行 crontab
﹡設定格式為「<分鐘> <小時> <日期> <月份> <星期幾> <命令>」,「*」表示所有時間都可接受
﹡加上參數「-l」可列出目前已排程的行程表
﹡加上參數「-r」可移除所有的排程
﹡加上參數「-e」可編輯排程
23.背景執行 bg
﹡在執行指令時,若在命令列的最後面加上「&」符號,表示要將此命令放置背景執行,與執行「bg %<工作編號> 」指令效果相同
﹡若指令執行到一半,想將指令放到背景執行,可先按下CTRL+Z暫停程式的執行
﹡使用「jobs」指令,會列出目前使用者所執行的背景程式,並顯示這些程式的執行狀態
24.前景執行 fg
25.離線執行 nohup
﹡使用「cat nohup.out」指令可查詢離線執行的工作
26.服務管理 service
﹡格式為「service <服務名稱> <命令>」。允許的命令包括start、stop、restart
﹡執行「service --status-all」指令可查詢目前系統所有服務的啟動狀態。狀態若為「+」表示目前運作中;「-」表示未執行;「?」表示狀態不明
五.壓縮程式
1.tar
﹡單純以「tar」指令打包只能將一些檔案或目錄集合成一個檔案,但不進行壓縮
﹡格式為「tar cpf <目的檔案> <來源目錄或檔案>」。其中「c」參數表示打包檔案;「p」參數表示保留檔案原先的存取權限;「f」參數表示打包的結果要存成檔案
﹡若要解壓縮,則將參數「c」改為「x」。「x」參數表示解開已打包的檔案
2.gzip
﹡gzip只有壓縮功能,故需tar後才能壓縮
﹡附檔名為.gz
﹡解壓縮使用「gunzip」指令
3.bzip2
﹡bzip2只有壓縮功能,故需tar後才能壓縮
﹡附檔名為.bz2
﹡解壓縮使用「bunzip2」
4.zip
﹡解壓縮使用「unzip」
﹡可直接壓縮,不必tar打包
﹡若要壓縮的是目錄下所有的檔案,則應在目錄名稱後加上「/*」
5.rar
﹡壓縮使用「rar a xxx.rar <來源檔案或目錄>」指令
﹡解壓縮使用「rar x <壓縮檔案名稱>」指令
六.日期與時間
1.顯示目前系統時間 date
2.萬年曆 cal
七.網路指令
1.ifconfig:查詢網路的設定狀態,亦可用來設定IP位址,或是啟用、停止網路介面
﹡設定IP位址的指令格式為「ifconfig <網路介面代號> <IP Address> netmask <NET MASK>」
﹡啟用網路介面指令為「ifconfig <網路介面代號> up」
﹡停止網路介面指令為「ifconfig <網路介面代號> down」
2.route:查詢主機的路由表(routing table),也可用來指定預設路由器
﹡設定預設路由器指令為「route add default gw <IP Address>」
3.ping:提供網路檢測的功能,但Linux版本的「ping」不會自動停止,除非設定測試次數,否則會持續傳送ping封包,直到按下CTRL+C為止
﹡指定ping測試次數的指令為「ping -c <次數>」
﹡指定ping封包大小的指令為「ping -s <封包大小>」
4.traceroute:檢測網路的工具程式,會列出目前主機與被測主機之間所經過的所有路由器IP位址,並測試速度
5.netstat:查詢目前主機上有多少來自網路的連線,或是系統所開放的通訊埠有哪些
﹡加上參數「-a」可顯示所有的連線
6.hostname:顯示目前主機所設定的主機名稱
﹡加上參數「-fqdn」可顯示完整的主機名稱
7.wget:可直接從FTP或網站連結中下載檔案,或是用來下載整個網站作為離線閱讀之用
﹡加上參數「-c」可進行續傳
﹡加上參數「-q」可在下載過程中不顯示任何資訊
8.ftp:開啟FTP通訊協定以傳輸檔案
9.ncftp:為FTP的傳輸程式,支援書籤、續傳功能
八.驗證工具
1.MD5
﹡ 產生MD5檢查碼的指令為「md5sum」,格式為「md5sum <檔案>」
2.SHA-1
﹡ 產生SHA-1檢查碼的指令為「sha1sum」,格式為「sha1sum <檔案>」
3.SHA-2
﹡ 產生SHA-2檢查碼的指令為「sha256sum」,格式為「sha256sum <檔案>」
九.別名 alias
設定別名能讓任何指令加上參數,以使用者自行定義的方式做連結,如「ls -l」,可設定為「lls」
﹡格式為「alias <別名名稱>=’<原指令>’」
﹡使用「unalias <別名名稱>」可取消別名的設定
十.SHELL簡介
SHELL:提供介面供使用者操作電腦的特殊程式
1.bash:包含自動補齊指令、紀錄歷史命令、同時輸出導向
2.環境變數
﹡PATH決定執行指令時的搜尋路徑
﹡LS_COLORS決定ls執行時如何已不同的色彩顯示檔案的屬性
﹡使用「env」指令可查詢系統目前所有的環境變數
﹡使用「echo $<變數名稱>」指令可只顯示單一環境變數
﹡使用「echo $USER」指令可查詢目前使用者的名稱
﹡使用「echo $PWD」指令可顯示目前的工作路徑
﹡使用「export <變數名稱> = “<變數內容>”」指令可設定環境變數
﹡使用「unset <變數名稱>」可消除環境變數的設定
3.提示字元:Shell提醒使用者目前可以輸入指令的一小段字串
4.移動腳本(RC Files):bash執行時會先檢查系統上的特定檔案,即啟動腳本檔。若RC檔案存在,則會先執行這些檔案的內容。通常這些檔案存放的是一些初始設定,如PATH環境變數
5.Shell Script:一種純文件檔案,檔案中的每一行都會被Shell視為是一個指令或動作而加以執行
﹡當撰寫完成後,務必以「chmod a+x <檔案名稱>」指令加上指令權限,此檔案才可執行
沒有留言:
張貼留言