1. 程式人生 > 資訊 >飛傲將釋出 14 週年紀念限量版耳機 FDX:鍍金 + 仿鑽鑲嵌,8 月 31 日亮相

飛傲將釋出 14 週年紀念限量版耳機 FDX:鍍金 + 仿鑽鑲嵌,8 月 31 日亮相

學習筆記

第一章

1.Unix/Linux

Unix:一種通用作業系統
Linux:一個類Unix系統

2.在虛擬機器上安裝Linux

下載安裝VirtualBox→建立VirtualBox虛擬機器→將Ubuntu安裝到VirtualBox VM上→調整螢幕解析度(後面會詳細寫到)

3.Unix/Linux命令:下面列出了Unix/Linux的常用命令

ls-檢視檔案資訊
cd-切換工作目錄
pwd-顯示當前路徑
mkdir-新建目錄
cat-用來檢視檔案內容
grep-指定檔案中搜索指定字元內容
find-查詢檔案命令
rm-刪除檔案或目錄
cp-複製檔案
mv-移動或重新命名檔案
clear-清除螢幕命令
ps

-檢視程序資訊

第二章

1.Linux中的文字編輯器

主要有vim、gerit、emacs,著重寫一下vim.vim編輯器是所有Unix及Linux系統下標準的編輯器,相當於記事本,vim可以當作vi的升級版本。vim有三種不同的操作模式,分別是命令模式、插入模式和末行模式。
命令模式:vim啟動時就處於預設的命令模式。在這個模式中,可以使用k、j、h、l分別將游標上下左右移動。
插入模式:當要輸入文字進行編輯,必須輸入i或a命令將vim切換到插入模式。其中i命令為插入文字,a命令為追加文字。要退出插入模式,按ESC鍵一次或多次即可。
末行模式:在命令模式下,輸入:進入末行模式,將文字檔案儲存為檔案或退出vim,具體有以下四個命令
:w:

寫入(儲存)檔案
:q:退出vim
:wq:儲存並退出
:q!:不儲存更改,強制退出

2.程式開發

(1)程式開發步驟

a.建立原始檔
b.用gcc把原始檔轉換成二進位制可執行檔案(gcc在後面也會詳細寫到)主要分為三步

3.靜態與動態連結

建立二進位制可執行檔案的方式有兩種,分別是靜態連結和動態連結,預設的二進位制可執行檔名為a.out。a.out檔案主要包括四個部分:檔案頭、程式碼段、資料段和符號表

4.GDB除錯工具

GDB是一個互動式除錯工具,可以除錯用C、C++等語言編寫的程式。在Linux中,可以用man gdb命令顯示gdb的手冊

問題及解決思路

1.關於VirtualBox調整解析度

這個暑假開啟虛擬機器時發現不知道為啥我原來的虛擬機器用不了了,所以為了重灌虛擬機器,也是順便複習一下大一學的知識,我就把所有東西都解除安裝了重新裝。前面的沒啥問題,主要還是調解析度這個老問題,大一的時候我就卡在這了。我發現書上說可以在命令列輸入“xdiagnose”就可以調整解析度,於是嘗試了一下,但是遇到了幾個問題

(1)調整步驟

我發現真正的調整步驟絕對不只是像書上說的那樣輕飄飄的一句在命令列輸入“xdiagnose”。首先要先輸入sudo apt-get install xdiagnose安裝xdiagnose,因為首次安裝系統大部分沒有這個軟體。安裝完了之後輸入sudo xdiagnose並輸入密碼,會出來幾個選項,勾選之後點選apply,再輸入sudo reboot重啟才算真正的完成。以上就是調整解析度的所有步驟

(2)無法獲得鎖xxx資源臨時不可用

這是我調解析度遇到的一個問題,上網查了資料後說是另一個程式正在執行,佔用了軟體源更新時的系統更新鎖,xxx即為系統鎖所在的目錄(太長了我沒記住)。導致資源不可用的原因是上次安裝時沒正常完成。因此只需要將原先的apt-get程序殺死,啟用新的apt-get程序,就可以正常工作了。首先ps檢視程序,如果有和apt相關的程序,直接kiil pid就行;如果沒有,就輸入rm命令刪除兩個檔案即可。但是遺憾的是這個方法也失敗了,最後只能採用暴力方法,就是重啟。沒想到重啟解決了問題。

2.gcc

雖然以前學過gcc,但是感覺還是掌握的不太紮實,這次正好複習複習。
用gcc編譯.c檔案並非直接生成.out檔案,中間還經歷了預處理、編譯、彙編和連結四個過程,如下圖:

其中用到的幾個指令:
-o:用來指定生成的檔名。比如gcc hello.c -o hw
-E:執行預處理操作,即生成.i檔案。比如gcc -E hello.c -ohello.i
-S:將.i檔案轉化為彙編程式碼.s檔案。比如gcc -S hello.i -o hello.s
-c:將.s檔案轉化為機器能執行的二進位制機器碼。比如gcc -c hello.s -o hello.o

最有收穫的內容和感悟

學習一二章最有收穫的內容就是徹底弄清了gcc吧,以前一直以為寫好程式碼就直接編譯成可執行檔案了,沒想到中間還有這麼多的步驟,檔案也是一步一步轉化。之前還不理解那個a.out檔案,後來發現在Linux系統中是a.out檔案,在Windows系統中就相當於exe檔案,這樣類比一下,其實也感覺不是太難的。然後我在閱讀課本的時候發現書上給的知識並不是全部,有很多東西需要自己去查資料。這也提示我以後每次看書不要總侷限於書上的知識,要多去課外拓展。