Linux 終端介紹

介紹

這個教程是 Linux 基礎知識系列中的第一部分,涵蓋了入門使用終端、Linux 命令行和執行命令。如果你是 Linux 新手,你會想熟悉一下終端,因為它是與 Linux 伺服器互動的標準方式。

如果你想從這個教程中獲得最大的收益,你需要一台 Linux 伺服器來連接和使用。如果你還沒有,你可以通過以下鏈接快速建立一個: 如何創建 DigitalOcean Droplet。這個教程是為 Ubuntu 22.04 伺服器撰寫的,但一般原則適用於任何其他 Linux 發行版。

讓我們開始講解終端仿真器是什麼。

終端仿真器

A terminal emulator is a program that allows the use of the terminal in a graphical environment. As most people use an OS with a graphical user interface (GUI) for their day-to-day computer needs, the use of a terminal emulator is a necessity for most Linux server users.

這裡是一些免費的常用終端仿真器按操作系統分類:

  • Mac OS X:Terminal(默認)、iTerm 2
  • Windows:ConEmu、Windows Terminal、PuTTy
  • Linux:Gnome Terminal、Konsole、XTerm

每個終端仿真器都有自己的功能集。一般來說,你應該期望一個現代的終端仿真器支援標籤式視窗和文字突顯。

Shell

在Linux系統中,shell是一個命令行界面,解釋使用者的命令和腳本文件,並告訴伺服器的操作系統如何處理它們。有幾種廣泛使用的shell,例如Bourne-Again shellbash)和Z shellzsh)。每個shell都有自己的功能集和關於如何解釋命令的細微差別,但它們都具有輸入和輸出重定向、變量和條件測試等功能。

本教程是使用Bourne-Again shell(通常稱為bash)編寫的,這是大多數Linux發行版(包括Ubuntu、Fedora和RHEL)的默認shell。

命令提示符

當您首次登錄到一個伺服器時,通常會看到歡迎訊息(Message of the Day,MOTD),其中包含了一些雜項信息,如伺服器運行的Linux發行版版本。在MOTD之後,您會進入命令提示符或shell提示符,您可以在這裡向伺服器發送命令。

命令提示符所呈現的信息可以由用戶自定義,但以下是默認Ubuntu 20.04命令提示符的示例:

sammy@webapp:~$

以下是命令提示符組成的解析:

  • sammy:當前用戶的用戶名
  • webapp:伺服器的主機名
  • ~:當前目錄。在bash中,它是默認shell,~(或稱波浪號)是一個特殊字符,它會展開為當前用戶的主目錄路徑;在這種情況下,它代表/home/sammy
  • $:提示符號。這表示命令提示符的結束,之後將顯示用戶的鍵盤輸入

以下是一個示例,顯示了如果以root身份登錄並在/var/log目錄中時命令提示符的外觀:

root@webapp:/var/log#

請注意,結束命令提示字元的符號是 #,這是 root 的標準提示符號。在 Linux 中,root 使用者是 超級使用者 帳戶,是一個可以執行系統範圍管理功能的特殊使用者帳戶。它是一個無限制的使用者,具有在伺服器上執行任何任務的權限。

執行指令

可以通過指定可執行檔案的名稱在命令提示字元中發出指令,這可以是二進位程式或腳本。有許多標準的 Linux 指令和實用程式隨著作業系統安裝,允許您在檔案系統中導航、安裝軟體套件,以及配置系統和應用程式。

正在運行的指令實例稱為一個 程序。當命令在 前景 中執行時(這是默認的執行方式),使用者必須等待該程序完成,然後才能返回命令提示字元,此時他們可以繼續發出更多指令。

需要注意的是,在 Linux 中幾乎所有東西都區分大小寫,包括檔案和目錄名稱、指令、引數和選項。如果某些事情不按預期運行,請仔細檢查您的指令的拼寫和大小寫!

以下是幾個示例,涵蓋了執行指令的基本原則。

注意:如果您尚未连接到 Linux 服务器,现在是登录的好时机。如果您有 Linux 服务器但遇到连接问题,请按照此链接操作:如何使用 SSH 连接到您的 Droplet

无参数或选项

要在没有任何参数或选项的情况下运行命令,请键入命令的名称,然后按Enter键。

如果您像这样运行命令,它将表现出其默认行为,这因命令而异。例如,如果您运行cd命令而没有任何参数,您将返回到当前用户的主目录。ls命令将打印当前目录中的文件和目录列表。没有任何参数的ip命令将打印一条消息,向您显示如何使用ip命令。

