54:為什麼要學Linux

2021-02-24 TIFY

作者:Vamei 出處:http://www.cnblogs.com/vamei

正文:

      我最開始用Linux是被逼的。當時用的是一臺舊的筆記本電腦,做一些文字處理的工作。跑Windows動不動就死機,無奈之下安裝了Ubuntu。當時只是想找一個Windows的替代品。用Ubuntu的圖形化界面很多,不怎麼用命令行,所以總覺得比不上Windows。當然,基本的功能還是全的。我用那臺舊電腦兼職翻譯,賺了2000塊的「巨款」。

      後來深入使用Linux,是因為做論文時要用伺服器。伺服器是Debian系統,只能用ssh連接。我只能可憐巴巴的對著命令行敲字了。也是在這種情況下,我才真正發現Linux的好處。

Linux的優點

    首先,Shell編程很方便,特別是配合Linux下的各個工具,比如cat, sed, awk, grep。我經常會向伺服器的任務管理器提交工作。工作太大,沒有足夠處理器時,就要排隊等空隙。用shell編寫一個小腳本,讓它來替我安排工作的提交,就節省了我大量的時間。Shell編程甚至可以實現相當複雜的功能。Linux把每個小工具的功能都做強。想要實現複雜功能時,就利用文本流把它們連接在一起。這樣,功能性和獨立性就都兼顧了。(文本流)

