cli-for-beginners

#完全新手的命令行 對於完全新手的命令行使用介紹 電腦很棒,因為使用滑鼠或觸控設備,我們可以做很多工作,鍵盤只需用來打字電子郵件、部落格文章或報告。 很久以前,這種情況並不存在。電腦只能通過鍵盤訪問,輸入奇怪和神秘的指令,稱為命令,這是真實存在的尤其是當電腦體積如整個房間般巨大時,但也適用於第一批價格合理的個人電腦,當你啟動時會跳出一個BASIC命令提示符。 如今,電腦界已將這種方式藏得好好的,消費者根本不會用到。 我們可以使用終端來實現這一點。 macOS自帶一個名為終端的應用程序。 微軟提供了一個名為Windows終端的應用程序。 而Linux用戶對其終端非常熟悉。 終端並不僅僅適用於程序員,對於每個專業電腦用戶來說也是必不可少的,因為它能為你提供無法在GUI(圖形用戶界面)中實現的功能。 哦,我提到了GUI。終端的首字母縮寫是CLI(命令行界面)。 并非只有一個終端。這是你的心願。相反,我們有很多不同的終端界面,稱為shell。 我們有Bash,ZSH,Fish Shell,CSH等等。但最流行的是Bash和ZSH。 Bash通常是默認的終端,直到最近才被更改為ZSH。 老實說,我最喜歡的shell是Fish Shell。我真的很喜歡它,因為它簡單、直接,帶有很好的默認設置,還有一個基於Web的配置。我沒有時間手動配置我的shell提示符和顏色,當某些東西安裝好可以直接用的時候,我會用上它。 終端也是你訪問服務器的方式。你可以在Amazon或DigitalOcean等地創建一個VPS服務器,然後使用SSH(連接到遠程shell的安全協議)來訪問它。 你在本地使用終端,但事實上你可能連接到地球的另一邊的服務器,這真是太酷了。除了一點延遲,如果連接有點滯後。 這是我的macOS終端: 通過輸入ls並按下回車,我可以列出我的主文件夾中的所有文件: 我可以使用cd命令將當前工作目錄更改為其他文件夾: 每次我不知道如何使用一個命令時,我都會輸入man <command>以獲取說明文檔: 這是一個說明文檔。盡管我認為說明文檔包含了太多的信息,比如ls命令的說明就佔用了14屏幕。 大多數時候,我需要時使用了這個網站,叫做tldr頁面:https://tldr.sh/。這是一個你可以安裝的命令,然後像這樣運行它:tldr <command> 它只給了我一些有用的選項和示例。 無論如何,我有點離題了。在輸入命令時,你可以使用左右箭頭來移動光標。 一些系統也允許你使用鼠標移動到行中的特定位置。例如,在macOS上,我可以使用選項-click在我想要的任何位置放置光標。 按上箭頭將顯示你上次輸入過的命令。當你打錯字時,你不需要重新輸入整個命令,這很方便。 如果輸入了一個找不到的命令,shell會告訴你: 我做了一些關於使用shell的教程: 如何使用macOS終端 Bash shell Unix Shells教程 Bash Shell腳本編程入門 如果你想了解更多,那裡有很多閱讀材料!

Commands to run in interactive sessions can go here

魚殼(Fish Shell):如何移除歡迎訊息 如何在魚殼(Fish Shell)中移除 “Welcome to fish, the friendly interactive shell” 歡迎訊息。 我遇到了這個「問題」。 每次打開 shell 時,我都會看到這三行文字。 這是魚殼(Fish Shell)的預設訊息。 我想要將它們移除。 以下是我所做的方法。 我打開了 ~/.config/fish/config.fish。 code ~/.config/fish/config.fish 文件內容如下: if status is-interactive # Commands to run in interactive sessions can go here end fish\_add\_path /opt/homebrew/opt/[[email protected]](/cdn-cgi/l/email-protection)/bin 我在最後加上了 set fish_greeting "": if status is-interactive # Commands to run in interactive sessions can go here end fish\_add\_path /opt/homebrew/opt/[[email protected]](/cdn-cgi/l/email-protection)/bin set fish\_greeting "" 現在我的提示符如下:

Node:接收命令行参数

