免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
為什么我們?nèi)匀皇褂妹钚薪涌诠ぞ撸?/div>

在當今的網(wǎng)絡(luò)世界中,各大互聯(lián)網(wǎng)公司仍然在爭搶流量,應用程序制造商更喜歡爭奪移動應用的用戶,相反桌面應用程序越來越失去競爭力。此外,隨著網(wǎng)絡(luò)應用成為越來越多用戶的選擇,桌面應用程序往往也不是網(wǎng)絡(luò)應用的對手。

這是否意味著我們將很快放棄pc作為一個平臺?不,當然不是,我不會這么說的。此外,雖然GUI應用程序最近發(fā)展似乎一直在停滯,但也有一部分桌面應用程序在繼續(xù)增長。

你看過有黑客的電影嗎?通常情況下,這些人被展示在顯示器前工作,旁邊就是某種終端(通常有黑暗的房間背景和明亮的顯示器前端)。這個終端往往會充斥著傳遞的字符,這些字符顯然對于屏幕前的黑客有重要的意義。

黑客在行動中的這種表現(xiàn)經(jīng)常被專業(yè)開發(fā)人員嘲笑,甚至有一些程序只是為了好玩而模擬各種“黑客”效果。

然而,在現(xiàn)實世界中,命令行工具并不用于娛樂。

為什么我們?nèi)匀皇褂妹钚薪涌诠ぞ撸?/span>

本文主要討論使用命令行接口(命令行接口,CLI)工具的實用方面。了解CLI命令和使用高質(zhì)量的工具可以使您的開發(fā)更有效率,還可以打開各種自動化方法的大門,這些方法與GUI應用程序相比,在文本界面上更加實用。

在GUI中,您可以更好地執(zhí)行重復任務,就算您的多次單擊速度很快幾乎是都可以聽成單個長的單擊。問題是,這仍然不能超過專門腳本的效率。更重要的是,手動執(zhí)行相同的操作既增加了認知負荷,也增加了人為錯誤的可能性。和往常一樣,我們依靠電腦來處理人類可能覺得無聊、重復或極大數(shù)量的任務。

值得知道的是,終端工具可以提供多種類型的接口。還有一些非交互的例子,比如ls,它只接受參數(shù)并提供輸出。包管理器中最常見的是交互或半交互接口。(“確定要從未經(jīng)驗證的源繼續(xù)安裝嗎?”)然后是文本用戶界面(TUI),它們是為適應終端的限制而設(shè)計的交互式GUI應用程序??赡茏钣忻氖荕idnight Commander (MC),一個非常流行的(在90年代)Norton Commander.

基本命令行工具

如果你想成為一個擅長使用控制臺的開發(fā)者,你需要給自己最低限度準備一個的命令行開發(fā)工具-這是最基本的必需品。你最肯定不能離開的東西是框架(便于制表符完成功能)和文本編輯器.

現(xiàn)在,我要提一下Unix哲學,這通常是工具的作者做出設(shè)計決策的基礎(chǔ),不管是有意識的還是無意的。其中一些要點可歸納如下:

把一切都當作文件。

只做一件事,但要做好。

從標準輸入讀取,寫入標準輸出,并將錯誤傳遞到標準錯誤流。

成功后,返回代碼0。非零值意味著一個錯誤(可以由確切的返回代碼指定)。

允許命令鏈接和腳本。

編譯工具

打開終端時看到的第一件事是編譯工具。這是使用戶和機器之間的交互成為可能的部分。它解釋命令,將它們拆分為程序名和參數(shù),并執(zhí)行拋出的所有shell命令。

歷史上,有很多種不同的shell。其中最流行的是CSH(C Shell)和Bourne Shell的各種實現(xiàn)(通常簡單地稱為什)。Bourne Shell被擴展到Korn shell,這也獲得了一些吸引力,并仍被其愛好者使用。CSH目前是一些BSD系統(tǒng)上的默認shell,而幾乎所有其他類似UNIX的操作系統(tǒng)都喜歡某種Bourne Shell。Linux發(fā)行版傾向于支持巴什而MacOSX茲什作為默認選擇。

還有Powershell,但它們遠沒有那么受歡迎,除了微軟。

Powershell在Windows系統(tǒng)上,Powershell的靈感部分來自交互式UNIX shell(如zsh),部分來自.NET運行時。它不把所有東西當作文本來處理,這是UNIX世界中常見的概念,它允許對數(shù)據(jù)進行面向?qū)ο蟮牟僮鳌?/span>

