linux 複習
1.linux基本操作 多使用者 命令進行互動 目錄結構
1)目錄結構/檔案系統
/bin 命令 可執行程式
/lib 庫檔案
/etc 系統的配置檔案
/boot 核心,與啟動有關的檔案
/dev 裝置檔案
/home 普通使用者的家目錄
/mnt 臨時掛載點
/proc 記憶體中程序的資訊
/usr 執行過程中不常改變的
/var 執行過程中常改變的檔案
2)檔案型別
-普通檔案 d-目錄檔案 p-管道檔案 i-鏈結檔案 c,b 裝置檔案 s 套接字檔案
3)檔案訪問許可權
讀 r 寫 w 執行 x s,t
改變許可權: chmod 文字設定法 數字設定法
file -> chmod u+x file chmod 766 file
4)bash 命令直譯器 命令
a.檔案操作 :cd ,touch, mkdir, cp, rm, mv, cat, more, head, less
grep awk(處理文字檔案的語言) sed(利用script來處理文字檔案) find wc(統計個數)tail(檢視檔案) vi/vim
b.程序有關:ps,top,kill,pkill,jobs(檢視後台執行的程序),
c.網路有關:iptables(防火牆),selinux(安全),ifconfig(檢視ip)
netstat(檢視tcp狀態,檢視埠,傳送緩衝區和接受緩衝區待傳送和待接收的位元組數,pid/name)
lsof –p pid(檢視開啟的檔案/可以檢視指定程序所開啟的檔案描述符)
tcpdump(抓包工具) ifstat(網路流量檢測工具)
d.除錯程式:gdb 除錯程式 –g(多執行緒除錯,多程序除錯(follow-fork-mode))
strace(跟蹤系統呼叫)
ltrace(跟蹤程式執行的庫函式)
core(檔案除錯,程式崩潰)gdb main core.pid bt(顯示在哪)
e.系統管理:useradd 增加使用者 shutdown 關機/重啟
ulimit 檢視系統資源限制 free(檢視記憶體使用情況)
ipcs(檢視共享記憶體,訊號量,訊息佇列)
who(檢視那些使用者在登入) w(顯示當前登入的使用者資訊)
f.打包 壓縮/解壓 tar zxf filename
5)程式的編譯和執行
main.c ->編譯 mian.o ->鏈結 ->main
main.obj main.exe
gcc –e mian.c -o main.i 預編譯
gcc –s main.i -o mian.s 編譯
gcc –c main.s -o main.o 彙編
gcc –o main main.o 鏈結
gcc/g++ ->gdb
makefile 管理工程
c.庫檔案:預先編譯好的方法的集合
靜態庫:libxx.a ar crv libxx.a add.o max.o ... ***.o
共享庫:libxx.so gcc –shared –fpic –o libxx.so add.o max.o ... ***.o
不同點?區別? 指定動態鏈結的庫可以改環境變數 ld_library_path
/usr/bin 命令 /usr/lib 庫 /usr/include 標頭檔案
/bin /lib
-l指定庫的路徑 gcc –o main main.c –l路徑 –l名字
-l 指定庫名 gcc –o main main.c –l/home/stu –lfoo ,例如庫名 libfoo.so
gcc2.程序
程序概念:乙個正在執行的程式
pid:唯一標識乙個程序/pcb:程序控制塊,描述乙個程序的屬性資訊的結構體
程序狀態
僵死程序:子程序先結束,父程序沒有呼叫wait獲取子程序的狀態資訊
fork複製程序
寫實拷貝(以頁為單位):乙個頁中的資料發生改變,整個頁要重新拷貝
exec系列 替換程序
檔案描述符:每開啟乙個檔案,就得到乙個檔案描述符
open read write close
系統呼叫/庫函式比較
訊號:signal() kill()傳送訊號
sigchid :子程序結束傳送給父程序
sigint:終端中斷
每個位代表一種型別的訊號,某個位置為1,則說明收到訊號
3.程序間通訊
管道:有名管道:任意兩個程序之間mkfifo 無名管道:父子程序之間pipe 資料在記憶體中,半雙工
共享記憶體
訊息佇列
訊號量:p,v操作 p操作,原子減一,獲取資源 v操作,原子加一,釋放資源
套接字4.執行緒:程序內部的一條執行路徑(序列)
pthread.h標頭檔案 -lpthread 庫
併發執行:
執行緒同步:訊號量,互斥鎖,條件變數,讀寫鎖
執行緒實現:使用者級 核心級 組合模型
linux 程序的方式實現執行緒,共享很多資源
pthread_create ->clone() ->do_fork()
執行緒的除錯:
執行緒安全:1.使用執行緒安全的方法 如:strtok 和 strtok_r 2.進行了同步
多執行緒 執行fork->
5.網路程式設計
1)網路模型 7層,4層
2)tcp /udp 區別? 面向連線的 可靠的 流式服務(粘包)
無連線 不可靠 資料報
3)tcp 程式設計流程
三次握手/四次揮手
應答 tcp的狀態
time_wait存在的意義:1. 2.
http協議,請求方法(9種) get post ,應答狀態碼 200 ok
慢啟動/快速恢復/快速重傳
ping命令過程
io復用方法 select/poll/epoll之間的區別
et/lt模式
libevent庫:註冊(event base),登出,事件迴圈
Linux知識點複習
第一章 1.gun與gpl 2.在用linux系統centos社群版 商業版redhat 穩定 3.網路配置的檔案 etc sysconfig network scripts ifcfg ens33 4.vm三種網路配置方式 第二章 重點 1.使用者和使用者組管理 使用者的增刪改查 useradd ...
複習知識點
題目 class aclass bextends aclass cextends aclass dextends ba obj newd system.out.println obj instanceofb system.out.println obj instanceofc system.out....
知識點複習
scanf d用於輸入十進位制數 u無符號十進位制輸入 o用於輸入8進製數 c用於輸入單個字元 s用於輸入字串 非空格開始,空格結束,字串變數以 0 結尾 f,lf用於輸入實數,一般使用double,lf 表示對應的輸入量不賦給乙個變數 d printf d帶符號十進位制輸出 u無符號十進位制輸出 ...