1. 程式人生 > >NOI Linux 快速入門指南

NOI Linux 快速入門指南

[TOC] ### 關於安裝 NOI Linux 這裡請參考 [NOI官方公告](http://www.noi.cn/gynoi/jsgz/2018-08-21/710467.shtml) 下載 NOI Linux 光碟映像檔案,之後按照安裝說明文件進行安裝。 如果將其安裝為虛擬機器,推薦使用 Vmware。建立虛擬機器的過程中您可能會出現一系列問題,您可以根據具體問題自行百度。 ### 系統配置 經過漫長的安裝過程,終於到了開機介面。 這裡的預設密碼為 123456 。 ![開機](https://cdn.luogu.com.cn/upload/image_hosting/8i8fht6a.png) #### 網路 開機之後,如果你可以聯網的話當然要先聯網。 如果你的 NOI Linux 是虛擬機器,並且連不上網,這多半是虛擬機器的問題,不是系統的問題。請參照[這個](https://blog.csdn.net/qq_36838191/article/details/88634351)嘗試修復。 當然,如果對你來說聯網有點困難,不聯網也是可以進行程式設計的(真正考試的時候也不會讓你聯網)。 #### 輸入法 NOI Linux 是自帶中文輸入法的。這非常的友好。 當你想要使用中文時,在輸入框下,只需要按 Ctrl + Shift 就可以切換為中文了。 ![中文](https://cdn.luogu.com.cn/upload/image_hosting/uhlyc0zh.png) ### 編輯器 #### 1. gedit NOI Linux 有許多編輯器(不是編譯器),經過一番初體驗,我覺得 gedit 還是比較陽間的。 ##### 開啟 下面這張圖裡放的主要是系統自帶的編譯器及編輯器還有評測系統。但是這裡面的編輯器和編譯器用起來實在是令人窒息,全都沒有括號補全功能,而且有的編輯介面令人不忍直視。 ![編輯器](https://cdn.luogu.com.cn/upload/image_hosting/zjym9pck.png) 接下來我要講的 gedit 不在上圖中,開啟方式如下: 1. 右鍵桌面,新建空白文件,**命名為 work.cpp** (必須)。 ![txt](https://cdn.luogu.com.cn/upload/image_hosting/fgskemj6.png) 2. 右鍵新建的文件,在彈出的框框中如果第一個就是 gedit,那麼直接點選。如果不是 gedit,則查詢其他應用程式,選擇 gedit。 ![more](https://cdn.luogu.com.cn/upload/image_hosting/19j9ds04.png) ![gedit](https://cdn.luogu.com.cn/upload/image_hosting/qqcmw4fz.png) ##### 配置 開啟 gedit 之後,直接用可能會有點不舒服,你可以按照 /編輯/首選項 來把編輯器改成你想要的風格。 另外,裡面有個自動儲存的功能,建議小於十分鐘儲存一次。 ![首選項](https://cdn.luogu.com.cn/upload/image_hosting/r6v97h7r.png) 注意:這個編輯器也沒有括號自動補全的功能,這也就需要選手熟悉沒有括號補全的編輯器。 ##### 外觀展示 ![code1](https://cdn.luogu.com.cn/upload/image_hosting/ax1hcy3f.png) #### 2. vim 這個東西非常強大,可以實現括號補全,但是需要自己配置,配置起來比較麻煩。 ##### 開啟 在 NOI Linux 下,可以使用終端開啟 vim 。 1. Ctrl + Alt + T 開啟終端 2. 輸入 `vim` 之後回車 ![vim](https://cdn.luogu.com.cn/upload/image_hosting/tsy0ika5.png) ![vim2](https://cdn.luogu.com.cn/upload/image_hosting/h3k9mt34.png) ##### 配置 之後,如果你想要繼續學下去的話,可以參照大佬們的部落格。 [https://www.cnblogs.com/heyboom/p/10522059.html]() 在這裡,關於 vim 的詳細用法,我就不再講解。 ### 使用 makefile 編譯執行 #### 1. 編寫 makefile NOI Linux 下的編譯方法有很多。這裡,我只講一個較為簡潔而方便的方法,那就是 **makefile** 。 我們以桌面為工作區。 工作區就是你寫程式碼,編譯的地方。 先在桌面上建一個檔案,命名為 `makefile` ,沒有副檔名,將這個檔案和 `work.cpp` 放在同一目錄下。 ![makefile1](https://cdn.luogu.com.cn/upload/image_hosting/khfvy5mw.png) 使用 gedit 開啟 `makefile`,在裡面輸入以下內容: ```js 名字隨便起:work g++ work.cpp -o work ./work ``` 注意: 1. 第一行的 `名字隨便起` 是可以替換的。例如,你可以將它換成 `qwq` 等,甚至它的名字就可以是 `名字隨便起`。 2. 第二行和第三行之前是一個 Tab 鍵,並不是幾個空格。你可以將上面 Tab 字元複製過去。 儲存並關閉檔案。 #### 2. 修改終端預設路徑 之後,我們需要將開啟終端時的預設路徑修改為我們的工作區,也就是桌面。操作方法如下: 1. 開啟 `/Home/` ![home](https://cdn.luogu.com.cn/upload/image_hosting/gwrytciv.png) 2. 顯示隱藏檔案 ![34](https://cdn.luogu.com.cn/upload/image_hosting/ev8w1lnr.png) 3. 找到檔案 `.bashrc` 並用 gedit 開啟。 4. 在末尾新增 ``` cd /home/noilinux/Desktop/ ``` 效果如下圖: ![cd](https://cdn.luogu.com.cn/upload/image_hosting/rs7hyj4o.png) 儲存並關閉檔案。 之後,我們可以愉快地編譯了! 注意:如果你不想把工作區放在桌面,而是某一個資料夾,這個路徑你可以改為你的資料夾地址。 #### 3. 編譯 首先確保 `work.cpp` 沒有編譯錯誤,再按 Ctrl + alt + T 開啟終端,輸入 `make` 之後回車 。 效果如下: ![makeok](https://cdn.luogu.com.cn/upload/image_hosting/e3fxu1hs.png) 注意:你的程式輸出最後需要額外回車一行,否則你輸出之後會造成一些無法描述的情況,看起來特別☹️️。 **結尾不回車**的樣子: ![non](https://cdn.luogu.com.cn/upload/image_hosting/btiggki2.png) 如果說我們編譯錯誤了,終端會返回編譯錯誤的資訊。 **編譯錯誤**的樣子: ![error](https://cdn.luogu.com.cn/upload/image_hosting/i5qq5yj6.png) 當然,編譯的時候我們只能用 `work.cpp` 這一個文件。正常考試的時候有多道題。我們可以打完一個題之後,將程式另存為另一個檔案。然後把 `work.cpp` 清空,繼續編寫下一個題。 總之,我們只能編譯 `work.cpp` 這個程式。而編譯過程只需要開啟終端,輸入一個 `make` 指令,就可以完成編譯了。編譯的過程順便也運行了以下程式。是不是很方便快捷呢?! #### 4. 編譯開關 如果說,我們需要顯示所有警告資訊;或者題目非常優秀,給我們開 C++11 , 而且給我們開 O2 優化。那麼,這些編譯開關我們怎麼自己開呢? 命令列編譯的基本格式: ``` g++ work.cpp -o work 編譯開關 ``` 那麼,我們只需要在 `makefile` 裡面新增編譯開關即可。 比如說要新增 ``` -Wall -Wextra -std=c++11 -Ofast ``` 正確的操作是這樣的: ![kaiguan](https://cdn.luogu.com.cn/upload/image_hosting/j76dyx8r.png) 儲存檔案並退出。 接下來,我們試一下編譯開關有沒有開上。 我們知道,當我們在程式裡定義了一個變數,如果接下來變數沒有使用,那麼它會發出警告。我們可以利用這個特性來判斷我們有沒有開上編譯開關。 ![suchas](https://cdn.luogu.com.cn/upload/image_hosting/hjk3ycpd.png) 開啟終端,輸入 `make` 後回車。 如果你的終端像下圖這樣,那麼你就成功了。 ![wall](https://cdn.luogu.com.cn/upload/image_hosting/omg9d3u7.png) 至此,我們就完成了編輯、編譯和執行的工作。這樣幾乎已經滿足了考試的需要。 ### 總結 關於 NOI Linux 的使用,我就先探索到這裡。 這篇部落格僅僅是一個快速入門指南,主要是為了幫助沒有用過該系統的選手快速適應環境。 如果你需要 GDB 除錯,你可以使用 GUIDE ,當然教程需要上網搜尋大佬的部落格…… 如果你有更好的建議,或者我的表述出現了某些問題,歡迎在下方評論留言。 2021 是充滿機遇的一年。期待在這一年裡大家學業有成,事業順利,**RP++**!

EdisonBa

2021.2.1 初次編