Help:Reading (正體中文)

From ArchWiki
翻譯狀態:本文章是 Help:Reading 的翻譯版本。最近一次的翻譯時間:2015-10-20。點擊本連結查看英文頁面之後的變更。

由於Archwiki的絕大部分內容包含指令使用的指示,GNU/Linux新手必須釐清它們的使用方式。 因此撰寫這則簡單扼要的條目,其目的是避免理解文章的困擾,以及避免一再地重複這些提醒新手的內容。

一般使用者或root使用者

有些指令會以下列方式呈現:

# mkinitcpio -p linux

有些則有不同的提示字元:

$ makepkg -s

井字號(#)代表的是該指令應該以root使用者身份執行;相反地,錢字符號($)則代表該行應該以一般使用者身份執行。

註記: 以井字號#開頭的指令應該要在root shell裡被執行,這可以使用sudo -i指令來達成。從一個沒有權限的普通shell環境執行sudo command而非採用在root shell裡執行command的方式在大部分情況下亦有效,然而仍然有一些值得注意的例外,是必須在root shell環境之下執行的,例如 redirection以及substitution。也可以參考sudo條目。

有個值得注意的例外:

# This alias makes ls colorize the listing(譯:這個別名令ls輸出彩色內容)
alias ls='ls --color=auto'

在這個例子中,井字符號之後的內容並非代表要作為一個指令執行,而是應該代表在檔案內編輯的實際情況。在這個例子裡面,井字號代表的是一個註解 。註解是解釋用的文字,而非具有程式功能的內容,只是恰好Bash script裡的註解符號與root的命令提示字元相等。進一步檢視這個用法,我們可以發現井字號之後的內容包含著英文的大寫字元。通常而言,Unix的指令不會有大寫字元,而且它們通常都是縮寫的英文字詞。例如代表複製的Copy指令為cp。

此外,許多文章也會直接提醒讀者如下:

將下列內容附加到~/path/to/file

# This alias makes ls colorize the listing
alias ls='ls --color=auto

Append(附加)、add(增加)、create(創造)、edit(編輯)

當指示說明提到以上動作時,請將之理解為「使用文字編輯器修改相關設定檔案」的動作。 以nano編輯器為例,可以使用下列方式新創不存在的檔案或是修改既有的檔案。

# nano /etc/bash.bashrc

也可以使用重新導向輸出的方式新創或是覆寫檔案:

# echo myhostname > /etc/hostname

或是使用類似的手法,附加字串到檔案的最後端:

# echo "[custom-repo]" >> /etc/pacman.conf

Source

有些應用程式(如command-line shell(命令列介面))使用script作為設定檔案,當這些設定檔案被更動之後,它們就應該要被source,才能夠引用改變之後的功能。以bash的情況為例,你可以執行以下指令(或是將source替換為.):

$ source ~/.bashrc

這個wiki的一些文章會建議使用者修改這些設定檔,然而通常不會特別提醒你source那些檔案。只有在一些情況下,那些頁面會指引你來到這個片段閱讀上述的說明。

安裝套件

當一則wiki條目要求你使用正常方式安裝某些套件,它並不會給予非常細節的安裝流程,而是提及應該要被安裝的套件名稱,或許會提供連結到這篇文章。於此介紹這種情況下,對應於不同類型的套件的通用安裝流程。

官方套件

對於official repositories(官方套件庫)裡的軟體,你可能會看到這樣的指示:

安裝foobar套件.

這表示你應該要執行這個指令:

# pacman -S foobar

pacman條目包含詳細的說明,介紹如何使用這個工具流暢地在Arch系統底下管理套件。

Arch使用者套件庫

對於Arch User Repository(Arch使用者套件庫,簡稱AUR)裡的軟體,你可能會看到這樣的指示:

安裝foobarAUR套件.

這表示一般而言你應該連結到foobarAUR所在的頁面,下載PKGBUILD的打包檔案、解開它、檢驗內容、然後在同一個目錄下執行:

$ makepkg -sri

Arch User Repository條目包含詳細的說明與練習,關於如何使用AUR套件。

控制systemd元件

當一篇文章要求你開始啟用停止重啟某些systemd元件(或者說某些服務)時,它通常不會提供詳細的步驟,而是給出類似下列指令:

Start example.service.

這表示你應該要執行以下指令:

# systemctl start example.service

上面的Start標籤連結至systemd條目。該條目包含所有流暢地使用systemd功能的細節。

全系統設定/單一用戶設定

使用者必須謹慎處理GNU/Linux系統設定檔的差異,其中一種是全系統的設定,它的存在會影響所有的使用者。全系範圍的設定檔通常位在/etc資料夾底下,所以需要root權限修改它們。例如,若要修改Bash的設定以對所有的使用者生效,就必須修改/etc/bash.bashrc檔案。

另一方面,單一用戶設定僅僅影響該名使用者。俗稱Dotfiles的檔案就是做這類用途的,因為前方附點的檔案通常位在某特定使用者的家目錄下。舉例而言,~/.bashrc檔案就是一個單一用戶設定檔。所有用戶都可以保有自己的設定,諸如alias(別名)的設定、函數的設定、甚至是命令列風格的設定等,都可以在不影響其他用戶的情況下依照自己的偏好設定。

註記: ~/$HOME是使用者家目錄的捷徑,通常是位在/home/username/

常用的shell檔案

在Bash以及其他相容於Bourne Shell的環境(如Zsh)中,shell環境會依照當前的shell狀態為login shell或是interactive shell決定source哪些設定檔。詳細內容請參照Bash#Configuration files以及Zsh#Startup/Shutdown files

虛擬變數(Pseudo-variables)於程式碼中的例子

有些程式碼片段可能會包含虛擬變數,顧名思義,它們並不是程式中真正的變數。它們只是一個暫存空間,而必需在該程式被真正執行或是解析之前被手動替換成系統相關的設定檔物件。與Help:Style/Formatting and punctuation條目中描述的相同,虛擬變數應該要具有斜體的格式。舉例而言:

  • 針對ip link指令輸出之網路介面,Enable(啟用) dhcpcd@interface_name.service

此例而言,interface_name就是systemd樣板元件中的一個虛擬變數。以@符號展示的所有的systemd樣板元件都需要一些系統相關的參數,詳細說明請參閱Systemd#Using units

  • dd if=data_source of=/dev/sd"X" bs=sector_size count=sector_number seek=partitions_start_sector指令可以使用root身份執行,其效果將會如參數指定的方式複寫硬碟分割。此例中的虛擬變數正是sd"X"。關於這個指令的細節與出處可以參考Securely wipe disk#Calculate blocks to wipe manually

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Mention other examples, ideally from other device categories (e.g. storage), with links to background articles. The examples are meant to avoid duplicating existing explanations in other articles. (Discuss in Help talk:Reading (正體中文))

將虛擬變數直接張貼在設定檔中將可能造成使用這些設定檔的程式無法正常執行。

省略符號

大部分的情況下,省略符號(...)不是實際檔案內容或是程式輸出的一部分,只是用來簡略描述的表示方法。 比方像是HOOKS="... encrypt ... filesystems ..."的用法,或者是:

/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
    ...
    Option      "CircularScrolling"          "on"
    Option      "CircScrollTrigger"          "0"
    ...
EndSection

然而請注意在某些例子裡,省略符號本身可能代表某些程式碼的文法符號,小心留意就能夠從內文判斷這類情況。