源碼安裝
有些軟件并沒有包含在軟件倉庫中糊昙,那么我們只能手動來安裝了,也就是只能下載軟件的源代碼谢谦,編譯以生成可執(zhí)行文件释牺。
首先嘗試找deb安裝包
首先,我們得聲明:
這一部分涉及到的軟件包安裝等知識點是基于Debian一族的Linux發(fā)行版回挽,包括Ubuntu没咙。
其他不是Debian一族的Linux發(fā)行版,例如Fedora千劈,Redhat祭刚,CentOS,等等队塘。其實安裝軟件的方式大同小異袁梗,就是每個Linux發(fā)行版之間所用的命令不一樣,軟件包的名稱有點區(qū)別罷了憔古。
大部分Ubuntu下的軟件都可以在軟件倉庫中找到遮怜,你只要用apt-get命令就可以安裝它們。但是鸿市,有少部分比較新的或者還在開發(fā)中的或者還不是很有名的軟件锯梁,就沒有被收錄到軟件倉庫中,那你就不能用apt-get來獲取到了焰情。
在這種情況下陌凳,事情會變得復雜一些。在Windows下面内舟,要安裝某個軟件合敦,我們很習慣于先去軟件的官網(wǎng),然后下載.exe結尾的安裝文件验游。
因為Linux存在極為多樣的發(fā)行版(比如Ubuntu充岛,F(xiàn)edora保檐,CentOS,SUSE崔梗,等等)夜只,每個發(fā)行版又有不同版本號。而且又有不同的處理器種類(32位的和64位的CPU蒜魄,ARM架構扔亥,Intel架構,等等)要適配谈为,不像Windows因為是微軟自己定義旅挤,沒有太多變數(shù)。
因此伞鲫,要為每種Linux創(chuàng)建一個安裝文件幾乎成了不可能的事谦铃。
當我們要找的軟件不在Ubuntu的軟件倉庫中時,我們可以試試去軟件的官方網(wǎng)站找后綴是.deb(deb是Debian的縮寫)的安裝包榔昔。.deb的安裝包只能用于Debian一族的操作系統(tǒng),包括Ubuntu瘪菌。而Redhat一族(包括Fedora)用的則是后綴為.rpm(rpm是Redhat Package Manager的縮寫)的安裝包撒会。
有個軟件可以幫忙將rpm安裝包轉(zhuǎn)換為deb安裝包。這個軟件是alien
# alien默認沒有安裝师妙,所以首先要安裝它诵肛。
sudo apt-get install alien
# 將rpm轉(zhuǎn)換為deb,完成后會生成一個同名的xxxx.deb默穴。
sudo alien xxxx.rpm
# 安裝deb安裝包怔檩。注意,用alien轉(zhuǎn)換的deb包并不能保證100%順利安裝蓄诽,所以可以找到deb最好直接用deb薛训。
sudo dpkg -i xxxx.deb
如果你有幸直接在網(wǎng)上找到了軟件的deb安裝包,那么下載下來仑氛,雙擊安裝包(或者用上面的命令行的形式:sudo dpkg -i xxxx.deb)來安裝即可乙埃。
如果安裝過程沒出錯,那很好锯岖。如果有錯誤介袜,一般可能是因為:
也許你下載的deb安裝包不符合你的電腦環(huán)境〕龃担可能位數(shù)搞錯了遇伞,32位和64位有區(qū)別的。
也許你沒有安裝那些依賴軟件捶牢。因為apt-get工具會幫我們自動下載各種依賴軟件鸠珠,所以不需要我們親自動手巍耗。但現(xiàn)在你需要自己動手安裝缺失的依賴軟件,可以根據(jù)提示信息跳芳,缺什么就裝什么芍锦。
編譯安裝
如果你要安裝的軟件既不在軟件倉庫里,你在網(wǎng)上又找不到相應的deb安裝包的話飞盆,你就只能回到“石器時代”娄琉,用編譯源代碼的方式來安裝了。
什么是編譯吓歇?
簡單來說孽水,編譯就是將程序的源代碼轉(zhuǎn)換成可執(zhí)行文件的過程。就好比我們做糕點城看,用到的原料(如雞蛋女气,面粉等)等就是源代碼,而最終制成的蛋糕就是可執(zhí)行文件测柠。在這個比喻中炼鞠,編譯就是制作蛋糕的過程。
大多數(shù)Linux的程序都是開放源碼的轰胁,我們可以比較輕易地獲取它們的源代碼谒主,然后將其編譯成適合我們的電腦和操作系統(tǒng)屬性的可執(zhí)行文件。
編譯安裝軟件的步驟根據(jù)軟件的不同有所區(qū)別赃阀。有些軟件的編譯安裝非常復雜霎肯,可能會讓你抓狂(特別是一些非標準,非主流的軟件)榛斯,需要很多準備工作观游。
不過一般安裝手冊(一般是下載下來源代碼時附帶的README文本文件,read是英語“閱讀”的意思驮俗,me是英語“我”的賓語形式懂缕。所以read me就是“閱讀我”的意思)都會說明詳細的安裝步驟。
在編譯之前意述,你需要安裝編譯的工具提佣。在Ubuntu下有一個方法可以一次性安裝跟編譯有關的工具,就是build-essential(build是“構建”或“編譯”的意思荤崇,essential是“必要的”的意思拌屏,顧名思義就是“進行構建/編譯所需的必要工具”),運行如下命令安裝:
sudo apt-get install build-essential
安裝完編譯需要的基本工具术荤,我們就可以開工了倚喂。
我們就用一個小軟件作為例子來講解吧。這個軟件是htop。之前我們學過top命令端圈,它可以查看電腦中運行的各種進程狀態(tài)焦读,占用多少內(nèi)存,cpu用量等等舱权,有點類似Windows中的任務管理器矗晃。htop就是類似于top的一個小軟件。
雖然htop這個軟件從apt-get中也可以安裝宴倍。但是我們?yōu)榱搜菔揪幾g安裝的過程张症,就拿它來“開刀”啦
第一步去軟件的官網(wǎng):http://hisham.hm/htop/
下載以下文件
htop-1.0.3.tar.gz
解壓
tar zxvf htop-1.0.3.tar.gz
然后進入目錄中:
cd htop-1.0.3
我們運行它:
./configure
configure這個程序會分析你的電腦,確認是否編譯所必須的所有工具都安裝了鸵贬。它的執(zhí)行需要些時間俗他,因為要做不少檢測。
然后我們就可以開始編譯了阔逼。用make命令:
make
也沒錯誤兆衅,編譯完成。
最后一步用make install命令來安裝 (需要加上sudo以用root權限來安裝軟件):
sudo make install
沒有問題嗜浮。安裝完成羡亩。
Vim
三種模式理解 Vim:
交互模式:Interactif Mode。也有稱之為命令模式(Command mode)的危融。這是Vim的默認模式夕春,每次我們運行Vim程序的時候,就會進入這個模式专挪。在這個模式中,你不能輸入文本(是的片排,我知道寨腔,這有點不符合文本編輯器的“一貫作風”)。因此率寡,別亂按鍵盤上的字母迫卢,你也許會把情況搞得一團糟。交互模式是很強大的冶共,它可以讓我們在文本間移動乾蛤,刪除一行文本,復制粘貼文本捅僵,跳轉(zhuǎn)到指定行家卖,撤銷操作,等等庙楚。你在鍵盤上按鍵也許會觸發(fā)特定操作(按下u這個字母鍵上荡,就是撤銷最近的一次操作。因為u是undo的首字母馒闷,是英語“撤銷”的意思)酪捡。
插入模式:Insert Mode叁征。這就是我們熟悉的文本編輯器的“一貫作風”。我們輸入文本逛薇,文本就被插入到光標所在之處捺疼。為了進入這個模式,有幾種方法永罚,最常用的的方法是按字母鍵i(i是insert的首字母啤呼,是英語“插入”的意思)。為了退出這種模式尤蛮,只需要按下Esc鍵(一般在鍵盤左上角)捍壤。Esc是escape的縮寫锉走,是英語“脫離,逃脫”的意思。
命令模式:Command Mode淑廊。也有稱之為底線命令模式(Last line mode)的。這個模式下收班,我們可以運行一些命令故痊,例如“退出”,“保存”看靠,等等赶促。也可以用這個模式來激活一些Vim的配置(例如語法高亮,顯示行號挟炬,等等)鸥滨。甚至我們還可以發(fā)送一些命令給終端命令行,例如 ls谤祖,locate婿滓,cp,等等粥喜。為了進入這個模式凸主,需要首先處于交互模式(Interactif Mode)下,然后按下冒號鍵(在一般的鍵盤上是要按下Shift鍵+分號鍵)额湘。輸入命令后卿吐,再按回車,就會執(zhí)行此命令锋华。執(zhí)行命令后嗡官,就又回到交互模式了。
基本操作
移動 :h, j, k, l (上下左右移動)
按鍵 | 作用 |
---|---|
h | 向左移動一個字符 |
j | 向下移動一個字符 |
k | 向上移動一個字符 |
l | 向右移動一個字符 |
0和$ :移動到行首和行末
w :一個單詞一個單詞地移動
x :刪除字符
d :刪除單詞毯焕,行谨湘,等等
- dd :刪除行
- dw :刪除一個單詞
- d0和d$ :刪除行首或行末
yy :復制行到內(nèi)存中
p :粘貼
r :替換一個字符
u :撤銷操作
g :跳轉(zhuǎn)到指定行
- 要跳轉(zhuǎn)到最后一行,按下G(大寫的G,Shift+g)
- 要跳轉(zhuǎn)到第一行紧阔,按下gg(兩次g鍵)
- 跳轉(zhuǎn)到指定行:行號+G 或 行號+gg
/ :從光標處開始查找
? :從文件最開始處查找
:r :合并文件
:! :運行外部命令
:s 查找并替換
:s/舊字符串/新字符串 :替換光標所在行的第一個匹配的字符串
:s/舊字符串/新字符串/g :替換光標所在行的所有匹配的字符串
:#,#s/舊字符串/新字符串/g :替換文件中第#行到第#行的所有匹配的字符串
:%s/舊字符串/新字符串/g :替換文件中所有匹配的字符串(應該是最常用的吧)
分屏
- :sp :橫向分屏
- :vsp :垂直分屏
分屏模式下的主要快捷鍵
Ctrl + w 然后再按 Ctrl + w :從一個viewport移動光標到另一個viewport坊罢。
Ctrl + w 然后按j :移動光標到下方的viewport。如果是h擅耽,k活孩,l,那么是分別對應移動到如下表所示的viewport:
按鍵 | 作用 |
---|---|
Ctrl + w 然后按h | 移動光標到左邊的viewport |
Ctrl + w 然后按j | 移動光標到下邊的viewport |
Ctrl + w 然后按k | 移動光標到上邊的viewport |
Ctrl + w 然后按l | 移動光標到右邊的viewport |