如何在Node.js程序中从命令行接收参数 在调用Node.js应用程序时,您可以传递任意数量的参数 node app.js 参数可以是独立的,也可以由键和值组成。 例如: node app.js flavio 或者 node app.js name=flavio 这会影响您在Node代码中如何检索这个值。 要检索它,可以使用Node内置的process对象。 它暴露了一个argv属性,它是一个包含所有命令行参数的数组。 第一个参数是node命令的完整路径。 第二个元素是正在执行的文件的完整路径。 所有其他参数从第三个位置开始存在。 您可以使用循环遍历所有参数(包括节点路径和文件路径): process.argv.forEach((val, index) => { console.log(`${index}: ${val}`) }) 通过创建一个新数组来排除前两个参数,您可以仅获取其他参数: const args = process.argv.slice(2) 如果有一个没有索引名称的参数,像这样: node app.js flavio 您可以使用以下方式访问它: const args = process.argv.slice(2) args[0] 在这种情况下: node app.js name=flavio args[0]是name=flavio,您需要解析它。 最好的方法是使用minimist库,它有助于处理参数: const args = require('minimist')(process.argv.slice(2)) args['name'] // flavio

一個關於Vim的簡短指南

vim 是一款非常受歡迎的文件編輯器,尤其在程序員中間。它正在積極開發和頻繁更新,並且擁有龐大的社區。甚至有一個Vim研討會! 在現代系統中,vi 只是指向 vim 的別名,這意味著 vi 是 vim 的增強版。 通過在命令行上運行 vi 命令來啟動它。 您可以在啟動時指定要編輯的特定文件名: vi test.txt 您需要知道Vim有2個主要模式: 命令(或正常)模式 插入模式 當您啟動編輯器時,您處於命令模式。您無法像GUI編輯器那樣直接輸入文本。您必須進入插入模式。您可以通過按下 i 鍵來進入插入模式。一旦這樣做,底部編輯器出現 -- INSERT -- 字樣: 現在您可以開始輸入並將螢幕填滿文件內容: 您可以使用箭頭鍵移動文件,或使用 h - j - k - l 鍵。 h-l 是左右,j-k 是下上。 編輯結束後,您可以按 esc 鍵退出插入模式,並返回命令模式。 此時,您可以瀏覽文件,但無法向其中添加內容(請小心按下的按鍵,因為它們可能是命令)。 現在您可能想要做的一件事是保存文件。您可以按 :(冒號)然後按 w 來保存。 您可以按 : 然後按 w 和 q 來保存並退出::wq 您可以按 : 然後按 q 和 ! 來不保存退出::q! 要撤消並編輯,進入命令模式並按 u。您可以通過按 ctrl-r 來重做(取消撤消)。 這些是使用Vim的基礎知識。從這裡開始,開始了一個我們無法在這個簡介中深入探討的兔子洞。 我只會提及那些讓您開始使用Vim進行編輯的命令: 按下 x 鍵刪除當前高亮顯示的字符 按 A 進入當前選中行的末尾 按 0 轉到行的開頭 轉到單詞的第一個字符,按 d 再加上 w 刪除該詞。如果您使用 e 而不是 w,則保留下一個詞前面的空格 在 d 和 w 之間使用一個數字來刪除多個詞,例如使用 d3w 刪除3個詞向前 按下 d 後按 d 來刪除整行。按下 d 後按 $ 來刪除從光標所在位置到行的結尾的整行 要了解更多有關Vim的信息,我推薦閱讀Vim FAQ ,尤其是運行 vimtutor 命令,這應該已經安裝在您的系統上,並且將大大幫助您開始探索 vim。

如何在 C 中訪問命令行參數

學習如何在 C 中訪問命令行參數 在你的 C 程式中,當命令啟動時,你可能需要從命令行接受參數。 對於簡單的需求,你只需要將 main() 函数的簽名從 int main(void) 修改為 int main(int argc, char *argv[]) argc 是一個整數,它包含了命令行中提供的參數數量。 argv 是一個字符串數組。 當程式啟動時,我們可以通過這兩個參數獲取傳入的參數。 注意,argv 數組中始終至少有一個項目:程式的名稱 讓我們以運行 C 編譯器來執行我們的程式為例: gcc hello.c -o hello 如果這是我們的程式,則 argc 會為 4,argv 則是一個包含以下項目的數組: gcc hello.c -o hello 讓我們編寫一個打印接收到的參數的程式: #include <stdio.h> int main(int argc, char *argv[]) { for (int i = 0; i < argc; i++) { printf("%s\n", argv[i]); } } 如果我們的程式名稱是 hello,並且像這樣運行它:./hello,則會得到以下輸出: ./hello 如果我們傳入一些隨機的參數,例如:./hello a b c,則會在終端輸出以下內容:...

如何從 macOS 命令行播放聲音

使用內建的 afplay 命令: afplay file.mp3 這裡還有一些來自 tldr.sh 的其他選項: afplay 命令行音頻播放器。 更多信息:https://ss64.com/osx/afplay.html。 - 播放聲音文件(等待播放結束): afplay path/to/file - 以2倍速播放聲音文件(播放速度): afplay --rate 2 path/to/file - 以一半的速度播放聲音文件: afplay --rate 0.5 path/to/file - 播放聲音文件的前 N 秒: afplay --time seconds path/to/file 你還可以使用 say 命令讓你的 Mac 說話: say "test" say -v Fred "Isn't it nice to have a computer that will talk to you?"

