計算機基礎
曆史,開源協定
檔案系統的LHS
目錄管理、檔案管理
使用者及權限管理
Bash基礎特性
grep,egrep,fgrep
vim
find
特殊權限和安全上下文
腳本程式設計
程式設計接口
硬體規格
系統調用
庫調用
API,應用程式設計接口,面向不同程式設計接口所寫的源碼格式, ABI:二進制程式格式
java,php,python,shell --> 虛拟機,解釋器 --> 進階語言--> 編譯器 --> 彙編語言 --> 彙編器 --> 機器代碼
語言越進階:人越易寫,對硬體要求更高
語言越低級:機器易懂,對硬體要求低,性能越好
release:
redhat 18,centos 18 ,fedora 6
debian: ubuntu ,mint
slackware: suse,opensuse,sls: suse linux enterprise
arch,gentoo,lfs
gpl:流毒無窮
lgpl:調用類庫可閉源
apache:可閉源,需要放置版權協定
bsd:可閉源,不用版權協定,不能指明為BSD所寫的程式
開源軟體:可收取服務費
自由軟體:使用、安裝、下載下傳、學習,修改、分發衍生版
免費軟體:
免費擷取,使用不收費
免費擷取,使用收費
遊戲難度可怕,威逼你充值過關
廣告無限
Linux哲學思想:一切檔案,組合簡單小程式完成複雜任務,程式設計,文本配置
終端:理,虛拟,圖形,模拟
互動式接口:GUI,CLI
指令的格式: command [options...] arguments
指令執行:提請shell找到指令所對應的代碼,分析後送出給核心,核心配置設定資源,将其運作起來
指令的類型:type command: 内建(help cmd) 外部(cmd -h,--help ,man cmd)
檔案系統:索引及索引指向的編址方式
LSB組織規定的LHS:/bin,/sbin,/lib,/lib64,/etc /proc,/sys,/tmp,/usr,/var /home,/root,/boot /dev,/mnt,/media
目錄管理: cd,pwd,ls mkdir,rmdir,tree,install
檔案管理: cp,mv,rm,touch,stat,file
文本編輯: nano
檔案檢視: cat/tac,head,less,tail,more
檔案處理: cut,sort,wc,tr
檔案命名法則: <255,不能以數字開頭,不能用/及特殊含義的字元,區分大小寫,.開頭的為隐藏檔案
使用者及權限管理:
使用者:使用者認證
useradd,usermod,userdel,id,su,finger,chsh,chfn,chage,passwd,pwck
使用者預設資訊: /etc/default/useradd,/etc/login.defs
組: 授權機制
groupadd,groupmod,groupdel,gpasswd,newgrp
密碼: 保證資源的使用者
權限:r 檔案:文本檢視指令 目錄:ls
w 檔案:修改 目錄:建立、删除‘
x 檔案:運作為一個程序 目錄:ls -l 或 cd
修改權限:chmod
修改屬主或屬組:chown,chgrp(僅root)
--reference=RFILE FILE...
-R
掩碼: 檔案: 777-111=666-umask 目錄: 777-umask
密碼複雜性政策: 數字,字母,特殊字元,長度,随機度,周期換,重複周期大
chmod,chown,chgrp,umask
目前使用者對檔案的權限
同屬主:應用屬主的權限
同屬組:應用屬組的權限
非屬主、屬組:應用其他使用者的權限
Usermod -l new old
groupmod -n new old
userdel -r user
useradd
-D
-e YYYY-MM-DD
-f DAYS
-s shell
usermod
-a -G GROUPS.. user
-m -d DIR
-L lock
-U unlock
-f DYAS
passwd
-l lock
-u unlock
-d 删除使用者密碼
-e 立即過期
n,x,w,i,e
min,max,warin,inactive,expire
--stdin user
chage
d,m,M,W,I,E
最近一次修改時間, min,max,warn,inactive,expire
gpasswd
-a user 添加使用者到組
-d user 删除組中的使用者
-M users.. 指定組内成員
-A ADMIN.. 指定組管理者
su - user
su - user -c 'COMMAND'
bash基礎特性
指令曆史 ,指令補全,路徑補全,指令行展開,hash, 執行狀态結果, glob,快捷鍵,管道,I/O 變量 grep 變量 配置檔案 算法 測試 退出狀态 換港符 vim 檔案測試 find 特殊權限 程式設計
指令曆史:使用者執行的指令記錄在緩沖區中,退出終端時,寫入至HISTFILE定義的檔案中,登陸終端時,将曆史條目從檔案加載至記憶體中
指令補全:依據path環境變量,從左而右查找指令
hash:将查找到的結果記錄于緩存中,供二次查找
路徑補全:将使用者給出的路徑作為路徑查找
變量類型内部資料的類型
變量類型的作用:資料的格式,資料的範圍,參與的運算
變量:臨時存放資料的記憶體空間
變量名:記憶體空間的名字
變量命名的法則:數字、字母、_,不能以數字開頭,見名知義(totalWeight,total_weight)
執行狀态結果:
成功:0 标準輸出,指令的結果
失敗:1-255 标準錯誤輸出,bash的結果(文法)
name=value:值存儲在name變量的記憶體空間中
引用實作指派:
純文字: name="a b c d" 空格
變量: 原記憶體空間: name=$name 另一個記憶體空間中:var=$name
指令: name=`command` name=$(command)
glob: ? * [] [^] 字元集: [:digit:] [:lower:] [:upper:] [:alpha:] [:alnum:] [:punct:] [:space:]
配置:全局:/etc/profile,/etc/profile.d,~/.bash_profile. 個人:/etc/bashrc,~/.bashrc
profile類: 環境變量,指令或腳本
bashrc類: 本地變量,别名
互動式登陸: 終端通過密碼登陸,su -,-l user
非互動式登陸: su - user , 圖形下終端 ,腳本執行在子shell中
讀取配置: . file(負作用:連續讀取,新定義的路徑重複多次), source file
grep: . [] [^] * \+ \? \{m,n\} ^ $ ^[[:space:]]*$ \(\) \1,\2,...
egrep: () + ? {m,n}
管道: 任何一個打開的檔案都用檔案描述符一個數字追蹤,
輸入 0 ,輸出 1,錯誤輸出2
>,>> set -C , >|
2>,2>> , > FILE1 > FILE2 , > FILE1 >&1, &>1
cat < ,wc < , tr < , cat >> FILE < EOF
算術: let var=$num1+$num2, $[$num1+$num2] $(($Num1+$num2)), $(expr $Num1 + $num2)
測試:數值: -eq,-ne,-lt,-le,-gt,-ge
字元:必須有引号,模式測試時,PATTERN不能用引号,且[[]]
== != [[ "A" =~ PATTERN ]] [ -z "A" ] [ -n "A" ]
檔案: -[ea] -[fbdclsp] -[ugk] -s -N(最近一次打開後是否修改過) file1 -ef file2 同一裝置同一Inode file1 -nt file2 file1比file2的最近一次修改時間距離現在更近? file1 -ot file2 更遠?
-[OG]
組合測試:
[ EXPRESSION1 ] && [ EXPRESSION2 ] 相當于 [ EXPRESSION1 -a EXPRESSION2 ]
[ EXPRESSION1 ] || [ EXPRESSION2 ] 相當于 [ EXPRESSION1 -o EXPRESSION2 ]
[ ! EXPRESSION ]
find指令
預設目前目錄,所有檔案,列印到标準輸出
-ls,-fls,-delete,-ok {} \; -exec {} \; find | xargs command
-name "" -iname "" -regex PATTERN -iregex PATTERN
-type [fdbclsp]
-user USER , -group GROUP , -uid UID , -gid GID, -nouser, -nogroup
組合:
條件1 -o 條件2 與-ls連用時, \( 條件1 -o 條件2 \) 友善顯示
條件1 -a 條件2 與-ls連用時, \( 條件1 -a 條件2 \) 友善顯示
! 條件 或 -not 條件
摩根定律
非(P 且 Q) = (非 P) 或 (非 Q)
非(P 或 Q) = (非 P) 且 (非 Q)
-not 條件1 -a -not 條件2 相當于 -not \( 條件1 -o 條件2 \)
-not 條件1 -o -not 條件2 相當于 -not \( 條件1 -a 條件2 \)
大小:-size [+\-]#[KMG] 3 (2,3] , -3[0,2] +3(3,+oo)
時間戳: -atime [+|-]# -mtime [+|-]# -ctime [+|-]#
+# 距今大于#天
# 距今有#天
-# 距今小于#天
權限: -perm [\|-]MODE
MODE 必須 為MODE
\MODE 3類使用者的權限,隻要有一類使用者的某位權限比對即可, 644, 屬主能比對r或w直接通過。屬組能比對r或x直接通過。其他能比對r或x直接通過。
-MODE 至少為MODE 例如 222 , 222-777都滿足
本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1953863,如需轉載請自行聯系原作者