目錄
指南章節
命令行的概述
命令行與終端
打開命令行
命令行能做什麼?
命令行的優勢
它賦予您類似神的系統權限
它速度極快
它可以做其他語言無法做到的事情
使用應用程序代替命令行
接下來的步驟
首頁 web前端 css教學 深入查看命令行

深入查看命令行

Mar 15, 2025 am 11:26 AM

A Deep Look at the Command Line

我們已經了解了npm的含義,以及它在Web開發中的作用和地位。接下來,我們將花一些時間了解命令行,因為它是我們與npm交互的方式。

指南章節

  1. 本指南面向誰?
  2. “npm”到底是什麼意思?
  3. 命令行是什麼? (您當前位置!)
  4. Node是什麼?
  5. 包管理器是什麼?
  6. 如何安裝npm?
  7. 如何安裝npm包?
  8. npm命令是什麼?
  9. 如何安裝現有的npm項目?

命令行的概述

命令行是一個我們可以輸入(不出所料)命令的地方,這些命令將由我們的計算機直接執行。它速度極快,並且比大多數試圖為您處理命令行的應用程序具有更高的管理員權限。需要在系統上安裝某些東西,或者更新它?命令行可以做到這一點,更不用說卸載它們了。甚至服務器端語言也可以在命令行上運行,從而打開了一系列工具和開發技術。

正因為這些原因,命令行被認為是許多開發人員不可或缺的工具。即使你不是開發人員,你也很可能在某個時候遇到過命令行。也許您在打開MacOS中的終端應用程序時訪問過它。也許您使用了直接內置在代碼編輯器中的命令行——VS Code和許多其他代碼編輯器都帶有集成終端。也許您甚至遇到過像iTerm或Hyper這樣的第三方終端應用程序。

如果您使用過終端,那麼您到目前為止的大部分命令行使用可能只是鍵入(或粘貼)其他人給您的命令。這很好;這通常是我們完成事情的方式。

但是,讓我們花一點時間來理解命令行究竟是什麼,以及為什麼它被如此廣泛地使用。

命令行與終端

“命令行”和“終端”在技術上是兩種不同且截然不同的東西,但經常互換使用。您也可能聽到命令行被稱為“shell”,或者看到它縮寫為“CLI”,它是“命令行界面”的縮寫。

撇開那些吹毛求疵的區別不談,這些術語通常用於表示幾乎相同的意思。因此,為了盡可能簡單起見,從現在開始,我將互換使用它們。

打開命令行

無論您想稱它為什麼,您可能都將命令行視為那個看起來很嚇人的窗口,也許是黑色背景和白色(有時是綠色)文本,您可以在其中鍵入計算機似乎理解的命令,即使您不理解。

根據您在命令行上工作的位置和方式,您可能會注意到的一件不起眼的事情是美元符號字符$,它顯示在您可以開始鍵入的第一行上。您甚至可能在其他文章或文檔中看到過它。

通常約定用$字符作為命令的前綴——但這確實是一個令人困惑的約定。這是因為無需鍵入它。它實際上不是命令的一部分。相反,$表示一個要在終端中運行的命令。

所以這是關於使用命令行的第一個規則:如果您發現自己鍵入或複制包含$字符的指令,請知道無需在您的工作中包含它;終端已經包含它了。

 <code>## 无需复制$ $ npm run build</code>
登入後複製

您可能會看到其他字符開始一行,而不是$,例如>,_,甚至箭頭。同樣,無論是什麼,它幾乎肯定不是要直接鍵入或粘貼到命令行中的。文檔或其他教程是否應該包含一行的起始字符是一個完全不同的討論(Chris已經詳細討論過)。無論哪種方式,它都可能令人困惑,所以我希望確保這一點被指出來。

命令行能做什麼?

電影和電視節目經常將終端描繪成黑客在黑暗、僻靜的房間裡使用的快速打字工具。部分原因僅僅是因為它為可能不知道真正的終端與《黑客帝國》中級聯字母之間區別的人們提供了良好的娛樂效果。 (他們也不應該;我無法判斷電視節目中描繪的手術是否準確,並且完全滿意地將這種區別留給專業人士。)

但是命令行並不完全用於編寫代碼。正如“命令行”這個名稱所暗示的那樣,它用於編寫命令。我想你可以說所有編碼在某種程度上都是命令,所以這無疑是一條模糊的界限。但一般來說,終端中的代碼與代碼編輯器中的代碼編寫方式不同。相反,您使用終端來指揮您的計算機運行您希望它立即運行的命令。

命令行的優勢

您可能想知道開發人員為什麼首先喜歡在命令行中工作。您可能更喜歡一個不錯的應用程序或圖形用戶界面(簡稱GUI,有時發音為“gooey”),您可以在其中看到所有選項並直觀地找到最佳選項。這完全沒問題,我們將在本章中討論GUI並提供一些示例。

許多開發人員都有這種感覺,即使看起來不像。但是,在命令行中工作會帶來一些視覺應用程序並不總是容易複製的優勢。

它賦予您類似神的系統權限

命令行是計算機科學人員所說的“特權環境”。這聽起來可能像是指耶魯大學的兄弟會,但這僅僅意味著這是一個對您可以執行的操作幾乎沒有任何限制的地方;一個沒有護欄的地方。