如何從 shell 中刪除「Last login..」訊息

每次打開我的 shell 都會出現這樣一行訊息: 對我來說是一個沒有用的資訊。 我想要把它刪除。 我執行了以下指令以刪除「Last login: ….」的資訊: touch ~/.hushlogin 完成! 這個方法適用於 macOS 和 Linux。

如何移除所有的 node_modules 資料夾內容

通過刪除舊的 Node 模塊節省空間 我需要將一個充滿舊項目的資料夾轉移到一台新的電腦上,並在壓縮該資料夾後,我發現它的大小為8GB。對於僅包含文本文件的某些程式項目來說,這有點太大了。 這些都是 JavaScript 項目,並且每個項目都包含一個名為 node_modules 的資料夾。 這些資料夾完全是不必要的,因為我始終可以在項目中運行 npm install 重新生成它們,而且大部分我在那個資料夾中的項目都是我永遠不會再使用的舊東西。 所以我決定刪除所有的 node_modules 資料夾,但是他們太多了。所以我進入了父資料夾,我將其稱為 dev,然後在 ZSH 終端中(這是 macOS Catalina 默認的 shell)運行了以下命令: find . -name "node_modules" -type d -prune -exec rm -rf '{}' + 這將我的資料夾大小從8GB減少到了2GB。對於一行命令來說,效果還不錯。 我在這篇博客上找到了這個命令,你可以在那裡找到更多對命令細節的解釋。

如何設置 Git SSH 金鑰

在使用命令行執行 Git 時,最常用的身份驗證方式是使用 SSH 金鑰。了解如何設置它們。 在使用命令行執行 Git 時,最常用的身份驗證方式是使用 SSH 金鑰。 大多數基於圖形界面的客戶端(如 GitHub Desktop)會幫你處理這個問題,但有時你需要使用命令行,所以設置好 SSH 金鑰非常有用。 此外,有時您需要一個 SSH 金鑰來執行一些有用的操作,例如在遠程服務器上拉取存儲庫。 您的電腦上的金鑰 SSH 金鑰存儲在 ~/.ssh 文件夾中。 您可以在其中擁有多個金鑰,因為 SSH 金鑰用於除了 Git 之外的其他事情。 您可以通過輸入以下命令列出所有 SSH 金鑰: ls -al ~/.ssh 如果您有現有的金鑰,您會注意到它們是成對存在的,一個文件和另一個以 .pub 結尾的名稱相似的文件: .pub 文件包含公鑰,而另一個文件包含私鑰,私鑰絕不應在任何地方共享。 您絕不能共享私鑰。如果您丟失私鑰,您將不得不重新生成新的私鑰/公鑰對,因為沒有私鑰部分身份驗證將無法成功完成。 生成新金鑰 您可以使用命令 ssh-keygen 生成新的 SSH 金鑰,該命令在所有 macOS、Linux 和具有 Linux 子系統或Git for Windows 包的現代 Windows 電腦上都可用。 下面是您使用的命令: ssh-keygen -t rsa -b 4096 -C "[[email protected]](/cdn-cgi/l/email-protection)" 最後一部分,在這個例子中填寫了一個電子郵件地址,這是一個註釋。您可以輸入任何您想要的電子郵件,它不必是您的 GitHub 帳戶,甚至可以是一個隨機字符串。如果存在歧義,了解是誰生成了金鑰可能是有用的。 密鑰生成程序會問您希望將密鑰保存在哪裡。如果這是第一個金鑰,建議使用 id_rsa 作為文件名,但最好選擇一個能讓您記住所生成的服務的名稱,比如 github_rsa。...

如何退出 Vim

讓我幫助您最終退出 Vim! 想要保存更改並退出嗎?按下 esc 鍵,然後輸入 :wq,意思是 write(寫入)並 quit(退出)。 想要在不保存更改的情況下退出嗎?按下 esc 鍵,然後輸入 :q!。 不要覺得糟糕,因為不知道如何退出 Vim 的人並不少,如果你在 Twitter 上搜索一下,你會看到各種梗和有趣的推文: “如何生成隨機字符串?把一個大一的電腦科學學生放在 Vim 中,然後要求他們保存並退出。” “只有简单地退出 Vim 是不可能的。” “沒有人知道如何退出 Vim。” “我已經使用 Vim 很長時間了,主要是因為我搞不清楚如何退出。” 在 Stack Overflow 上,這似乎是一個最受歡迎的問題(如果不是 最受歡迎的問題)。 別誤解我的意思。我喜歡 Vim。我不是愛它,它只是一個工具。我通常使用 VS Code 進行日常寫作和編程,但有時也使用 Vim。