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

  1. Ctrl+X
  2. Y
  3. Enter

How to exit vim

https://github.com/hakluke/how-to-exit-vim

  1. ESC
  2. :wq

回到正題

:set nu 顯示行數

Ctrl + ^ 回字首
Ctrl + $ 到字尾
G 檔尾
gg 檔首
3G 第三行
:n 第 n 行行首
^G 總行數和目前位置
i 目前所在位置字元前開始輸入文字

x 刪除目前的字元
dd 刪除一行
3dd 刪除 3dG 刪除至檔尾
d1G 刪除至檔首
D0 刪除至行尾
d0 刪除至行首

yy 複製目前位置的整行
2yy 複製 2y^ 複製至行首,不含目前位置的字元
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

無情工商一下

img vProxy Cloud 成立於 2022 年初,由多位具備 Minecraft 伺服器架設經驗的專家共同創立,致力於提供高性能、穩定且低延遲的遊戲伺服器託管服務。我們理解購買國外託管服務的困難,專注於打造可靠的台灣遊戲伺服器環境。除了 Minecraft 伺服器,我們還提供 Discord Bot 主機和網頁主機等多元化雲端服務,讓您以實惠的價格享受高品質的服務。

我們的服務旨在滿足各類用戶的需求,無論您是個人玩家、小型社群,還是大型遊戲社區,都能在 vProxy Cloud 找到適合的方案。我們的伺服器採用最新的硬體技術,確保您的遊戲體驗順暢無阻。此外,我們的專業技術支援團隊隨時待命,為您解決任何可能遇到的問題,確保您的伺服器始終保持最佳狀態。

選擇 vProxy Cloud,您將享受到以下優勢:

高性能:我們的伺服器採用頂級硬體,確保遊戲運行流暢。

高穩定性:我們致力於提供穩定的伺服器環境,讓您的服務不中斷。

低延遲:我們的伺服器位於台灣、新加坡,為亞洲本地玩家提供極低的延遲體驗。

多元化服務:除了遊戲伺服器,我們還提供其他雲端服務,滿足您的各種需求。

專業支援:我們的技術團隊隨時為您提供專業的技術支援。

心動了嗎?立即下單!

參考我們官網的伺服器方案:https://vproxy.cloud

業務諮詢

Mail: [email protected]

Discord: fanyueee

Telegram: @fanyueee