盡管MicrosoftPowerShell在Windows領(lǐng)域非常流行,但許多起源于UNIX的程序(最著名的是Git、AutoTools或make)傾向于使用Bourne Shell的一些變體。正因為如此,像這樣的項目msys (與Git for Windows捆綁)Cygwin,或者微軟最近的WSL。如果你想在Windows上有類似操作Linux的感覺,MSys是這里最好的選擇。如果您想要一個功能齊全的Linux環(huán)境能夠運行標準的Linux二進制文件,那么WSL就是最好的選擇。對UNIXAPI,但編譯為Windows可執(zhí)行文件(只有當您真正知道為什么需要它時才使用它)-Cygwin是最好的選擇。

編輯

一旦你熟悉了你的shell,你就會想學到一些有用的技能。由于大多數(shù)編碼工作都圍繞著編寫文本(代碼、README、提交消息)進行,所以對交互式文本編輯器有很好的了解是必不可少的。有很多可供選擇的地方,而且由于編輯器是任何開發(fā)人員最必要的工具之一,所以對于哪個編輯器最好也可能有很多爭論。

最流行文本編輯器可分為兩大類:簡單文本編輯器和可編程文本編輯器.

兩者都可以很好地編寫代碼,但是,正如其名稱所示,可編程的編輯器提供了塑造和自定義編輯器的能力,以完全滿足您的需要。然而,這是有代價的,因為他們也往往有一個更陡峭的學習曲線,可能需要更多的時間來熟悉。

Basic text editors

在簡單的文本編輯器中,GNU Nano是最普遍的。實際上,它與pico 編輯器一模一樣,因此,這倆個中任何一個都可以作為選擇。另一種,更現(xiàn)代的,替代兩者的方法是微編輯。如果你同時想要簡單和可擴展的東西,這是一個很好的選擇。

可編程文本編輯器

許多開發(fā)人員依賴于來自不同的可編程編輯器,例如Vim 和GNU Emacs。兩個編輯器都可以在控制臺或GUI模式下運行,并且都會對其他軟件中的鍵綁定產(chǎn)生影響。它們不僅提供了API,而且還提供了內(nèi)置的實際編程語言。Emacs主要關(guān)注LISP,Vim使用自己的VIML,但它也提供與其他流行腳本語言(如Lua、Perl、Python或Ruby)的接口。最近使用Vim的方法稱為新維姆,也值得一提,因為它正開始得到一個認真的追隨者。

這可能有點令人困惑,但也有一個被稱為它是Vim的前身(順便說一句,它代表“Vi Improded”)。它比Vim簡單得多,但是如果您有足夠的信心用Vim編寫,那么如果您發(fā)現(xiàn)自己需要使用vim,就不應該把它看作是一個挑戰(zhàn)。

由于pico/GNU Nano和vi/Vim通常都是預先安裝在各種系統(tǒng)上的,因此至少掌握它們的基本知識是個好主意(對于初學者來說,Vim是一個眾所周知的難題)。這樣,如果您需要在遠程機器上編輯某些內(nèi)容,那么無論哪個編輯器已經(jīng)存在,您都將做好準備。在你的私人設(shè)備上,可以隨意使用任何你覺得最舒服的編輯器。

默認系統(tǒng)編輯器

最后要注意的一點是,您的系統(tǒng)可能有所謂的默認編輯器。

這個$EDITOR環(huán)境變量指向默認編輯器,在與Bourne兼容的shell(sh、bash、ksh、zsh)中,您可以通過輸入查看它。echo $EDITOR。如果該值與您的個人選擇不同,您可以通過添加導出來自己設(shè)置它。EDITOR=my-awesome-editor到shell的運行時配置(~/.profile, ~./bashrc, ~/.zshrc等等)。

其他程序(如版本控制系統(tǒng)和郵件客戶端)將在需要較長文本輸入時使用此編輯器。

復用器

一旦您開始在CLI中做一些事情,您就會遇到這樣的限制:在任何給定的時間只能打開一個應用程序。在編寫代碼時,您可能希望編輯代碼、執(zhí)行代碼、修復錯誤并再次執(zhí)行。在查找bug時,您可能希望列出日志,并查看向服務器發(fā)送請求時記錄了哪些日志。通常,這要么意味著在兩個應用程序之間不斷切換,要么意味著打開多個終端窗口。

這是終端復用器可以幫助你的地方。當談到多路復用器時,有些人立刻認為將要提到的是GNU Screen。這是第一個廣泛使用的同類工具,今天仍然非常流行(通常是默認安裝)。。