什麼是文本流?

      在計算機中,所謂的數據就是0或1的二進位序列,但嚴格來說,Unix以字節(byte)來作為數據的單位,也就是說這個序列每八位(bit)為一個單位。八位的二進位數字,會落在十進位從0到255的範圍內。利用ASCII編碼,可以把這一個字節轉換成為256個字符中的一個。所以,在Unix中,數據完全可以用字符的形式表示出來,也就是所謂的文本(text)。

      實際上,如果以位為單位的話,機器會更容易讀懂和傳輸。但Unix系統堅持用字節為單位來表示數據。原因在於,相對於以位為單位的二進位數據,以字節為單位文本直接就人類可讀(human readable)。這樣的話,無論是計算機配置信息,還是別人寫的一首詩,用戶都可以直接讀懂。當然,並不是所有的數據都是設計來讓人讀懂的。很多編譯好的可執行文件中包含的內容,只有機器能讀懂。打開這個文件,儘管也能看到一個個字符,但這些字符並不能組成什麼有意義的文本。但Unix系統不會給這種「讀不懂」的文件開後門。所有文件都是統一的形式,就能以相同的方法存儲,也能共用一套處理工具,從而減少程序開發的難度。

      存儲文本的文件,就相當於一個個存儲數據的房子。在Unix的設計哲學中,一向有「萬物皆文件」(Everything is a file)的說法。大部分的文件都對應了存儲設備,也就是樹莓派的SD卡上的信息。就連表示文件位置的目錄,也是一種文件。此外,程序的配置信息,也都存儲在文件中。對於Unix系統來說,文件可以廣義的認為是可以提供或接收數據的對象。既然這樣,Unix系統乾脆把提供或接收數據的硬體也表示成文件。這其中,既有外部連接的USB設備,也包括樹莓派內部的內存等硬體。在/dev目錄下,就可以找到很多這樣代表硬體的文件。

      但託瓦茲對「萬物皆文件」的說法作出過糾正,改為「萬物皆文本流」(Everything is a stream of bytes")。系統運行時,數據並不是在一個文件裡定居。數據會在CPU的指揮下不斷地流動,就好像一個勤勞的上班族。有時數據需要到辦公室上班,因此被讀入到內存,有時會去酒店休假,傳送到外部設備。有的時候,數據需要搬個家,轉移到另一個文件。在這樣跑來跑去的過程中,數據像是排著隊走路的人流,我們叫它文本流(text stream,或者byte stream)。然而,計算機不同設備之間的連接方法差異很大,從內存到文件的連接像是爬山,從內存到外設像是遊過一條河。為此,Unix定義了流 (stream),作為連接作業系統各處的公路標準。有了「流」,無論是從內存到外設,還是從內存到文件,所有的數據公路都是相同的格式。至於公路下面是石頭還是土地,就都交給作業系統處理,不勞用戶操心。

(說句題外話,如果看過駭客帝國的話,一定會對文本流印象深刻。)

標準輸入,標準輸出,標準錯誤與重新定向

        當Unix執行一個程序的時候,會自動打開三個流,標準輸入(standard input),標準輸出(standard output),標準錯誤(standard error)。比如說你打開命令行的時候,默認情況下,命令行的標準輸入連接到鍵盤,標準輸出和標準錯誤都連接到屏幕。對於一個程序來說,儘管它總會打開這三個流,但它會根據需要使用,並不是一定要使用。

想像一下敲擊一個

$ls

鍵盤敲擊的文本流("ls\n",\n是回車時輸入的字符,表示換行)命令行 (命令行實際上也是一個程序)。命令行隨後調用/bin/ls得到結果("a.txt"),最後這個輸出的文本流("a.txt")流到屏幕,顯示出來,比如說:

a.txt

假設說我們不想讓文本流流到屏幕,而是流到另一個文件,我們可以採用重新定向(redirect)的機制。

$ls > a.txt

重新定向標準輸出。這裡的>就是提醒命令行,讓它知道我現在想變換文本流的方向了,我們不讓標準輸出輸出到屏幕,而是要到a.txt這個文件 (好像火車軌道換軌)。此時,計算機會新建一個a.txt的文件,並將命令行的標準輸出指向這個文件。

有另一個符號:

$ls >> a.txt

這裡>>的作用也是重新定向標準輸出。如果a.txt已經存在的話,ls產生的文本流會附加在a.txt的結尾,而不會像>那樣每次都新建a.txt。

我們下面介紹命令echo:

$echo IamVamei

echo的作用是將文本流導向標準輸出。在這裡,echo的作用就是將IamVamei輸出到屏幕上。如果是

$echo IamVamei > a.txt

a.txt中就會有IamVamei這個文本。

我們也可以用<符號來改變標準輸入。比如cat命令,它可以從標準輸入讀入文本流,並輸出到標準輸出:

$cat < a.txt

我們將cat標準輸入指向a.txt,文本會從文件流到cat,然後再輸出到屏幕上。當然,我們還可以同時重新定向標準輸出:

$cat < a.txt > b.txt

這樣,a.txt的內容就複製到了b.txt中。

我們還可以使用>&來同時重新定向標準輸出和標準錯誤。假設我們並沒有一個目錄void。那麼

$cd void > a.txt

會在屏幕上返回錯誤信息。因為此時標準錯誤依然指向屏幕。當我們使用:

$cd void >& a.txt

錯誤信息被導向a.txt。 

如果只想重新定向標準錯誤,可以使用2>:

$cd void 2> a.txt > b.txt

標準錯誤對應的總是2號,所以有以上寫法。標準錯誤輸出到a.txt,標準輸出輸出到b.txt。

管道 (pipe)

理解了以上的內容之後,管道的概念就易如反掌。管道可以將一個命令的輸出導向另一個命令的輸入,從而讓兩個(或者更多命令)像流水線一樣連續工作,不斷地處理文本流。在命令行中,我們用|表示管道:

$cat < a.txt | wc 

wc命令代表word count,用於統計文本中的行、詞以及字符的總數。a.txt中的文本先流到cat,然後從cat的標準輸出流到wc的標準輸入,從而讓wc知道自己要處理的是a.txt這個字符串。

Linux的各個命令實際上高度專業化,並儘量相互獨立。每一個都只專注於一個小的功能。但通過pipe,我們可以將這些功能合在一起,實現一些複雜的目的。

總結

文本流,標準輸入,標準輸出,標準錯誤

cat, echo, wc

>, >>, <, |

    其次,Linux的穩定性很好。這也是大部分伺服器使用Linux的一個重要原因。我沒有用過Windows的伺服器版本,不好評價。但在PC上,Linux要比Windows穩定的多。由於Linux與Windows的存儲方式不同,所以Linux可以長時間的持續運轉,也不需要對磁碟進行碎片整理。當然,Linux的圖形化界面略弱。如果用圖形化界面,會時有崩潰。(為什麼Linux不需要磁碟碎片整理)

為什麼Linux不需要磁碟碎片整理

       如果你是個Linux用戶,你可能聽說過不需要去對你的linux文件系統進行磁碟碎片整理。也許你注意到了,在Liunx安裝發布包裡沒有磁碟碎片整理的工具。為什麼會這樣?

      為了理解為什麼Linux文件系統不需要磁碟碎片整——而Windows卻需要——你需要理解磁碟碎片產生的原理,以及Linux和Windows文件系統它們之間工作原理的不同之處。

什麼是磁碟碎片

      很多Windows用戶,甚至是沒有經驗的用戶,都深信經常對文件系統進行碎片整理會提高計算機的速度。但並不是很多人知道這其中的原委。

      簡單的說,磁碟驅動器上有很多扇區,每個扇區都能存放一小段數據。文件,特別是大文件的存儲需要佔用很多不同的扇區。假設現在你有很多個文件存在的文件系統裡,每個文件都會被存儲在一系列連續的扇區裡。後來你更新了其中的一個文件,它的體積變大了。文件系統會嘗試把文件新增的部分存放到緊鄰原始文件的扇區裡。可不幸的是,它周邊已經沒連續的足夠扇區空間了,文件需要被分割成數段——這些都在自動進行的。當從磁碟上讀取這個文件時,磁碟磁頭需要跨越數個不同的物理位置來讀取各個扇區——這樣會使速度降低。

      磁碟碎片整理就是小心的移動這些小文件塊來減少碎片,讓每個文件都能連續的分布在磁碟上。

 windows系統

      當然,如果是固態硬碟,那情況又不同了,固態硬碟沒有機械移動,不應該進行碎片整理——對一個U盤進行碎片整理通常會降低它的壽命。在最新版的Windows系統裡,你實際上不需要關心系統上的碎片——Windows會自動替你整理。

Windows文件系統的工作原理

      微軟老的FAT文件系統——最後一次使用是在Windows 98 和 Window ME上,可如今的U盤上還在使用它——並不會智能的管理文件。當你把一個文件存入FAT文件系統裡時,系統會儘量的把它存到靠近磁碟開始的地方。當你存入第二個文件時,它會緊接著第一個文件——一個接著一個。當原始文件體積變大後,它們一定會產生碎片。根本沒有留給它們增長的空間。

      微軟新的NTFS文件系統——使用在裝有Windows XP和2000的PC機上——稍微智能了一點。它會在磁碟上在文件周圍分配一些「緩衝」的空閒空間,儘管如此,任何Windows用戶都會告訴你,經過一段時間的使用後,NTFS文件系統還是會形成碎片。

        由於這些文件系統的工作原理,它們註定需要進行碎片整理來保持高性能。微軟在它最新的視窗系統裡通過在後臺運行一個磁碟碎片整理進程來解決這個問題。

windows磁碟碎片整理

Linux文件系統的工作原理

       Linux的ext2, ext3, 和 ext4 文件系統 ——Ubuntu和大多數最新的Linux發布版中使用的是ext4——採用了一種更聰明的方法來存放文件。與把多個文件並排放在磁碟上不同,Linux文件系統把所有文件都分散到了整個磁碟上,每兩個文件之間都留有相當巨大的空閒空間。當文件被修改、體積增加時,它們通常有足夠的空間來擴展。一旦有碎片產生時,文件系統會嘗試移動整個文件來消除碎片,所以你不需要一個碎片整理工具。

 linux文件系統

     因為這種工作方式,當磁碟快要裝滿時,你開始會發現有碎片開始產生。如果已用空間超過95%(甚至80%),你會發現碎片開始變多。但不管怎樣,這個文件系統的設計會使正常情況下不產生碎片。

     如果你在Linux系統上遇到了磁碟碎片問題,你很可能需要一個更大的硬碟了。如果你真想整理一個文件系統,這最簡單的方式也許是最可靠的方式:把文件從這個分區裡考出,刪除這些文件,然後考回這些文件。當你把文件考回硬碟時,文件系統會智能為文件分配存儲空間。你可以使用 fsck 命令來查看Linux文件系統上的磁碟碎片情況——在輸出結果裡尋找「non-contiguous inodes」信息。

   再次,Linux的源碼和架構都是開放的,你可以從中學到很多作業系統原理。Linux的整個哲學體系繼承自UNIX,發展的年頭要比Windows長很多時間,整個設計體系已經相當穩定,並化繁為簡。POSIX的標準也很普遍,Linux熟悉了之後,其它的UNIX系統也很容易上手。Windows的許多東西不透明,很複雜,又常變化,並不是一個很好的學習樣例。(Linux架構)

我以下圖為基礎,說明Linux的架構(architecture)。(該圖參考《Advanced Programming in Unix Environment》)

      最內層是硬體,最外層是用戶常用的應用,比如說firefox瀏覽器,evolution查看郵件,一個計算流體模型等等。硬體是物質基礎,而應用提供服務。但在兩者之間,還要經過一番周折。

還記得Linux啟動。Linux首先啟動內核 (kernel),內核是一段電腦程式,這個程序直接管理管理硬體,包括CPU、內存空間、硬碟接口、網絡接口等等。所有的計算機操作都要通過內核傳遞給硬體。

為了方便調用內核,Linux將內核的功能接口製作成系統調用(system call)。系統調用看起來就像C語言的函數。你可以在程序中直接調用。Linux系統有兩百多個這樣的系統調用。用戶不需要了解內核的複雜結構,就可以使用內核。系統調用是作業系統的最小功能單位。一個作業系統,以及基於作業系統的應用,都不可能實現超越系統調用的功能。一個系統調用函數就像是漢字的一個筆畫。任何一個漢字都要由基本的筆畫(點、橫、撇等等)構成。我不能臆造筆畫。

在命令行中輸入$man 2 syscalls可以查看所有的系統調用。你也可以通過$man 2 read來查看系統調用read()的說明。在這兩個命令中的2都表示我們要在2類(系統調用類)中查詢 (具體各個類是什麼可以通過$man man看到)。

系統調用提供的功能非常基礎,所以使用起來很麻煩。一個簡單的給變量分配內存空間的操作,就需要動用多個系統調用。Linux定義一些庫函數(library routine)來將系統調用組合成某些常用的功能。上面的分配內存的操作,可以定義成一個庫函數(像malloc()這樣的函數)。再比如說,在讀取文件的時候,系統調用要求我們設置好所需要的緩衝。我可以使用Standard IO庫中的讀取函數。這個讀取函數既負責設置緩衝,又負責使用讀取的系統調用函數。使用庫函數對於機器來說並沒有效率上的優勢,但可以把程式設計師從細節中解救出來。庫函數就像是漢字的偏旁部首,它由筆畫組成,但使用偏旁部首更容易組成字,比如"鐵"。當然,你也完全可以不使用庫函數,而直接調用系統函數,就像「人」字一樣,不用偏旁部首。

(實際上,一個作業系統要稱得上是UNIX系統,必須要擁有一些庫函數,比如ISO C標準庫,POSIX標準等。)

shell是一個特殊的應用。很多用戶將它稱為命令行。shell是一個命令解釋器(interpreter),當我們輸入「ls -l」的時候,它將此字符串解釋為

在默認路徑找到該文件(/bin/ls),

執行該文件,並附帶參數"-l"。

我之前用>表示重新定向,用|表示管道,也是通過shell解釋&或者|的含義。Shell接著通過系統調,用指揮內核,實現具體的重定向或者管道。在沒有圖形界面之前,shell充當了用戶的界面,當用戶要運行某些應用時,通過shell輸入命令,來運行程序。shell是可編程的,它可以執行符合shell語法的文本。這樣的文本叫做shell腳本(script)。可以在架構圖中看到,shell下通系統調用,上通各種應用,同時還有許多自身的小工具可以使用。Shell腳本可以在寥寥數行中,實現複雜的功能。

UNIX的一條哲學是讓每個程序儘量獨立的做好一個小的功能。而shell充當了這些小功能之間的"膠水",讓不同程序能夠以一個清晰的接口(文本流)協同工作,從而增強各個程序的功能。這也是Linux老鳥鼓勵新手多用shell,少用圖形化界面的原因之一。

(shell也有很多種,最常見的是bash, 另外還有sh, csh, tcsh, ksh。它們出現的年代不同,所支持的功能也有差異。)

一個使用bash shell的終端

一個shell對應一個終端 (terminal)。曾經來說,終端是一個硬體設備,用來輸入並顯示輸出。如今,由於圖形化界面的普及,終端往往就像上圖一樣,是一個圖形化的窗口。你可以通過這個窗口輸入或者輸出文本。這個文本直接傳遞給shell進行分析解釋,然後執行。

最後,我們進入一般的應用。應用是一個程序,它可以

直接調用系統函數

調用庫函數

運行shell腳本

這些應用可以由多種語言開發。最常見的是C語言。

總結 

Linux利用內核實現軟硬體的對話。

通過系統調用的這個接口,Linux將上層的應用與下層的內核分離,隱藏了底層的複雜性,也提高了上層應用的可移植性。

庫函數利用系統調用創造出模塊化的功能,

        Shell則提供了一個用戶界面,並讓我們可以利用shell的語法編寫腳本,以整合程序。

最後,Linux下的各種工具基本上都是免費的。更方便的,使用package manager下載編譯好的版本。這和Windows下到處買光碟、找可用下載連接、找註冊碼的繁瑣過程完全不同。如果你想要使用任何的工具,一般只需要幾分鐘,就能借網絡搞定。Linux的開源社區也很活躍,很容易找到人討論,或者找個項目練手。

個人收穫

      再從我個人的角度說說吧。首先,Linux是一個很強的附加技能。Windows對於用戶來說很貼心,但也意味著使用門檻低,基本上大家都會。而Linux,即使是命令行的使用,也需要一定時間熟悉。在CV上寫上熟悉Linux的命令行使用,熟悉Linux配置,要比寫熟悉Windows使用,加分不少。

       其次,伺服器和雲服務平臺選用Linux的比較多。這意味著,在超越PC的戰場上,Linux是一個必修技能。如果是從事IT開發的人,Linux基本上是繞不過去的一個檻。現在Linux在移動端發展的也不錯。看Ubuntu最近的動作,是希望在移動端有所作為的。而安卓用的也是Linux內核。

         最後,Linux設備投入小,而Linux知識更新換代較慢,學習的性價比很高。學完後還可以通吃Unix和Mac。 

Linux的致命弱點

      最後,說一下Linux的致命弱點。當你在一個妹子面前使用大黑屏時,妹子驚訝的眼神絕對不是看你是天才,而是看你為怪胎。

     當然,你還可以使用Mac。Mac和Linux是一個媽Unix生的兩兄弟。如果你還是覺得Linux的大黑屏太醜,請選用Mac的大白屏。

相關焦點

  • 為什麼程式設計師一定要學 Linux?
    首先,我想先說一下:「為什麼要學習Linux」?
  • STM32好找工作,所以學linux錯了嗎?
    所以如果你讓我學個東西都沒公司要,都找不到工作,那學它肯定錯了。你不妨去各大招聘網站搜索一下,STM32相關崗位真的很多,你如果STM32玩的溜,找份工作真的不成問題。總結一下,學STM32肯定沒錯,這玩意至少能讓你有份工作。STM32的第二大好處就是:他是很典型的MCU,可以讓你掌握足夠的MCU開發能力。
  • 為什麼 Linux的開發者要轉到Windows 10 平臺!
    「就像在 Linux 中一樣構建應用,無論它是用 Go 寫的,還是用 Erlang、C,你可以在 Bash on Windows 中試試你要用的任何東西,有 bug 就丟給我們來解決。我們的目標就是構建一個大家都能用的、更高效的產品給大家。」
  • 為什麼大家都推薦我學Linux
    首先,Linux是什麼呢?,所以講,Linux是一個多用戶的作業系統,而為什麼我們卻不怎麼用呢?甚至很多人都不知道呢?因為現在Linux主要用於伺服器以及專業人員(科研、軟體工程師)使用,我們打小用的就是Windows,所以當然沒什麼機會接觸Linux了,而學習Linux的目的,就是為了能夠維護那些裝有Linux系統的伺服器啊,朋友說那個職位叫運維,不累,工資還好,不算很高,但至少比我現在強。
  • 為何 linux 要用 tar.gz,而不用 7z 或 zip?
    為 7z 和 zip 壓縮格式都不能保留 unix 風格的文件權限,比如解壓出個可執行文件要重新 chmod chown 才能恢復正常
  • 為什麼經常警告要升級 pip ?
    如果您要安裝NumPy,則可能要安裝最新版本。相反,如果您使用的是舊版本的pip,則安裝最新版本的Python軟體包可能會失敗,或者以較慢,更複雜的方式進行安裝。為什麼?這是關於glibc版本控制以及pip如何安裝軟體包的一系列問題。讓我們看看問題到底是什麼,如何解決,最後是什麼原因造成的。讓我們從Ubuntu 18.04 Docker鏡像開始著手。
  • Linux 為什麼要動態連結?與靜態連結的區別是什麼?
    老規矩,先拋出幾個問題:為什麼要進行動態連結?如何進行動態連結?什麼是地址無關代碼技術?什麼是延遲綁定技術?如何在程序運行過程中進行顯式連結?為什麼要進行動態連結?為了解決靜態連結的缺點,所以引入了動態連結,動態連結的內存分布如圖,多個程序依賴同一個共享目標文件,這個共享目標文件在磁碟和內存中僅有一份,不會產生副本,簡單來講就是不像靜態連結一樣對那些組成程序的目標文件進行連結,等到程序要運行時才進行連結,把連結這個過程推遲到運行時才執行。
  • 每天學一個 Linux 命令(67):namp
    [root@CentOS7-1 ~]# nmap --help-bash: nmap: command not found[root@CentOS7-1 ~]# yum install nmap -y語法格式nmap [Scan Type...]
  • Linux超基礎術語科普:什麼是Linux發行版?為什麼稱其為「發行」?
    什麼是Linux發行版?要使用Linux,即使是最原始的形式(甚至沒有GUI),你也需要一個shell。最常見的是Bash shell。然後,你需要在shell中運行一些命令來完成一些工作。你能記得一些基本的Linux命令嗎?有cat,cp,mv,grep find,diff,gzip等等。嚴格來說,這些所謂的 "Linux命令 "並不是都只屬於Linux。它們中的很多主要來源於UNIX作業系統。
  • Spark教程(一)為什麼要學spark
    以前處理數據會使用pandas,數據會保存在內存中,數據量過大就會崩了,這也是為什麼要使用分布式計算的原因。沒有做過橫向對比,暫時還不知道有多大差別。最後花了1.3h,本地處理完了四千多萬數據,CPU和內存都要炸了,看來以後計算部分還是要搭集群。
  • 為什麼我要從 Windows 切換到 Linux?
    公眾號:JavaGuide(ID:JavaGuide)喔,看到這個標題千萬不要以為我要寫和王垠前輩一樣的內容啊,嘿嘿。不過在這裡還是獻上王垠前輩的那篇文章的連結吧:完全用 Linux 工作[1]。為什麼要寫這篇文章?首先介紹本篇文章產出的時間,現在是 2020/08/22。
  • LINUX基礎命令你學廢了嗎?
    以下是一些實用的linux基礎命令,快快拿起你的小本本記錄下來。這是因為bc預設僅輸出整數,如果要輸出小數點下位數,那麼就必須要執行 scale=number ,那個number就是小數點位數4、重要的幾個熱鍵[Tab],[ctrl]-c, [ctrl]-d [Tab]按鍵---具有『命令補全』『檔案補齊』的功能[Ctrl]-c按鍵---讓當前的程序『停掉』
  • 為什麼建議大家使用 Linux 開發
    我身邊還有些朋友對 linux 的印象似乎還停留在黑乎乎的命令行界面上。當我告訴他或者建議他使用 linux 時,會一臉驚訝的問我,那個怎麼用(來開發或者日常使用)?關於其他 linux 可以參考:八款精美的 Linux 發行版!
  • 為什麼建議大家使用Linux開發?
    我身邊還有些朋友對 linux 的印象似乎還停留在黑乎乎的命令行界面上。當我告訴他或者建議他使用 linux 時,會一臉驚訝的問我,那個怎麼用(來開發或者日常使用)?對我而言,在兩年的使用經歷中,暫時沒有遇到過 linux 下不能解決,必須回到 Windows 的。而且,實在不行不是還有虛擬機嗎。Linux 下運行 Android 應用xDroid 使 Android 應用能運行在 linux 上,極大的擴展了 linux 生態。
  • Linux操作寄存器前為什麼要ioremap
    實驗代碼:#include <linux/init.h>#include <linux/module.h>#include <linux/sched.h>#include <asm/io.h
  • Linux系統優化如何操作?教你學Linux優化體系
    1.4 linux的7種運行級別,及其應用?1.5 linux從系統開機到登陸之前的啟動流程。你的系統是什麼版本的?linux變量名字(書名)大寫的一般是自己用(linux環境變量),在哪裡都可以用的變量。默認國外的yum源(軟體倉庫)比較慢,所以換成國內的。
  • 7個超級好玩的Linux命令,不能錯過,一定要玩一下~
    要成功運行以下步驟,只需確保在系統上安裝了「 perl 」,「 perl-Curses 」和「 perl-devel 」軟體包對於基於yum的系統:[root@linuxtechi ~]# yum install perl perl-devel perl-Curses<以上代碼可複製粘貼,可往左滑>
  • 愛因斯坦為什麼要學小提琴?
    假如你是學鋼琴的,不可能扛著鋼琴去演出吧。這兩年一直有家長私下找我們介紹孫家鳴老師學小提琴,說實話這樣的名師一節課對普通家庭來說不便宜,而且就算能接受價格,老師也很難擠出時間。對外一對一1節課都要600-800,第一期現集體課優惠價只需90元一節課。共16次課32節,2880元。只收沒學過的或想重修基礎的。只收12人!截止到發文時間僅剩5個名額。
  • Linux系統從入門到精通推薦的書籍——《Linux就該這麼學》正式電子版發布,限期免費下載.
    大家應該已經對劉遄老師的作品非常熟悉了~《Linux就該這麼學》是一本注重於實用性的Linux系統技術自學書籍,從起筆創作到人民郵電出版社三審三校工作完畢總共花費近三年時間
  • 適用於Linux的最佳命令行下載加速器
    已發出 HTTP 請求,正在等待回應... 200 OK長度: 10653910 (10M) [application/x-zip-compressed]正在保存至: 「linuxidc.com.zip」linuxidc.com.zip    100%[===================>]  10.16M  4.54MB/s    用時 2.2s