1、fdisk打不開, 、/dev/sdb: 沒有那個文件或目錄解決
簡單的說就是插入優盤,Sdb,具體過程是,我剛開始應用fdisk -l是會出現fdisk權限不夠,dev/sdb權限不夠,後來應用root模式,還是這樣。我加入優盤後出現下面情況,,整個指令敲得過程,看截圖。
後兩個表中的命令含義:
p顯示現有的分區
n建立新分區
t更改分區類型
d删除現有的分區
a更改分區啟動标志
w對分區的更改寫入到硬盤或者存儲器中。
q不保存退出。
由于我的 U 盤裡面還有一些重要的文件,所以現在不能進行分區,這裡現在就不演示 fdisk的分區操作了,後面我們講解裸機例程的時候需要将可執行的 bin 文件燒寫到 SD 卡中,燒寫到 SD 卡之前需要對 SD 卡進行分區,到時候在詳細講解如何使用 fdisk 命令對磁盤進行分區。
、格式化命令 mkfs
使用命令 fdisk 創建好一個分區以後,我們需要對其格式化,也就是在這個分區上創建一個
文件系統,Linux 下的格式化命令為 mkfs,命令格式如下:
mkfs
[參數] [-t 文件系統類型]
[分區名稱]
主要參數如下:
fs指定建立文件系統時的參數
-V顯示版本信息和簡要的使用方法。
-v顯示版本信息和詳細的使用方法。
比如我們要格式化 U 盤的分區/dev/sdb1 為 FAT 格式,那麼就可以使用如下命令:
mkfs –t vfat /dev/sdb1
挂載分區命令 mount
我們創建好分區并且格式化以後肯定是要使用硬盤或者 U 盤的,那麼如何訪問磁盤呢?比
如我的 U 盤就一個分區,為/dev/sdb1,如果直接打開文件/dev/sdb1 會發現根本就不是我們要的結果。我們需要将/dev/sdb1 這個分區挂載到一個文件夾中,然後通過這個文件訪問 U 盤,磁盤挂載命令為 mount,命令格式如下:
mount
[參數] -t
[類型] [設備名稱] [目的文件夾]
命令主要參數有:
-V顯示程序版本。
-h顯示輔助信息。
-v顯示執行過程詳細信息。
-o ro隻讀模式挂載。
-o rw讀寫模式挂載。
-s-r 等于-o ro。
-w 等于-o rw。
挂載點是一個文件夾,因此在挂載之前先要創建一個文件夾,一般我們把挂載點放到“/mnt”
目錄下,在“/mnt”下創建一個 tmp 文件夾,然後将 U 盤的/dev/sdb1 分區挂載到/mnt/tmp 文件
夾裡面,操作如圖
、卸載命令 umount
當我們不再需要訪問已經挂載的 U 盤,可以通過 umount 将其從卸載點卸除,命令格式如
下:umount [參數] -t
[文件系統類型]
[設備名稱]
-a卸載/etc/mtab 中的所有文件系統。
-h顯示幫助。
-n卸載時不要将信息存入到/etc/mtab 文件中
-r如果無法成功卸載,則嘗試以隻讀的方式重新挂載。
-t<文件系統類型>
僅卸載選項中指定的文件系統。
-v 顯示執行過程。上面我們将 U 盤挂載到了文件夾/mnt/tmp 裡面,這裡我們使用命令 umount 将其卸載掉
2、Linux C 編程記錄vim修改和編輯流程
主要是vim的控制文件修改過程,需要在root模式下進行修改
3、gcc編譯器
在上一小節我們已經使用過 GCC 編譯器來編譯 C 文件了,我們使用到是 gcc 命令,gcc 命
令格式如下:
gcc
[選項] [文件名字]
主要選項如下:
-c:隻編譯不鍊接為可執行文件,編譯器将輸入的.c 文件編譯為.o 的目标文件。
-o:<輸出文件名>用來指定編譯結束以後的輸出文件名,如果不使用這個選項的話 GCC 默
認編譯出來的可執行文件名字為 a.out。
-g:添加調試信息,如果要使用調試工具(如 GDB)的話就必須加入此選項,此選項指示編
譯的時候生成調試所需的符号信息。
-O:對程序進行優化編譯,如果使用此選項的話整個源代碼在編譯、鍊接的的時候都會進
行優化,這樣産生的可執行文件執行效率就高。
-O2:比-O 更幅度更大的優化,生成的可執行效率更高,但是整個編譯過程會很慢。
GCC 編譯器的編譯流程是:預處理、編譯、彙編和鍊接。預處理就是展開所有的頭文件、替換程序中的宏、解析條件編譯并添加到文件中。編譯是将經過預編譯處理的代碼編譯成彙編代碼,也就是我們常說的程序編譯。彙編就是将彙編語言文件編譯成二進制目标文件。鍊接就是将彙編出來的多個二進制目标文件鍊接在一起,形成最終的可執行文件,鍊接的時候還會涉及到靜态庫和動态庫等問題。上一小節演示的例程都隻有一個文件,而且文件非常簡單,因此可以直接使用 gcc 命令生成可執行文件,并沒有先将 c 文件編譯成.o 文件,然後再鍊接在一起。
4、Makefile 基礎
何為 Makefile
上一小節我們講了如何使用 GCC 編譯器在 Linux 進行 C 語言編譯,通過在終端執行 gcc 命令來完成 C 文件的編譯,如果我們的工程隻有一兩個 C 文件還好,需要輸入的命令不多,當文件有幾十、上百甚至上萬個的時候用終端輸入 GCC 命令的方法顯然是不現實的。如果我們能夠編寫一個文件,這個文件描述了編譯哪些源碼文件、如何編譯那就好了,每次需要編譯工程的時隻需要使用這個文件就行了。這種問題怎麼可能難倒聰明的程序員,為此提出了一個解決大工程編譯的工具:make,描述哪些文件需要編譯、哪些需要重新編譯的文件就叫做 Makefile,Makefile 就跟腳本文件一樣,Makefile 裡面還可以執行系統命令。使用的時候隻需要一個 make命令即可完成整個工程的自動編譯,極大的提高了軟件開發的效率。如果大家以前一直使用 IDE來編寫 C 語言的話肯定沒有聽說過 Makefile 這個東西,其實這些 IDE 是有的,隻不過這些 IDE對其進行了封裝,提供給大家的是已經經過封裝後的圖形界面了,我們在 IDE 中添加要編譯的C 文件,然後點擊按鈕就完成了編譯。在 Linux 下用的最多的是 GCC 編譯器,這是個沒有 UI的編譯器,因此 Makefile 就需要我們自己來編寫了。作為一個專業的程序員,是一定要懂得Makefile 的,一是因為在 Linux 下你不得不懂 Makefile,再就是通過 Makefile 你就能了解整個工程的處理過程。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!