linuxc學習記錄day2

2021-08-21 14:25:34 字數 3766 閱讀 5475

前天做了個入門,學了一些linux的基本操作,檔案的操作命令等,經過一天的鞏固,今天又來了一堆乾貨,很雜,但是很有用

上**(簡單命令)

今天跟明天下午自習的任務基本就是linux下c語言的相關知識了

編譯器;編譯器;偵錯程式;makefile檔案等

i           在游標前輸入文字

i           在當前行開始輸入文字

a          在游標後輸入文字

a          在當前行末尾輸入文字

o          在當前行後輸入新一行

o          在當前行前輸入新一行

游標移動命令:

b      移動到當前單詞的開始  

e      移動到當前單詞的結尾 

w     向後移動乙個單詞

h      向前移動乙個字元 ←

j         向下移動一行 ↓

k      向上移動一行 ↑

l       向後移動乙個字元 →

刪除命令:

x      刪除游標所在的字元

dw    刪除游標所在的單詞

d$     刪除游標至行尾所有字元

d      同

dd     刪除當前行

ndd   刪除當前行以後的n行

改變與替換操作命令:

r      替換游標所在的字元

r      替換字串行

cw    替換乙個單詞

ce    同cw

c$    替換自游標位置至行尾的所有字元

c      同c$

cc     替換當前行

拷貝和貼上命令:

yw     將游標所在單詞複製到貼上板   

y$     將游標至行尾的字元複製到貼上板

y       同y$

yy      將當前行複製到貼上板

nyy    將當前行後的n行複製到貼上板

p       將貼上板中的內容貼上在游標前

p       將貼上板中的內容貼上在游標後

其他有用的命令:

ng                跳到第n行  

u                  撤銷

.                重做

配對括號的查詢:

用法:將游標移動到乙個括號上,按下%,游標跳轉到其配對的括號上

{}、()

頁面操作:

ctrl + b              #向前移動一頁 

ctrl + f               #向後移動一頁

zz                     #將當前行置於螢幕**

gg                     #移動到第一行行首

g                      #移動到最後一行行首

數字 + 命令:

ng                     #跳到第n行

nx                     #刪除n個字元

ndd                   #刪除當前行以後的n行

nyy                   #將當前行後的n行複製到貼上板

n+                    #向後跳轉n行

n-                     #向前跳轉n行

n↑↓←→         #向上下左右跳轉n次

以上為命令列模式下指令

設定vi:

:set number等於:set nu      顯示行號

: set nonumber等於:set nonu  隱藏行號

:set autoindent             智慧型縮排

:set mouse=a                開啟滑鼠

檔案儲存及退出命令:

:q                     不儲存退出

:q!                    不儲存強制性退出

:w                     儲存編輯  

:w filename        另存為檔案 filename

:wq                   儲存退出

:x                      同 :wq

zz                     同 :wq

查詢命令:

/abc    向後查詢abc

?abc    向前查詢abc

n         向後繼續查詢

n         向前繼續查詢

替換與查詢:

查詢+替換:

:s/old/new                  替換該行第乙個old為new

:s/old/new/g               可以替換全行中所有的old為new

:#,#s/old/new/g          替換兩行之間出現的old為new,#,#為兩行的行號

:%s/old/new/g             替換全文的old為new

:%s/old/new/gc           全文替換前需確認

以上為底行模式命令

插入模式即為正常輸入**

第二個重要知識點為gcc編譯器和gbd偵錯程式

在我看來,gcc編譯器是乙個強大的編譯程式,負責c語言與二進位制機器碼之間的轉換

而gbd偵錯程式是用來檢驗程式功能實現的重要工具,只不過不是基於圖形介面,而是用**操作

.c為字尾的檔案,c語言源**檔案;

.h為字尾的檔案,是程式包含的標頭檔案;

.i為字尾的檔案,是已經預處理過的c源**檔案;

.s為字尾的檔案,是組合語言源**檔案

.o為字尾的檔案,是編譯後的目標二進位制檔案;

分別對應4個過程的原始檔與目標檔案

有幾點要注意:

(1)gcc example.c -o example      #直接生成可執行檔案

(2)./example                             #執行可執行檔案

(3)若不使用 -o 則生成可執行檔案 a.out

(4)linux標頭檔案預設放在/usr/include中

至於gbd偵錯程式,只要記住一些功能就行了:

1、   l(list)                 #一次列出10行**(list n,m   #列出n~m行)

2、   r(run)                #執行程式(未設定斷點,將程式執行完畢)

3、   b(break)             #b+行號,在該行設定斷點

4、   c(continue)         #當程式執行時,繼續執行程式,直到遇到斷點

5、   i b(info break)     #檢視斷點資訊

6、   d+編號               #(delete)刪除該斷點(d刪除所有斷點)

7、   clear+行號          #刪除指定行斷點(不加行報錯)

8、   p(print)              #p+變數名,顯示變數的值

9、   s(step)               #單步執行(進入呼叫函式)

10、 n(next)               #不進入呼叫的函式,只在主函式中執行

11、 return/finish        #退出step進入的呼叫函式

12、 q(quit)               #退出gdb除錯

今天的**量感覺很多知識很雜,但是通過理解來記憶的話,也不是很難,一小步而已,但確實在進步。

Linux學習記錄 day2

linus常用指令 1.ls alst 2.pwd 3.mkdir mp m設定目錄的許可權 p巢狀建立 4.rmdir 刪除空目錄 5.cp adprfiu 6.rm 刪除檔案或目錄 7.mv 移動檔案或目錄或更改檔名 8.文字編輯器 vim u撤銷 n dd 剪下 n yy複製 p貼上游標下一行...

記錄C語言學習Day2

今天為了幫親戚家小孩輔導,寫了段 主要是給出一元二次方程組的解的各種情況 include include include void meaningless 宣告當判別式小於0時用到的函式 void single int a,int b,int c 宣告當判別式等於0時用到的函式 void doubl...

機器學習 day2

歸一化 將所有資料轉化到同一標準下,使的某乙個特徵對最終結果不會造成更大的影響。通過對原始資料進行變換把資料對映到 預設為 0,1 之間 問題 如果資料中異常點過多,會有什麼影響?最大值最小值會受影響。方差考量資料的穩定性。標準化 將所有資料進行變換到平均值為0,標準差為1之間。standardsc...