# Linux Learning
* sudo apt update : 查看可更新的套件
* sudo apt upgrade : 安裝可更新的套件
* apt list --upgradeable :查看可更新的軟件包及版本資訊
* apt list --installed : 列出已安裝的
* sudo apt install [package name]
* sudo apt remove [package name]
* sudo apt clean : 清楚下載檔案的存檔
* apt search [package name] : 查找
* apt show : 查看相關資訊
* sudo apt autoremove : 移出不再使用依賴和文件
* ls
* -a 列出所有檔案,包含隱藏檔案
* -h 顯示檔名
* -l 顯示列出檔案的存取權限的資訊
* -d 列出指定的檔案
* -R 列出指定檔案函底下的檔案
* -r 反向排序顯示
* -S 用檔案大小排序顯示
* -t 用時間排序顯示
* ll => ls -l : 顯示文件的詳細資訊
* -n :將所有權的user name , group name 換成數字(id)
* mkdir
* -p + dic1/dic2 : 若dic1不存在會先建立dic1,再建立dic2
* cp : 複製檔案
* -r : 複製資料夾中的所有檔案
* -i : 詢問重複檔案是否覆蓋
* -p : 將本身檔案的屬性都複製過去 , 備份用
* rm : 刪除指定檔案
* -i : 互動式,刪除前會再向usr確認一次
* -r : 刪除資料夾內所有檔案
* -f : 強制刪除,不管存不存在
* rmdir : 刪除空資料夾,若底下不是空,則無法刪除
* w : 顯示目前登入usr的相關資訊
* -f : usr 從何處登入
* -h : 不顯示欄位
* -s : 簡短輸出,不顯示usr登入時間、JCPU、PCPU
* who : 顯示當前登入用戶
* a1095551 tty2 2023-06-03 16:16(tty2)
* whoami : 顯示目前使用者名稱
* a1095551
* id : 顯示目前用戶的id 與 所屬group的id
* -g : 顯示用戶所屬群組ID (被系統指派)
* -G : 顯示用戶所屬的附加群組ID (用戶選擇加入)
* -u : 顯示用戶ID
*
* 以下兩個搭配 上面使用
* -n : 顯示用戶、所屬群組、附加群組的名稱 , -g -n
* -r : 顯示實際ID , -G -r
* cat : 顯示內容
* 後面有加 顯示該檔案內容
* 沒加 輸入甚麼、顯示甚麼
* cat file1 file2 > file3 : 合併 file1 , file2 到 file3
* -n : 加入行數編號
* -b : 加入不為空白行的行數編號
* date : 顯示日期
* -s :修改日期
* -d :輸出某段的時間,date -d "1 day ago" +"%Y-%m-%d %H:%M:%S"
* cal : 顯示日曆
* cal 2023 :顯示整年
* wc [file_name]: 計算檔案的行數、字數、字元數
* wc file1 file2 file2 : 計算多個 並加總
* -l : 算行
* -w : 算字
* -c , -m: 字元數
* -L : 最長行數
* mii-tool : 主要用於查看 、管理 網路接口的狀態
* -v enp0s3 : 查看網卡資訊
* useradd : 新增使用者
* -u 指定UID
* -n 群組為users
* -g 指定用戶主要群組
* -G 指定附加群組
* -M 不要建立家目錄
* -m 建立使用者家目錄
* -d 指定用戶登入時的起始目錄
* 切換帳號
* 要先設密碼:
* sudo passwd [user]
* su - [user] , 輸入密碼即可
* groupadd : 新增群組
* groupadd -g [GID] [group-name]
* -o | non-unique : 多群組共用GID
* groupmod : 修改group的設定
* -g : GID
* -n : group name
* groupdel : 刪除
* getent : 用於查看系統數據及中的紀錄資訊
* getent group
* getent hosts
* getent passwd
* usermod : 修改帳號各項設定
* -d : 修改用戶登入時的目錄
* -g : 修改用戶主要群組
* -G : 修改附加群組 , 原本的群組會被退掉
* -l : 修改用戶帳號名稱
* -L : 鎖定密碼 使無效
* -U : 解除密碼鎖定
* -u : 修改ID
* -e : 帳號過期設定
* -c : 備註
* cat /etc/shadow : 上次修改密碼時間
* cat /etc/passwd
* gpasswd : 添加到群組
* -a : 添加到群組 , 原本的不會被退掉
* gpasswd -a [user_name] [group_name]
* -d : 刪除
* -A : 指令管理員
* -r : 刪除密碼
* touch : 更改檔案的存取時間、更改時間,不存在則會創建
* sudo chown [user1] [file-name]
* sudo chgrp [user1] [file-name]
* chattr : 更改文件屬性
* +a : 僅附加
* +i : 不得更動文件或目錄
* chmod
* user , group , other許可權限 , a = ugo
* rwx = 7 , rw- = 6 , r-- = 4
* chmod 764 [file-name]
* + :新增 , - : 減少 , = , 指訂,其餘刪除
* umask : 建立文件時的預設權限mask
* 一般usr 為 002
* 可以在 ~/.bashrc 加入 unmask 022
* if umask = 0022
* 文件夾默認權限777 , 檔案為666(因為系統默認一開始不能執行)
* 如果創建一個新的文件夾 777 - 022 = 755
* 如果創建一個檔案 666 - 022 = 644
* 後續在調整
* file : 辨識文件類型
* -c : 顯示執行過程
* strings : 從文本中提取所有文本字串
* strings [file-name]
* -a 掃描整個檔案
* stat : 查看檔案資訊
* -f : 不顯示文件本身的資訊,顯示文件所在的系統資訊
* ln : 建立連結 , 在不同目錄下 使用相同的檔案,減少不必要的磁碟空間
* -s : 軟連結,類似捷徑,產生特殊的檔案 可跨連結
* 硬連結不能跨目錄
* find : 找目錄 或 檔案
* find . -type f : 將當前目錄及其子目錄中的所有文件列出
* find . -type f -perm 0777 : 找出權限為777
* find . type f ! -perm 0777 : 找出權限不是777
* dumpe2fs : 查看文件系統的詳細資訊
* 將EXT2 檔案系統狀態輸出到標準的設備上,用於分析問題以及檔案系統的資訊
* e2fsck : 检查使用 ext2 档案系统的 partition 是否正常工作。
* mke2fs : 用于建立ext2文件系统。
* fsck : 檢測或修復檔案系統,硬碟檢測工具、檔案系統是否有錯誤,並嘗試修復,使用時硬碟要處於沒有被掛載的狀態下,避免資料損壞
* mount , df : 查看以掛載的文件系統
* lsblk 、 fdisk : 顯示所有磁碟分區的訊息,上面沒有顯示,此處有代表沒掛載,或是 lsblk中mountpoint 為 空。
* fdsik : 磁碟分割區管理工具,檢視、建立、修改、刪除硬碟分割區
* fdisk -l /dev/sda
* 切割磁碟 :
* fdisk [目標磁碟] -> 輸入n (分磁區) -> lsblk 確認
* 按照以下步驟創建分割區:
1. 列出當前分區:`fdisk -l`
2. 選擇存儲磁盤:`fdisk /dev/sdX`(其中 X 是您要添加分區的設備)
3. 創建新分區:輸入 `n` 並指定分區的開始和結束位置。
* parted : 查看、管理磁碟分割表
* parted /dev/sda 會進入互動介面
* 輸入 print : 顯示磁碟分區狀態
* mkpart
* rm
* 照以下步驟創建分割區:
1. 選擇目標磁盤:`sudo parted /dev/sdb`
2. 創建分區表:`mklabel [partition_table_type]`
3. 創建分區:`mkpart`
* e4defrag : 檢查ext4,碎片整理
* 可以用df 看type 找 ext4
* e4defrag /dev/sda3
* -c 僅查看,不整理,書Done 為沒碎片
* e2label : 變更ext 檔案系統的磁碟
* e2label + 磁碟代號
* e2label /dev/sda3
* e2label + 磁碟代號 + 磁碟名稱 : 變更
* e2label /dev/sda3 123
* smartctl : 判斷磁碟的健康狀態及提供健康狀態預警
* yes : 產生data stream
* yes 123 , 會不斷輸出123
* df : 管理檔案系統
* -h : 人類可讀形式
* watch : 不斷刷新 後面的指令
* watch -n 1 df -h : 1 秒更新一次
* dd : 資料 copy 、 備份與回復整顆硬碟資料
* dd if=[讀入檔案] of = [輸出檔案] bs =[一次輸入/輸出的bytes] count= [copy數]
* grep : 找相同內容的
* ls -la | grep -v ^d 找開頭不是d的
* vim
* 好處 : 速度快 、 開啟檔案快 、編輯速度快 、精準
* 壞處 : 中文輸入不方便、不適用windows平台、學習曲線高
* 替換文字
* :%s/[要換的]/[換成甚麼]/gc :會一個一個確認y/n
* /g : 直接全換
* 遇到唯獨
* 輸入 :shell
* chmod u+w file.txt
* 往下搜尋 : /[string] , n 下一個 ,N 上一個
* * 往下搜尋 : /[string] , n 下一個 ,N 上一個
* O : 插入中間
* dd : 刪一行 , 2dd : 刪兩行
* :qa : quit all
* shift zz : 退出
* :w [filename] : 寫入新檔
* :e [filename] : 開檔
* 一次打多個 :
* ex: 10 , i , [string] , [esc]
* :! 執行外部指令
* h 左 , j 下 , k 上 , l 右
* H : 第一行 of window , L : 最後一行 of window
* w : 每次前進一個word
* b : 每次後退一個word
* shift $ 該行最後 , shift ^ 該行文字最前 , shift 0 該行最前
* [n]G : goto
* ctrl G : 現在在哪
* ctrl B : 往下一頁 , ctrl F : 往上一頁
* m{a-z} : 標籤 , `{a-z} : 到標籤
* map 替換功能
* shell
* !$ 傳入上一個參數
* ex : 先用 vim a1095551.txt , arg = a1095551.txt
* !$ = a1095551.txt
* && : 前面的指令錯 就不會繼續執行
* || : 前面的指令錯 還是會執行
* | : 會將前面指令的輸出,傳到下一個指令
* ; : 指令依次執行
* & : 後臺執行
* set
* [0-9], [a-z] , [a-zA-Z] , [!a-z] , [a-gxz]
* touch file{000..300}.txt 新增file000 - file300 的檔案
* bash 環境:
* /etc/profile : 系統範圍的環境和啟動程序
* /etc/bashrc : 系統範圍的功能和別名
* /etc/profile.d/ : 設定CLI工具的系統範圍腳本,可自行添加
* ~/.bash_profile : 用戶特定的環境和啟動程序
* ~/.bashrc : 用戶特定的別名和功能
* ~/.bash_logout : 用戶在退出時執行的特定指令
* shell 登入時 ,先運行 /etc/profile ,完成後運行 ~/.bash_profile , 再調用 ~/.bashrc
* export [var]=[something] : 在當前的shell 內都可以使用
* 若要永久 就需要到使用 ~./bashrc 添加
* unset [var] : 解除設定的環境變數
* alias ll = "ls -l"
* true ; echo $? => 0
* true 為 0 , $? 為上一個指令的返回值
* true && echo "True" || echo "False"
* true 輸出 "True" , 反之 輸出False
```=shell
x=0;
if [$X==0]; // test $X == 0
then echo "X=0";
else echo "X!=0";
fi
```
* -e filename : exist
* -d filename : exist 唯一路徑
* -w filename : 是否可寫入
```=shell
File="test123";
if [-e $File];
then echo "The file $File ..";
else echo "the ...";
fi
```
* -z string : 字串長度是否為0
* -n string : 字串長度是否不為0
* expr length $var : 字串長度
* 指令中用指令 `` , $()
```=shell
echo "today date is `date`"
echo "today date is $(date)"
```
* for loop
```=shell
for I in a b c d;
do
echo $I;
[other command]
done
$(seq 1 100)
{1..100}
```
* while loop
```=shell
x=0;
while[ true ];
do
echo $((x++));
[other command]
done
```
```=shell
x=0;
while[ $x -le 5 ];
do
echo $((x++));
[other command]
done
```
* * , @ : 所有的變數
* ${!prefix*} . ${!prefix@} :加prefix 給所有變數
* ${!name[@]} , ${!name[*]} : 給 index
* ${#parameter} : 長度
* ${param#word} : 在 param中從前開始找距離最近的word,之前全部移除
* ${param##word} : 在 param中從前開始找距離最遠的word,之前全部移除
* ${param%word} : 在 param中從後開始找距離最近的word,之後全部移除
* ${param%%word} : 在 param中從後開始找距離最遠的word,之後全部移除
* sed : 字串取代、複製、刪除
* sed 參數 "動作/要被取代的字串/要替代的字串/flag"
* 參數 -e : 連接多個sed
* 動作 s : 替換
* flag g : 套用全部
* awk : 輸出格式
* awk '{print $1" "$2" <"$3">"}'
* /proc : 儲存正在執行的kernel與其效能數據
* /proc/cpuinfo : cpu 資訊
* /proc/meminfo : memory 資訊
* /proc/sys/net/ipv4 : 網路設定
* free :查看記憶體使用狀態
* /sys : 裝置與驅動程式的資料與設定
* 看到硬碟的系統檔案
* ls /sys/bus/usb/devices/usb2 : 查看bus和usb資訊
* /etc/fstab : 硬碟分區與掛載點設定
* tar : 加/解壓縮
* -c : 建立打包檔案
* -t : 查看打包檔案的內容有哪些檔名
* -z : 打包成 *.tar.gz
* -f : 後面接要被處理的檔名
* -v : 將正在處理的檔名顯示出來
* -C : 要在哪解開
* sudo tar -czvf a1095551.tar a1095551.txt : 壓縮
* sudo tar -tzvf a1095551.tar : 查詢壓縮檔,看到其中資訊
* sudo tar -xzvf a1095551.tar : 解壓縮
* 搭配 grep 可以解特定目標
* dd if = 輸入檔案路徑 bs = 緩衝空間大小 | tar -xzvf filename -C "檔案在壓縮檔內的路徑和檔名" 輸出壓縮檔案路徑
* top : 觀察內存和CPU的使用情況以及平均負載
* 檢查CPU 使用率
* 輸入 k = 可以終止
* 修改 nice number : 優先度
* -20 - 19 越小越優先
* renice [要調的值] pid
* kill -<數字> PID
* -9 : 強制終止
* -2 : 中斷 = ctrl+C
* ps : 條列出該使用者的process
* -r : 當前執行的process
* -ef :所以的process
* -au<使用者名稱> : 列出屬於使用者的process
* pgrep : 尋找指定的process
* pgrep -l cpu
* pkill : 將符合搜尋條件的process一次停止
* mkfifo : 創建name pipe
* htop : 與top類似,但能夠與正在運行的process互動
* 可終止或調整所選process的優先級,以及像一個或多個process發送多個信號
* free : 查看內存使用情況
* vmstat : 查看內存使用率 、CPU使用率
* iostat : 呈現磁碟讀取效能 、 堤共CPU 對I/O工作所佔的比例
* iostat -c 1 : 每秒顯示一次CPU資訊
* iostat -j ID : 查看檔案系統名稱
* -c : 顯示CPU使用
* -d : 磁碟使用
* -N : LVM資訊
* -n : NFS使用情況
* -p : 磁碟和分割槽的情況
* iotop : 顯示當前間隔內的總磁碟讀寫數據和實際讀寫數據
* iotop : 顯示使用I/O最多進程
* lshw : 列出主機板、CPU和其他安裝的硬體資料
* dmidecode : 列出硬體的資料
* sudo dmidecode -t processor : 顯示處理器資訊
* 0 : bios
* 1 : system
* 2 : 主機板
* 4 : processor
* 17 : memory device
* lsusb : 查看usb
* usb-devices 也可
* lspci : 查看PCI設備
* lm-sensors : 監測內部傳感器
* sudo sensors-detect :偵測可用的硬體監控器
* cupsdisable : 禁用設備
* cupsdisable <設備名稱> 禁用設備
* sar : 查看指定的操作系統狀態
* sar -u 1 10 : 每秒顯示一次CPU使用,顯示10次
* od :以八進制或其他格式轉換文件
* chronyc
* chronyc tracking : 查看時間參考來源
* chronyc sources : 列出NTP校正來源
* tail -f [file] : 即時更新
* at : 建立一次性任務
* at> at [時間]
* at> [指令]
* at> crtrl+d : 結束
* atq : 查看排程
* atmr [編號] : 刪除at的工作
* mailx : 開啟mailutils的郵件管理工具
* 啟用sysstat
* sudo systemctl enable sysstat
* sudo systemctl start sysstat
* dmesg : 查看開機資訊
* journalctl : 查看 systemd 系統日誌
* logwatch : 啟動日誌分析工具
* ip addr :查看網卡介面資訊
* ip addr flush : 清楚有ip 設定
* ip neigh :查看同網域下的其他裝置IP
* ip route : 看 gateway
* sudo ip route add default via [ip]
* ping : 對 ip 或 網址進行呼叫
* ping 127.0.0.1 確認網卡功能
* dmesg | grep eth0 : 查看開機資訊上的eth0資訊
* ip link set <介面卡名稱> down : 停用網卡
* ip link set <介面卡名稱> up : 啟用網卡
* route -n : 查看routing table
* iptraf-ng : 進入iptraf-ng 功能表
* lshw : 查看所有可用的網路介面
* ethtool
* ufw
* ufw status
* ufw enable : 開機自動載入和啟用
* ufw disable
* ufw default allow : 允許所有連線
* ufw default allow 80 , 80/udp ,80/tcp
* ufw allow from [ip] to any port [port]:從此ip的port來都允許
* ufw default deny : 拒絕所有連線
* ufw delete allow 80 : 刪除規則
* ufw reset : 全部重設
* ssh
* /etc/hosts.allow : 把允許的主機ip 加進來
* ex : sshd:192.168.1.88:allow
* /etc/hosts.deny : 拒絕所有主機
* ex: sshs:all:deny
* 設置黑白名單
* /etc/spamassassin/local.cf 新增黑/白名單
* blacklist_from *@vm2
* whitelist_from *@vm2
* echo "信件內文" | mailx -s "主旨" <對象>
* mailx :查看信件
* mailx []@[]
* Cc:副本
* Subject :主旨
* 內容
* ctrl+d
* vm 複製
* 再製VM
* 複製完全一樣的VM,創建相同環境的VM
* 可個別開啟
* 較慢
* 直接匯入VM
* vdi
* 檔案大小一樣大
* 外部設定都會一樣
* 備分用
* 匯出 ova
* 檔案較小
* 打包到其他電腦上,設定都相同
* 資料夾複製 : 暴力複製
* crontab
* 整個環境都複製出來 , 網卡資訊都會相同
* snapshot : 僅複製每次檔案之間的差異
* 出問題可以還原前一次狀況
## 系統管理題庫
1. Boot Loader 於開機時會讀取的系統核心為下列哪一項?
(A) /boot/kernel
(B) /boot/vmlinuz
(C) /boot/system
(D) /boot/initrd.img
Ans : C
* Boot Loader 是開機載入程式,用來載入OS kernel,Loader 分別有LILO(LInux LOader) 及 GRUB (GRand Unified Bootloader),都具有Boot Manager。
* 等grub 的選單中選擇了 Linux 這個系統,然後主機跑到 Linux 所在的硬碟之下,就開始將他的核心載入囉。在 Linux 的系統下,通常開機的核心都擺在 /boot 底下,因此,這個時候的 boot loader 就會到 /boot 去尋找相關的核心。kernel 名稱通常就是 /boot/vmlinuz-xxxx 的格式,
2. 在/etc/inittab 檔案中,不應將預設的 Run Level 設定為下列哪些值?
(複選)
(A) 0
(B) 1
(C) 4
(D) 6
Ans: A ,C ,D
* 在 Linux 和其他類 Unix 系統中,Run Level 0-6 通常定義如下:
- Run Level 0: 系統關機。
- Run Level 1: 單用戶模式。僅有根用戶可以登錄,用於系統維護。
- Run Level 2: 多用戶模式,但不啟用網絡服務。
- Run Level 3: 多用戶模式,並啟用網絡服務。
- Run Level 4: 未定義。不同的 Linux 發行版可能會有不同的定義。
- Run Level 5: 多用戶模式,並啟用網絡服務和圖形用戶界面。
- Run Level 6: 系統重新啟動。
* 通常用3 CUI 、 5 GUI。
* init , telinit 可以切換 run level
3. 下列哪一個目錄中的檔案,是開機時 Kernel 依據目前執行環境自動產生的?
(A) /temp
(B) /opt
(C) /root
(D) /proc
Ans : D
(A) /temp 不是一個標準的 Linux 目錄。通常用於存儲臨時文件的目錄是 /tmp。
(B) /opt 用於存儲可選的應用程序軟件包。
(C) /root 是根用戶的主目錄。
(D) /proc 目錄包含了系統運行時的實時信息,例如系統硬件和進程信息。這些文件是由内核在開機時自動產生的,並且會根據系統的實時狀態不斷更新。
4. 想要看電腦所有磁碟與其掛載點,可使用下列哪些指令?(複選)
(A) du
(B) mount
(C) fdisk
(D) df
Ans : B ,D
9. 在 systemd 程序下,若要變更或增加一個 system 服務的相關參數,下列
敘述哪一項正確?
(A) 加入命令於/etc/systemd/system 其優先權低於/lib/systemd/system
(B) /etc/systemd/system 與/lib/systemd/system 的內容必須相同
(C) 加入命令於/etc/systemd/system 其優先權高於/lib/systemd/system
(D) /lib/systemd/system 為/etc/systemd/system 的符號連結
Ans :C
在 systemd 程序下,若要變更或增加一個 system 服務的相關參數,可以將命令加入 `/etc/systemd/system` 目錄中。`/etc/systemd/system` 目錄中的設置具有高於 `/lib/systemd/system` 目錄中設置的優先權。因此,正確答案是 (C) 加入命令於 `/etc/systemd/system` 其優先權高於 `/lib/systemd/system`。
其他選項的說明如下:
(A) 不正確,因為 `/etc/systemd/system` 目錄中的設置具有高於 `/lib/systemd/system` 目錄中設置的優先權。
(B) 不正確,因為 `/etc/systemd/system` 和 `/lib/systemd/system` 的內容不必相同。
(D) 不正確,因為 `/lib/systemd/system` 不是 `/etc/systemd/system` 的符號連結。
0. 安裝 Linux 時,下列哪一項一定要切成單獨分割區的掛載點?
(A) swap
(B) /tmp
(C) /var
(D) /usr
Ans : A
單獨分割區是指將硬碟分割成多個獨立的區域,每個區域都可以獨立掛載和使用。這樣可以幫助您為特定用途分配不同的內存區域。創建分割區還可以幫助您在同一台計算機上安裝多個操作系統,並在磁盤損壞時最小化損害 ²。
在 Linux 中,您可以使用 `parted` 或 `fdisk` 命令來創建分割區。例如,使用 `parted` 命令,您可以按
13. 系統預設的 umask 設定是記錄在下列哪一項檔案中?
(A) /etc/bashrc
(B) /etc/basb_profile
(C) /etc/profile
(D) /etc/chs.login
Ans : A
永久修改在 /etc/bashrc
14. 假如想看到某個檔案 test.txt 的全部內容時,下列哪些指令可以達到此目
的?(複選)
(A) cat test.txt
(B) tail test.txt
(C) pr test.txt
(D) more test.txt
Ans : A ,C ,D
6. 在 Vi 編輯器中,按下列哪些按鍵可以開始編輯輸入文字?(複選)
(A) [w]鍵
(B) [i]鍵
(C) [a]鍵
(D) [o]鍵
Ans : B ,C ,D
18. cat 指令中加入下列哪些項目指令,可顯示 test 檔案內容並加入行號?
(複選)
(A) cat -l test
(B) cat -b test
(C) cat -n test
(D) cat –u test
21. 下列哪一項指令可以將 EXT2 檔案系統狀態輸出到標準的設備上,用於
分析問題以及檔案系統的資訊?
(A) tune2fs
(B) mke2fs
(C) e2fsck
(D) dumpe2fs
Ans : D
22. 關於 Sysfs 的敘述,下列哪一項錯誤?
(A) 管理 Linux 系統中的週邊元件,配合使用公用程式來自動產生 Device
Node
(B) 它是從 Proc 所變化而來並由各個 Driver 自行產生相關檔案
(C) 它是繼承 Kobject 的資料結構,其檔名及內容都是 Driver 自行解決,
主要是用來設定 Driver 的功能
(D) 它是一個實體檔案系統,可用指令 mount–t sysfs sysfs /sys 將其掛載
34. DNS 正解檔案中,DNS Server 本身要設定下列哪些記錄,DNS Server方可正常運作?(複選)
(A) NS
(B) MX
(C) A
(D) CNAME
DNS 正解檔案中,DNS Server 本身要設定下列哪些記錄,DNS Server方可正常運作?(複選)(A) NS (B) MX (C) A (D) CNAME
答案是 (A) NS 和 (C) A。這兩種記錄都是 DNS Server 正常運作所必需的。
- `NS`(Name Server)記錄用於指定負責管理某個域名的 DNS 服務器。它告訴客戶端應該向哪個服務器發送查詢請求。
- `A`(Address)記錄用於將主機名映射到 IP 地址。它告訴客戶端某個主機名對應的 IP 地址是什麼。
而 `MX`(Mail Exchange)記錄和 `CNAME`(Canonical Name)記錄則不是 DNS Server 正常運作所必需的。`MX` 記錄用於指定負責接收某個域名郵件的郵件服務器,而 `CNAME` 記錄用於為主機名創建別名。