POSIX标準
就是定義了類Unix系統提供接口(系統API(應用程式和庫之間的程式設計接口),shell指令)的标準,便于代碼的移植.
除了API還有ABI
應用程式二進制接口
他是讓一個可執行的檔案可以在支援ABI标準的平台上運作
主流Unix都支援POSIX标準,但是不僅僅局限于Unix,簡單的說市面上絕大部分系統為了相容性都會支援.(這些不準确啊,隻是個人了解,有興趣了解詳情還是查查比較好)
當然了,标準嘛一定會跟随時代的改變而改變,例如C/C++也會更新,新的标準.
Linux常見系統調用
檔案I/O, 程序/線程, 程序間通信, 系統控制, 記憶體管理, 網絡管理
這些在系統程式設計裡,在搞.
shell腳本
其實這個東西吧,很糾結.可能很多時候不需要去寫,但是需要能看懂.因為這是運維的工作.
但是能寫腳本的語言太多了,shell,python,php,JS,lua等等.說python火吧,但是js(前端)和lua(遊戲)的程度并不差,但是shell還是一些"前輩的"首選.這就很煩
shell和shell腳本(shell script)
shell是C寫的一個程式,作用于使用者和系統之間的溝通
shell腳本通過腳本語言寫的一些指令,使繁瑣的工作實作自動化(其實可以了解成就是一個批處理)
shell種類
預設的是bash(也是使用最多的),還有ash, ksh, csh(C風格), tcsh(csh的進化版), zsh(最牛的,也是最不好用的)
第一個shell腳本
python
shell
python環境需要安裝,網上收一下一堆.
#!/bin/python3, 約定的東西,告訴系統這個腳本需要什麼解釋器來執行.(shell的話就是#!/bin/bash)
檔案名,python以xxx.py,shell就是xxx.sh
執行腳本
./hello.py就是作為可執行程式來解釋腳本
python3 hello.py是使用解釋器來解釋腳本,這種可以不用寫#!(寫了也0作用)(不過隻有那麼一句,還是寫一下吧)
腳本意思就是輸出"hello world"
使用腳本建立檔案
還可以使用python調用shell指令
res是一個變量,可以作為傳回值檢視指令結果
由此可見,還是shell的曲線很緩和,因為指令我們都已經很熟悉.但是這隻是指令的堆積, 腳本同樣需要設計也就需要變量和控制語句.
變量
在shell中" '是有差別的,' 不能轉義(\就是轉義字元)
當shell指令作為變量時
正常寫法不會顯示指令
我們需要反引号 ` `
可能不是很清楚,就是在字元串兩端 ~ 鍵上的那個
輸入
shell中不常用的keyword
readonly 變量//定義一個隻讀的變量
unset 變量 删除一個變量