linux基礎學習

2021-08-10 13:08:05 字數 3120 閱讀 3644

一:gcc工具鏈

編譯指令

:1.   gcc test.c -o test      

生產test

可執行檔案

上述編譯過程是分為四個階段進行的:

(1)預處理:

gcc-e test.c -o test.i    

可以輸出

test.i

檔案中存放著

test.c

經預處理之後的**

(2)編譯:gcc-s test.i -o test.s

gcc的-s

選項,表示在程式編譯期間,在生成彙編**後,停止,

-o輸出彙編**檔案

(3)彙編:gcc-c test.s -o test.o

把組合語言變成機械二進位制語言

(4)連線:gcctest.o -o test

對於生成的

test.o

,將其與c標準輸入輸出庫進行連線,最終生成程式

test

2.  ./test    執行test檔案

3.   其餘的gcc指令:

-idir

:在標頭檔案的搜尋路徑列表中新增

dir目錄

-ldir 

:在庫檔案的搜尋路徑列表中新增

dir目錄

二.   make和makefile

1.   make

命令執行時,須要乙個

makefile

檔案,以告訴

make

命令須要怎麼樣的去編譯和鏈結程式。

2.   

makefile內容的核心是一系列的規則,這些規則告訴make程式要做的事以及做這件      事所依賴的條件。規則的基本格式是:

target:dependency

(tab字元)command

target(目標): 通常是要產生的檔案的名稱

dependency(依賴): 指用來輸入從而產生目標的檔案

command(命令):是make執行的動作,乙個規則可以有多條命令,每個命令佔一行。       命令列的第乙個字元是tab。    

三. gdb除錯工具

1.    gdb是

gnu的除錯工具,它可以跟蹤被除錯的程式,進行設定斷   點、單步執行等操作。當程式暫停執行時,可以使用命令檢視   程式中的變數值、

cpu的暫存器值、記憶體的值以及函式呼叫棧等資訊。

2.   倍除錯的程式編譯時要加  -g ,即

gcc -g text.c -o text

gdb text     對text進行除錯

啟動後進入gdb互動介面,可以輸入gdb指令開始除錯:

list    簡寫l         列出原碼

break   簡寫b         設定斷點

run     簡寫r         從頭開始執行,在斷點處停止

continue  簡寫c       從停止處繼續執行程式

next      簡寫n       向前執行一句(不進入被呼叫函式)

step      簡寫s       向前執行一句(進入被呼叫函式)

print     簡寫p       列印變數值

quit       簡寫q      退出gdb

四.  shell使用基礎

1.shell

是命令解析器,將使用者的輸入的指令轉化為機器可以執行的程式。

2.shell指令碼編譯格式是固定的,都以 #!/bin/bash或#!/bin/sh

3.執行指令碼的時候,要先將指令碼檔案的屬性改為可執行的:

chmod+x filename.sh

執行指令碼的方法是:

./filename.sh

4.條件判斷命令:

test n1 -引數 n2(或 –引數 表示式)

真返回0,假返回1。

引數:-lt 小於

-le小於等於

-gt  大於

-ge 大於等於

-eq 等於

-ne 不等於

test語句的等價形式[ 1 –lt 4 ]

5.檔案測試:

-f 存在且是普通檔案

-d 存在且是目錄

-s 存在且位元組數大於0

-r 存在且可讀

-w 存在且可寫

-x 存在且可執行

如:test -d 「mydoc」

判斷mydoc是否是目錄

6. for語句

for迴圈取一列值作為輸入並對迴圈中每個值執行迴圈

for variable_name in

do...

done

for i in `seq 1  9`

doecho `expr $i \* 10` 

done

或寫 echo $(expr $i \* 10)

乘號前加轉義符,與數字間要有空格。

Linux基礎學習

1.linux中沒有類似於windows中 登錄檔 這樣的二進位製表項,linux中所有軟體的配置都是通過文字檔案實現的。2.linux中命令列是提供使用者輸入命令的介面,其本身只接受輸入,然後將命令傳遞給命令編譯器。shell 是乙個程式,它在使用者和作業系統之間提供了乙個面向行的可互動介面 3....

linux基礎學習

1.檔名之前多乙個 則代表這個檔案為 隱藏檔案 2.chgrp 改變檔案所屬使用者組 chown 改變檔案所有者 chmod 改變檔案的許可權 r 4,w 2 x 1 3.檔案預設許可權 umask umask的分數值指的是 該預設值需要減掉的許可權 002表示的許可權被拿掉了2.4.檔案具有sui...

LINUX基礎學習

linux區分英文的大小寫。使用者與使用者組概念 linux是乙個提供多使用者多工的操作環境。root是最高端別的管理員,而對每乙個使用者來說各自會有自己的檔案和許可權,不同使用者之間一般不可以互相修改各自的檔案。當在linux下乙個開發團隊進行開發時,開發成員需要互相訪問團隊內某成員的檔案並修改,...