現(xiàn)在,大多數(shù)計算機(jī)用戶只是熟悉圖形用戶界面(GUI),并且認(rèn)為命令行界面(CLI)是一種很古老的,很難使用的東西.其實不然,一個良好的命令行界面可是讓我們更加充分,高效的利用計算機(jī),正如魯迅先生說的(嗯,不記得是誰說的就說是魯迅),“圖形用戶界面讓簡單的任務(wù)更容易完成,而命令行界面使完成復(fù)雜的任務(wù)成為可能”.
為什么使用命令行
事實上,很多人選擇Linux(而不是其他的系統(tǒng),比如說 Windows 10)是因為其可以使“完成復(fù)雜的任務(wù)成為可能”的強(qiáng)大的命令行界面.舉個栗子,你在Windows下移動一個文件是怎么操作的呢?先右鍵點擊文件,剪切,然后通過點擊文件夾圖標(biāo)進(jìn)入到目標(biāo)文件夾,右鍵,粘貼.而在命令行界面下,只需輸入以下命令,回車就可以了:
mv file dictionary
假如你在一個文件夾下面放了很多文件,有圖片(.png),視頻(.mp4)和各種文檔(.doc,.xlsx,.pdf等),現(xiàn)在你想把所有的視頻整理一下放到一個文件夾下面,怎么做呢?在圖形界面下,你需要先右鍵,新建文件夾,輸入文件夾名,然后按住鍵盤上的CTRL,再用鼠標(biāo)依次點擊所有的視頻文件(也可以框選),然后右鍵剪切,點擊進(jìn)入新建的文件夾,右鍵粘貼.同樣的,這個稍微復(fù)雜(復(fù)雜度取決于具體文件種類以及數(shù)量的多少)點的操作在命令行界面下只需2步:
mkdir dictionary
mv *.mp4 dictionary
當(dāng)然,命令行的優(yōu)勢遠(yuǎn)不止如此,而且他的知識量很大,不容易掌握,Linux操作系統(tǒng)有數(shù)以千計的命令可供用戶操作.不像其他一些計算機(jī)技能,一段時間后可能被淘汰了(所以不要再糾結(jié)于哪門語言最好,哪個框架最流行了),命令行只是卻不會落伍,你今天所學(xué)到的,在十年以后,都會有用處.現(xiàn)在大家都說計算機(jī)軟件行業(yè)知識更新太快,一項技術(shù)自己還沒學(xué)會就已經(jīng)過時了,其實我覺得有兩件東西是不容易過時的,一是操作系統(tǒng)相關(guān)知識,二是數(shù)學(xué)知識,它們都通過了時間的檢驗.
如何使用Linux命令行
1.Git Bash
如果你有一臺Windows電腦,又不想太麻煩,可以裝個Git Bash體驗一下.為什么裝了這個之后就可以在Windows下執(zhí)行Linux命令了呢?以下源自知乎回答:
簡單說:因為這些工具在 Windows 中實現(xiàn)了 Linux 的功能。
Windows 和 Linux 提供給應(yīng)用程序的功能接口是不一樣的,所以這些應(yīng)用不能直接在 Windows 中運行。要讓這些程序運行,有兩種辦法,一個是修改程序的代碼,讓它在 Windows 中使用 Windows 的接口。另一個是在 Windows 中實現(xiàn) Linux 的接口。
而實際上程序太多,一個個去改代碼并不方便,所以就選擇第二種方法。
因為 git for Windows 自帶了個 mingw 啊。git 要正常運行需要這個最小的 mingw 環(huán)境而已。
其它問題看起來都是 mingw 的問題了,比如為什麼不能執(zhí)行 Linux 的 elf ,因為這是 mingw 不是 wsl 。
Git for Windows自帶了Linux下一些命令行工具的Windows版,注意它們都是被編譯成Win32應(yīng)用程序的,本質(zhì)上還是Win32環(huán)境,所以實際上還是只能運行Win32可執(zhí)行文件。
而Win10提供的WSL相當(dāng)于一個Linux“模擬器”(原理不完全一致),可以直接運行Linux二進(jìn)制文件
鏈接:https://www.zhihu.com/question/65055974/answer/227486573
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
具體操作可以參考這篇文章:
體驗Git Bash,在windows下的Linux命令行.
同類工具還有Cmder,cygwin64
2.MacOS
這個簡單,只要買個Mac電腦就行了.Mac的終端雖然比不上Linux,但是也夠用了.
3.虛擬機(jī)or雙系統(tǒng)
虛擬機(jī)可以使用vmware,具體使用方法自行百度.
安裝雙系統(tǒng)的話,Ubuntu官網(wǎng)就有制作啟動盤的教程,后面怎么啟動,怎么安裝也請自行百度吧.??
什么是shell
首先說一下"終端"的概念
大家都知道,最初的計算機(jī)由于價格昂貴,因此,一臺計算機(jī)一般是由多個人同時使用的。在這種情況下一臺計算機(jī)需要連接上許多套鍵盤和顯示器來供多個人 使用。在以前專門有這種可以連上一臺電腦的設(shè)備,只有顯示器和鍵盤,還有簡單的處理電路,本身不具有處理計算機(jī)信息的能力,他是負(fù)責(zé)連接到一臺正常的計算 機(jī)上(通常是通過串口) ,然后登陸計算機(jī),并對該計算機(jī)進(jìn)行操作。當(dāng)然,那時候的計算機(jī)操作系統(tǒng)都是多任務(wù)多用戶的操作系統(tǒng)。這樣一臺只有顯示器和鍵盤能夠通過串口連接到計算機(jī) 的設(shè)備就叫做終端。而控制臺又是什么回事呢? 學(xué)機(jī)電的人應(yīng)該知道,一臺機(jī)床,或者數(shù)控設(shè)備的控制箱,通常會被稱為控制臺,顧名思義,控制臺就是一個直接控制設(shè)備的臺面(一個面板,上面有很多控制按鈕)。在計算機(jī)里,把那套直接連接在電腦上的鍵盤和顯示器就叫做控制臺。請注意它和終端的區(qū)別,終端是通過串口連接上的,不是計算機(jī)本身就有的設(shè)備,而控制臺是 計算機(jī)本身就有的設(shè)備,一個計算機(jī)只有一個控制臺。計算機(jī)啟動的時候,所有的信息都會顯示到控制臺上,而不會顯示到終端上。也就是說,控制臺是計算機(jī)的基 本設(shè)備,而終端是附加設(shè)備。 當(dāng)然,由于控制臺也有終端一樣的功能,控制臺有時候也被模糊的統(tǒng)稱為終端。計算機(jī)操作系統(tǒng)中,與終端不相關(guān)的信息,比如內(nèi)核消息,后臺服務(wù)消息,都可以顯示到控制臺上,但不會顯示到終端上。以上是控制臺和終端的歷史遺留區(qū)別?,F(xiàn)在由于計算機(jī)硬件越來越便宜,通常都是一個人獨占一臺計算機(jī)超做,不再連接以前那種真正意義上的“終端設(shè)備了”,因此,終端和控制臺的概念也慢慢演化了。終端和控制臺由硬件的概念,演化成了軟件的概念。 現(xiàn)在說的終端,比如linux中的虛擬終端,都是軟件的概念,他用計算機(jī)的軟件來模擬以前硬件的方式。比如在linux中,你用 alt+f1 ~ f6 可以切換六個虛擬終端,就好比是以前多人公用的計算機(jī)中的六個終端設(shè)備,這就是為什么這個叫“虛擬終端”的原因。然后是shell
shell是一個抽象概念,shell的一切操作都在計算機(jī)內(nèi)部,負(fù)責(zé)處理人機(jī)交互,執(zhí)行腳本等,是操作系統(tǒng)能正常運行的重要組成部分,在命令終端里可以使用shell.而bash,ash,zsh,tcsh等是shell這個抽象概念的一種具體的實現(xiàn),都是一個程序,都能生成一個進(jìn)程對象。如果想換shell的程序,可以修改/etc/passwd,把里面的/bin/bash換成你想要的shell,或者用chsh命令來切換.
shell與終端的關(guān)系:shell把一些信息適當(dāng)?shù)妮斔偷浇K端設(shè)備,同時還接收來自終端設(shè)備的輸入。一般每個shell進(jìn)程都會有一個終端關(guān)聯(lián),也可以沒有。