iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

Debian 基本操作

繼續使用昨天安裝完的 debian 來進行操作

開機 -> 登入

Debian 在開機的時候會先進入到 GRUB 內選擇要用哪個系統
就選擇唯一的 Debian 按 Enter 進入吧
(GRUB 可以在我們忘記 root 密碼的時候進行救援 忘記密碼的時候千萬不要直接洗掉系統RRR
https://ithelp.ithome.com.tw/upload/images/20230921/20162773NkdgIPT20I.png
載入系統後就會來到登入畫面
可以看到上方有提示說 系統名稱 主機名稱 還有 TTY(teletype or teletypewriter) (這個地方下面會教如何改
還有要你輸入帳號的地方 接著就用 root 登入吧
https://ithelp.ithome.com.tw/upload/images/20230921/20162773B2pgrTokKL.png
輸入帳號後按下 Enter 後是不是發現不管輸入什麼都沒有東西??
https://ithelp.ithome.com.tw/upload/images/20230921/201627738o9VfHDgw7.png
放心 其實是有輸入密碼進續的 這是 Debian 的安全機制不會顯示輸入的字元
打完密碼就按下 Enter 登入就會看到登入訊息和最後一次登入時間出現了
https://ithelp.ithome.com.tw/upload/images/20230921/20162773toriJfMA0Z.png

基本/目錄/檔案操作

登入後如果按下 Enter 會發現一直有一行字會出現這是什麼意思呢

root@debian:~#       # root 帳號看到的
test_user@debian:~$  # 一般 User看到的

root 和 test_user 是使用者名稱, debian 是目前的主機名稱
~ 這個符號代表目前路徑在家目錄, 家目錄是像 Windows 使用者資料夾 (C:\Users<Username>) 一樣的地方
通常使用者都會有一個自己的家目錄
而 # 和 $ 這邊就不一樣了 #代表的是目前是 root 管理員帳號, $代表目前是一般使用者帳號

了解這個基本資訊後就可以開始探索 Debian了
可以先用 pwd 來看看現在是在哪一個目錄上

# 使用 root 輸入
root@debian:~# pwd
/root

# 使用一般使用者輸入
test_user@debian:~$ pwd
/home/test_user

這邊顯示的路徑當然不會是 ~, 會顯示家目錄的完整路徑
root 的家目錄會被獨立在 /root, 其他使用者通常會在 /home 裡
而這邊看到每個路徑都是在 / 根目錄下的, 而 / 也是分隔路徑的符號
說到這個 Linux 有兩種方法可以表示路徑 假設現在 root 家目錄有一個叫 test 的檔案和 dict 的目錄
且在我們在 root 的家目錄內可以如何去表示

# 先表示 test 檔案
test             # 用相對路徑表示 簡單的表示方式 通常用在 CLI 操作上
./test           # 用相對路徑表示 比較謹慎的表示方式 通常用在 shell 或套件設定檔上 .代表當前目錄
/root/test       # 用絕對路徑表示 用來精確指定位置時使用
# 我們進入 dict 目錄後可以這樣表示家目錄的 test 檔案
../test          # 用相對路徑表示 透過 ../ 指定上一層路徑上的位置
/root/test       # 用絕對路徑表示

這樣子就學會 Linux 的檔案表示方法了 接下來來看看要如何進出目錄還有列出目錄內的檔案吧

ls          # 列出當前目錄的檔案和目錄
ls <PATH>   # 列出某個路徑的檔案和目錄 例如 ls / 就是列出根目錄的
ls -al      # 詳細列出當前目錄中的檔案 包跨隱藏的檔案 且列出權限和檔案大小

cd <PATH>   # 進入某個目錄 例如 cd dict 就是進入 dict目錄, cd / 進入根目錄

現在可以自由進出目錄了 接著來管理檔案
這邊順便提醒在 CLI 中我們可以案 TAB 來自動補上路徑或檔案名稱
像剛才的 dict 目錄可以只打 d 按下 TAB 後會自動補上變成 dict/
還有可以按 方向鍵上 可以使用之前輸入的指令

# 檔案管理
cp <PATH1> <PATH2>    # 複製檔案, PATH1 代表檔案的原始位置 PATH2代表檔案要複製到的位置
cp test test123       # 複製 test 到同一個目錄且命名為 test123
cp test dict/         # 複製 test 到 dict 目錄並保留檔案名稱
cp /etc/hosts .       # 複製根目錄下的 hosts 檔案到目前的目錄
cp -r <PATH1> <PATH2> # 複製 PATH1 下所有檔案和目錄到 PATH2

mv <PATH1> <PATH2>    # 移動檔案, PATH1 代表檔案的原始位置 PATH2代表檔案要移動到的位置
mv test123 dict/      # 移動 test123 到 dict目錄裡
mv test test999       # 移動 test 到同目錄且命名為 test999 (也就是重新命名)

rm <PATH>             # 刪除檔案, PATH 代表檔案路徑
rm ./dict/test123     # 刪除 dict 內的 test123
rm -rf <PATH>         # 強制刪除路徑下的所有檔案和目錄 (千萬別對 / 使用, 你會直接刪除整個系統 :D)

# 目錄管理
mkdir <Directory Name># 建立目錄
rmdir <Directory Name># 刪除目錄, 刪除的目錄必須是空的才能刪除

編輯/開啟檔案

學習完管理檔案後可以再更進一步 接著了解如何開啟/編輯檔案
可以用 cat 來讀取檔案

cat <PATH>      # 以文字方式讀取檔案 會遇到編碼無法讀取出現一堆亂碼的情況

Vi / Vim

Vi / Vim (Vi IMproved) 這兩個是文字編輯軟體
Vi 是 Debian 預設就有安裝的 Vim 要另外用 apt安裝
基本上 Vi 和 Vim 操作是大致一樣 這邊我用 Vim 來做介紹
那就先安裝 Vim 安裝好後就可以輸入 vim 打開了

apt-get install Vim -y # 安裝 vim
vim                    # 打開 vim

https://ithelp.ithome.com.tw/upload/images/20230921/20162773nbC6a0kAJb.png
進來後然後就會發現你不知道要如何操控 vim :D

vim 和待會要介紹的 nano 有一個很大的差異是 vim 要習慣他的操作且編輯時不會提示如何操作
nano 在編輯時下方會有提示說如何操作 且不用變更模式就能編輯檔案(vim 有一堆模式可以切換)
所以這邊可以考慮直接去使用 nano 但有些時候 vim 還是有它的好處的
廢話不多說先放你出 vim 先按 ESC 後輸入 :q! 就能夠出去了

接著我們來說操作

這邊引用 Enoxs 大大的文章 我認為他將 Vim 融會貫通說明得非常清楚
【Vim 編輯器 入門指南 (上)】用思維的速度寫程式

學會 Vim 操作後要在稍微改一下 Vim 的設定檔來符合我們平常的操作
打開 /etc/vim/vimrc 在空的一行打入 set nu 存檔離開

vim /etc/vim/vimrc

set nu

https://ithelp.ithome.com.tw/upload/images/20230921/20162773XKduIE9PRv.png
接著我們再打開一次剛剛編輯的檔案
https://ithelp.ithome.com.tw/upload/images/20230921/20162773VAxXBAU0JD.png
行號都顯示出來了 正直與善良都回來了

nano

nano 也是文字編輯軟體 Debian 預設有安裝
他的操作相當的簡單使用起來不會那麼吃力
我們就直接打開 nano 吧

nano  # 透過 nano 開啟新檔案

https://ithelp.ithome.com.tw/upload/images/20230921/20162773HlS3bJTR1y.png
可以看到 畫面下方有操作的提示而且能夠直接編輯文字

Hostname / banner / motd

接著我們就可以編輯一些系統相關的設定
先從改主機名稱開始找到 /etc/hostname 裡面的文字就是我們的主機名稱了
現在我不想要我的主機叫 debian 我讓他叫 debang

vim /etc/hostname

debang

存檔離開後主機名稱還不會改變 要重開系統才會改變 所以就重開機吧

reboot

https://ithelp.ithome.com.tw/upload/images/20230921/20162773OJbnJa8x7F.png
嗚呼! 主機名稱變了
我在前面有提到說登入上方的訊息也是可以改的
我們現在也來 DIY (Destroy It Yourself) 一個自訂的登入前訊息吧
打開 /etc/issue 這個檔案

vim /etc/issue

Debian GNU\LINUX 12 \n \l

裡面的 \n 和 \l 是有特別的意義的 \n 是主機名稱 \l 是 TTY編號

最後是登入後的訊息 打開 /etc/motd 就可以改了

vim /etc/motd

......

網路設定

在玩完上面的設定後來操作一下正經一點的 來修改網路吧
一開始我們先來看看我們的網路狀態

ip ad

https://ithelp.ithome.com.tw/upload/images/20230921/20162773d9eUxka6GD.png
就可以看到

  • 有幾張網卡
  • 網卡 網段IP DHCP/Static

接著我們來編輯網路設定 打開 /etc/network/interfaces

通常最好是將設定寫在 /etc/network/interfaces.d/ 裡面 針對每一個網卡一個設定檔
但這邊我們先以方便為主更改這個主要的

vim /etc/network/interfaces

auto lo                         # 這張是迴路網卡非必要不要去動他
iface lo inet loopback

allow-hotplug ens33             # 這張是電腦上的網卡 編號是 ens33 且當有線路在上面時會啟動
iface ens33 inet dhcp           # 這邊看的出來 他目前是透過 DHCP 取的網路的

這邊預設有 DHCP 的設定 不過未來我們需要的是一個固定的 IP Address
這邊我們設定固定 IP 到 ens33 網卡上 還有讓網卡在開機時自動啟動

vim /etc/network/interfaces

auto ens33
iface ens33 inet static
address 192.168.0.101/24  # 指定 IP Address 和 subnet mask
gateway 192.168.0.1       # 指定 Gateway

# address 192.168.0.101   # 也可以這樣分開指定 IP address 跟 subnet mask
# netmask 255.255.255.0

存檔離開 再把網路服務重開就能用新的設定了

service networking restart
ip ad

https://ithelp.ithome.com.tw/upload/images/20230921/20162773dN428Apii0.png

apt Package 管理

接下來就是套件管理了 套件是 Linux 上管理軟體的一種方法
每個 Linux distribution 使用的套件管理程式不一定相同 Debian 使用的是 DPKG 和 apt 進行管理
這邊是 apt 管理套件比較常用的指令

apt-get install <Package Name> # 安裝套件
apt-get update                 # 刷新套件的最新版本列表
apt-get upgrade                # 透過最新版本列表去更新舊的已安裝套件
apt-get remove <Package Name>  # 移除套件
apt-get purge <Package Name>   # 徹底移除套件 (包跨設定檔)

通常第一次安裝套件時會先 update > install 確保版本是最新的

Service 管理

接著來談談 Service 管理 前面我們有透過重啟 networking 這個服務來重啟網卡
這邊可以透過 service 和 systemctl 兩個指令來做服務管理
以剛才的 networking 服務來做範例

service networking start     # 開啟服務
service networking stop      # 停止服務
service networking reload    # 重新載入服務 (載入設定檔)
service networking restart   # 重啟服務
service networking status    # 查看服務狀態

systemctl start networking   # 開啟服務
systemctl stop networking    # 停止服務
systemctl reload networking  # 重新載入服務 (載入設定檔)
systemctl restart networking # 重啟服務
systemctl status networking  # 查看服務狀態
systemctl enable networking  # 設定開機時啟動服務
systemctl disable networking # 設定不要在開機時啟動服務

Misc

重要的東西大致上都說完了 接著說一些比較雜的功能

grep <filter>   # grep 可以用正規表示法或字串來篩選文字
head -n 5       # head 可以顯示前五行文字, 透過 -n 指定行數
tail -n 5       # tail 可以顯示最後五行文字, 透過 -n 指定行數

這幾個使用的場景通常是要用 | (pipe) 來連接使用 以 service networking status 舉例來說...
https://ithelp.ithome.com.tw/upload/images/20230921/20162773S3PNZ6OW1m.png
這是沒有使用任何額外指令的樣子
https://ithelp.ithome.com.tw/upload/images/20230921/20162773oiElGTUVPa.png
使用 head -n 5 顯示前五行
https://ithelp.ithome.com.tw/upload/images/20230921/20162773GMUcfxxPB0.png
使用 tail -n 5 顯示最後五行
https://ithelp.ithome.com.tw/upload/images/20230921/20162773u3HRZb11vI.png
用 grep 過濾有 PID 字串的輸出行

cat big_file | less # 當用 cat 讀取檔案時檔案太行數太多 可以透過連接 less 或 more 來看完整的輸出
cat big_file | more # 要退出 less 和 more 要按 q 離開, 還有 / 可以搜尋文字
clear               # 現在畫面太亂嗎? 用 clear 清乾淨 terminal 上的所有東西吧
man                 # 這個指令是提供 Document 讓你在無網路的時候可以參考資料 用法像 man grep
echo "test"         # print 出文字或變數

最後用一些比較歡樂的功能來結束今天

apt-get install cowsay -y
apt-get install sl -y
apt-get install cmatrix -y

cowsay TEXT         
# 如果 cowsay 沒辦法使用可以試試 alias cowsay=/usr/games/cowsay
sl                  
# 如果 sl 沒辦法使用可以試試 alias sl=/usr/games/sl
cmatrix -r          

用今天教的方法 + 一個小技巧可以做到美化登入畫面:
https://ithelp.ithome.com.tw/upload/images/20230921/20162773pk3XpibLER.png


上一篇
Day5 Debian 安裝 熟悉的 Debian 最對味
下一篇
Day7 VMWARE ESXi 安裝? 不對是 Proxmox VE 安裝才對
系列文
地端建置大雜燴-下從網路線上到Grafana的建置之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言