實驗一:基本命令與開發工具
一、實驗目的
- 熟練掌握Linux系統中的常用命令。
- 熟練使用Linux系統中的常用開發工具。
二、實驗環境
Ubantu或Centos
三、實驗內容
- Linux系統中的常用命令
- 文件操作命令
- 權限管理命令
- 網絡管理命令
- 網絡通信命令
- Vi編輯器
- Vi命令
- 模式切換
- GCC編譯器
- GCC編譯流程
- 單文件編譯
- 多文件編譯
四、實驗步驟
1. Linux系統中的常用命令
文件操作命令
ls
:使用ls命令查看文件和目錄
pwd
:使用pwd命令查看當前路徑
mkdir
:使用mkdir命令創建目錄
cd
:使用cd命令切換目錄
touch
:使用touch更新文件wuwenjie的時間標籤
cp
:使用cp命令複製文件
mv
:使用mv命令移動文件
rm
:刪除目錄或文件
rmdir
:使用rmdir命令刪除目錄
cat
:使用cat命令查看文件內容
more
:使用more命令查看文件內容
head/tail
:使用head/tail命令查看文件內容
權限管理命令
chmod
:使用chmod命令更改文件權限
chown
:使用chown命令更改文件所有者
chgrp
:使用chgrp命令更改文件的所屬組
網絡管理命令
ifconfig
:使用ifconfig命令查看網絡配置
netstat
:使用netstat命令查看網絡狀態
ping
:測試網絡狀態
2. Vi編輯器
3. GCC編譯器
GCC編譯流程
gcc –E hello.c –o hello.i //預處理
預處理階段主要處理源代碼中以“#”開頭的預編譯指令和一些註釋信息,處理規則如下:
- 刪除代碼中的
#define
,展開所有宏定義; - 處理條件編譯指令,如
#if
、#ifdef
、#undef
等; - 將由
#include
包含的文件插入到預編譯指令對應的位置,若文件中包含其它文件,同樣進行替換 - 刪除代碼中的註釋;
- 添加行號和文件標識;
- 保留
#pragma
編譯器指令。
gcc –S hello.i –o hello.s //編譯
在編譯階段,GCC會對經過預處理的文件進行語法、詞法和語義分析,確定代碼實際要做的工作,若檢查無誤,則生成相應的彙編代碼文件。
gcc –c hello.s –o hello.o //彙編
該過程將編譯後生成的彙編代碼轉換爲機器可以執行的命令,即二進制指令,每一個彙編語句幾乎都會對應一條機器指令。
gcc hello.o –o hello //鏈接
鏈接的過程是組裝各個目標文件的過程,在這個過程中會解決符號依賴和庫依賴關係,最終生成可執行文件。
./hello //執行
根據以上步驟編譯程序,過程中可使用vi命令打開過程文件,查看文件內容。
單文件編譯
gcc hello.c //直接編譯生成可執行文件
默認可執行文件名爲a.out,在命令行輸入./a.out,觀察執行結果。
多文件編譯
使用vi編輯器創建文件_add.h、_add.c、_main.c,其中的代碼分別如下:
_add.h
//頭文件,加法函數聲明
int _add(int a,int b);
_add.c
//加法函數定義
#include "_add.h"
int _add(int a,int b)
{
int c = a + b;
return c;
}
_main.c
//主函數文件
#include <stdio.h>
#include "_add.h"
int main()
{
int a = 10;
int b = 5;
int c = _add(a,b);
printf("c = %d\n",c);
return 0;
}
使用gcc編譯多個文件
gcc _main.c _add.c –o _main //多文件編譯生成可執行文件_main
./_main //執行可執行文件_main
執行結果爲:c = 15
五、實驗總結
對於Linux的學習,我們應該know how,再know why,適當的囫圇吞棗還是比較好的學習方式。