gcc:(編譯器)
-v 顯示gcc版本。
--h 顯示幫助。
-o 重命名文件。例:gcc test.c -o main.out
-E 將源文件預處理但不編譯。例:gcc test.c -E -o test.i
-c 將源文件編譯爲工程文件。例:gcc test.c -c -o test.o
-S 將源文件翻譯爲彙編。例:gcc test.c -S -o test.s
-O 優化等級,用來對源文件優化,最高爲-O3。例:gcc test.c -S -O2 test.s #這裏設定優化等級爲O2,值得注意的是,如果源文件使用了某個頭文件中的內聯函數,當沒有-O參數,內聯函數將不會在程序中展開。優化等級越高,程序編譯越慢。
-m32 告訴編譯器編譯爲32位程序。例:gcc test.c -m32 -o test.out
-x 指定語言(c/c++),建議將命令參數放在源文件名之前。例:gcc -x c test.c #或 gcc -x c++ test.c
-shared 動態庫編譯,鏈接動態庫
-fPIC(或-fpic) 生成使用相對地址無關的目標代碼。例: gcc -shared -fPIC -o libtest.so test.c //動態庫後綴名爲so
-g 調試選項,使用該參數,會生成含有調試信息的應用程序,如果想要使用gdb來調試程序,那麼必須加上此項。例:gcc -g -o test.out text.c
ld:(鏈接器)
-o 重命名文件。例:ld -o main.o test.c
-Ttext 指定程序的入口地址。例:ld -Ttext 0x7c00 test.c
-N 不對齊數據。
-m 指定仿真模型(即運行的平臺),輸入ld --help查看。例:ld -m elf32-i386 tets.c #注意,如果是在windows下的ld(MingW),與linux是不同的。常用的是-m i386pe。
-e 指定入口標號,比如主函數(一般是main())爲sys(),則要使用-e _sys。例:gcc -e _sys test.c #gcc中在函數名前加一個下劃線表示這是一個函數,用來區分函數體。可以使用gcc的-S參數來將源文件翻譯爲彙編文件。
make:
-B 無條件make所有目標
-C make時先進入制定的目錄,例:make -C test #先進入test目錄再make
-f 指定makefile文件,例:make -f test/makefile #使用test目錄下的makefile文件
objcopy:
-S 刪除所有符號和重定位。
-O 轉換輸出文件的類型。例:objcopy -O binary test.out test.bin
-j 指定要截取的段。例:objcopy -j .text -j data test.out test.bin #具體段參見AT&T彙編
objdump:
-b 說明要處理的文件類型。
-d 將代碼段反彙編。
-D 反彙編所有段。
-m 指定指令集,使用objdump --help可以在最後找到支持的指令集。
> 設定輸出文件。例:objdump -b binary -D -m i386 main.bin > main.txt #這裏將一個二進制文件main.bin 進行反彙編,結果輸出到main.txt
-j 指定要反彙編的段。例:objdump -d test.out -j .text -j .data
-S 反彙編時,將源代碼和反彙編代碼交替顯示,編譯時需要加入-g選項。例:objdump -S -d test.out
-l 反彙編時插入源代碼的行號和文件名
dd:
if 指定輸入文件。
of 指定輸出文件。
bs 指定最小塊的大小。
count 指定塊數。
例:dd if=/dev/zero of=test.bin bs=512 count=2 #這裏生成一個名爲test.bin,大小爲512*2字節,全部都是0的文件。/dev/zero可以當作一個全部都是0的文件。
skip 指定輸入文件的偏移量。
seek 指定輸出文件的偏移量。
conv 用指定的參數轉換文件。其中,conv=notrunc 表示不截短輸出文件,比如輸入文件的大小小於輸出文件,不指定該參數,輸出的文件會變短。
ar:
-c 創建一個庫,不管這個庫存在與否。
-r 插入模塊。
-s 寫入目標索引到庫中。
例:ar -rcs lib.a a.o b.o c.o #將a.o b.o c.o三個工程文件打包進lib.a中。簡單來講,通常情況下編譯文件:ld test.o a.o b.o c.o -o test.out ,用ar打包後:ld test.o lib.a -o test.out。可以簡化文件的編譯量。
-v 程序執行時顯示詳細信息。
zip:
例:zip -r test.zip abc #將abc目錄壓縮成zip文件
unzip:
例:unzip test.zip #解壓test.zip
mv:
例:mv 123.txt test #將123.txt移入test目錄
pwd:
#顯示當前目錄的絕對路徑
tar:
*.tar 用 tar –xvf 解壓
*.tar.gz和*.tgz 用 tar –xzf 解壓
*.tar.bz2用tar –xjf 解壓
*.tar.Z 用tar –xZf 解壓
*.tar.xz 先用xz -d 解壓,然後用tar -xvf解壓
clear:
#清空屏幕
rm:
例:rm -f test.txt #強制刪除test.txt