尝试以无参数的形式运行ls命令,以列出当前目录中的文件和目录(可能没有):

  1. ls

带参数

許多命令接受參數參數,這些參數可以影響命令的行為。例如,使用cd命令的最常見方法是傳遞一個單一的參數,指定要切換到的目錄。例如,要切換到安裝了許多標準命令的/usr/bin目錄,您可以發出以下命令:

cd /usr/bin

cd組件是命令,第一個參數/usr/bin跟隨命令。請注意您的命令提示符的當前路徑已更新。

嘗試運行ls命令,以查看新當前目錄中的文件。

ls
Output
… grub-mkrescue sdiff zgrep grub-mkstandalone sed zipdetails grub-mount see zless grub-ntldr-img select-editor zmore grub-render-label semver znew grub-script-check sensible-browser

帶選項

大多數命令都接受選項,也稱為標誌開關,這些選項修改命令的行為。選項跟隨命令,由單個-字符表示,後面跟著一個或多個選項,這些選項由單個大寫或小寫字母表示。一些多字選項可以以--開頭,後跟標誌文本。

關於選項如何工作的示例,讓我們看看ls命令。以下是在使用ls時很方便的一些常見選項:

  • -l:打印“長列表”,其中包括額外的詳細信息,如權限、所有者、文件大小和時間戳
  • -a:列出目錄中的所有檔案,包括隱藏的檔案(以.開頭)

要在ls命令中使用-l標誌,請使用此命令:

  1. ls -l

請注意,清單包含了與以前相同的檔案,但每個檔案都有關於該檔案的附加信息。

如前所述,選項通常可以組合在一起。如果您想要將-l-a選項一起使用,您可以運行ls -l -a,或者只需結合它們,就像這樣的命令:

  1. ls -la

請注意,清單包含了隱藏的...目錄,因為有-a選項。

帶有選項和參數

當運行命令時,選項和參數幾乎總是可以組合在一起的。

例如,您可以通過運行此ls命令來檢查/home的內容,而不管您當前的目錄是什麼:

ls -la /home

ls是命令,-la是選項,而/home是指示要列出哪個檔案或目錄的參數。這應該會打印出/home目錄的詳細清單,該目錄應該包含服務器上所有普通用戶的家目錄。

環境變量

環境變量是用於改變命令和進程執行方式的命名值。當您首次登錄到伺服器時,將根據一些配置文件默認設置幾個環境變量。

查看所有環境變量

要查看設置為特定終端會話的所有環境變量,運行env命令:

env

可能會有很多輸出。尋找PATH條目:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

PATH環境變量是一個以冒號分隔的目錄列表,在發出命令時,shell將在其中查找可執行程序或腳本。例如,env命令位於/usr/bin,您可以在不指定完整路徑的情況下運行它,因為其路徑位於PATH環境變量中。

查看變量的值

環境變數的值可以通過在變數名稱前加上$來檢索。這將擴展引用的變數到其值。

例如,要打印出PATH變數的值,您可以使用echo命令:

echo $PATH

或者您可以使用HOME變數,它默認設置為您的用戶主目錄,像這樣切換到您的主目錄:

cd $HOME

如果您嘗試訪問未設置的環境變數,它將被擴展為空;一個空字符串。

設置環境變數

現在您知道如何查看您的環境變數,您應該學會如何設置它們。

要設置環境變數,您只需要從變量名稱開始,然後立即跟上一個=符號,然後立即跟上其所需的值:

VAR=value

請注意,如果您設置了一個已存在的變量,則原始值將被覆蓋。如果變量一開始不存在,它將被創建。

Bash包括一個名為export的命令,該命令將一個變量導出,以便它將被子進程繼承。這允許您使用引用了您當前會話中導出的環境變數的腳本。

您还可以在设置变量时引用现有变量。例如,如果您将应用程序安装到 /opt/app/bin,您可以使用以下命令将该目录添加到您的 PATH 环境变量的末尾:

export PATH=$PATH:/opt/app/bin

现在使用 echo 验证是否已将 /opt/app/bin 添加到您的 PATH 变量的末尾:

echo $PATH

请注意,以这种方式设置环境变量只会在当前会话中设置它们。这意味着如果您注销或以其他方式切换到另一个会话,您对环境所做的更改将不会被保留。有一种方法可以永久更改环境变量,但这将在以后的教程中介绍。

结论

现在您已经开始学习 Linux 终端(以及一些命令),您应该有一个扩展 Linux 命令知识的良好基础。阅读这个系列中的 下一个教程,学习如何导航、查看和编辑文件及其权限。

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal