Linux 是一個以 Unix 為原型所打造出來的開放原始碼的作業系統,最初是由芬蘭人 Linus Torvalds 出於自身愛好所創建的。
Linux 現今已成為了許多企業的伺服器所採用的作業系統,因為 Linux 具備了以下幾個優勢 :
Linux 因為是開源的,所以漸漸地衍生出了許多不同的版本,而所謂的不同版本是指開發者們基於 Linux Kernel (也就是 Linux 創始人 Linus Torvalds 所維護的核心本版) 在加上一些不同的功能。
目前市面上較有名的發行版有以下幾個 :
Ubuntu 是以桌面應用為主的 Linux 發行版,擁有精美的 GUI 介面和豐富的應用軟體,對於新手來說可以很簡單的進行安裝、更新和操作,因此也讓 Ubuntu 在 Linux 的市佔率將近六成。
RedHat 是專門提供給企業使用的收費 Linux 發行版 REHL(RedHat Enterprise Linux),RedHat 公司會提供技術支持和版本的更新,因此 RedHat 提供了很穩定的 Linux 系統。
CentOS (Community Enterprise OS) 是 RedHat 公司所推出的免費 Linux 發行版,基本上是依照 REHL 所開放的原始碼所編譯而成,因此也和 REHL 一樣擁有高度的穩定度。而 CentOS 和 REHL 的差別在於沒有封閉的原始碼軟體,也就是不能享受到 RedHat 公司所提供的各類軟體支援。但是因為 CentOS 是免費的又同時擁有 REHL 的穩定度,所以被許多公司採用來架設伺服器。
這裡只介紹了幾個比較常被使用的 Linux 發行版,其他還有許多不同的 Linux 發行版在此就不再贅述了。
Linux 系統中最高權限的管理者帳號為 root
,也稱為超級使用者 (super user)。root 在使用上沒有任何的限制,所以只要使用 root 就可以對系統任意的進行變更。
但也因為 root 權限太高了,如果一個不小心是會把整個系統毀了,所以不建議直接使用 root 來登入進行操作。因此如果遇到需要取得 root 的權限時,再使用 sudo
或 su
指令來取得 root 權限,這種作法就像是 Windows 也不會直接以系統管理員 (Administrator) 直接登入,而是在需要的時候再要求以系統管理員身分執行應用。
su
指令可以讓一般的使用者取得 root 的權限,輸完 root 的密碼後取得 root 的權限的使用者就可以享用 root 的權限進行系統的各種操作。
使用 su 取得 root 的權限後雖然 user id 會變成 root 的 user id 0,但是環境變數是不會跟著改變的。
因此若是需要更複雜的系統管理操作,並且會牽涉到 root 的環境變數,那就需要使用 su -
來切換。這種方式就可以仿照以 root 登入,會進入一個完整的 Shell 環境,就如同是 root 登入一樣。
如果只是要執行一個簡單的指令,建議可以使用 su - -c
,讓指令執行完直接跳離 root,這樣會比較安全。
sudo
指令類似於 su
,差別在於 sudo 指令在取得 root 權限時要輸入的是自己這個帳號的密碼,使用上較為方便,因此大多都會使用 sudo。
sudo 的執行方式類似於 su -c
,也就是執行完命令就會跳離 root。這個是最常使用的方式。
如果想要和 su
一樣進入 root 的視窗,可以結合 sudo su
,也不需要輸入 root 的密碼。
以 root 登入。
sudo
指令可以取得 root 的權限雖然很方便,但是以真正的系統環境來說並不能讓所有的使用者都可以使用 root 的權限,所以就要透過設定來決定是否可以使用 sudo
指令。
首先先介紹要設定的內容,如下 :
account
輸入可以使用 sudo 的帳號名稱。
host
限制使用者從特定主機連線才可以使用 sudo,若不限制則指定為 ALL
。
change account
限制取得其他帳號的權限,若不限制則指定為 ALL
。
command
限制取得 sudo 後可以執行的指令,若不限制則指定為 ALL
。
範例
以 CentOS 為例,先使用 visudo
即可以 vi
編輯器開啟 sudo
設定檔。
接著將要設定的內容貼在設定檔內,如下 :
不用密碼
如果每次使用 sudo 都要輸入密碼也是很麻煩,所以對於可以信任的使用者可以設定使用 sudo 不需要輸入密碼,如下 :
Linux 多用於伺服器使用,很少會用到關機的操作,通常是要進行升級或是維修等等才會進行關機。另外關機是需要有 root
的管理權限的,所以在下關機指令前要使用 sudo
切換到 root
。
在關機前,要習慣先執行 sync
指令將資料同步寫進硬碟。
shutdown
指令是一般 Linux 系統建議的關機方式,在使用 shutdown
指令關機時所有登入的使用者都會收到通知。而若是有設定自動關機的時間,則在關機前 5 分鐘會禁止所有新的使用者進行登入。
TIME
用於指定關機時間,可以用以下幾種格式指定 :
now
: 立即關機。+m
: 指定多少分鐘之後關機,例如 : +10
就是 10 分鐘後關機。hh:mm
: 以 24 小時制指定特定時間點關機,例如 : 20:24
就是晚上 8 點 24 分關機。Option
-r
: 重新開機-h
: 系統停止運作 (halt) 或關閉電源 (power off)-H
: 系統停止運作 (halt)-P
: 關閉電源-c
: 取消先前設定的關機命令-k
: 模擬關機,只對使用者發出關機通知並禁止新進入的使用者,不會真的關機停止運作 (halt) 和 關閉電源 (power off) 的差別在於停止運作是停止所有 CPU 的運作,而關閉電源就會通知電腦關閉電源,就是一般所謂的關機。
範例
立即關機
指定時間關機
關機並發送通知給所有使用者
重新啟動
halt
指令不管系統現在狀態如何會直接停止系統運作,等同於 shutdown -H
。
poweroff
指令不管系統狀態如何直接強行關閉電源。等同於 shutdown -P
。
reboot
指令會重新啟動電腦,等同於 shutdown -r
。
last
指令可以列出目前和過去登入系統的使用者相關資訊,這裡只介紹如何查看關機的紀錄。
command 可以指定 shutdown 或是 reboot。
範例
查看關機紀錄
查看重新啟動紀錄
按鍵 | 功能 |
---|---|
↑ | 顯示前一個命令 |
Ctrl+R | 搜尋執行過的命令 |
Ctrl+Z | 將執行中的命令移至背景執行 |
Ctrl+C | 停止執行中的命令 |
Ctrl+D | 登出 Terminal,等同 exit 命令 |
Ctrl+L | 清除螢幕顯示,等同 clear 命令 |
!! | 再次執行上一個命令 |
Ctrl+E | 游標移至尾端,等同 End 鍵 |
Ctrl+A | 游標移至開頭,等同 Home 鍵 |
Ctrl+U | 剪下游標前的所有文字並複製到剪貼簿 |
Ctrl+K | 剪下游標後的所有文字並複製到剪貼簿 |
Ctrl+Y | 貼上從 Ctrl+U 或 Ctrl+K 所剪下的內容 |
Ctrl+W | 刪除游標前方的單字 |
Ctrl+Shift+C 或 Ctrl+Insert | 複製選取的文字 |
Ctrl+Shift+V 或 Shift+Insert | 貼上選取的文字 |
Tab | 命令補全或文件補全 |
這裡特別介紹 Tab 鍵,Tab 鍵可以依照目前輸入的內容自動的補齊剩下的內容,或是列出所有可用的命令及文件名稱。
Tab 一次 : 若目前輸入內容只有唯一的檔案或指令會自動補齊。
Tab 兩次 : 列出所有與目前輸入內容有關的指令或檔案
範例
列出所有與目前輸入內容有關的指令。
當第一個指令完整輸入完後,再輸入兩次 Tab 就會列出目前資料夾下的檔案或是這個指令可以使用的命令參數。
本篇簡單介紹了一些 Linux 的概念,並且也介紹了一些系統操作的基本指令,而上述這些指令也都是對於學習 Linux 來說必須要了解的。
[1] Linux 簡介 | RUNOOB
[2] 常用的Linux版本介紹
[3] Linux 關機指令(shutdown、halt 與 poweroff)教學與範例
[4] Linux常用命令last的使用方法詳解
[5] Linux 的 su 與 sudo 指令教學與範例
[6] How to sudo without password on CentOS Linux
[7] Linux常用Terminal命令與快捷鍵參考
[8] Bash 使用 Tab 自動完成 檔案或目錄的輸入
Linux