Linux 探索之旅 | 第二部分第六课:Nano 文本编辑器和终端配置
-- 簡書作者 謝恩銘 轉載請注明出處
內容簡介
Nano,初學者的文本編輯器
上一課 Linux探索之旅 | 第二部分第五課:用戶和權限,有權就任性 中,我們學習了不少知識點,估計大家都比較辛苦。
這一課比較簡單,沒有什么太難的概念。不過這一課會講如何配置終端噢。
大家可以 泡個泡面,烤只烤雞;剝個鹵蛋,慢慢來看。
之前的課程中,我們已經學會了在終端中用多種不同的方式來查看文件的內容,但是我們還不知道如何在終端中修改文件的內容。
為什么我們把文本編輯器推遲到現在來說呢?因為這是終端可以提供的強大功能之一。
在Linux終端的文本編輯器當中,比較著名的有:Nano,Vim,Emacs,等等。其他文本編輯器還有Gedit,Sublime等等。當然了,我們不可能列舉所有的文本編輯器,太多了。
在這些文本編輯器當中,Nano是比較適合初學者上手的。之所以稱其為初學者的文本編輯器,絕沒有貶低Nano的意思,Nano的功能很強大,只是比較容易入門。
之后的課程我們會用專門的一課來學習Vim,要入門Vim可能需要下點功夫。然后也會聊聊Emacs。
小編寫過一篇關于Emacs的文章:程序員小助手 | Emacs,最強編輯器,沒有之一
Nano初體驗
說起nano這個英語單詞,很多人可能不陌生。
nano是“毫微”的意思,也就是10的-9次方。
著名的納米科技的“納米”就是nanometer,由nano和meter組成,nano是“十億分之一”,meter是“米”。
所以納米就是十億分之一米。
「一米」與「一納米」的大小相比較,相當于地球的直徑和地球上的一顆玻璃彈珠之間的差距。
我們這個文本編輯器叫做nano,應該是取其“短小精悍”的寓意吧。“麻雀雖小,五臟俱全”。
Nano相比Vim或Emacs,確實小巧簡單很多,不及后兩者復雜和強大。但是對于入門文本編輯器還是很合適的。
Nano是一個文本編輯器,不是文本處理器
你真知道什么是文本編輯器嗎?它和文本處理器又有什么區別呢?
文本編輯器:是這樣一種軟件,它可以編輯和查看文本文件,但是不能對文字做格式處理(例如:加粗,斜體,改變顏色,改變字體大小,添加超鏈接等等)。
常見的有Windows下的記事本,Mac OS X下的文本編輯,Linux下的vi、emacs、gedit,DOS下的edit等。在Linux下,默認系統中至少安裝了一種文本編輯器。當然,在Mac OS X下,nano也是默認安裝的。文本處理器:也是一種軟件,又叫文檔編輯器,不僅可以編輯和查看文檔,而且可以對其文字進行格式處理(加下劃線,設為標題,插入圖片等等)。這些軟件只能在圖形界面下使用。
常見的有Windows下的Word,Mac OS X下的Pages,Linux下的OpenOffice Writer等。
文本編輯器處理的文件格式和文本處理器的文件格式一般也不同。
那么什么時候我們需要用到文本編輯器呢?
我們可以用文本編輯器來編輯純文本文件。純文本格式,就是沒有任何文本修飾的,沒有任何粗體,下劃線,斜體,圖形,符號或特殊字符及特殊打印格式的文本。只保存文本,不保存其格式設置。
在Windows下,我們比較熟悉的純文本文件就是.txt結尾的文本文檔了。在Linux和Mac OS下,后綴名沒那么重要,不少純文本文件是沒有后綴名的。
文本編輯器對于程序員來說又是必不可少的。它可以讓我們編輯各種編程語言的代碼程序:.c(C語言代碼文件),.cpp(C++代碼文件),.py(Python代碼文件),.php(PHP代碼文件),.java(Java代碼文件),.xml(XML代碼文件)等等。
總之,如果你“不幸”成為了一個程序員,那么文本編輯器的學習是逃不了的,這是你的吃飯家伙。
即使你不是程序員,不需要寫代碼,但是很多系統的配置文件也需要用文本編輯器來編輯。
在學習了如何使用Nano之后,我們會學習如何修改兩個配置文件:.nanorc和.bashrc。這兩個文件能讓我們分別配置nano和終端。
揭開Nano的面紗
Nano的全稱其實是GNU Nano。還記得我們的老朋友GNU么?
是的,就是那個我們提過的GNU項目,在Linux探索之旅 | 開宗明義+第一部分第一課:什么是Linux?中講過。
GNU還有個基金會,由Richard Stallman(理查德·斯托曼)于1985年10月創建,叫自由軟件基金會(英語:Free Software Foundation,FSF)是一個致力于推廣自由軟件的美國民間非營利性組織。其主要工作是執行GNU計劃,開發更多的自由軟件。
GNU計劃(英語:GNU Project),又譯為“革奴計劃”,一個自由軟件集體協作項目,1983年9月27日由理查德·斯托曼在麻省理工學院公開發起。它的目標是創建一套完全自由的操作系統,稱為GNU。理查德·斯托曼最早在net.unix-wizards新聞組上公布該消息,并附帶一份《GNU宣言》等解釋為何發起該計劃的文章,其中一個理由就是要“重現當年軟件界合作互助的團結精神”。 GNU是“GNU is Not Unix”(意思是“GNU不是Unix”)的遞歸縮寫。為避免與單詞gnu(非洲牛羚,發音與“new”相同)混淆,斯托曼宣布GNU發音應為“Guh-NOO”(/?gnu?/ ),與“canoe”發音相似。其中,Emacs就是由這個計劃孵化而出。
我們的Linux的全稱也是GNU Linux。因為Linus Torvalds基本只是開發了LInux的內核,Linux的外部程序都是來自世界各地的GNU社區程序員編寫。
Nano的設計靈感來自于一個叫Pico的文本編輯器,pico是“10的-12次方”,萬億分之一,比nano還要小1000倍。我們平時說的皮米picometer(由pico和meter(英語“米”)連結而成),就是萬億分之一米。
當然了,nano其實也是 Nano is ANOther editor(意思是“nano是另一種編輯器”)的遞歸縮寫。
有趣的老外最愛在編程里用遞歸來命名了。比如Linux是Linux is not Unix(意思是“Linux不是Unix”)的遞歸縮寫。
啟動nano
因為Ubuntu預裝了nano,因此要啟動nano,只需要在終端中輸入
nano復制代碼回車,就打開了nano文本編輯器:
如上圖所見,我們的Nano文本編輯器就是長這樣的,是不是很簡潔?
而你現在就可以在里面輸入文字了,如下圖:
看到了嗎,我輸入了兩句英語。
Hello, how are you ? (Hello,你好嗎?)I am typing in nano, it is wonderful... (我正在nano里打字,棒極了...)復制代碼Nano就是這么方便,因為并不是所有文本編輯器都可以一上來就輸入文字的。比如Vim,要輸入文字還得先做其他操作,以后的課會學到。
如果你有使用Emacs的經驗,那你可能覺得這一點和Emacs還挺像的,Emacs也是一上來就可以輸入文字。
Nano中的鍵盤快捷鍵
在上圖中的終端下部,我們可以看到有兩行幫助文檔,如下圖:
^ 這個符號表示鍵盤的Ctrl鍵,所以這些都是Nano的快捷鍵組合。比如,^X標明的是Exit,那么就是退出Nano,因為exit是英語“退出”的意思。
這些快捷鍵組合中雖然字母都是大寫,但其實就是鍵盤上對應的字母鍵,并不需要用Shift鍵來將其變為大寫。
以下給出一些常用的Nano組合快捷鍵:
Ctrl+G:顯示幫助文檔
Ctrl+O:保存文件
Ctrl+R:打開其他文件
Ctrl+Y:上一個屏幕
Ctrl+V:下一個屏幕
Ctrl+K:剪切當前一行
Ctrl+X:退出
Ctrl+W:查找
Ctrl+U:黏貼剛剪切的內容
Ctrl+/:替換
Ctrl+F:向前移動一格光標
Ctrl+B:向后移動一格光標
Ctrl+P:向上移動一行
Ctrl+N:向下移動一行
其他還有不少快捷鍵,一般Nano都會在你操作的屏幕上提醒。所以很方便。但是再論學好英語對編程的幫助,看到這些提示了嗎?都是英語寫的。對于程序員, 為什么英語比數學更重要? 如何學習
當然了,我們用鍵盤上的方向鍵(上,下,左,右)也可以控制光標移動。PaUp和PaDn也分別與Ctrl+Y和Ctrl+V功能一樣。
如果你比較熟悉這些快捷鍵組合之后,你覺得nano下方的幫助文檔有點礙眼,那你也可以讓它消失,只要先按Esc鍵,再按X鍵,幫助文檔就沒了。如果要重新調出幫助文檔,則同樣操作。
Nano的參數
剛才我們打開nano時,是單獨用了nano這個命令。當然,nano命令也可以帶參數的。
最常用的參數當然就是要打開的文件名咯,例如:
nano file.txt復制代碼就會用nano打開file.txt,如果你對file.txt有寫的權限,那你就可以用nano來修改這個文件了。
如果file.txt文件不存在,那么就會創建一個空文件,名字叫做file.txt,并用nano打開。
nano的其他參數有不少,不過小編挑了三個個人覺得比較實用的:
-m:激活鼠標。如果沒有-m參數,那么鼠標在nano里是不起作用的,加了-m參數鼠標可以通過點擊來控制光標的位置。
-i:激活自動縮進的功能。這對于程序員寫代碼太有用了。
-A:激活智能Home鍵的功能。通常狀況下,我們按下鍵盤的Home鍵,我們的光標會立即跳到一行的最開始,如果用了-A這個參數,那么按下Home鍵它會智能地判斷,如果一行的開始處有縮進,那么它會使光標跳轉到緊跟在縮進之后,而不是一行的最開始。
如果我們要同時激活三個屬性,只需要這樣用:
nano -miA file.txt復制代碼通過.nanorc來配置Nano
現在,既然我們已經初步了解了如何使用nano(當然了,要熟練使用還需要多實踐咯)。
我們也看到,nano實在很易用,只需要熟悉一些常用的鍵盤快捷鍵組合就可以了。
在今天這課的開始處,我們說了要學習用文本編輯器修改一些配置文件。
Nano也有一個配置文件,用于設置nano的一些選項。這個文件叫做 .nanorc
注意,.nanorc的最前面有一個點,表明這是一個隱藏文件。
像這樣的配置文件,如果用ls -l命令是列不出來的,需要用ls -a來列出。
一般Linux中的配置文件大多以點開頭,而且多以rc結尾。比如vim的配置文件 .vimrc,bash shell的配置文件.bashrc,等等。
那這個rc是什么意思呢?當然了,不理解rc什么意思沒有關系,不過我們來滿足一下自己的好奇心:
Linux或Unix的許多程序在啟動時,都需要“rc”后綴的初始文件或配置文件。
“rc”,它是“runcomm”的縮寫――即“run command”(運行命令)的簡寫。 "rc" 是取自 "runcom", 來自麻省理工學院在 1965 年發展的 CTSS系統。相關文獻曾記載這一段話:"具有從檔案中取出一系列命令來執行的功能;這稱為 "run commands" 又稱為 "runcom",而這種檔案又稱為一個 runcom (a runcom)。
" rc”是很多腳本類文件的后綴,這些腳本通常在程序的啟動階段被調用,通常是Linux系統啟動時。如/etc/rc(連接到/etc/rc.d/rc)是Linux啟動的主腳本,而.bashrc是當Linux的bash shell啟動后所運行的腳本。
每個Linux的用戶都可以在自己的家目錄創建.nanorc這個文件,在每次nano啟動前,它會讀取此配置文件。
在小編的情況,因為我的用戶名是oscar,所以我的.nanorc文件應該是 /home/oscar/.nanorc
但是,我查找了,在我的家目錄中,并沒有.nanorc這個文件。在你的情況,可能有,也可能沒有。但是不要緊。因為如果在你的家目錄沒有.nanorc,那么nano會用全局的配置文件。
創建.nanorc
如果你的家目錄里也沒有.nanorc,那么你可以創建一個。怎么創建呢?很簡單:
nano .nanorc復制代碼在這個.nanorc文件中,你可以輸入你的配置信息。
每一行一句配置語句,配置語句是以set(用于激活。set是英語“放置,設置”的意思)或unset(用于關閉)開頭,后接你要配置的項目。例如:
set mouse復制代碼這句話就用于激活鼠標(mouse是英語“鼠標”的意思)。有了這句話,那么每次nano啟動時都會激活鼠標操作了,我們啟動nano就不必寫-m這個參數了,是不是很方便?
我們也可如法炮制,使得我們不用每次啟動nano都加上-i和-A參數:
set autoindent復制代碼這句是用于激活自動縮進,相當于-i參數的作用。
set smarthome復制代碼這句用于激活智能Home鍵。
如下圖所示:
如果要保存文件,只要按下Ctrl+O,它會提示你文件名是.nanorc。因為我們已經指定了文件名,直接按下回車,這三行就寫入到了.nanorc中。可以看到終端提示:[Wrote 3 lines],表示“寫入了3行”。
如果你完成了配置,那么可以按下Ctrl+X來退出nano。
下次你再啟動nano的時候,你會發現:鼠標被激活了,自動縮進也激活了,智能Home鍵也激活了。
配置文件可以大大提高我們的工作效率。
全局的nanorc和語法高亮
在每個用戶的家目錄中的.nanorc這個文件非常實用,因為它可以幫助你設置自己的nano選項。
但是,如果你的Linux系統中有幾十個用戶,你想要為所有這些用戶都激活nano的鼠標操作,難道你要登錄每一個用戶的賬戶,然后在他們各自的.nanorc中添加 set mouse這句話么?那上百個用戶呢?豈不是要累壞了。
Linux系統的開發者早就想到了這一點。事實上,nano有一個全局的配置文件,是為系統上所有用戶所公共調用的,也叫nanorc,但是在/etc中,是/etc/nanorc。這回nanorc前面沒有點了。
這個全局的nano配置文件只能被root用戶修改,因為是在系統文件夾/etc中。
在我們以前的課程Linux探索之旅 | 第二部分第三課:文件和目錄,組織不會虧待你中,我們介紹過/etc這個目錄,它里面存放系統的配置文件。一般為所有用戶共用。
因此,如果我們要修改這個文件,建議用sudo命令。
sudo nano /etc/nanorc復制代碼輸入你的用戶密碼,就打開了這個配置文件,如下圖:
可以看到這個配置文件內容就很多了,當然也有很多是注釋,也就是以#開頭的。你可以向下滾動這個文件,會發現有300行(小編的情況)。
在這個配置文件里,有所有可以放置在你自己的.nanorc中的語句。比如 set autoindent。但是這些配置語句都是以#開頭,就是說默認是注釋掉的,也就是說在全局說來,這些配置語句不生效。如果你在/etc/nanorc中把那些配置語句前面的#去掉,就會對全局用戶生效了。
在這個/etc/nanorc文件的結尾處,你會看到有一塊專門設置語法高亮(就是文本會有顏色之分)的區域,如下圖:
比如,有C/C++代碼的語法高亮,nanorc文件的語法高亮,CSS文件的語法高亮,下面還有很多類型的文件的語法高亮。
在小編的情況,這些include前面并沒有#,就是說語法高亮對所有用戶都是開啟的,但你的情況也許每個include語句前面有#號,表示沒有開啟全局的語法高亮,建議刪除那個#,來開啟。
按Ctrl+O來保存修改,然后Ctrl+X退出。當然,也可以直接Ctrl+X,它問你是否保存修改,輸入y(表示yes,“是”)或n(表示no,“不是”)或Ctrl+C取消。
通過.bashrc配置終端
對于nano,我們有一個配置文件叫.nanorc。其實對于我們的終端,也有一個配置文件,叫做.bashrc,這是用戶個人的終端配置文件。在小編的情況,位于 /home/oscar/.bashrc
這個文件一般來說是默認存在的。不像我們的.nanorc可能還要自己創建。
我們打開家目錄下的終端配置文件看看,只要輸入以下命令:
nano ~/.bashrc復制代碼.bashrc文件比較復雜,初看可能會有點眼花繚亂的感覺。我們暫時不會深入學習它的語法,因為其實bash是一種shell。
我們以后的課程會重點來學習shell。暫時只要理解了解shell是外殼程序(shell是英語“外殼”的意思),是用于解釋我們輸入終端的各種命令的。
Shell是一個用戶跟操作系統之間的一個命令解釋器,也就是用戶與Linux操作系統之間溝通的橋梁。
bash是最常用的一種shell程序,Ubuntu和大部分常見的Linux發行版默認的shell程序就是bash。
.bashrc就是bash這個shell程序的配置文件。
所以bashrc本身的語法也是bash的語法,是一種腳本語言。我們以后會學到,暫時不需要理解。
我們在之前的課程Linux探索之旅 | 第二部分第二課:命令行,世界盡在掌握中講過,我們可以通過配置文件來修改我們的命令行提示符:
oscar@oscar-laptop:~$復制代碼你的情況肯定和我不一樣,我們在以前的課程中也解釋過命令行提示符的各個部分的含義。
在.bashrc文件中,我們可以修改命令行提示符的樣式,如果你覺得目前的命令行提示符太繁瑣太長了,你可以把它改短一些,簡潔一些。
把我們的.bashrc文件向下拉,可以看到有好幾行類似這樣的:
上圖中,我們看到有PS1開頭的行。這個就是設置命令行提示符的樣式的。
\u表示用戶名(例如小編的用戶名是oscar),\h是電腦的名稱(小編的情況是oscar-laptop),@就是分割用戶名和電腦名的那個@號。等等。
如果你學過shell語法,那么你可以試著修改。
這里我們不帶大家修改了,因為比較復雜,對于初學者來說,不要把.bashrc文件搞亂了為好。
不過我們來學習一下如何將命令行提示符設為高亮(就是不再是白色的了,而是彩色的)。
看到有一行是#force_color_prompt=yes 了嗎?
去掉 #force_color_prompt=yes 最前面那個分號之后,保存退出,再啟動一個新的終端,可以看到我們的命令行提示符已經高亮顯示了,有顏色了,是不是感覺顏值瞬間提高了很多?嗯嗯。
創建別名
別名是這樣一些命令,在你運行時會轉換為其他命令。就好比我的英文名是oscar,那別人呼叫oscar的時候,我知道其實是叫我。
別名的英語是alias。如果我們向下查找我們的.bashrc文件,會發現有alias開頭的行,如下所示:
也不難理解:
當我們在終端輸入比如ll(兩個小寫的L),其實就是等同于 ls -alF
當我們在終端輸入比如la,其實就是等同于 ls -A
等等。
所以說,別名設置得好,可以降低我們的工作量,因為輸入ll總比輸入ll -alF簡單吧。
在.bashrc中創建別名的語法是這樣的:
alias name='command'復制代碼name就是別名的名字,而command就是替換別名的實際的終端命令。
全局的bashrc
之前的nano有全局的配置文件:/etc/nanorc
我們的終端所有的bash也有它的全局配置文件:/etc/bash.bashrc
對于每個用戶來說,家目錄下的.bashrc文件的優先級比系統的/etc/bash.bashrc文件高。
例如同樣的配置選項,如果.bashrc和/etc/bash.bashrc不同,那么以.bashrc的為準。
profile配置文件
在我們的家目錄下,其實還有一個.profile文件,而且它也有對應的全局profile文件,是 /etc/profile
profile在英語中是“外觀,輪廓”的意思。那么這個profile文件和bashrc有什么區別呢?
簡單來說是這樣的:
profile這個配置文件是用戶登錄的終端的配置文件,也就是我們以前學過的tty1~tty6這6個命令行終端(沒有圖形界面的,分別通過Ctrl+Alt+F1~F6進入)。profile是這些需要登錄的,非圖形界面的終端的配置文件。
bashrc這個配置文件是不用用戶登錄的終端,也就是我們一直在使用的終端形式,圖形化的終端的情況。這種終端是讀取.bashrc為配置文件的。
有一點需要記住:profile文件會調用.bashrc,所以其實我們修改了.bashrc,也就是間接修改了profile文件。因為profile文件會用profile本身的配置再加上.bashrc的配置。
可以用下圖幫助理解:
在我們修改了.bashrc和profile文件后,默認是在用戶下次登錄系統時才能生效。但是我們可以用source命令來使改動立即生效:
source .bashrc復制代碼source .profile復制代碼總結
文本編輯器也是一種程序,它可以打開文本文件(比如說Windows中的記事本就是一種文本編輯器),也可以用于修改文件內容(如果有寫的權限的話)。我們程序員經常用文本編輯器來編寫代碼,也會用它來修改配置文件。
有一些文本編輯器功能非常完善,可以做很多事情,例如Vim和Emacs。
Nano是最容易上手的文本編輯器之一,所以我們初學Linux的時候才會用它來做例子。
在Nano中我們可以用很多鍵盤快捷鍵來幫助我們:Ctrl+w用于查找;Ctrl+x用于退出;Ctrl+o用于保存,等等。
我們可以用Nano來修改.bashrc這個終端的配置文件,也可以修改.nanorc這個nano的配置文件。這樣我們就可以定制我們的軟件了。
第二部分第七課預告
今天的課就到這里,一起加油吧!
下一課我們學習:Linux探索之旅 | 第二部分第七課:軟件安裝,如虎添翼
微信公眾號「程序員聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮斗的軟件工程師。
我的簡介
我的經歷
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:“向著標桿直跑”
總結
以上是生活随笔為你收集整理的Linux 探索之旅 | 第二部分第六课:Nano 文本编辑器和终端配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 播放器 html 5,HTML5播放器
- 下一篇: 张小龙演讲4小时完整笔记(精华版)