繼續使用昨天安裝完的 debian 來進行操作
Debian 在開機的時候會先進入到 GRUB 內選擇要用哪個系統
就選擇唯一的 Debian 按 Enter 進入吧
(GRUB 可以在我們忘記 root 密碼的時候進行救援 忘記密碼的時候千萬不要直接洗掉系統RRR
載入系統後就會來到登入畫面
可以看到上方有提示說 系統名稱 主機名稱 還有 TTY(teletype or teletypewriter) (這個地方下面會教如何改
還有要你輸入帳號的地方 接著就用 root 登入吧
但 輸入帳號後按下 Enter 後是不是發現不管輸入什麼都沒有東西??
放心 其實是有輸入密碼進續的 這是 Debian 的安全機制不會顯示輸入的字元
打完密碼就按下 Enter 登入就會看到登入訊息和最後一次登入時間出現了
登入後如果按下 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 IMproved) 這兩個是文字編輯軟體
Vi 是 Debian 預設就有安裝的 Vim 要另外用 apt安裝
基本上 Vi 和 Vim 操作是大致一樣 這邊我用 Vim 來做介紹
那就先安裝 Vim 安裝好後就可以輸入 vim 打開了
apt-get install Vim -y # 安裝 vim
vim # 打開 vim
進來後然後就會發現你不知道要如何操控 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
接著我們再打開一次剛剛編輯的檔案
行號都顯示出來了 正直與善良都回來了
nano 也是文字編輯軟體 Debian 預設有安裝
他的操作相當的簡單使用起來不會那麼吃力
我們就直接打開 nano 吧
nano # 透過 nano 開啟新檔案
可以看到 畫面下方有操作的提示而且能夠直接編輯文字
接著我們就可以編輯一些系統相關的設定
先從改主機名稱開始找到 /etc/hostname 裡面的文字就是我們的主機名稱了
現在我不想要我的主機叫 debian 我讓他叫 debang
vim /etc/hostname
debang
存檔離開後主機名稱還不會改變 要重開系統才會改變 所以就重開機吧
reboot
嗚呼! 主機名稱變了
我在前面有提到說登入上方的訊息也是可以改的
我們現在也來 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
就可以看到
接著我們來編輯網路設定 打開 /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
接下來就是套件管理了 套件是 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 管理 前面我們有透過重啟 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 # 設定不要在開機時啟動服務
重要的東西大致上都說完了 接著說一些比較雜的功能
grep <filter> # grep 可以用正規表示法或字串來篩選文字
head -n 5 # head 可以顯示前五行文字, 透過 -n 指定行數
tail -n 5 # tail 可以顯示最後五行文字, 透過 -n 指定行數
這幾個使用的場景通常是要用 | (pipe) 來連接使用 以 service networking status 舉例來說...
這是沒有使用任何額外指令的樣子
使用 head -n 5 顯示前五行
使用 tail -n 5 顯示最後五行
用 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
用今天教的方法 + 一個小技巧可以做到美化登入畫面: