## 20.1 系統基本設置
我們的 CentOS 7 系統其實有很多東西需要來設置的,包括之前稍微談過的語系、日期、時間、網絡設置等等。 CentOS 6.x 以前有個名為 setup 的軟件將許多的設置做成類圖形界面,連防火墻都可以這樣搞定!不過這個功能在 CentOS 7 已經式微~ 這是因為 CentOS 7 已經將很多的軟件指令作的還不賴,又加入了 bash-complete 的功能,指令下達確實還 OK 啦! 如果不習慣指令,很多的圖形界面也可以使用~因此,setup 的需求就減少很多了! 下面我們會介紹基本的系統設置需求,其實也是將之前章節里面稍微談過個數據做個匯整就是了!
### 20.1.1 網絡設置 (手動設置與DHCP自動取得)
網絡其實是又可愛又麻煩的玩意兒,如果你是網絡管理員,那么你必須要了解區域網絡內的 IP, gateway, netmask 等參數,如果還想要連上 Internet ,那么就得要理解 DNS 代表的意義為何。如果你的單位想要擁有自己的網域名稱, 那么架設 DNS 服務器則是不可或缺的。總之,要設置網絡服務器之前,你得要先理解[網絡基礎](http://linux.vbird.org/linux_server/0110network_basic.php)就是了! 沒有人愿意自己的服務器老是被攻擊或者是網絡問題層出不窮吧!^_^
但鳥哥這里的網絡介紹僅止于當你是一部單機的 Linux 用戶端,而非服務器!所以你的各項網絡參數只要找到網絡管理員, 或者是找到你的 ISP (Internet Service Provider) ,向他詢問網絡參數的取得方式以及實際的網絡參數即可。 通常網絡參數的取得方式在臺灣常見的有下面這幾種:
* 手動設置固定 IP
常見于學術網絡的服務器設置、公司行號內的特定座位等。這種方式你必須要取得下面的幾個參數才能夠讓你的 Linux 上網的:
* IP
* 子網絡遮罩(netmask)
* 通訊閘(gateway)
* DNS 主機的 IP (通常會有兩個,若記不住的話,硬背 168.95.1.1 即可)
* 網絡參數可自動取得 (dhcp 協定自動取得)
常見于 IP 分享器后端的主機,或者是利用電視線路的纜線上網 (cable modem),或者是學校宿舍的網絡環境等。 這種網絡參數取得方式就被稱為 dhcp ,你啥事都不需要知道,只要知道設置上網方式為 dhcp 即可。
* 臺灣的光纖到府與 ADSL 寬帶撥接
不論你的 IP 是固定的還是每次撥接都不相同 (被稱為浮動式 IP),只要是通過光纖到府或寬帶調制解調器“撥接上網”的,就是使用這種方式。 撥接上網雖然還是使用網卡連接到調制解調器上,不過,系統最終會產生一個替代調制解調器的網絡接口 (ppp0) , 那個 ppp0 也是一個實體網絡接口啦!
不過,因為臺灣目前所謂的“光世代”寬帶上網的方式所提供的調制解調器中,內部已經涵蓋了 IP 分享與自動撥接功能, 因此,其實你在調制解調器后面也還是只需要“自動取得IP”的方式來取得網絡參數即可喔!
了解了網絡參數的取得方法后,你還得要知道一下我們通過啥硬件連上 Internet 的呢?其實就是網卡嘛。 目前的主流網卡為使用以太網絡協定所開發出來的以太網卡 (Ethernet),因此我們 Linux 就稱呼這種網絡接口為 ethN (N 為數字)。 舉例來說,鳥哥的這部測試機上面有一張以太網卡,因此鳥哥這部主機的網絡接口就是 eth0 啰 (第一張為 0 號開始)。
不過新的 CentOS 7 開始對于網卡的編號則有另一套規則,網卡的界面代號現在與網卡的來源有關~基本上的網卡名稱會是這樣分類的:
* eno1 :代表由主板 BIOS 內置的網卡
* ens1 :代表由主板 BIOS 內置的 PCI-E 界面的網卡
* enp2s0 :代表 PCI-E 界面的獨立網卡,可能有多個插孔,因此會有 s0, s1... 的編號~
* eth0 :如果上述的名稱都不適用,就回到原本的默認網卡編號
其實不管什么網卡名稱啦!想要知道你有多少網卡,直接下達“ ifconfig -a ”全部列出來即可!此外,CentOS 7 也希望我們不要手動修改配置文件, 直接使用所謂的 nmcli 這個指令來設置網絡參數即可~因為鳥哥的測試機器是虛擬機,所以上述的網卡代號只有 eth0 能夠支持~ 你得要自己看自己的系統上面的網卡代號才行喔!
* 手動設置 IP 網絡參數
假設你已經向你的 ISP 取得你的網絡參數,基本上的網絡參數需要這些數據的:
* method: manual (手動設置)
* IP: 172.16.1.1
* netmask: 255.255.0.0
* gateway: 172.16.200.254
* DNS: 172.16.200.254
* hostname: study.centos.vbird
上面的數據除了 hostname 是可以暫時不理會的之外,如果你要上網,就得要有上面的這些數據才行啊!然后通過 nmcli 來處理! 你得要先知道的是,nmcli 是通過一個名為“連線代號”的名稱來設置是否要上網,而每個“連線代號”會有個“網卡代號”, 這兩個東西通常設置成相同就是了。那就來先查查看目前系統上默認有什么連線代號吧!
```
[root@study ~]# nmcli connection show [網卡代號]
[root@study ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 505a7445-2aac-45c8-92df-dc10317cec22 802-3-ethernet eth0
# NAME 就是連線代號,通常與后面的網卡 DEVICE 會一樣!
# UUID 這個是特殊的設備識別,保留就好不要理他!
# TYPE 就是網卡的類型,通常就是以太網卡!
# DEVICE 當然就是網卡名稱啰!
# 從上面我們會知道有個 eth0 的連線代號,那么來查察這個連線代號的設置為何?
[root@study ~]# nmcli connection show eth0
connection.id: eth0
connection.uuid: 505a7445-2aac-45c8-92df-dc10317cec22
connection.interface-name: eth0
connection.type: 802-3-ethernet
connection.autoconnect: yes
.....(中間省略).....
ipv4.method: manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses: 192.168.1.100/24
ipv4.gateway: --
.....(中間省略).....
IP4.ADDRESS[1]: 192.168.1.100/24
IP4.GATEWAY:
IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
IP6.GATEWAY:
```
如上表的輸出,最下面的大寫的 IP4, IP6 指的是目前的實際使用的網絡參數,最上面的 connection 開頭的部份則指的是連線的狀態! 比較重要的參數鳥哥將它列出來如下:
* connection.autoconnect [yes|no] :是否于開機時啟動這個連線,默認通常是 yes 才對!
* ipv4.method [auto|manual] :自動還是手動設置網絡參數的意思
* ipv4.dns [dns_server_ip] :就是填寫 DNS 的 IP 位址~
* ipv4.addresses [IP/Netmask] :就是 IP 與 netmask 的集合,中間用斜線 / 來隔開~
* ipv4.gateway [gw_ip] :就是 gateway 的 IP 位址!
所以,根據上面的設置項目,我們來將網絡參數設置好吧!
```
[root@study ~]# nmcli connection modify eth0 \
> connection.autoconnect yes \
> ipv4.method manual \
> ipv4.addresses 172.16.1.1/16 \
> ipv4.gateway 172.16.200.254 \
> ipv4.dns 172.16.200.254
# 上面只是“修改了配置文件”而已,要實際生效還得要啟動 (up) 這個 eth0 連線界面才行喔!
[root@study ~]# nmcli connection up eth0
[root@study ~]# nmcli connection show eth0
.....(前面省略).....
IP4.ADDRESS[1]: 172.16.1.1/16
IP4.GATEWAY: 172.16.200.254
IP4.DNS[1]: 172.16.200.254
IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
IP6.GATEWAY:
```
最終執行“ nmcli connection show eth0 ”然后看最下方,是否為正確的設置值呢?如果是的話,那就萬事 OK 啦!
* 自動取得 IP 參數
如果你的網絡是由自動取得的 DHCP 協定所分配的,那就太棒了!上述的所有功能你通通不需要背~只需要知道 ipv4.method 那個項目填成 auto 即可! 所以來查察,如果變成自動取得,網絡設置要如何處理呢?
```
[root@study ~]# nmcli connection modify eth0 \
> connection.autoconnect yes \
> ipv4.method auto
[root@study ~]# nmcli connection up eth0
[root@study ~]# nmcli connection show eth0
IP4.ADDRESS[1]: 172.16.2.76/16
IP4.ADDRESS[2]: 172.16.1.1/16
IP4.GATEWAY: 172.16.200.254
IP4.DNS[1]: 172.16.200.254
```
自動取得 IP 要簡單太多了!同時下達 modify 之后,整個配置文件就寫入了!因此你無須使用 vim 去重新改寫與設置! 鳥哥是認為, nmcli 確實不錯用喔!另外,上面的參數中,那個 connection..., ipv4... 等等的,你也可以使用 [tab] 去調用出來喔! 也就是說, nmcli 有支持 bash-complete 的功能,所以指令下達也很方便的!
* 修改主機名稱
主機名稱的修改就得要通過 hostnamectl 這個指令來處理了!
```
[root@study ~]# hostnamectl [set-hostname 你的主機名]
# 1\. 顯示目前的主機名稱與相關信息
[root@study ~]# hostnamectl
Static hostname: study.centos.vbird # 這就是主機名稱
Icon name: computer
Chassis: n/a
Machine ID: 309eb890d09f440681f596543d95ec7a
Boot ID: b2de392ff1f74e568829c716a7166ecd
Virtualization: kvm
Operating System: CentOS Linux 7 (Core) # 操作系統名稱!
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-229.el7.x86_64 # 核心版本也提供!
Architecture: x86_64 # 硬件等級也提供!
# 2\. 嘗試修改主機名稱為 www.centos.vbird 之后再改回來~
[root@study ~]# hostnamectl set-hostname www.centos.vbird
[root@study ~]# cat /etc/hostname
www.centos.vbird
[root@study ~]# hostnamectl set-hostname study.centos.vbird
```
### 20.1.2 日期與時間設置
在[第四章的 date](../Text/index.html#date) 指令解釋中,我們曾經談過這家伙可以進行日期、時間的設置。 不過,如果要改時區呢?例如臺灣時區改成日本時區之類的,該如何處理?另外,真的設置了時間,那么下次開機可以是正確的時間嗎?還是舊的時間? 我們也知道有“網絡校時”這個功能,那如果有網絡的話,可以通過這家伙來校時嗎?這就來談談。
* 時區的顯示與設置
因為地球是圓的,每個時刻每個地區的時間可能都不一樣。為了統一時間,所以有個所謂的“GMT、格林威治時間”這個時區! 同時,在太平洋上面還有一條看不見的“換日線”哩!臺灣地區就比格林威治時間多了 8 小時,因為我們會比較早看到太陽啦! 那我怎么知道目前的時區設置是正確的呢?就通過 timedatectl 這個指令吧!
```
[root@study ~]# timedatectl [commamd]
選項與參數:
list-timezones :列出系統上所有支持的時區名稱
set-timezone :設置時區位置
set-time :設置時間
set-ntp :設置網絡校時系統
# 1\. 顯示目前的時區與時間等信息
[root@study ~]# timedatectl
Local time: Tue 2015-09-01 19:50:09 CST # 本地時間
Universal time: Tue 2015-09-01 11:50:09 UTC # UTC 時間,可稱為格林威治標準時間
RTC time: Tue 2015-09-01 11:50:12
Timezone: Asia/Taipei (CST, +0800) # 就是時區啰!
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
# 2\. 顯示出是否有 New_York 時區?若有,則請將目前的時區更新一下
[root@study ~]# timedatectl list-timezones | grep -i new
America/New_York
America/North_Dakota/New_Salem
[root@study ~]# timedatectl set-timezone "America/New_York"
[root@study ~]# timedatectl
Local time: Tue 2015-09-01 07:53:24 EDT
Universal time: Tue 2015-09-01 11:53:24 UTC
RTC time: Tue 2015-09-01 11:53:28
Timezone: America/New_York (EDT, -0400)
[root@study ~]# timedatectl set-timezone "Asia/Taipei"
# 最后還是要記得改回來臺灣時區喔!不要忘記了!
```
* 時間的調整
由于鳥哥的測試機使用的是虛擬機,默認虛擬機使用的是 UTC 時間而不是本地時間,所以在默認的情況下,測試機每次開機都會快上 8 小時... 所以就需要來調整一下時間啰!時間的格式可以是“ yyyy-mm-dd HH:MM ”的格式!比較方便記憶喔!
```
# 1\. 將時間調整到正確的時間點上!
[root@study ~]# timedatectl set-time "2015-09-01 12:02"
```
過去我們使用 date 去修改日期后,還得要使用 hwclock 去訂正 BIOS 記錄的時間~現在通過 timedatectl 一口氣幫我們全部搞定,方便又輕松!
* 用 ntpdate 手動網絡校時
其實鳥哥真的不太愛讓系統自動網絡校時,比較喜歡自己手動網絡校時。當然啦,寫入 crontab 也是不錯的想法~ 因為系統默認的自動校時會啟動 NTP 協定相關的軟件,會多開好幾個 port ~想到就不喜歡的緣故啦!沒啥特別的意思~ 那如何手動網絡校時呢?很簡單,通過 ntpdate 這個指令即可!
```
[root@study ~]# ntpdate tock.stdtime.gov.tw
1 Sep 13:15:16 ntpdate[21171]: step time server 211.22.103.157 offset -0.794360 sec
[root@study ~]# hwclock -w
```
上述的 tock.stdtime.gov.tw 指的是臺灣地區國家標準實驗室提供的時間服務器,如果你在臺灣本島上,建議使用臺灣提供的時間服務器來更新你的服務器時間, 速度會比較快些~至于 hwclock 則是將正確的時間寫入你的 BIOS 時間記錄內!如果確認可以執行,未來應該可以使用 crontab 來更新系統時間吧!
### 20.1.3 語系設置
我們在第四章知道有個 LANG 與 locale 的指令能夠查詢目前的語系數據與變量,也知道 /etc/locale.conf 其實就是語系的配置文件。 此外,你還得要知道的是,系統的語系與你目前軟件的語系數據可能是可以不一樣的!如果想要知道目前“系統語系”的話, 除了調用配置文件之外,也能夠使用 localectl 來查閱:
```
[root@study ~]# localectl
System Locale: LANG=zh_TW.utf8 # 下面這些數據就是“系統語系”
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8
LC_MONETARY=zh_TW.UTF-8
LC_PAPER=zh_TW.UTF-8
LC_MEASUREMENT=zh_TW.UTF-8
VC Keymap: cn
X11 Layout: cn
X11 Options: grp:ctrl_shift_toggle
[root@study ~]# locale
LANG=zh_TW.utf8 # 下面的則是“當前這個軟件的語系”數據!
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
.....(中間省略).....
LC_ALL=en_US.utf8
```
從上面的兩個指令結果你會發現到,系統的語系其實是中文的萬國碼 (zh_TW.UTF8) 這個語系。不過鳥哥為了目前的教學文件制作, 需要取消中文的顯示,而以較為單純的英文語系來處理~因此使用 locale 指令時,就可以發現“鳥哥的 bash 使用的語系環境為 en_US.utf8”這一個! 我們知道直接輸入的 locale 查詢到的語系,就是目前這個 bash 默認顯示的語言,那你應該會覺得怪,那系統語系 (localectl) 顯示的語系用在哪?
其實鳥哥一登陸系統時,取得的語系確實是 zh_TW.utf8 這一個的,只是通過“ export LC_ALL=en_US.utf8 ”來切換為英文語系而已。 此外,如果你有啟用圖形界面登陸的話,那么默認的顯示語系也是通過這個 localectl 所輸出的系統語系喔!
問:如果你跟著鳥哥的測試機器一路走來,圖形界面將會是中文萬國碼的提示登陸字符。如何改成英文語系的登陸界面?答:就是將 locale 改成 en_US.utf8 之后,再轉成圖形界面即可!
```
[root@study ~]# localectl set-locale LANG=en_US.utf8
[root@study ~]# systemctl isolate multi-user.target
[root@study ~]# systemctl isolate graphical.target
```
接下來你就可以看到英文的登陸畫面提示了!未來的默認語系也都會是英文界面喔!
### 20.1.4 防火墻簡易設置
有網絡沒有防火墻還挺奇怪的,所以這個小節我們簡單的來談談防火墻的一點點數據好了!
防火墻其實是一種網絡數據的過濾方式,它可以依據你服務器啟動的服務來設置是否放行,也能夠針對你信任的用戶來放行! 這部份應該要對網絡有點概念之后才來談比較好,所以詳細的數據會寫入在服務器篇的內容。由于目前 CentOS 7 的默認防火墻機制為 firewalld, 他的管理界面主要是通過命令行 firewall-cmd 這個詳細的指令~既然我們還沒有談到更多的防火墻與網絡規則,想要了解 firewall-cmd 有點難! 所以這個小節我們僅使用圖形界面來介紹防火墻的相關數據而已!
要啟動防火墻的圖形管理界面,你當然就得要先登陸 X 才行!然后到“應用程序”-->“雜項”-->“防火墻”給它點下去,如下面的圖示:
圖20.1.1、防火墻啟動的鏈接畫面
之后出現的圖形管理界面會有點像下面這樣:
圖20.1.2、防火墻圖形管理界面示意圖
* 組態:“執行時期”與“永久記錄”的差異
如圖 20.1.2 的箭頭 1 處,基本上,防火墻的規則擬定大概有兩種情況,一種是“暫時用來執行”的規則,一種則是“永久記錄”的規則。 一般來說,剛剛啟動防火墻時,這兩種規則會一模一樣。不過,后來可能你會暫時測試而加上幾條規則,如果該規則沒有寫入“永久記錄”區的話, 那下次重新載入防火墻時,該規則就會消失喔!所以請特別注意:“不要只是在執行階段增加規則設置,而是必須要在永久記錄區增加規則才行!”
* 界域 (zone):依據不同的環境所設計的網絡界域 (zone)
玩過網絡后,你可能會聽過所謂的本機網絡、NAT 與 DMZ 等網域,同時,可能還有可信任的 (trusted) 網域,或者是應該被抵擋 (drop/block) 的網域等等。 這些網域各有其功能~早期的 iptables 防火墻服務,所有的規則你都得要自己手動來撰寫,然后規則的細分得要自己去規劃, 所以很可能會導致一堆無法理解的規則。
新的 firewalld 服務就預先設計這些可能會被用到的網絡環境,里面的規則除了 public (公開網域) 這個界域 (zone) 之外,其它的界域則暫時為沒有啟動的狀況。 因此,在默認的情況下,如圖 20.1.2 當中的 2 號箭頭與 3 號箭頭處,你只要考慮 public 那個項目即可!其他的領域等到讀完服務器篇之后再來討論。 所以,再說一次~你只要考慮 public 這個 zone 即可喔!
* 相關設置項目
接下來圖 20.1.2 4 號箭頭的地方就是重點啦!防火墻規則通常需要設置的地方有:
* 服務:一般來說,如果你的 Linux server 是作為 Internet 的服務器,提供的是比較一般的服務,那么只要處理“服務”項目即可。默認你的服務器已經提供了 ssh 與 dhcpv6-client 的服務端口喔!
* 端口:如果你提供的服務所啟用的端口并不是正規的端口,舉例來說,為了玩 systemd 與 SELinux 我們曾經將 ssh 的端口調整到 222 ,同時也曾經將 ftp 的端口調整到 555 對吧!那如果你想要讓人家連進來,就不能只開放上面的“服務”項目,連這個“端口”的地方也需要調整才行!另外, 如果有某些比較特別的服務是 CentOS 默認沒有提供的,所以“服務”當然也就沒有存在!這時你也可以直接通過端口來搞定它!
* 豐富規則(rich rule):如果你有“整個網域”需要放行或者是拒絕的時候,那么前兩個項目就沒有辦法適用, 這時就得要這個項目來處理了。不過鳥哥測試了 7.1 這一版的設置,似乎怪怪的~因此,下面我們會以 firewall-cmd 來增加這一個項目的設置。
* 接口:就是這個界域主要是針對哪一個網卡來做規范的意思,我們只有一張網卡,所以當然就是 eth0 啰!
至于“偽裝”、“端口轉送”、“ICMP過濾器”、“來源”等等我們就不介紹了!畢竟那個是網絡的東西,還不是在基礎篇應該要告訴你的項目。 好了!現在假設我們的 Linux server 是要作為下面的幾個重要的服務與相關的網域功能,你該如何設置防火墻呢?
* 要作為 ssh, www, ftp, https 等等正規端口的服務;
* 同時與前幾章搭配,還需要放行 port 222 與 port 555 喔!
* 區域網絡 192.168.1.0/24 這一段我們目前想要直接放行這段網域對我們服務器的連線
請注意,因為未來都要持續生效,所以請一定要去到“永久”的防火墻設置項目里頭去處理!不然只有這次開機期間會生效而已~注意注意! 好了,首先就來處理一下正規的服務端口的放行吧!不過因為永久的設置比較重要,因此你得要先經過授權認證才行!如下圖所示。
圖20.1.3、永久的設置需要權限的認證
注意如下圖所示,你要先確認箭頭 1, 2, 3 的地方是正確的,然后再直接勾選 ftp, http, https, ssh 即可!因為 ssh 默認已經被勾選, 所以鳥哥僅截圖上頭的項目而已!比較特別的是,勾選就生效~沒有“確認”按鈕喔!呵呵!相當有趣!
圖20.1.4、以圖形界面的方式放行正規服務的防火墻設置
接下來按下“端口”的頁面,如下圖所示,按下“加入”之后在出現的窗口當中填寫你需要的端口號碼,通常也就是 tcp 協定保留它不動! 之后按下“確定”就好了!
圖20.1.5、以圖形界面的方式放行部份非正規端口的防火墻設置
因為我們有兩個端口要增加,所以請實作兩次產生 222 與 555 的端口如下:
圖20.1.6、以圖形界面的方式放行部份非正規端口的防火墻設置
最后一個要處理的是區域網絡的放行,我們剛剛談到這個部份恐怕目前的圖形界面軟件有點怪異~所以,這時你可以這樣下達指令即可! 注意,下列的指令全部都是必要參數,只有 IP 網段的部份可以變動掉即可!
```
[root@study ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
> source address="192.168.1.0/24" accept'
success
[root@study ~]# firewall-cmd --reload
```
最后一行很重要喔!我們上面的圖示通通是作用于“永久”設置中,只是變更配置文件,要讓這些設置實際生效,那么就得要使用上面的 reload 項目, 讓防火墻系統整個完整的再載入一下~那就 OK 啰!這樣會使用簡易的防火墻設置了嗎? ^_^
- 鳥哥的Linux私房菜:基礎學習篇 第四版
- 目錄及概述
- 第零章、計算機概論
- 0.1 電腦:輔助人腦的好工具
- 0.2 個人電腦架構與相關設備元件
- 0.3 數據表示方式
- 0.4 軟件程序運行
- 0.5 重點回顧
- 0.6 本章習題
- 0.7 參考資料與延伸閱讀
- 第一章、Linux是什么與如何學習
- 1.1 Linux是什么
- 1.2 Torvalds的Linux發展
- 1.3 Linux當前應用的角色
- 1.4 Linux 該如何學習
- 1.5 重點回顧
- 1.6 本章習題
- 1.7 參考資料與延伸閱讀
- 第二章、主機規劃與磁盤分區
- 2.1 Linux與硬件的搭配
- 2.2 磁盤分區
- 2.3 安裝Linux前的規劃
- 2.4 重點回顧
- 2.5 本章習題
- 2.6 參考資料與延伸閱讀
- 第三章、安裝 CentOS7.x
- 3.1 本練習機的規劃--尤其是分區參數
- 3.2 開始安裝CentOS 7
- 3.3 多重開機安裝流程與管理(Option)
- 3.4 重點回顧
- 3.5 本章習題
- 3.6 參考資料與延伸閱讀
- 第四章、首次登陸與線上求助
- 4.1 首次登陸系統
- 4.2 文字模式下指令的下達
- 4.3 Linux系統的線上求助man page與info page
- 4.4 超簡單文書編輯器: nano
- 4.5 正確的關機方法
- 4.6 重點回顧
- 4.7 本章習題
- 4.8 參考資料與延伸閱讀
- 第五章、Linux 的文件權限與目錄配置
- 5.1 使用者與群組
- 5.2 Linux 文件權限概念
- 5.3 Linux目錄配置
- 5.4 重點回顧
- 5.5 本章練習
- 5.6 參考資料與延伸閱讀
- 第六章、Linux 文件與目錄管理
- 6.1 目錄與路徑
- 6.2 文件與目錄管理
- 6.3 文件內容查閱
- 6.4 文件與目錄的默認權限與隱藏權限
- 6.5 指令與文件的搜尋
- 6.6 極重要的復習!權限與指令間的關系
- 6.7 重點回顧
- 6.8 本章習題:
- 6.9 參考資料與延伸閱讀
- 第七章、Linux 磁盤與文件系統管理
- 7.1 認識 Linux 文件系統
- 7.2 文件系統的簡單操作
- 7.3 磁盤的分區、格式化、檢驗與掛載
- 7.4 設置開機掛載
- 7.5 內存交換空間(swap)之創建
- 7.6 文件系統的特殊觀察與操作
- 7.7 重點回顧
- 7.8 本章習題 - 第一題一定要做
- 7.9 參考資料與延伸閱讀
- 第八章、文件與文件系統的壓縮,打包與備份
- 8.1 壓縮文件的用途與技術
- 8.2 Linux 系統常見的壓縮指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系統的備份與還原
- 8.5 光盤寫入工具
- 8.6 其他常見的壓縮與備份工具
- 8.7 重點回顧
- 8.8 本章習題
- 8.9 參考資料與延伸閱讀
- 第九章、vim 程序編輯器
- 9.1 vi 與 vim
- 9.2 vi 的使用
- 9.3 vim 的額外功能
- 9.4 其他 vim 使用注意事項
- 9.5 重點回顧
- 9.6 本章練習
- 9.7 參考資料與延伸閱讀
- 第十章、認識與學習BASH
- 10.1 認識 BASH 這個 Shell
- 10.2 Shell 的變量功能
- 10.3 命令別名與歷史命令
- 10.4 Bash Shell 的操作環境:
- 10.5 數據流重導向
- 10.6 管線命令 (pipe)
- 10.7 重點回顧
- 10.8 本章習題
- 10.9 參考資料與延伸閱讀
- 第十一章、正則表達式與文件格式化處理
- 11.1 開始之前:什么是正則表達式
- 11.2 基礎正則表達式
- 11.3 延伸正則表達式
- 11.4 文件的格式化與相關處理
- 11.5 重點回顧
- 11.6 本章習題
- 11.7 參考資料與延伸閱讀
- 第十二章、學習 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 簡單的 shell script 練習
- 12.3 善用判斷式
- 12.4 條件判斷式
- 12.5 循環 (loop)
- 12.6 shell script 的追蹤與 debug
- 12.7 重點回顧
- 12.8 本章習題
- 第十三章、Linux 帳號管理與 ACL 權限設置
- 13.1 Linux 的帳號與群組
- 13.2 帳號管理
- 13.3 主機的細部權限規劃:ACL 的使用
- 13.4 使用者身份切換
- 13.5 使用者的特殊 shell 與 PAM 模塊
- 13.6 Linux 主機上的使用者訊息傳遞
- 13.7 CentOS 7 環境下大量創建帳號的方法
- 13.8 重點回顧
- 13.9 本章習題
- 13.10 參考資料與延伸閱讀
- 第十四章、磁盤配額(Quota)與進階文件系統管理
- 14.1 磁盤配額 (Quota) 的應用與實作
- 14.2 軟件磁盤陣列 (Software RAID)
- 14.3 邏輯卷軸管理員 (Logical Volume Manager)
- 14.4 重點回顧
- 14.5 本章習題
- 14.6 參考資料與延伸閱讀
- 第十五章、例行性工作調度(crontab)
- 15.1 什么是例行性工作調度
- 15.2 僅執行一次的工作調度
- 15.3 循環執行的例行性工作調度
- 15.4 可喚醒停機期間的工作任務
- 15.5 重點回顧
- 15.6 本章習題
- 第十六章、程序管理與 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件與程序
- 16.5 SELinux 初探
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考資料與延伸閱讀
- 第十七章、認識系統服務 (daemons)
- 17.1 什么是 daemon 與服務 (service)
- 17.2 通過 systemctl 管理服務
- 17.3 systemctl 針對 service 類型的配置文件
- 17.4 systemctl 針對 timer 的配置文件
- 17.5 CentOS 7.x 默認啟動的服務簡易說明
- 17.6 重點回顧
- 17.7 本章習題
- 17.8 參考資料與延伸閱讀
- 第十八章、認識與分析登錄文件
- 18.1 什么是登錄文件
- 18.2 rsyslog.service :記錄登錄文件的服務
- 18.3 登錄文件的輪替(logrotate)
- 18.4 systemd-journald.service 簡介
- 18.5 分析登錄文件
- 18.6 重點回顧
- 18.7 本章習題
- 18.8 參考資料與延伸閱讀
- 第十九章、開機流程、模塊管理與 Loader
- 19.1 Linux 的開機流程分析
- 19.2 核心與核心模塊
- 19.3 Boot Loader: Grub2
- 19.4 開機過程的問題解決
- 19.5 重點回顧
- 19.6 本章習題
- 19.7 參考資料與延伸閱讀
- 第二十章、基礎系統設置與備份策略
- 20.1 系統基本設置
- 20.2 服務器硬件數據的收集
- 20.3 備份要點
- 20.4 備份的種類、頻率與工具的選擇
- 20.5 鳥哥的備份策略
- 20.6 災難復原的考慮
- 20.7 重點回顧
- 20.8 本章習題
- 20.9 參考資料與延伸閱讀
- 第二十一章、軟件安裝:源代碼與 Tarball
- 20.1 開放源碼的軟件安裝與升級簡介
- 21.2 使用傳統程序語言進行編譯的簡單范例
- 21.3 用 make 進行宏編譯
- 21.4 Tarball 的管理與建議
- 21.5 函數庫管理
- 21.6 檢驗軟件正確性
- 21.7 重點回顧
- 21.8 本章習題
- 21.9 參考資料與延伸閱讀
- 第二十二章、軟件安裝 RPM, SRPM 與 YUM
- 22.1 軟件管理員簡介
- 22.2 RPM 軟件管理程序: rpm
- 22.3 YUM 線上升級機制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重點回顧
- 22.6 本章習題
- 22.7 參考資料與延伸閱讀
- 第二十三章、X Window 設置介紹
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析與設置
- 23.3 顯卡驅動程序安裝范例
- 23.4 重點回顧
- 23.5 本章習題
- 23.6 參考資料與延伸閱讀
- 第二十四章、Linux 核心編譯與管理
- 24.1 編譯前的任務:認識核心與取得核心源代碼
- 24.2 核心編譯的前處理與核心功能選擇
- 24.3 核心的編譯與安裝
- 24.4 額外(單一)核心模塊編譯
- 24.5 以最新核心版本編譯 CentOS 7.x 的核心
- 24.6 重點回顧
- 24.7 本章習題
- 24.8 參考資料與延伸閱讀