這兩個工具允許您在給定的終端會話中打開多個窗口,并在這些會話之間自由切換。它們允許您將窗口拆分為窗格,這有助于同時運行多個應用程序并實時觀察它們的輸出(不需要切換任何窗口)。而且,它們在客戶機-服務器模式下工作,這意味著您可以在任何給定的時間分離它們,然后再回來繼續(xù)您停止的工作。這最后一個特性導致了GNU Screen的流行,

對于大多數(shù)用戶來說,GNU Screen或tmux對您來說應該是很好的,但是如果出于某種原因,您會認為它們在占用太多運行速度,也有更輕的替代方案。有atach和 abduco。他們的任務范圍有限,但能夠很好地履行各自的職責。

包管理器

此時,您可能會開始考慮將上述所有軟件安裝到您的計算機上。一個問題是,每個工具都有不同的安裝說明。有時,您需要自己下載源代碼并編譯它們,有時您得到了自包含的二進制文件,有時您得到了所謂的二進制包,這通常意味著一個可執(zhí)行文件與一些元數(shù)據(jù)一起壓縮。

為了簡化軟件安裝過程,操作系統(tǒng)創(chuàng)建者提出了包管理的概念。簡單地說,包管理器就像CLI和桌面應用程序的應用程序商店。它比實際的應用程序商店早了幾十年。問題是幾乎每個系統(tǒng)都有自己的包管理器。Debian、Ubuntu和派生的GNU/Linux發(fā)行版使用APT,基于RedHat的發(fā)行版更喜歡YUM或DNF,其他Linux發(fā)行版有更奇特的安裝軟件的方法,不同的BSD克隆也是如此。除了內(nèi)置包管理器外,還有用戶安裝的包管理器,如Chocolatey 對于MS Windows和用于MacOSX/MacOS。當您想要編寫關(guān)于如何安裝程序的說明時,您可能最需要為每個系統(tǒng)編寫用例。似乎有點太麻煩了,不是嗎?

幸運的是,最后一個提到的系統(tǒng)-Homebrem-可能是最輕量級的,這要歸功于Linuxbrew的一個端口到GNU/Linux系統(tǒng)。有趣的是,如果您想在MicrosoftWindows上有類似的用戶體驗,它甚至可以在WSL上工作。不過,請記住,WSL并不是官方支持的。

那么,除了輕量級之外, Homebrew還能提供什么呢?首先,它不會干擾系統(tǒng)包,所以您安裝的所有東西都駐留在操作系統(tǒng)的一個單獨的層上。此外,安裝軟件包通常不需要根權(quán)限。因此,您可以擁有穩(wěn)定和經(jīng)過測試的系統(tǒng)包,但同時檢查它們的更新版本而不犧牲系統(tǒng)的穩(wěn)定性。

如果您想測試編輯器,我在前面提到過,您需要在一個系統(tǒng)上運行HomeBREW或LinuxBREW,只需運行以下命令:

brew install emacs micro nano vim neovim.

優(yōu)點

我們已經(jīng)討論過的,無疑對工作是有用的。但也有一些應用,雖然沒有必要,但仍能給日常生活帶來舒適。你可能不需要他們,但認識他們總是值得的。

交互式濾波器

搜索命令歷史記錄可能很乏味。bash和zsh都具有Ctrl+R鍵綁定功能,但每次只顯示一個替換。更重要的是,您需要輸入之前使用的確切文本。由于這是一個非常常見的操作,一旦您開始使用命令行,它看起來是一個改進的好地方。

交互式過濾器,如fzy,percol,peco或fzf幫助您過濾長行文本。這可以是上述命令歷史記錄、項目目錄中的所有代碼行,也可以是由find .。這里的一般想法是首先向您展示所有可用的行,然后依靠模糊查找算法過濾掉所有不匹配的內(nèi)容。

例如,將Ctrl+R綁定到fzf將顯示最新命令的列表,您可以使用箭頭上下導航,也可以鍵入git只顯示具有Git特性的命令。就我個人而言,當我使用一個沒有交互過濾器的shell時,我突然感到有點迷茫。這個特性真的很吸引人!

此外,您還可以在可編程文本編輯器中提供交互式過濾器。這樣,您將在shell和編輯器之間具有統(tǒng)一的搜索功能。

交互式導航儀

Facebook路徑選擇器在我主要從事C+項目的時候,這是一個很大的幫助。編譯器生成的錯誤日志可能會變得非常大和非常糟糕,而在該日志中找到實際路徑的能力是一種生產(chǎn)力的提升。

在任何給定的文本文件中,或?qū)⑵聊坏膬?nèi)容與tmux,F(xiàn)PP過濾除文件路徑之外的所有內(nèi)容。然后,它將顯示一個UI,您可以在其中選擇一個或多個路徑,并使用它們運行一個命令。當然,最常見的響應是在編輯器中打開文件,這是默認操作。

