Unix/Linux Tutorial

Linux/Unix 教程

本Linux教程旨在簡化Linux學習,面向從初學者到高階Linux愛好者、Linux系統管理員、Bash Shell指令碼程式設計師以及其他希望學習和實踐Linux的技術愛好者。

Linux(Unix的一個變體)是一個開源計算機作業系統,能夠同時處理多個使用者的活動。儘管Unix是由Ken Thompson和Dennis Ritchie於1969年在AT&T貝爾實驗室開發的,但Linux是由Linus Torvalds在赫爾辛基大學學習期間開發的。

作業系統定義
作業系統(OS)實際上是一種軟體,充當計算機使用者和計算機硬體之間的介面。它接收使用者的命令,執行所需的任務,並將結果返回給使用者。作業系統執行所有基本任務,例如檔案管理、記憶體管理、程序管理、處理輸入和輸出以及控制外圍裝置(例如磁碟驅動器和印表機)。

作業系統的例子包括Linux、Unix、Windows、Mac OS、iOS、Android、MS-DOS、Solaris等。

什麼是Linux?

Linux是一個作業系統,其開發目的是作為其他現有但價格昂貴的作業系統(特別是Unix、Windows、Mac OS、MS-DOS、Solaris等)的替代品。Linus Torvalds在赫爾辛基大學學習時,決定建立自己的作業系統並將其開源,以便世界各地的使用者可以為改進貢獻建議。

Linus Torvalds在1991年開發了自己的核心和一些圍繞它的程式,後來發展成為一個完整的作業系統,並很快被公司、大學和其他機構的計算機工程師廣泛接受。如今,Linux是最廣泛使用的作業系統之一,它有各種變體,如Ubuntu、CentOS、Fedora、Debian、openSUSE、RedHat、MX Linux、Arch Linux、Gentoo等。

線上Linux終端

作為初學者,你可能面臨在自己的計算機上安裝Linux的挑戰。因此,我們為你設定了一個線上Linux終端,以便練習基本的Linux命令和概念。我們提供了線上Linux終端,你可以在其中直接從瀏覽器中的命令提示符鍵入和執行幾乎所有Linux命令,無需設定開發環境。

我們還提供了一個IDE來編譯Linux Shell指令碼。你可以嘗試單擊圖示run button來執行以下Bash Shell程式碼以列印傳統的“Hello, World!”。

下面的程式碼框允許你更改程式碼的值。嘗試更改echo內部的值,然後再次執行它以驗證結果。
# Hello World Program in Bash Shell

echo "Hello World!"

Linux命令提示符

當你登入到Linux系統時,你會進入一個螢幕,你可以在其中執行所需的任務,例如建立檔案、建立目錄、更改當前目錄等。

此登入螢幕會根據你的系統設定顯示提示符。大多數情況下,此提示符是美元符號$,儘管你可以將其更改為你喜歡的符號。許多Linux使用者將命令提示符稱為美元提示符。

以下是我登入後Ubuntu Linux的螢幕截圖。在這裡,你可以在美元符號後開始輸入你的命令。

Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)

.....

Last login: Mon Apr 22 06:40:08 2024 from 183.82.118.37
$

基本的Linux命令

在學習Linux時,你將學習的第一件事是Linux命令。Linux命令是使用者向計算機發出指令以執行特定任務。

建立目錄 - 示例

例如,如果使用者想要建立一個目錄,則以下mkdir是Linux中建立目錄的命令

# Command to create directory in Linux

$ mkdir testing

更改目錄 - 示例

如果使用者想要進入特定目錄,則以下是在Linux中更改目錄的命令

# Command to change the directory in Linux

$ cd testing

cd Linux命令將帶你進入testing目錄。

列出目錄 - 示例

以下是列出Linux中當前目錄中所有檔案和子目錄的命令

# Command to list the content inside a directory in Linux

$ ls -l

Linux工作 - 管理員和DevOps工程師

如今,Linux是最廣泛使用的作業系統,所有主要公司都在Linux作業系統上執行其網站和其他應用程式。這些公司正在尋找Linux管理員、Shell指令碼程式設計師和DevOps工程師。我們在2024年開發本教程時,Linux專家嚴重短缺,而市場對Linux管理員等的需求卻更多,因為Linux應用於網站應用程式、移動應用程式、機器學習、人工智慧等。

如今,擁有3-5年經驗的Linux專家年薪約為20萬美元,這是DevOps和系統管理員最搶手的專業技能之一。儘管這可能因工作地點而異。不可能列出所有廣泛使用Linux的公司,僅舉幾家大型公司:

  • Tutorials Point
  • 谷歌
  • 亞馬遜
  • 英特爾
  • PayPal
  • 臉書
  • IBM
  • 美國國家航空航天局
  • 奈飛
  • Pinterest
  • Uber
  • 還有更多……

因此,你可能成為這些大型公司中下一個潛在的員工。我們為初學者和高階程式設計師開發了優秀的學習資料,幫助他們學習Linux,這將有助於他們準備技術面試和認證考試。因此,開始使用這個簡單有效的教程隨時隨地學習Linux,完全按照你自己的節奏。

