切換到Linux。 命令行

這是我們有關遷移到Linux的系列文章中的第四篇。 如果您錯過了以前的文章,我們將在Linux中為新用戶,文件和文件系統以及圖形環境介紹它們。 Linux無處不在。 它用於運行大多數Internet服務,例如Web服務器,電子郵件服務器等。 它還可以在您的手機,控制台等中使用。 因此,您可能有興趣嘗試Linux並了解有關Linux工作原理的更多信息。

在Linux上,命令行非常有用。 在Linux桌面上,雖然命令行是可選的,但您經常會看到人們打開了命令提示符窗口以及其他應用程序窗口。 在Internet服務器上以及當Linux在設備上運行時,命令行通常是直接與系統進行交互的唯一方法。 因此,最好至少了解一些命令行基礎知識。

在命令行(在Linux中通常稱為shell)上,一切都通過鍵入命令來完成。 您可以從命令行列出文件,移動文件,顯示文件內容,編輯文件等等,甚至顯示網頁。

導航

命令行具有當前工作目錄的概念(注意:文件夾和目錄是同義詞,在Linux中通常稱為目錄)。 除非指定了其他目錄路徑,否則默認情況下,許多命令將出現在此目錄中。 例如,在文件列表中鍵入ls將列出該工作目錄中的文件。 例如:

$ ls

Desktop Documents Downloads Music Pictures README.txt Videos

ls Documents命令將改為Documents目錄中的文件列表:

$ ls Documents

report.txt todo.txt AndreyEx.pdf

您可以通過鍵入pwd顯示當前工作目錄。 例如:

$ pwd

/home/student

您可以通過鍵入cd後跟要更改的目錄來更改當前目錄。 例如:

$ pwd

/home/student

$ cd Downloads

$ pwd

/home/student/Downloads

目錄路徑是用/(正斜杠)字符分隔的目錄列表。 路徑中的目錄具有假定的層次結構,例如,如果路徑為/ home / student,則它期望在頂層目錄中有一個名為home的目錄,而在該目錄home中則有一個名為Student的目錄。

目錄路徑是絕對路徑或相對路徑。 絕對目錄路徑以/開頭。

相對路徑以開頭。 (點)或..(點)。 在途中 。(點)表示當前目錄,而..(點點)表示當前目錄的上一級目錄。 例如,ls ../Documents表示在目錄中瀏覽到當前目錄之一,並顯示名為Documents的目錄的內容:

$ pwd

/home/student

$ ls

Desktop Documents Downloads Music Pictures README.txt Videos

$ cd Downloads

$ pwd

/home/student/Downloads

$ ls ../Documents

report.txt todo.txt AndreyEx.pdf

當您首次在Linux系統上打開命令提示符窗口時,當前的工作目錄將設置為您的主目錄,通常是:/ home / <此處的登錄名>。 您的主目錄用於登錄,您可以在其中存儲自己的文件。

$ HOME環境變量將擴展到您的主目錄的目錄路徑。 例如:

$ echo $HOME

/home/student

搜索

有時我們忘記了文件在哪裡,或者我們忘記了要查找的文件名。 Linux命令行上有幾個命令可用於幫助您查找文件和搜索文件內容。

找到第一個命令。 您可以使用find通過名稱或其他屬性查找文件和目錄。 例如,如果我們忘記了todo.txt文件的保存位置,則可以運行以下命令:

$ find $HOME -name todo.txt

/home/student/Documents/todo.txt

查找程序具有許多功能。 簡單的命令形式:

find <dкаталог для поиска> -name <имя файла>

如果上面的示例包含多個名為todo.txt的文件,它將向我們顯示找到該名稱的文件的所有位置。 find命令具有許多選項,可用於按類型(文件,目錄或其他),日期,比日期新的大小,大小等進行搜索。您可以輸入:

man find

獲得有關如何使用find命令的幫助。

您也可以使用grep命令在文件內部搜索特定內容。 例如:

grep "09/02/2018" todo.txt

將向我顯示日期為2018年9月2日的所有行。

得到幫助

Linux中有許多命令,在這裡很難描述所有命令。 因此,下一個最佳步驟是向您展示如何通過命令獲得幫助。

