基礎命令在之前已經展示,從這裡開始就是對各種概念的理解,在面試中有很大概率會問到的問題。
作業系統的構成 = 系統核心 + 外部應用
外部應用就要看開發人員對系統的支援了,但是我們知道linux下的遊戲並不是很多,主要就是因為linux為開源系統,大家都可以在核心的基礎上,開發自己的特色上去,導致linux的版本各有不同,很難統一,導致應用的支援很難實現。
許可權:
使用者:普通使用者,超級管理員(root)
許可權是什麼?
對使用者權力的限制,不允許使用者隨意操作檔案
許可權的分類:rwx(可讀,可寫,可執行)
用八進位制的數字表示:7
用二進位制的數字表示:111,剛好可以對應可讀可寫可執行的每一位。
許可權會限制三個不同的使用者:檔案的所有者,檔案的所屬組,其他使用者;所以許可權由三個八進位制的數字組成
許可權相關的命令:
umask 設定或檢視檔案的建立許可權掩碼
規則:實際許可權 = 給定許可權 & (~umask)
例如: 777 & (~umask)
如果給定umask的掩碼為002,那麼檔案建立之後的許可權為775
chmod 修改檔案的許可權,相關命令chown(更改所有人) chgrp(更改所屬組)
例:chmod 0777 file更改file檔案的許可權為777
還可以使用chmod u+x file(g-x o-x)
粘滯位:
主要針對目錄的乙個許可權位,所有人都可以在目錄下建立檔案,可以刪除自己的檔案,但是不能刪除其他人的檔案。(linux是乙個多使用者訪問的作業系統,支援多個使用者同時訪問,所以粘滯位的使用是非常有必要的)
管道符:|
作用:連線兩個命令,將前乙個命令的輸出結果當作後乙個命令的輸入,做處理
例:如何檢視/etc/passwd檔案的第二十行的內容
head -n /etc/passwd | tail -n 1
linux下的常用工具:
1. yum軟體包管理器
為什麼不用原始碼安裝呢?yum有什麼好處呢?
檢視可以安裝的軟體包:yum list
安裝軟體包:yum install
移除軟體包:yum remove
檢視安裝的軟體包:yum list installed
安裝特定軟體時,使用管道yum list | grep **
2.vim文字編輯器
vim為了實現所有的操作,因此有很多種操作模式,每個模式下的功能各有不同
vim共有12種模式,6種基本模式,6種條件模式。最常用3種:插入模式(esc)->,<-(i)普通模式(:)->,底行模式
i 從游標所在位置插入
a 從游標所在位置下乙個字元位置插入
o 向游標所在行的下一行新增新行,插入
i 游標移動到行首進行插入
a 游標移動到行尾進行插入
o 向游標所在行的上一行新增新行,插入
底行模式:w儲存 q退出 q!強制退出 wq儲存並退出 !pwd臨時執行命令,回車返回
普通模式下的操作:
ctrl+f +b 上下翻頁 g gg 游標移動到文件的尾行或首行
複製:yy 複製游標所在行
複製乙個單詞:1.v進入選中模式 2.移動游標選中 3.y 複製 4.p貼上
nyy 複製n行資料
p 向游標所在行的上一行新增新行,貼上
剪下:dd 剪下游標所在行
ndd 剪下游標所在行向下n行
dw 刪除游標位置開始的單詞
d 刪除到尾行
x 剪下游標所在的字元
s 刪除游標所在字元,並進入插入模式
其他操作:
u 撤銷
ctrl+r 還原
gg=g 全文對齊
v ctrl + v 進入檢視選中模式
3.gcc編譯器:將高階語言**編譯成為機器語言可識別的指令**
編譯步驟:
1.預處理:展開所有**
2.編譯:糾錯,沒有錯誤則將c語言**編譯成彙編**
3.彙編:將彙編**編譯為機器語言
走完彙編只是將當前的.c編譯成了自己的機器指令。其他檔案還沒有拿過來,這個檔案雖然是機器指令但是不能執行
庫:存放函式實現**的檔案
動態庫:鏈結生成可執行程式,鏈結動態庫稱為動態鏈結
lib***.so
動態鏈結,只記錄動態庫的位置符號資訊,**冗餘量小,占用資源少,但對庫的依賴程度高。
靜態庫:鏈結生成可執行程式,鏈結靜態庫稱為靜態鏈結
lib***.a
靜態鏈結,拷貝庫中的**,**冗餘量大,占用資源多,對庫的依賴程度低
gcc編譯器預設鏈結的是動態鏈結
gcc常用選項:-e 僅預處理
-s 僅編譯
-c 僅彙編
-o 指定輸出檔名
-static 鏈結靜態庫
makefile就是用來記錄專案的編譯規則的,輔助專案的自動化編譯
命名:makefile makefile
編寫:[table] 執行命令
執行:make
make解釋執行規則:
1.到當前目錄下查詢makefile檔案,找不到報錯。有多個makefile時(makefile/makefile)優先執行makefile。
2.到檔案中找第乙個目標物件,,並把這個物件當作終極目標
3.檢測這個檔案物件和依賴物件的最後一次修改時間,判斷是否需要重新編譯,修改時間一樣則不重新編譯,退出
4.如果目標物件不存在則直接生成,但依賴物件可能不存在
5.為了生成終極目標,首先要保證依賴都存在,所以會先去生成所有的依賴關係(依賴物件生成的依賴關係也是使用者在下邊定義的)
預定義變數:$@ $^ $<
區別: =非即時賦值 :=直接賦值 ?=有變數不賦值 +=追加賦值
偽物件:不管物件是否最新,是否存在,每次都生成。(.phony: a)
6.git
svn專案版本控制工具:集中式管理
git專案版本控制工具:分布式管理
git clone (url) 從github上轉殖**到當前路徑
git add ./* 新增要提交的檔案
git commit -m "modify" "desc" 本地提交
git push origin master 上傳**
了解git的分支管理(git的精華)
linux 常用工具
我們經常需要長時間地坐在電腦前做一項具體的工作只為能夠優化工作流程。這包括選擇和配置能讓你最高效工作的工具。從長遠來看,簡單易學的工具並不總是好的,那些能夠充分個性化並無縫地融入獨 作流程的工具才是真正的好工具。在這篇文章中,我想向大家介紹5款免費又開源的工具,而且它們在我的軟體開發生涯中發揮了很重...
linux常用工具
linux常用工具 1.vim編輯器 vim的三種模式 1.命令 vim開啟檔案就是命令模式 1.1.可以移動游標 1.2.x 刪除字元 nx 刪除n個字元 dd 刪除一行 ndd 刪除n行 p 貼上 np 貼上n行 yy 複製一行 nyy 複製n行 gg 回到第一行 shift g 跳到 最後一行...
Linux常用工具
一 vim編輯器 基本模式 1 命令列模式。控制螢幕游標的移動,字元 字或行的刪除。2 插入模式。再插入模式下可以輸入文字,按 esc 鍵可以返回命令列模式。3 底行模式。將檔案儲存或者退出vim,也可以設定編輯環境。模式轉換方法 在命令列模式下按 a 或 i 可進入插入模式,按 可進入底行模式 插...