Git UI

所使用的項目中至少有一個項目是有可能的。吉特作為一個版本控制系統(tǒng)。雖然Git CLI功能強大,但它并不是優(yōu)秀用戶體驗的巔峰。為了減輕壓力,閱讀Git幫助中的所有選項$SUBCOMMAND,我建議你退房破傷風免疫球蛋白。它為從中受益的操作提供了一個很好的控制臺用戶界面,如log或blame.

另一個旨在幫助git用戶的工具是FAC,它是修復所有沖突。正如您可能已經(jīng)猜到的,當您在進行合并或重基時遇到?jīng)_突時,它是有用的。它可以替代其他合并工具,比如vimdiff。

更多:每個DevOps專家應該知道的8個基本工具檔案管理器

在90年代有一段時間,每個人都想要一個雙窗格文件管理器。這一趨勢始于諾頓指揮官。許多其他用戶遵循相同的路徑,但仍然看到穩(wěn)定的用戶群的是午夜指揮官。最明顯的用例是使用MC操作本地文件,但在使用遠程機器時也非常有用。

就像大多數(shù)命令行程序一樣,它非常輕量級,所以在ssh上運行它是沒有問題的,并且由于支持FTP和FISH協(xié)議,您可以在一個窗格中看到本地文件系統(tǒng),而在另一個窗格中可以看到遠程文件系統(tǒng)-這是一個方便的特性,當您想避免鍵入或復制文件名作為scp參數(shù)時。

CLI工具只是為了好玩

“只工作,不玩耍,杰克就是個笨的男孩?!闭缑耖g所說。有許多程序,命令行和其他工具只為您提供娛樂。這個Roguevideo game屬于這一類。它甚至給整個游戲類型起了名字!其他受歡迎的工具有

fortuneandcowsay,例如,如果您在CI腳本中使用它們,就會使您的一天變得不那么枯燥。

但對我們中的一些人來說,首先使用控制臺的主要吸引力是感覺自己像電影中的黑客。不再是和好萊塢黑客很好地代表這個群體。當有人看著你工作的時候試一試,別人會更加相信你是個黑客!

命令行在實踐中

那么,用命令行來抵消學習如何使用shell、編輯器和各種應用程序的所有開關(guān)所花費的時間,有什么吸引力呢?簡單的回答是生產(chǎn)力,它來自兩件事:

一個是當你只有一個終端窗口而沒有更多的東西時,你可以更加集中注意力,因為沒有什么可以分散你的注意力。沒有彈出通知,沒有廣告,沒有漂亮小貓的照片。只有你和你的目標。

第二件事是自動化。您可以將幾個經(jīng)常組合的操作放在一個腳本中,然后作為一個整體調(diào)用它,而不是每次都手工輸入它們。您可以通過搜索shell的歷史,快速返回到您曾經(jīng)寫過的一個特別復雜的命令?;旧?,您可以記錄和重播任何內(nèi)容,代碼可以作為您所做工作的文檔。

增加別名的能力也有助于增加效率。例如,我發(fā)現(xiàn)自己經(jīng)常在Git中通過更新同一個Git來完成提交,直到它變得完美為止(暫時)。一旦我生成所需的文件,我就運行g(shù)it carmh。不要試圖在手冊中查找它,因為它是我的私人別名,意思是commit --amend --reuse-message=HEAD。它確實節(jié)省了一些打字時間。

問題是,人們會厭倦一遍又一遍地重復同樣的行為,而無聊則會減少注意力。這會導致錯誤和錯誤。避免它們的唯一方法是不要將高聚焦和低聚焦的行為交織在一起。編寫代碼是高度集中的,檢查提交消息和內(nèi)容是高度集中的,但是當您需要重復幾次機械點擊以達到提交評審的階段時,您的關(guān)注點就會降低。當然,命令行并不是沒有這種機械活動的,但是由于自動化,您可以避免其中的大多情況。

進一步探索

您可能已經(jīng)知道本文中提到的一些或所有命令行工具。在閱讀時,你可能學到了一些新的和有用的東西。如果是這樣的話,那太好了-我在這里的目的不是對不同的工具進行全面的概述和比較,而是展示一些我在日常工作中發(fā)現(xiàn)有幫助的重要工具,希望你能發(fā)現(xiàn)其中一些工具也很有用。

大多數(shù)GUI應用都有相應的終端。這包括瀏覽器、電子郵件客戶端、聊天客戶端(IRC、Sack、XMPP)、PIM套件或電子表格。如果你知道我沒有提到的好程序,請在評論中提出來。

作者:Piotr Gaczkowski

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服