這就是命令行令人畏懼的名聲的來源——無論您鍵入什麼命令,只要它有效,就會立即執行,並且通常是不可逆轉的。它能夠與操作系統試圖阻止您編輯的隱藏文件進行交互。您可以訪問系統中的任何內容。您甚至可以與遠程服務器上的類似核心文件進行交互——我們都知道那句諺語,偉大的責任伴隨著這種權力。

將命令行視為懶惰的保安可能會有所幫助。它假設您總是知道自己在做什麼,並讓您直接通過入口。這確實有點冒險,是的,但它也使它非常強大,並且是某些任務和項目的完美選擇。

它速度極快

命令行相對於典型應用程序的另一個優勢是:它速度很快

情況並非總是如此;命令行的速度往往被誇大,並且很大程度上取決於所討論的任務。但是當它確實更快時,它通常可以快許多倍。此外,命令行真正閃光的地方往往正是代碼項目最需要速度的地方,那就是下載和創建文件。

正如我們將在本指南的其他章節中看到的,npm 的一個關鍵部分是在您的機器上安裝東西(通常是在您正在處理的項目的指定文件夾中)。這就是命令行非常適合與包管理器(我們也將了解這意味著什麼)如npm一起工作的原因——它在計算機之間下載和傳輸文件——通常比使用瀏覽器執行此操作要快得多,得多

命令行使npm能夠以令人難以置信的速度生成大量文件。能夠運行單個命令以閃電般的速度同時安裝、更新或刪除這些文件的能力使終端成為許多工作的最快、最有效的工具。

它可以做其他語言無法做到的事情

在終端中工作如此有利的另一個原因是,您可能希望在項目中使用的許多工具都可以在您無需任何額外設置的情況下使用。

但讓我們稍微回顧一下。

當您聽到“服務器端語言”這個詞組時,您可能會想到PHP、Ruby或Java。也許是該領域的新成員,例如Rust或Go。您甚至可能已經知道Node屬於該列表,但如果不是,請原諒我稍微提前一點。

無論如何,當大多數人想到這些服務器端語言時,他們往往會想到一個等待請求然後響應它們的Web服務器。例如,WordPress處於空閒狀態,直到它收到啟動PHP的請求。當您發送一條新推文時,那就是對Twitter服務器上的一個請求,最終會到達Rails中的Ruby方法。

服務器端語言被認為比Web語言更強大。 HTML、CSS和JavaScript很棒,但它們無法處理文件系統、發送電子郵件、處理圖像、發出系統命令、與操作系統交互或運行計劃任務;以及應用程序或網站可能需要執行的許多其他事情。默認情況下,瀏覽器中的JavaScript甚至無法運行,除非有人正在瀏覽器中積極查看網頁。

通常認為服務器端語言是更強大的應用程序和軟件背後的強大引擎。並且,在許多情況下,這是準確的。但是,讓我們花一點時間來認識到,為了運行代碼,您的機器是一台服務器。不是Web服務器,儘管(它可以是一個,但這將很奇怪,而且可能不明智)。但無論如何都是一台服務器。

您可以安裝和運行我們提到的任何服務器端語言,也許您在某個時候(或至少嘗試過)已經這樣做了。您可能安裝了PHP以便您可以運行WordPress(儘管現在有更好的方法來做到這一點),或者您可能安裝了Ruby以便您可以遵循一些關於Rails的教程,僅舉幾例。

或者,也許不是。也許您以前從未安裝過整個編程語言。無論哪種方式,只需知道這些語言在服務器上運行,而不是在Web瀏覽器上運行——為此,您的機器就是一台服務器。

除此之外,您可能希望在開發工作流程中使用的許多工具——例如用於編譯CSS的Sass——實際上服務器端語言上運行。因此,使用命令行將您置於所有最強大的工具隨時可用的位置。

使用應用程序代替命令行

我們在本文前面簡要介紹了GUI。值得注意的是,某些命令行任務具有相應的GUI,這些GUI 使命令行的工作更直觀和編程化。

很好的例子包括GitHub Desktop(用於管理代碼存儲庫)和CodeKit(用於處理、捆綁和編譯資產),儘管VS Code中的源代碼管理選項卡也符合條件。即使這些GUI通常專注於特定任務,它們也允許您通過漂亮的視覺用戶界面在終端窗口之外的實際應用程序窗口中完成任務。

GUI作為一種選擇是很好的,儘管多年來我已經習慣了在命令行上工作,但我仍然希望有更多GUI來完成命令行使之成為可能的那些事情——為了我自己的方便和降低新開發人員的入門門檻。

但是,我相信沒有更多此類應用程序的原因是速度。構建命令行界面(CLI) 比構建完整的應用程序要快得多、更容易得多,通常要快幾個數量級。因此,如果我們想要今天就得到好的東西,命令行通常是我們需要去的地方。

接下來的步驟

我們剛剛花了一些時間熟悉命令行。即使命令行不是特定於npm的,它也是與npm一起工作的核心。它是我們告訴系統做什麼的界面,它賦予我們在系統或服務器級別上以極快的速度完成大量任務的驚人能力。作為包管理器,npm負責為Web項目安裝、更新和刪除文件(以及其他事情)。命令行是我們與npm通信以執行所有這些操作的方式。

接下來,我們將通過關注縮寫中的第一個字母來更詳細地分解npm是什麼:“n”代表Node。那是什麼,為什麼它在名稱中?這就是我們接下來關注的地方。

← 第2章第4章→

以上是深入查看命令行的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? 在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? Apr 05, 2025 pm 10:21 PM

在前端開發中如何實現類似Windows...

See all articles