天天看點

檔案系統總結

計算機基礎

曆史,開源協定

檔案系統的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,如需轉載請自行聯系原作者

繼續閱讀