在本文中,我說明如何使用內建終端機命令來提供某些命令的相關資訊,以及這些命令的執行方式。
我也會舉例說明程式。
命令列工具功能強大。工具會在圖形使用者介面 (GUI) 中單調乏味,並轉為需要幾秒鐘的工作。在 GUI 應用程式中,每列大型檔案移除最後四行將會是一段冗長的程式。但是,它可以在命令列上自動化。
在 Ubuntu Linux 中開啟終端機視窗最常見的方法是:
有許多命令與 Ubuntu Linux 中的終端機 Shell 相關聯。下列文章列出最常使用的元件,以及它們所影響的群組下方。
我們使用三個主要命令來提供使用各種終端機命令所需的所有資訊。
Man 命令會針對終端機中使用的任何命令顯示手冊。
大多數 Shell 命令都接受各種選項。若要取得命令和可用選項清單的相關資訊,請使用 man
手動命令的簡要 資訊。提供您想要找到更多關於其 引數的命令名稱。這是命令運作的命令 man
。
範例:如果您輸入命令 man who
,則會顯示下列輸出。
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
其中許多手冊的螢幕有好幾段長。使用 游標/ ARROW
鍵或 Page Up/Page Down 鍵流覽文字。空格鍵會顯示下一行文字。按 下 q 鍵會結束手動並返回 Shell。
我們可以在「Man」頁面中看到,我們可以使用此選項顯示有關使用中 -a
使用者會話的更多資訊。
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
它也可以讀取程式的說明檔案, man
命令也可以提供 Shells、功能和程式庫的相關資訊。
如果您不確定如何使用特定命令,請使用 -h
或 –help
交換器執行命令。您會看到使用資訊,以及您可以使用命令的選項清單。
範例:如果您想要瞭解如何使用 wget
命令、類型 wget –help
或 wget -h
。
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
這通常會將大量資訊列印到終端機。捲動整個程式可能不自在。若要更輕鬆地讀取輸出,您可以 pipe
透過 較少 的命令加以閱讀。可讓您使用鍵盤上的游標/方向鍵捲動。
範例: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
按 下 q 鍵即可在完成時關閉 較少 的公用程式。
若要尋找特定選項,您可以 pipe
透過 grep
命令輸出。(例如:使用下列命令搜尋含有該字的選項 proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
某些命令也會記錄在 info
系統內部。此處的資訊可補強命令所顯示的內容 man
。
範例:輸入下列輸出隨即顯示的命令 info ls,
。
[support@support]$" info ls
您現在可以檢視手冊, ls
其中包含命令的重要資訊。
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
您可以按下 空格鍵 或使用 游標/ ARROW
按鍵向下捲動頁面。
help
,請按 下 Hquit
,請按 下 Q
您幾乎可以在終端機中執行任何作業,您也可以從 GUI 執行。
如前所述,許多命令是先設計用於終端機中,接著又將 GUI 放在最上方。正因如此,有些 GUIs 可能會感到不自在,因為 大多數的 Linux 伺服器組建一開始都不打擾使用者。
從功能表開啟終端機的預設位置位於您的家庭資料夾中。稱為 ~
您可以由 .
操作員找到您目前的目錄。在目前資料夾選項上執行時,大多數的命令都會在命令、位置和檔案上運作,這些命令都區分大小寫。/home
和或 /Home
不一樣 /HOME
。
如果您的驅動程式標題很長,請使用 TAB 金鑰來完成檔案名。driver-128947232jaseu.sh
例如,輸入 dri
並輸入其餘的。如果您一開始 dri
沒有兩個名稱,請新增另一個字元以進行 driv
,然後再試一次。請確定自動完成與您想要看到的相符。
幾乎任何命令都可以使用 man
頁面、輸入 -h
或 --help
在寫入初始命令後完整讀取。此語法為其中一種 man command_name
, command_name -h
或 command_name --help
。
若要取得更多資訊,您可以使用資訊。您可以使用 info command_name
命令搜尋命令。對於大部分屬於 Coreutils 套件的命令。您也可以使用 info coreutils command_name
調用來搜尋 info
以進行更換的 command_name
命令。
幾乎任何命令都可以逐步顯示到底發生的情況。這通常是 -v
或 --verbose
。
您可以一次指定多個命令旗標至命令以取得更多資訊。請參閱以下 ls -al
範例。
命令名稱並不容易明顯,因為 UNIX 過去的空間限制已縮短,而這些慣例仍然停滯。
cd
- 將您搬回首頁,與您一樣 cd ~
cd..
- 將您帶回一個目錄。從頭開始 /home/user/Desktop
, cd..
讓您置入 /home/user
其中。此功能可擴展至 cd ../../
將您移回兩個目錄的功能 /home
。
cd foldername/
- 將您移至目前資料夾中的指定資料夾。
/
,這是一個重要的遺漏。如果我在 /home/user
場,我想前往 Desktop
。我輸入時必須 cd Desktop/
不含前 Desktop
啟 /
。輸入 /
之前,它會讓我們置入無法運作的檔案系統根。
cd /some/other/path
- 帶您前往指定的資料夾路徑。如果您的路徑正確,別忘了您可以使用密 TAB
鑰自動完成。
ls
- 列出目前資料夾中的所有檔案。
ls -l
- 提供較長的清單,包括擁有者、許可權、大小和修改日期。
ls -a
- 顯示隱藏的檔案和資料夾和正常清單。
ls -al
- 結合兩個選項,顯示隱藏的檔案和資料夾,並以長格式執行。
ls -h
- 以人類可讀格式 KB, MB, GB,
的檔案大小顯示檔案大小,而非位元組。它最常與旗標搭配 -l
使用。
您可以在您尚未輸入的目錄中檢視檔案。如果我在 /home/user/Desktop
其中,並且想要檢視檔案, /home/user
我可以將 ls ../
檔案列出一個目錄。
cp file /path/to/folder
- 將指定的檔案複製到指定的路徑。
cp -r folder /path/to/folder
- 將資料夾的內容重複複製到另一個資料夾。
cp *.extension /path/to/folder
- 複製將指定延伸名與新資料夾相符的檔案。若要複製所有 .doc 檔案,會變成 cp *.doc /path/to/folder
資料夾,且資料夾必須存在。
cp name* /path/to/folder
- 從指定的資料夾開始 name
複製所有檔案。若要從一開始 example
複製所有檔案,就會變成 cp example* /path/to/folder
資料夾,且資料夾必須已經存在。
其語法 mv
與上述範例類似,並 cp
可免除例如 #2。mv
不採取旗標, -r
因為移動資料夾也會移動其內容。語法並非完全符合所有實例,而是與上述範例相同。如需詳細資訊,請參閱您的主頁。
使用 rm
永久性移除檔案。它不使用垃圾桶。按下 金鑰之前,請謹慎使用,並確定您已完全刪除所要的內容 Enter
。如果您過度編譯刪除命令,就無法順利結束。
rm file
- 從電腦移除該特定檔案。
rm -r folder
- 從電腦卸下該特定資料夾。
rm -rf folder
- 強制從電腦卸下該特定資料夾。如果未正確使用,此命令可能會打亂您的組態。
您可以在 nano
終端機中編輯檔案,以執行快速且粗略的檔案,直至完整組態。它可以很有用,但會處理純文字檔和程式設計檔案,所以 Microsoft Word 檔之類的內容無法正確開啟。
如果 root 擁有檔案,一般使用者就無法編輯。nano
必須先使用前置詞 sudo
,才能儲存變更。否則會以唯讀模式開啟。
nano newfile.whatever
指定名稱,並開啟以進行編輯。
nano existing_file
- 開啟現有檔案以進行編輯。
從內部 nano
同步選取 CTRL+O
金鑰並變更名稱或按 Enter
下金鑰以保留相同名稱,以儲存檔案。這會儲存檔案。
一起使用 CTRL+X
按鍵結束 nano
。如果您有未儲存的變更,系統會詢問您是否要儲存變更。
mkdir folder_name
- 以指定名稱建立資料夾
mkdir -p /path/to/folder/name
- 視需要建立每個資料夾。若要建立資料夾 /home/user/1stfolder/2ndfolder
,且僅 /home/user
存在,請使用 mkdir -p
兩個目錄 1stfolder,
和 2ndfolder
。
ps aux
- 列出電腦上執行的所有詳細程式。這包括使用者、程式 ID PID,
和程式名稱。您可以使用此檢視程式清單,如有必要,您可以終止不必要的或停滯的程式。
kill PID
- PID 是引用違規程序的數位。您應該從類似 ps aux
命令取得 PID。如果程式拒絕終止,您也可以指定 kill -9 PID
哪一種程式應以任何方式終止程式。
killall program
- 終止 Killall
by name
所有例項 listed program
。如果有例如 3 個 Firefox 網際網路瀏覽器會話開啟, killall Firefox
請確實執行此功能,終止所有 Firefox 會話。kill
會採取您要終止並僅終止該故障之 Firefox 程式的指定 PID。
xkill
是按一下並終止 Windows 的 GUI 方式。輸入 xkill
應該會叫出區隔閂鎖圖示,而下一個按一下的視窗會被終止。
Pipes
顯示為另一種 straight bar,
稱為 |
金鑰。
它是 Windows 中很少使用的金鑰,但通常位於背板鍵上。
這些命令可用來連結命令。Pipes
接收一個命令的輸出,並在它們連結在一起時,將其路由作為第二個命令的輸入。
如有寫入磁片區,請參閱線上資源以取得更多相關 pipes
資訊及其使用。
>
overwrite
以新命令的輸出替換現有檔案內容。
>>
用於 append
為現有檔案提供資訊。這對於記錄動作很有用。
Example:
ps aux > processes.log
傳送輸出 ps aux
至檔案 processes.log
,以便在文字編輯器中檢視命令輸出,並覆寫檔案目前的內容。
tee
用於連同一個 |
命令輸出,並將其傳送到其他地方。如果發生您錯過的錯誤,這非常有用。這樣,螢幕上出現的任何內容也會擷取到檔案中。
範例:dmesg
| tee boot.txt
會執行顯示初始開機資訊的命令 dmesg
。傳 |
送輸出 dmesg
至 tee
終端機和記錄檔,以執行其工作 boot.txt
。
您要在目前目錄標示可執行檔後,在目前目錄中執行檔案嗎?操作 ./
員可以以一般使用者身分執行檔案,前提是您不需要根許可權。./
從字面意思 in the current directory
是,它無法在目前目錄以外的檔案上運作。
如果您想要執行不在目前目錄中的檔案,則必須將路徑傳遞至適當的執行程式。如果是 python 程式,它是 python /path/to/file
,如果是 Shell 檔案,則就是 sh /path/to/file
範例。還有其他的程式,但是這些是最常見的。
如果您想要執行具有 root 權利的檔案,因為收到此 operation not permitted?
檔案。您必須先將命令前 sudo
置。如同上述範例, sudo python /path/to/file
執行具有根許可權的腳本。
如果您要從終端機執行 GUI 程式,請輸入程式名稱 case sensitive!
並啟動。這會導致目前的終端機無法使用。在程式開啟時關閉終端機也會終止程式。更好的方式是設定程式背景,然後在終端機中輸入 program_name
文字 exit
以關閉程式並維持程式執行。
如果您要執行具有終端機根許可權的 GUI 程式,請使用與不 gksu
sudo
一起 gksudo
進行前置。使用 sudo
來啟動 GUI 應用程式是不良的習慣,應避免使用。
請 not
務必使用 sudo
,因為某些內容會讓人 Operation not permitted.
記住,您可以 destroy
使用根權在錯誤的地方執行命令,以執行電腦。確定您的檔案來自可輸送量的來源。
遺失自己的目錄?輸入 pwd
列印工作目錄。
想要計算您的磁碟空間嗎?df -h
可以提供您快速的影像。
想要計算資料夾或檔案的大小嗎?du -cksh target_name
確實如此。想要計算目前資料夾的大小嗎?du -cksh
。
想要標記可執行檔嗎?chmod +x filename
執行此功能。
您必須掛接 Iso 嗎?Linux 內建此功能。在某處建立目錄,例如 /home/user/isomount
發佈命令 mount -o loop /path/to/myisofile.iso /home/user/isomount
,內容會安裝在該資料夾內。
執行命令後,您必須重新執行,但您記不清它到底是怎麼執行的?輸入 history
終端機,並列印您的命令歷程記錄。想要清除您的歷程記錄嗎?history -c
抹除資訊。