vim
命令移動 hjkl
gcc
-o 生成的名字
-i./include 頭檔案目錄
-d debug 指定巨集
-o 優化程式(+1,2,3)
-wall 輸出警告資訊
-g 新增除錯資訊(gdb) 檔案變大
-e 生成預處理檔案 .i檔案
-s 生成彙編檔案(編譯) .s檔案
-c 二進位制檔案 .o檔案
gcc *.o -o test test為可執行檔案 test.out
-l 指定靜態庫的目錄
製作靜態庫
打包.o檔案
lib + name + .a
ar rcs + name(*.a) + all(.a)
標頭檔案體現介面
不指定-o就是.c變成.o檔案
例如 : ar rcs lib.a *.o
mv filemame 目錄
使用者只有include 和 lib *.h裡只有介面
靜態庫呼叫
1. gcc main.c lib/*.a -o name
lib裡的庫 libmycalc.a -> mycale
nm *.a 檢視庫
可執行程式只打包需要的.o庫檔案
發布程式不需要提供對應的庫,速度快.體積大,庫發生了改變需要重新編譯程式.
共享庫(動態庫)(win *.dll)
不被打包到可執行程式中
lib + name + .so
生成與位置無關的.o
gcc -fpic -c *.c
gcc -shared -o libmycalc.so *.o -iinclude
libmycalc.so為動態庫
使用:ldd 檢視可執行檔案所有依賴的動態庫
.bss 未初始化的全域性變數
.data 已經初始化的全域性變數
ps aux | grep ***
a 使用者
u 顯示程序所屬使用者
x 沒有終端的程序
| 指令一的輸出作為指令二的輸入
kill -l 檢視訊號
kill -sigkill 5179
kill -9 5179
ssh 192.168.40.119@he
tar壓縮解壓
c 建立
x 解壓
v 顯示提示資訊
f 指定壓縮檔案的名字
必須使用z或者j
z 使用gzip方式
.gzj 使用bizp2方式 .bz2
tar zcvf ***.tar.bz2 +目錄檔案
gdbgcc -g
gdb 檔案名字
list 行號
list 檔名:行號(函式名)
設定斷點:
b 行號
b 檔名:行號(函式名)
設定條件斷點:
b 行號 if value == 23
檢視斷點資訊:
info b
刪除斷點:
d 斷點編號
除錯只執行一行** start
繼續執行 continue -- c
直接停在斷點處 run -- r
單步除錯
進入到函式體:step -- s
跳出函式體: finish
不進入函式體: next -- n
追蹤變數:
自動列印變數的值 dispaly 變數名
取消變數的追蹤 undispllay 編號
獲取編號 info display
手動列印變數的值 print -- p
獲取變數的型別 ptype
跳出迴圈 u
退出gdb quit
open
開啟檔案
open("hello.c", o_rdwr);
建立檔案
open("myhello", o_rdwr|o_creat, 0777); //許可權是八進位制數字
umask 022
判斷檔案是否存在
open("myhello", o_rdwr | o_creat|o_excl, 0777);
將檔案截斷為0
open("myhello", o_rdwr | o_trunc);
lseek
獲取檔案大小
lseek(fd,0,seek_end);
檔案拓展
lseek(fd, 2000, seek_end);
實現檔案拓展,在做一次寫操作
write(fd, "a", 1);
空洞檔案的用處
通過指定相對於開始位置、當前位置或末尾位置的位元組數來重定位 curp,這取決於 lseek() 函式中指定的位置函式原型:
#include #include off_t lseek(int fd, off_t offset, int whence);
引數說明:
fd:檔案描述符
offset:偏移量,該值可正可負,負值為向前移
whence:搜尋的起始位置,有三個選項:
(1).seek_set: 當前位置為檔案的開頭,新位置為偏移量大小
(2).seek_cur: 當前位置為檔案指標位置,新位置為當前位置加上偏移量大小
(3).seek_end: 當前位置為檔案結尾,新位置為偏移量大小
返回值:檔案新的偏移值
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下乙個開發團隊進行開發時,開發成員需要互相訪問團隊內某成員的檔案並修改,...