Linux 應用實務
好用的連線工具:https://termius.com/download/windows
如果你需要下載 https://ubuntu.com/download/server
YAML Checker https://yamlchecker.com 檢查 netplan 格式有沒有問題很有用
在 Linux 中,基本上所有指令有分大小寫,尤其是參數。
1. 基本指令(?
1-1. 檔案目錄和管理
ls
列出目錄內容
# 參數
-l 顯示詳細資訊
-a 顯示隱藏的檔案
-h 檔案大小以 KB MB 格式顯示
-t 依照檔案時間排序
-r 反向排序
-S (大寫)依照檔案大小排序
# 常用的
-lah 顯示所有的檔案的詳細資訊與檔案大小(以KB MB格式顯示)
PS ll = ls -l
cd
切換目錄至
# 方法
cd <位置>
cd ~ # 回到家目錄
cd .. # 回到上一層目錄
cd - # 回到上一個目錄(上一頁的概念)
pwd
顯示當前路徑
mkdir
創建新目錄
mv
移動檔案或重新命名
# 方法
mv <原始檔案> <新的位置/新的名稱>
# 範例
mv aa.txt /home/ubuntu 將當前目錄的 aa.txt 移至 /home/ubuntu 下
mv aa.txt bb.txt # 將 aa.txt 重新命名為 bb.txt
cp
複製檔案
cp a.txt b.txt 複製 a.txt 到 b.txt
rm
刪除檔案/資料夾
# 參數
-r 循環(刪除資料夾)
-f 強制執行
# 範例
rm a.txt 刪除 a.txt
rm -r /b 刪除 b 資料夾
1-2. 檔案內容查看和編輯
cat
輸出檔案內容
cat a.txt 輸出
cat -n a.txt 輸出+行號
more
分頁查看內容
tail
查看內容底部
tail a.txt # 預設 10 行
tail -n 20 a.txt # 20 行
tail -f a.txt 持續監控/輸出新內容
1-3. 檔案搜尋與統計
grep
找關鍵字
grep "hi" a.txt # 在 a.txt 找 hi
grep -i "hi" a.txt # 在 a.txt 找 hi (不分大小寫)
grep -r "hi" . # 當前目錄底下的所有檔案尋找 hi
grep -n "hi" # 顯示行號
grep -v "hi" # 顯示不包含 hi 的行
cat a.txt | grep "hi" # 在 a.txt 找 hi(這個指令指的是輸出 a.txt 然後(|) 執行 grep 尋找)
» 注入
cat a.txt >> b.txt 將 a.txt 的所有資訊注入 b.txt
wc
統計檔案字數
wc a.txt
行數 字數 檔案大小(位元)
103 185 2376 config.yml
1-4. 系統資訊類
df
顯示硬碟空間的狀況
df -h # 換 KB MB 格式呈現
du
顯示當前檔案/資料夾的使用空間容量
du -sh * # 顯示當前底下的所有總資料夾空間
du -c 會顯示總計
2. 檔案權限
透過 ls -l 可以看到
-rw-rw---- 1 root utmp 105539712 Nov 30 23:58 btmp.1
-rw-r--r-- 1 syslog adm 377321 Apr 7 2024 cloud-init.log
-rw-r----- 1 root adm 12971 Apr 7 2024 cloud-init-output.log
drwxr-xr-x 2 root root 4096 Apr 19 2022 dist-upgrade/
最前方可以拆成 4 個部分(EX drwxr-xr-x
)
1 | 3 | 3 | 3 |
---|---|---|---|
檔案類型 | 所有者 | 群組 | 其他使用者 |
檔案類型 (d: 目錄 -: 檔案 l: 捷徑)
所有者 群組 其他 (r:讀 w:寫 x:執行)
chmod
改變檔案權限
chmod 777 a.txt # 給所有者、群組、其他使用者讀寫執行的權限(三個對應每一個7)
7 的算法 讀=4 寫=2 執行=1
3. Vim/Nano 編輯器
vi 或 vim 是一種檔案編輯工具,使用起來基本上差不多,目前通常使用 vi 就等於 vim。
nano 是另一種檔案編輯工具,但 vim is best.
How to exit nano
- Ctrl+X
- Y
- Enter
How to exit vim
https://github.com/hakluke/how-to-exit-vim
- ESC
- :wq
回到正題
:set nu 顯示行數
Ctrl + ^ 回字首
Ctrl + $ 到字尾
G 檔尾
gg 檔首
3G 第三行
:n 第 n 行行首
^G 總行數和目前位置
i 目前所在位置字元前開始輸入文字
x 刪除目前的字元
dd 刪除一行
3dd 刪除 3 行
dG 刪除至檔尾
d1G 刪除至檔首
D0 刪除至行尾
d0 刪除至行首
yy 複製目前位置的整行
2yy 複製 2 行
y^ 複製至行首,不含目前位置的字元
y$ 複製至行尾,含目前位置的處字元
yG 複製至檔尾
y1G 複製至檔首
p 代表貼至游標後
P 代表貼至游標前
cc 剪下,基本同複製用法
u 復原
/word 輸入斜線後打要找的字,按 Enter 開始往下找
?word 輸入問號後打要找的字,按 Enter 開始往上找
n 續往同方向找下一個
N 往相反方向找上一個
# 替換指令基本格式
:s/old/new/選項 # 把 old 換成 new
# 常用範圍設定
:1,7s/old/new/g # 只在第 1-7 行間替換
:%s/old/new/g # 整篇文章都替換(% 是最常用的)
:1,$s/old/new/g # 從第一行到最後一行替換,效果同上
# 常用選項
:%s/old/new/c # 加 c:每次替換前都會問你
:%s/old/new/g # 加 g:自動替換整行所有符合的字
:%s/old/new/i # 加 i:不分大小寫
:%s/old/new/cg # 可以組合使用:每次都問,但一行內全換
:%s/old/new/gi # 不分大小寫,一行內全換
4. Crontab
用於定時執行
cronatb -e
編輯
* * * * * 指令
分 時 日 月 星期
crontab 中的 % 表示換行,因此如果使用 date 指令,% 前需要加上 \
5. 更改主機的時區
timedatectl set-timezone “Asia/Taipei”
6. Apache2/PHP
apt install apache2
apt install php
/var/www/html/
<?php
phpinfo();
?>
dpkg –listfiles apache2 顯示 apache2 的資料都存在哪裡,一樣可以 | grep
a2enmod userdir 開啟每個使用者有各自的 apache2 網頁
systemctl start/stop/restart/enable/disable apache2
start | stop | restart | enable | disable |
---|---|---|---|---|
開啟 | 關閉 | 重啟 | 開機時自動啟動 | 開機時不要自動啟動 |
dmesg 搜尋
dmesg 開機的資訊
dmesg | grep eth 找開機網卡的資訊 like 網卡名稱
7. VM Install
如何安裝,使用手
8. Root 權限相關
曾加一個可登入帳號為 root 請依照以下指示
sudo su 獲得 root 權限
passwd 設定 root 密碼
到 vim /etc/ssh/sshd.config
裡面改
PermitRootLogin prohibit-password
變成
PermitRootLogin yes 重啟 SSH 服務
systmctl restart sshd (or ssh)
9. apt 套件相關
apt update 更新套件資訊
apt upgrade 更新套件
apt list 哪些能安裝
apt list –installed 已安裝的
dpkg 也是顯示套件
10. Network 網路設定
NAT
虛擬機 ---> NAT ---> 主機 ---> 外網
虛擬機可以上網,但外部網路無法直接連入虛擬機 虛擬機會取得一個私有 IP(如 10.0.2.x) 不同虛擬機之間預設無法互相通訊
Host-Only
虛擬機 <---> 主機
虛擬機只能和主機通訊,無法連外網 會建立一個僅主機可見的虛擬網路
Bridge(橋接模式)
虛擬機 ---> 主機網卡 ---> 實體網路
虛擬機直接使用實體網路卡,如同一台實體機器 虛擬機會取得和主機相同網段的 IP 外部網路可以直接存取虛擬機
DHCP 的設定檔案
enp0s3 改成對應的網卡名稱
network:
ethernets:
enp0s3:
dhcp4: true
version: 2
固定 IP 的設定檔案
network:
ethernets:
enp0s8:
addresses: [192.168.50.24/23]
routes:
- to: default
via: 192.168.50.1
nameservers:
addresses: [8.8.8.8]
dhcp4: false
version: 2
HostOnly 的設定檔案
network:
ethernets:
網卡名稱:
dhcp4: true
version: 2
TOP
top
apt install htop
snap install btop
11. 修改 shell 提示符號
查看目前的設定
echo $PS1 # echo 輸出 系統變數 PS1 的值
echo $PS2
暫時的設定 export PS1="自己打"
永久設定
vim ~/.bashrc
找到 PS1="看你想要什麼"
儲存後 source ~/.bashrc 使他生效
" "內可以打以下參數
\d 日期
\A 時間,24小時
\@ 時間,12小時
\W 目前目錄
\w 完整路徑
\u 使用者名稱
\h 主機名稱
12. date 指令
日期:
%Y 年份(4位數) 2024
%m 月份(01-12) 12
%d 日期(01-31) 25
%j 一年中的第幾天 359
時間:
%H 24小時制 23
%I 12小時制 11
%M 分鐘 59
%S 秒數 59
%p AM/PM PM
星期:
%a 星期簡寫 Wed
%A 星期全名 Wednesday
%w 星期(0-6) 3
常用組合範例:
date "+%Y-%m-%d" # 2024-12-25
date "+%H:%M:%S" # 23:59:59
date "+%Y-%m-%d %H:%M:%S" # 2024-12-25 23:59:59
date "+%A %Y-%m-%d" # Wednesday 2024-12-25
無情工商一下
vProxy Cloud 成立於 2022 年初,由多位具備 Minecraft 伺服器架設經驗的專家共同創立,致力於提供高性能、穩定且低延遲的遊戲伺服器託管服務。我們理解購買國外託管服務的困難,專注於打造可靠的台灣遊戲伺服器環境。除了 Minecraft 伺服器,我們還提供 Discord Bot 主機和網頁主機等多元化雲端服務,讓您以實惠的價格享受高品質的服務。
我們的服務旨在滿足各類用戶的需求,無論您是個人玩家、小型社群,還是大型遊戲社區,都能在 vProxy Cloud 找到適合的方案。我們的伺服器採用最新的硬體技術,確保您的遊戲體驗順暢無阻。此外,我們的專業技術支援團隊隨時待命,為您解決任何可能遇到的問題,確保您的伺服器始終保持最佳狀態。
選擇 vProxy Cloud,您將享受到以下優勢:
高性能:我們的伺服器採用頂級硬體,確保遊戲運行流暢。
高穩定性:我們致力於提供穩定的伺服器環境,讓您的服務不中斷。
低延遲:我們的伺服器位於台灣、新加坡,為亞洲本地玩家提供極低的延遲體驗。
多元化服務:除了遊戲伺服器,我們還提供其他雲端服務,滿足您的各種需求。
專業支援:我們的技術團隊隨時為您提供專業的技術支援。
心動了嗎?立即下單!
參考我們官網的伺服器方案:https://vproxy.cloud
業務諮詢
Mail: [email protected]
Discord: fanyueee
Telegram: @fanyueee