apropos命令可幫助您查找執行特定操作的命令。 也許您想知道所有與目錄一起使用的命令或獲取打開文件的列表,但是您不知道要運行哪個命令。 因此,您可以嘗試:

apropos directory

將提供命令列表,並在幫助文本中包含單詞“ directory”。 或者,您可以執行以下操作:

apropos "список открытых файлов"

它將顯示一個lsof命令,您可以使用該命令列出打開的文件。

如果您知道需要使用的命令,但是不知道要使用什麼選項來使其表現出所需的效果,則可以使用man命令,該命令不適用於手冊。 您將使用man <命令>,例如:

man ls

您可以自己嘗試一下。 他將提供幾頁信息。

man命令說明了所有選項以及您可以提供的命令選項,甚至經常給出示例。

許多命令通常還具有幫助選項(例如ls –help),該選項將提供有關如何使用該命令的信息。 手冊頁通常會更詳細,並且–help選項對於快速搜索很有用。

劇本

關於Linux命令行的最好的事情之一是您鍵入的命令可以被編寫腳本,並且可以一遍又一遍地運行。 可以將命令作為單獨的行放置在文件中。 您可以將#!/ Bin / sh放在文件的第一行,然後是命令。 然後,將文件標記為可執行文件後,就可以像運行自己的命令一樣運行腳本。 例如,

--- contents of get_todays_todos.sh ---

#!/bin/sh

todays_date=`date +"%m/%d/%y"`

grep $todays_date $HOME/todos.txt

腳本通過一組可重複的步驟幫助自動完成某些任務。 如果需要使用循環,條件,子例程等,腳本編寫也可能非常複雜。這裡沒有詳細說明的餘地,但是您可以在Internet上找到有關Linux bash腳本的更多信息。

熟悉Windows命令提示符嗎?

如果您熟悉Windows CMD或PowerShell程序,則應該熟悉命令行輸入命令。 但是,在Linux中,某些事情的工作方式有所不同,如果您不了解這些差異,可能會造成混淆。

首先,PATH環境變量在Linux和Windows上的工作方式不同。 在Windows上,當前目錄被視為路徑中的第一個目錄,儘管該目錄未在PATH中列出。 在Linux下,當前目錄不被認為在路徑中,並且顯然不適合該路徑。 在Linux中,在PATH環境變量中鍵入被認為是安全隱患。 在Linux上,要在當前目錄中運行程序,您需要在其前面加上./(這是文件在當前目錄中的相對路徑)的前綴。 這導致了許多CMD用戶。 例如:

./my_program

my_program

另外,在Windows上,路徑用a分隔; (分號)放在PATH環境變量中。 在Linux上的PATH中,目錄之間用:(冒號)分隔。 同樣在Linux上,相同路徑下的目錄用/(反斜杠)字符分隔,而在Windows下,相同路徑下的目錄用(反斜杠)字符分隔。 因此,典型的Windows PATH環境變量可能如下所示:

PATH="C:Program Files;C:Program FilesFirefox;"
while on Linux it might look like:
PATH="/usr/bin:/opt/mozilla/firefox"

還要注意,在Linux上用$擴展了環境變量,因此$ PATH擴展為PATH環境變量的內容,而在Windows上,則需要用百分比字符括起來(例如,%PATH%)。

在Linux上,通常將參數傳遞給使用選項前的-(破折號)字符的程序,而在Windows選項下,先前的參數與/(正斜杠)字符一起傳遞。 因此,在Linux上,您可以執行以下操作:

a_prog -h

a_prog /h

在Linux中,文件擴展名通常沒有任何意義。 例如,將myscript重命名為myscript.bat不會使其可執行。 除了將其設置為可執行文件之外,您需要設置可執行文件權限標誌。 下次,將更詳細地討論文件權限。

在Linux上,以文件名和目錄名開頭。 (點)它們是隱藏的。 因此,例如,如果提示您編輯文件.bashrc,而您在主目錄中看不到該文件,則可能是這種情況。 它是隱藏的。 在命令行上,可以對ls命令使用-a選項來查看隱藏的文件。 例如:

ls -a

在Linux中,常用命令也與普通Windows命令行命令不同。 下表顯示了CMD中使用的通用元素和Linux中使用的替代元素的映射。

請禁用您的廣告攔截器或將此網站列入白名單!

Sidebar