![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SOwATMmJzMwYTN5QDZwATOilDO4EjMxMGO2QjM1ImN28CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
8種機械鍵盤軸體對比
本人程式員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎麼選?
體系結構主要分為使用者态和核心太
核心:本質上是一段管理計算機硬體裝置的程式
系統調用:核心的通路接口,是不能再簡化的操作
公用函數庫:系統調用的組合
Shell:指令解釋器,可程式設計
查找特定檔案find:find path [options] params
在指定目錄開始遞歸尋找查找檔案;例如:find -name “target.file”
全局搜尋 find / -name “target.file”,所有的該檔案都能顯示出來
忽略大小寫:find / -iname “Target.file”
查找檔案内容grepgrep [options] pattern file
查找檔案裡符合條件的字元串
找檔案中的字元串: grep “moo” target
管道操作符 |将兩個指令連接配接起來,前面的指令作為後面指令的輸入
查找檔案:find ~ | grep “target”
| 右邊指令需要能接收标準輸入流才能用
中括号等字元需要用轉義
程序資訊ps -ef
對檔案内容做統計awkawk [options] ‘cmd’ file
一次讀取一行文本,按輸入分隔符進行切片分成多個組成部分
将切片直接儲存在内建變量中
支援對單個切片的判斷,支援循環判斷,預設分隔符為空格(-F 規定分隔符)
NR預設代表換行符 NR==1 表示第一行資料
抓包指令
IP位址抓包:tcpdump -i any host 192.168.1.123 -n
端口抓包: tcpdump -i any port 8080 -n
諸如ls,pwd等指令不再贅述,可以親自動手做一做,都算是Linux的正常使用。
程序間通信(IPC)
程序間通信(IPC,InterProcess Communication)是指在不同程序之間傳播或交換資訊。IPC的方式通常有管道(包括無名管道和命名管道)、消息隊列、信号量、共享記憶體、Socket、Streams等。其中 Socket和Streams支援不同主機上的兩個程序IPC。
管道 pipe
管道一般指的是無名管道,是UNIX系統IPC最古老的形式。管道是一種半雙工的通信方式,資料隻能單向流動
隻能在具有親緣關系的程序間使用。程序的親緣關系通常是指父子程序關系
内容均為無格式位元組流
命名管道FIFO有名管道也是半雙工的通信方式,但是它允許無親緣關系程序間的通信
消息隊列 Message Queue
消息隊列是由消息的連結清單,存放在核心中并由消息隊列辨別符(即隊列ID)來辨別。消息隊列允許一個或多個程序向它寫入或者讀取消息,并且每條消息都有類型(有格式)
消息隊列可以實作消息的随機查詢,消息不一定要以先進先出的次序讀取,程式設計時可以按消息的類型讀取
共享記憶體 Shared Memory
共享記憶體就是映射一段能被其他程序所通路的記憶體,這段共享記憶體由一個程序建立,但多個程序都可以通路。共享記憶體是最快的 IPC 方式,它是針對其他程序間通信方式運作效率低而專門設計的。
它往往與其他通信機制,如信号量,配合使用,來實作程序間的同步和通信。
信号量 Semaphore
信号量的使用主要是用來保護共享資源,使得資源在一個時刻隻有一個程序(線程)所擁有。
信号量的值為正的時候,說明它空閑。所測試的線程可以鎖定而使用它。若為0,說明它被占用,測試的線程要進入睡眠隊列中,等待被喚醒。信号量用于程序間同步,若要在程序間傳遞資料需要結合共享記憶體。
信号量基于作業系統的 PV 操作,程式對信号量的操作都是原子操作。
每次對信号量的 PV 操作不僅限于對信号量值加 1 或減 1,而且可以加減任意正整數。
信号 Signal
信号機制是類UNIX系統中的一種重要的程序間通信手段之一。我們經常使用信号來向一個程序發送一個簡短的消息。比如ctrl-C中斷操作。