Linux複習知識點(一)

2021-09-09 07:20:29 字數 3233 閱讀 3614

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無符號十進位制輸出 ...