為什麼要學習Linux?

Linux是一個開源的、多功能的、健壯且安全的作業系統,全球的開發人員、系統管理員和技術愛好者都在廣泛使用它。Linux提供各種針對不同需求和偏好的發行版。從輕量級發行版如Ubuntu到企業級系統如Red Hat Enterprise Linux。如今,各種學校、學院和大學都在教授Linux,以培養優秀的軟體工程師。還有許多其他充分理由使學習Linux變得重要

  • Linux是開源的,這意味著它是免費的。
  • Linux是最廣泛使用的作業系統之一。
  • Linux擁有強大的社群支援和協作。
  • Linux可用於雲計算、應用程式開發和程式設計。
  • Linux需求量很大,並確保高薪

目標讀者

本教程適用於初學者到高階使用者,幫助他們理解從基礎到高階概念,涵蓋Linux命令、Linux Shell指令碼以及各種其他實用程式。

先決條件

你將學習實踐中的Linux作業系統,但我們假設你已經具備了對作業系統的理論知識以及其功能的充分了解。對各種計算機概念的基本理解也將有助於你理解本教程中提供的各種練習。

關於Linux的常見問題

關於Linux,有一些非常常見的問題(FAQ),本節試圖簡要地回答它們。

Linux發行版是Linux作業系統的變體,包括Linux核心、系統軟體和應用程式。一些流行的Linux發行版包括Ubuntu、Fedora和CentOS。大多數Linux發行版都可以下載和使用,無需付費,但一些具有高階功能的企業版可能需要訂閱費用。

Linux是一個開源的作業系統核心,是許多作業系統的基礎。Linux作業系統廣泛用於伺服器、桌面和嵌入式系統。Linux是一個類Unix作業系統,這意味著它基於Unix設計。

我們在設計本教程時,考慮到了初學者的需求。為了學習本教程,並不需要具備使用作業系統的先前經驗。

你可以透過下載所選發行版的ISO檔案並建立一個可啟動的USB驅動器來安裝Linux。然後,你可以從USB啟動並按照安裝說明進行操作。

你可以使用軟體包管理器或從原始碼編譯來安裝新的Linux軟體包。例如,在Ubuntu中,你可以透過從終端執行此命令來安裝新軟體包:“sudo apt-get install package-name”。你可以使用軟體包管理器更新你的Linux系統。例如,在基於Debian的系統中,你可以使用“sudo apt-get update”和“sudo apt-get upgrade”。

Linux命令列介面,也稱為終端或shell,是一個基於文字的介面,允許使用者透過鍵入命令與作業系統互動。shell是一個命令列直譯器,它執行Linux中的使用者命令。流行的shell包括Bash、Zsh和Fish。

root使用者是Linux中的超級使用者,擁有管理員許可權。root使用者可以執行系統上的任何任務,例如更改系統檔案和安裝新軟體。可以使用“su”(替代使用者)命令成為root使用者,或者在命令前使用“sudo”以root許可權執行它。

包管理器是一個工具,它自動化安裝、升級、配置和刪除各種軟體的過程。例如,APT(用於基於Debian的發行版)和YUM(用於基於Red Hat的發行版)。

Linux檔案系統層次結構是一個以樹狀方式組織檔案和目錄的結構。“/”表示根目錄,所有其他目錄都從它分支出來。

Linux中的許可權控制誰可以讀取、寫入或執行檔案或目錄。它們由一組三個字元表示,分別代表所有者、組和其他人。可以使用chmod命令更改檔案許可權,使用符號或數字表示法指定所需的許可權。

可以使用文字編輯器在Linux中編輯檔案。文字編輯器是用於編輯純文字檔案的程式。Linux中流行的文字編輯器包括Vim、Nano和Emacs。例如,要使用Nano編輯名為“file.txt”的檔案,可以在終端中輸入“nano file.txt”。

程序是正在執行程式的例項。在Linux中,可以使用“ps”或“top”等命令檢視程序。可以使用“kill”(終止程序)、“nice”(設定優先順序)和“nohup”(執行不受掛起影響的命令)等命令來管理Linux程序。

shell指令碼是一個文字檔案,其中包含shell可以執行的一系列命令。shell指令碼用於自動化Linux中的不同任務。可以使用文字編輯器編寫shell指令碼。指令碼應以shebang(#!)開頭,後跟shell直譯器的路徑,例如“#!/bin/bash”。

別名是命令或一系列命令的快捷方式。可以使用“alias”命令建立別名,例如,alias ll='ls -la'。

環境變數是影響Linux程序行為的動態值。例如,PATH指定搜尋可執行檔案的目錄。可以使用export命令設定環境變數,例如,export PATH=/usr/local/bin:$PATH。

圖形使用者介面 (GUI) 提供具有圖示和選單的視覺化介面。例如,GNOME、KDE和XFCE。另一方面,命令列介面 (CLI) 允許透過文字命令與系統互動。

廣告