iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

上一篇聊到了維運工程這個領域,而維運工程最重要的根基,就是了解怎麼設定系統的環境。在那之前,你先猜猜看,這世界上最多電腦的安裝的作業系統,是哪一種作業系統呢?

答案既不是大多數人用的 Windows,更不是咖啡店常見的蘋果電腦的 macOS,而是一般人不太常聽到的 Linux。這世界上除了家裡或是學校一個人操作一台的個人電腦之外,更多的是沒有螢幕,放在 24 小時開著超強冷氣的機房裡,成千上萬擠在一起的伺服器。

而這些伺服器裡,大多數安裝的都是 Linux 這個開放原始碼的作業系統,以及它的發行版本(Distrobution)*。發行版本有點像是餐廳裡不一樣的套餐,一樣都有 Linux 核心的白飯,但是加上了不一樣的配菜軟體。

舉幾個著名的的發行版本:

Ubuntu 套餐 
├─ 白飯(Linux 核心)
├─ 雞腿(桌面環境:GNOME) 
├─ 青菜(軟體管理:apt) 
└─ 味噌湯(預裝軟體) 
→ 開盒就能吃,上手簡單

Red Hat 企業套餐
├─ 白飯(Linux 核心) 
├─ 高級和牛鍋(企業級軟體) 
├─ 服務生(技術支援) 
└─ 保證品質(長期維護) 
→ 適合公司,付錢買保障

Arch Linux 套餐
├─ 白飯(Linux 核心) 
├─ 沒有湯(最小化安裝) 
├─ 自己選菜(完全客製化)
└─ 自己煮(自己編譯)
→ 適合高手,自己決定要什麼

那為什麼要用蘋果電腦

那些會把寫好的程式放在伺服器上的程式設計師,通常會希望自己寫程式的環境儘可能的跟伺服器的環境一樣,所以有相當多程式設計師,是在自己的電腦裡面安裝 Linux 做日常使用的。

但是也有很多人除了寫程式之外,有一些習慣的商用軟體,像是 Office 文書軟體、Logic pro 音樂編曲軟體或是 Final Cut 影片剪接軟體,這些沒辦法在 Linux 安裝。

而蘋果電腦作業系統 macOS,跟 Linux 有點像是堂兄弟的關係,兩者都是模仿他們的阿公 Unix 作業系統來的。所以在終端機的操作上兩邊都是一樣的,檔案系統結構也很類似。所以有些程式設計師就會選擇使用蘋果電腦。

            Unix(阿公)
           /          \
    BSD(爸爸)    System V(叔叔)
       |                |
    macOS          Linux(模仿Unix)

註*: 如果要開發 iPhone 的 App ,也只能用蘋果電腦,才能安裝必要的 Xcode IDE。
註2*:Windows 10 以上可以用 WSL 這個功能,方便的讓你同時運行一個 Linux 操作,所以也漸漸有人開始使用 Windows 開發網站程式。


系統管理包括哪些事

我們之前安裝過 Homebrew 這個工具,它就是 macOS 上最流行的命令列軟體管理工具。而伺服器的系統管理,大致包括下列事項:

  • 安裝程式語言環境
  • 安裝及更新命令列工具
  • 設定多電腦的網路架構
  • 更新有安裝漏洞的系統元件

除了複雜的網路架構之外,我們平時就可以在自己的 macOS 或是 Windows 上練習看看。試著跟 AI 聊一下「系統管理有哪些重要的事」吧!

讓我們的系統更好用

接下來我們就來介紹一些在我們自己的系統上的知識跟工具吧!

再一些重要的內建命令

我們之前介紹過 cdlsmkdir。今天再多介紹幾個重要的內建命令:

  • mv: 移動或是重新命名檔案
    範例:
mv old_name.txt new_name.txt
  • cat:印出檔案內容
    範例:
cat index.html
  • rm:刪除檔案
    範例:
rm myfile.txt
  • cp:複製檔案
    範例:
cp source.txt destination.txt
  • curl:抓取網路上的內容
    範例:
curl https://www.google.com

如果你想多學一些

  • ssh:連線到其它伺服器

  • ps, top, kill, df, du: 系統運作資訊

  • chmod, chown, sudo: 系統檔案權限相關

  • grep:搜尋檔案內容,但比較慢,下面會介紹更好用的工具

  • fd:搜尋檔名,下面會介紹更好用的工具

怎麼讓自己的終端機提示更好用

終端機每次提示輸入的那行字,是可以自己改造的。那行字的正式名稱是「命令提示字元」。我們把它變得更簡潔,並加上 Git 的資訊,並安裝好用的外掛。首先輸入以下指令安裝外掛:

brew install zsh-history-substring-search zsh-syntax-highlighting

打開編輯器,找到 ~/.zshrc 這個檔案 (如果沒有就開新檔案),並貼上以下內容:

# Git 資訊函數
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '[%b]'
setopt PROMPT_SUBST

# 設定 prompt 為 `~ [git info] $`
PROMPT='%~ ${vcs_info_msg_0_} $ '

# zsh-syntax-highlighting(語法上色)
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# zsh-history-substring-search(搜尋歷史)
source /opt/homebrew/share/zsh-history-substring-search/zsh-history-substring-search.zsh

# 綁定上下鍵搜尋歷史
bindkey '^[[A' history-substring-search-up      # 上鍵
bindkey '^[[B' history-substring-search-down    # 下鍵

# 基本歷史設定
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt SHARE_HISTORY

開發時好用的命令列工具

最後來介紹幾個開發時非常好用的命令列工具吧。這些工具都可以用 brew install 工具名稱 來安裝。

1. git

版本控制,我們之前有操作過。

2. ripgrep

https://github.com/Dbachtiar/ripgrep

代替內建的 grep,可以快速在資料夾裡,搜尋所有檔案的內文,找到包含指定字串的檔案及行數。在改程式時非常有用。

3. fzf

https://github.com/junegunn/fzf

超厲害的模糊搜尋工具。例如有篇文章有 "I am a student, I am 11 years old.",只有打「I st yea」也能找到這一句。適用找檔案名稱,找 git 歷史,或是跟上面的 ripgrep 配合找內文。

4. zoxide

https://github.com/ajeetdsouza/zoxide

強力版 cd,會記住你之前 cd 的歷史,之後依頻率快速的跳到對應的資料夾下。例如有個很常去的目錄叫~/Projects/little_pocket,只要用 z l 就會自動 cd 到這個資料夾下了。

5. fd

https://github.com/sharkdp/fd

代替內建的 find,可以快速搜尋資料夾中的檔案。

營火前的回顧

我們今天討論了跟系統管理有關的幾件事。

  • Linux 是世界上最多電腦用的作業系統,有很多不同的發行版。
  • 系統管理要做哪些事
  • 程式設計師喜歡用蘋果電腦是因為他是 Linux 的堂兄弟
  • 怎麼改造我們的命令列提示字元
  • 常用的內建命令
  • 好用的命令列工具

地圖


上一篇
Ch 21. 讓大家一起用你的網頁程式
系列文
Just enough code with AI: 給新手們的程式設計世界觀23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言