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

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

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

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

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

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

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

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

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

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

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

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

基本命令行工具

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

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

把一切都當(dāng)作文件。

只做一件事,但要做好。

從標(biāo)準(zhǔn)輸入讀取,寫入標(biāo)準(zhǔn)輸出,并將錯(cuò)誤傳遞到標(biāo)準(zhǔn)錯(cuò)誤流。

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

允許命令鏈接和腳本。

編譯工具

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

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

還有Powershell,但它們遠(yuǎn)沒有那么受歡迎,除了微軟。

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

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

編輯

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

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

兩者都可以很好地編寫代碼,但是,正如其名稱所示,可編程的編輯器提供了塑造和自定義編輯器的能力,以完全滿足您的需要。然而,這是有代價(jià)的,因?yàn)樗麄円餐幸粋€(gè)更陡峭的學(xué)習(xí)曲線,可能需要更多的時(shí)間來熟悉。

Basic text editors

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

可編程文本編輯器

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

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

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

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

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

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

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

復(fù)用器

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

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

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

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

包管理器

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

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

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

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

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

brew install emacs micro nano vim neovim.

優(yōu)點(diǎn)

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

交互式濾波器

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

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

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

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

交互式導(dǎo)航儀

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

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

Git UI

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

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

更多:每個(gè)DevOps專家應(yīng)該知道的8個(gè)基本工具檔案管理器

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

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

CLI工具只是為了好玩

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

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

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

命令行在實(shí)踐中

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

一個(gè)是當(dāng)你只有一個(gè)終端窗口而沒有更多的東西時(shí),你可以更加集中注意力,因?yàn)闆]有什么可以分散你的注意力。沒有彈出通知,沒有廣告,沒有漂亮小貓的照片。只有你和你的目標(biāo)。

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

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

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

進(jìn)一步探索

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

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

作者:Piotr Gaczkowski

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

聯(lián)系客服