摘自 《Linux shell 編程從入門到精通》未完待續!!!
【註釋】node
#!/bin/python print "hello world"
種類python
調用過程linux
使用source
執行shell腳本不會建立子進程,而是在父進程中直接執行。shell
echo 轉義字符數據庫
\a
:報警符\b
:退格符\c
:禁止尾隨\f
:換頁符\n
:換行符\r
:回車符\t
:水平製表符\v
:垂直製表符\\
:反斜線常見環境變量express
>
add1=100 add2=200 echo $((add1+add2)) echo $add1 echo ${add1} let "uninit+=5" echo "$uninit"
【export】 export [-fnp][變量名稱] =[變量設置值]
export命令用於設置或顯示環境變量。編程
啓動文件vim
/etc/profile
系統範圍/etc/bashrc
系統範圍,特定於bash$HOME/.bash_profile
用戶環境$HOME/.bashrc
用戶定義的bash初始化$HOME/.bash_logout
登出(Bash)shell【env】env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
在重建的環境中運行程序,設置環境中的每一個NAME爲VALUE,並運行COMMAND安全
env -i PATH=./:$path echo.sh
【unset】bash
unset [-v] variable ... unset -f function ...
從當前shell刪除變量或函數
testfunction(){ echo "$# params" echo "$@" } testfunc a b c # 3 parameters
引用參數
0,1,2...,9
位置參數*
以一個單字符串顯示全部參數@
從參數1開始,顯示全部參數#
參數數量$
腳本運行的當前進程ID!
後臺運行的最後一個進程ID?
顯示最後命令退出狀態,0表示沒有錯誤,其餘表示有錯誤-
顯示shell時候用的當前選項,與set命令功能相同【mv】
mv [option] ... Source Dest mv [options] ... Source Directory
-E
force
文件固定範圍大小或空間保留沒法保存,則操做失敗ignore
忽略任何錯誤warn
若沒法保存則警告-f
覆蓋不提示-i
移動前提示【mkdir】mkdir [ -m Mode ] [ -p ] Directory ...
-m Mode
設置新建立目錄的許可位 和chmod的Mode參數同樣-p
建立丟失中間路徑名稱目錄【cat】cat [-q] [-r] [-s] [-S] [-u] [-n [-b]] [-v [-e] [-t]] [- | File...]
-b
當與-n一塊兒指定時,省略來自空行的行號-e
當與-v一塊兒指定時,在每行末尾顯示一個$-n
顯示在行號以後的輸出行,按順序從1開始編號-q
若是cat命令沒法找到輸入文件,則不顯示消息。該標誌等同於-q
-r
以一個空行來代替多個連續的空行。該標誌等同於-S
-s
若是cat 命令沒法找到輸入問價,則不顯示消息。該標誌等同於-q
標誌-S
以一個空行來替代多個連續的空行。該標誌等同於-r
標誌-t
若是與-V
一塊兒指定,則將跳格字符顯示爲^I
-u
不要緩衝輸出-v
將非打印字符顯示爲可視字幅當與-v
一塊兒使用時,可以使用:
-e
將在新航以前的每行末尾-t
跳格符打印成^I
,換頁符打印成^L
-
容許cat命令的標準輸入管道重定向
>
改變標準輸出echo "redirect to file." >/tmp/a.txt
<
改變標準輸入cat </tmp/a.txt > /tmp/.b.txt
>>
追加文件for line in /etc/passwd do echo $line >> /tmp/b.txt
|
創建管道head -n10 /etc/passwd | grep "prince"
【head】head [ -Count | -c Count | -n Number ] [ File ...]
-Count
從每個要顯示的指定文件的開頭指定行數。-c End
指定要顯示的字節數。-n Number
指定每個要顯示的指定文件的開頭行數。文件描述符 - 非負整數。內核利用文件描述符訪問文件。
文件描述符表 - 用戶區的一部分,只能經過文件描述符的函數訪問。包含進程中每一個打開的文件條目。
系統文件表 - 全部進程共享,每條包含文件偏移量、讀寫模式、指向它的文件描述符表的條目計數。
內存索引節點表 - 包含每一個活動文件,幾個系統文件表條目可能對應同一個內存索引節點表
/erv/null
全部寫入它的內容會丟失,讀取則爲空#! /bin/sh # 自動刪除cookie,並禁止之後網站再寫入cookie if [ -f ~/.mozilla/cookies] then rm -f ~/.mozilla/cookies fi ln -s /dev/null ~/.mozilla/cookies
/dev/zero
建立交換文件#!/bin/bash ROOT_UID= E_WRONG_USER= FILE=/swap BLOCKSIZE=1024 MINBLOCKS=40 SUCCESS=0 if ["$UID" -ne "$ROOT_UID"] then echo;echo "must be root";echo exit $E_WRONG_UESR fi blocks=${1:-$MINBLOCKS} if ["$blocks" -lt $MINBLOCKS] then blocks=$MINBLOCKS fi echo "Creating swap fil eof size $blocks blocks (KB)." dd if =/dev/zeero of=$FILE bs=$BLOCKSIZE count=$blocks mkswap $FILE $blocks swapon $FILE echo "Swap file created and activated" exit $SUCCESS
dev/tty
輸出到此的信息只會顯示在當前工做的終端上printf "Enter new passwd" stty -echo read pass < /dev/tty printf "Enter again" read pass2 < /dev/tty stty echo
【read】
從標準輸入中讀取一行read [-p] [-r] [-s] [-u [n]] [VariableName?Prompt] [VariableName ...]
-p
文件結束符引發該進程的清除,所以產生另一個進程-r
把一個\
處理爲輸入行的一部分,而不是控制字符-s
把輸入做爲一個命令保存在shell歷史記錄文件總-u[n]
讀取一位數的文件描述符號碼n做爲輸入 n默認=0,表示鍵盤,2表示標準錯誤VariableName?Prompt
指定一個變量的名稱和一個要使用的提示符VariableName
指定一個或多個由空格分隔的變量名【grep】grep [-E |-F] [-i] [-h] [-s] [-v] [-w] [-x] [-y] [ [[-b][-n]] | [-c|-l|-q] ] [-p [Separator] ] {[-e PatternList ...] [-f PatternFile...]| PatternList...}[File...]
-b
在每行以前添加找到改行時所在的塊編號-c
只顯示匹配行的計數-E
每一個模式視做正則-ePatternList
指定一個或多個搜索模式-F
每一個模式視做字符串-f PatternFile
指定包含搜索模式的文件 ,換行符分隔-h
禁止在匹配行後附加包含此行的文件名稱-i
忽略字母大小寫-l
只列出包含匹配行的文件名稱-n
在每一行以前放置文件中相關的行號ß-p[Separator]
顯示包含匹配行的整個段落,段落之間按照Separator分隔-q
禁止全部寫入到標準輸出的操做-s
禁止文件不存在/不可讀寫的錯誤信息-v
顯示全部與指定模式不匹配的行-w
單詞搜索-x
顯示與指定模式精確匹配而不含其它字符的行PatternList
多個模式File
文件名,默認是標準輸入【ls】ls [-A] [-C] [-F] [-a] [-c] [-d] [-i] [File ...]
ls -f [-C] [-d] [-i] [-m] [-s] [-x] [-l] [Directory ...]
-A
列出全部條目,除了.
,..
-a
列出全部條目-c
使用索引節點最近一次修改的時間,用於排序/顯示-C
以多列縱向排序輸出-d
僅顯示指定目錄信息-F
若是是目錄,後綴'/',可執行後綴*
,套接字=
,FIFO|
,符合連接@
-i
若是是符號連接,打印所鏈接到的文件的路徑名替換運算符
${varname:-word}
若是varname存在且非空,返回varname的值,不然返回word${varname:=word}
若是varname存在且非空,返回varname的值,不然將其置爲word,返回其值${varname:?message}
若是varname存在且非空,返回varname的值,不然打印message,並退出當前腳本${varname:+word}
若是varname存在且非空,返回word,不然返回null模式匹配運算符
${varname#pattern}
刪除開頭最短,返回剩下${varname##pattern}
刪除開頭最長,返回剩下${varname%pattern}
刪除結尾最短,返回剩下${varname%%pattern}
刪除結尾最長,返回剩下${varname/pattern/string}
${varname//pattern/string}
將varname中匹配模式的最長部分替換爲stringecho "the number of parameter is $# " #輸出變量的個數 echo "the return code of last command is $?" #輸出上條命令的結束值 echo "the script name is $0" #輸出命令的名字 echo "the parameters area $* " #輸出命令的全部參數 echo "\$1=$1;\$2=$2"#輸出變量,轉義字符
if [$# -ne 2]; #判斷運行參數,若是不是2,顯示用法幫助 then echo "Usage:$0 string file";#$0表示腳本本身 exit 1; fi grep $1 $2;# 用grep在$2文件中查找$1字符串 if[$? -ne 0];#判斷前一個命令返回值 then echo "Not Found \"$1\" in $2"; exit 1; fi echo "found \"$1\" in $2";
shift
while [ -e $1]; do cat $1 Shift done
【type】type CommandName ...
解釋指令
if condition then statements [elif condition then statements...] [else statements ] fi
退出狀態值
0
成功>0
在重定向或單詞展開前期間(~、變量、命令、算數展開、單詞切割)失敗1~125
命令退出失敗。特定退出值的定義126
命令找到但沒法執行命令文件127
命令沒法找到>128
命令因受到信號而死亡exit 42
邏輯運算:&&
,||
,!
【test】test Expression
或[Expression]
評估Expression參數,若表達式值爲True,返回一個零(true)退出至,不然返回非零(false)退出值,若是沒有參數也返回非零退出值。
字符串比較
=
匹配!=
不匹配<
小於>
大於-n str1
非null-z str1
null#測試一個文件是否存在且非空 if test ! -s "$1" then echo $1 does not exitst or is empty fi #若少於2個參數或$1文件不存在,則退出 if [ $# -lt 2 -o ! -e "$1"] then exit fi #判斷用戶是否存在 line=|grep $1 /etc/passwd | if [-z line] echo "user $1 exists." fi
文件屬性檢查
-b file
塊設備文件-c file
字符設備文件-d file
目錄-e file
存在-f file
通常文件-g file
有設置它的setgid位-h file
符號連接-L file
同 -h-p file
管道-r file
可讀-S file
套接字-s file
非空-u file
有設置它的setuid位-w file
可寫-x file
可執行,若是是目錄則可被查找-O file
全部者-G file
組id匹配你的idfile1 -nt file2
file1比file2新file1 -ot file2
file1比file2舊case
case expression in pattern1) startements;; pattern2) statements;; pattern3 | pattern4) startements;;
case $1 in -f) ... -d) ... esac
case $1 in *.jpg) gqview $1;; *.txt) gvim $1;; *.avi|*.wmv) mplayer $1;; *.pdf) acroread $1;; *) echo $1;;
for name [in list] do ... done
for file in `find . -ianme "*.mp3"` do mpg123 $file done
for file in *.mp3 do mpg123 $file done
for name do case $name in -f) ... -d) ... esac done
while condition do statements done
until condition do statements... done
#遍歷PATH路徑 path=$PATH: while [-n $path]; do ls -ld ${path%%:*} path=${path#*:} done
#無線循環 path=$PATH while true do if [-z $path] then break fi ls -ld ${path%%:*} path=${path#*:}
#跳出循環 while condition1 do ... while condition2 do ... break2 done done ...
#命令行參數處理 author=false list=false file="" while [$# -gt 0] do case $1 in -f) file=$2 shift ;; -l) list=true ;; -a) author=true ;; --) shift break ;; -*) echo $0:$1:unrecognized option ;; esac shift done
【getopt】getopt Format Tokens
分析命令標誌和參數
#getopt使用 author=false list=false file="" while getopt alf: opt do case $opt in f) file=$OPTARG ;; l) list=true ;; a) author=true ;; esac done shift ${{OPTIND -1}}
grep
ls -l | grep '^a' grep 'test' d* grep 'test' aa bb cc grep '[a-z]\{5\}' aa grep 'w\(es\)t.*\1' aa
#後向引用 #匹配 abcdabcd,abcdeabcd,abcdfabcd \(ab\)\(cd\)[efg]*\1\2 #匹配一行中先後出現兩個go \(go\).*\1
【sort】sort [arg] [File ...]
排序-k [FStart [.Cstart]][Modifier] [FEnd [.CEnd]][Modifier]
[+FSkip1 [.CSkip1]][Modifier] [ -[FSkip2] [.CSkip2] [Modifier] ]
-A
ASCII排序-b
忽略前導空格和製表符,找出字段的第一或最後列-c
檢查輸入的排序是否正確,不然返回非零值-d
字典順序(字母數字空格)-f
轉大寫-I
忽略非打印字符-k KeyDefinition
指定排序關鍵詞-m
合併多個輸入-n
按數字值排序-o
輸出文件-r
顛倒順序-t Character
指定Charactor 爲單一的字段分隔符-u
同行合併-T Directory
將建立的全部臨時文件放入Directory-y [Kilobytes]
指定主存儲千字節-z RecordSize
防止排序行大於默認緩衝區大小出現異常種植。RecordSize必須大於等於最長行額字節值#ASCII排序 LANG=En_YS sort fruits.txt #字典序 sort -d fruits.txt #忽略大小差別 sort -d -f -u fruits.txt #字段排序 sort -t: -k3 -n /etc/group
【uniq】uniq [-c|-d|-u] [InFile [OutFile]]
去重
-c
顯示出現的次數-d
僅顯示重複行-u
僅顯示不重複的行【wc】
統計文本行數、字數、字符數
wc /etc/passwd #l w c path wc -l /etc/passwd # 行 wc -w /etc/passwd #單詞 wc -c /etc/passwd #字符
【pr】pr [options] [files]
pr -c5 -t /tmp/linux.wiki
-c N
N欄輸出-t
不顯示標題-a
行列翻轉顯示-d
產生2個空格的輸出-F
用一個填寫表格的字符開始新的一頁-f
同-F
-h Header
用指定頭字符串做爲頁眉-l Lines
設置頁長度,若小於頭尾深度,頭尾取消-m
合併文件-o Offset
縮進,默認0-t
不顯示5行的標識頭和5行的頁腳-w Width
設置行到列的寬度,適用於多個文本列的輸出【fmt】fmt [-cstu][-p<列起始字符串>][-w<每列字符數>][--help][--version][文件...]
-w<每列字符數>
每行最大字符-s
或--split-only
只拆開數字超出每列字符數的列,但不合並字數不足的列-c
或--crown-margin
每段前兩列縮排-p<列起始字符串>
或-prefix=<列起始字符串>
僅合併含有指定字符串的列-t
或--tagged-paragrapth
每列前兩列所拍,但第一列和第二列的所拍格式同-u
或--uniform-spacing
每一個字符之間都空一格,每一個句子之間空2格【fold】fold [-b] [-a] [-w Width] [File...]
限制文本寬度
-w <width>
限制文本寬度-b
按字節計數寬度,默認是按列。-s
使得每一個輸出行段儘量寬【head】head [-Count | -c Count | -n Number] [File...]
-Count
指定行數等價於-n Number
-c End
指定顯示的字節數-n Number
指定開頭行數【cut】
cut -c list [file...] cut -f list [-d delim] [file...]
剪切字節字符字段
-b List
指定字節位置-c List
指定字符位置-d Character
指定字符做爲指定-f標誌時的字段定界符-f List
指定文件中設想被定界符隔開的字段的列表-n
取消分隔多字節字符,僅和-b
一塊兒使用-s
取消不包含定界符的行。僅和-f
一塊兒使用【join】join [-a FileNumber|-v FileNumber] [-e String][-o List][-t Character][-1 Field][-2 Field] File1 File2
-1 Field
File1的Filed變量指定的字段來連接-2 Field
File2的Filed變量指定的字段來連接-a FileNumber
以FileNumber(1|2)爲準-e String
用String指定的字符串來代替空輸出字段-o List
構造一個輸出航來包含由List指定的字段
-t Character
做爲分隔符 默認空格-v FileNumber
指定的文件每一行產生一個輸出行,此變量的鏈接字段和其餘輸入文件任何一行都不匹配【tr】
tr [ -c| -cds|-cs|-C|-Cds|-Cs|-ds|-s] [-A] String1 String2 tr {-cd|-cs|-Cd|-Cs|-d|-s} [-A] String1
-A
ASCII整理順序-C
String1值用String1的補碼替換-c
-d
刪除包含String1指定的每一個字符-s
在重複字符序列中除去第一個字符之外全部的字符#小寫轉大寫 tr 'a-z' 'A-z' <linux.wiki>linux.wiki.upper #大括號轉爲小括號 tr '{}' '()' < textfile > newfile #大括號轉方括號 tr '{}' '\[]' < textfile > newfile #建立一個文件中的單詞列表 tr -cs '[:lower:][:upper:]' '[\n*]' < textfile > newfile #刪除空字符 tr -d '\0' < textfile > newfile #用單獨的換行替換每一序列的一個或多個換行 tr -s '\n' < textfile > newfile #用「?」替換每一個非打印字符 tr -o '[:print:][:cntrl:]' '[?*]' < textfile > newfile #用單個「#」替換<space>字符類中的每一個字符序列 tr -s '[:space:]' '[#*]'
cut -d ' ' -f 2,3 record.txt|sort|uniq -c|sort -r |head -n100
文件
【ls】
ls [arg] [File...] ls -f [arg] [Directory...]
-a
列出目錄下全部文件,包括以.開頭的文件-b
把文件名中不可輸出的字符用反斜槓加字符編號的形式列出-c
輸出文件的i節點的修改時間並以此排序-d
將目錄像文件同樣顯示,而不是顯示其下的文件-e
輸出時間的所有信息-f -U
對輸出的文件不排序-I
輸出文件的i節點的索引信息-k
以k字節的形式表示文件的大小-l
列出文件的詳細信息-m
橫向輸出文件名,並以「,「做分隔符-n
用數字的UID,GID代替名稱。-o
顯示文件除組信息外的詳細信息-p -F
在每一個文件名後附上一個字符,以說明該文件的類型,」*「表示可執行的普通文件;「/」表示目錄」@「表示符號連接;」|「表示FIFOs;"="表示套接字(sockets)-q
用?代替不可輸出的字符-r
對目錄反向排序-s
在每一個文件名後輸出該文件大小-t
以時間排序-u
以文件上次被訪問的時間排序-x
按列輸出,橫向排序-A
顯示除」.」和「..」之外的全部文件-B
不輸出以「~」結尾的備份文件-C
按列輸出,縱向排序-G
輸出文件的組信息-L
列出連接文件名而不是連接到的文件-N
不限制文件長度-Q
把輸出的文件名用雙引號括起來-R
列出全部子目錄下的文件-S
以文件大小排序-X
以文件的擴展名(最後一個.後的字符)排序-1
一行只輸出已給文件--color=no
不顯示彩色文件名文件類型
-
普通文件d
文件夾b
塊設備文件c
字符設備文件l
軟鏈接文件s
套接字文件文件的權限
r
4w
2x
1-
0【chown】
chown [-f] [-h] [-R] Owner [:Group] {File...|Directory...} chown -R [-f] [-H|-L|-P] Owner {:Group] (File...|Directory...}
-f
禁止除用法消息以外的全部錯誤消息-h
更改遇到的符號連接的全部權,而非符號連接指向文件或目錄的全部權-H
若是指定了-R,?-L
若是指定了-R,?-P
若是指定了-R,?-R
遞歸地降序目錄【chgrp】
chgrp [-f] [-h] [-R] Group {File...|Directory...} chgrp -R [-f] [-H|-L|-P] Group {File...|Directory...}
-f
消除用法消息之外的全部錯誤消息-h
更改遇到的符號連接的組全部權,而非經過符號連接所指向的文件或目錄的組全部權-H
若是指定了-R,?-L
若是指定了-R,?-P
若是指定了-R,?-R
遞歸降序目錄【chmod】
chmod [-R][-h][-f][[u][g][o]|[a]] {{-|+|=}[r][w][x][X][s][t]}{File...|Directory...}
-f
禁止全部錯誤報告-h
禁止遇到的符號連接指向的文件或目錄的方式更改-R
遞歸【touch】
touch [-a][-c][-m][-f][-r RefFile][Time|-t Time]{File...|Directory...}
--a
更改File指定文件的訪問時間
--c
若是文件不存在,則不要進行建立
--f
嘗試強制touch運行,而無論文件的讀寫權限
--m
更改File的修改時間
--r RefFile
使用由RefFile變量指定的文件的相對應時間
Time MMDDhhmm[YY]
-t Time
[[CC]YY]MMDDhhmm[.SS]【find】
find pathname -options [-print -exec -ok...]
pathname
路徑-print
輸出到標準輸出-exec
執行該參數所給出的shell命令-ok
和exec相同,更爲安全的模式-name
按照文件名查找文件-perm
按照文件權限來查找文件-prune
不在當前指定的目錄中查找-user
按照文件屬主來查找文件-group
按照文件所屬的組來查找文件-mtime -n +n
按照文件的更改時間來查找文件 -n表示文件更改時間距如今n天之內+n表示文件更改時間距如今n天之前。find命令還有-atime和-ctime選項,但他們都和-mtime選項相似-nogroup
查找無有效所屬組的文件-nouser
查找無有效屬主的文件newer file1 ! file2
查找更改時間表文件file1新,但比文件file2舊的文件-type
查找某一類型的文件-size n:[c]
查找文件長度爲n塊的文件-depth
首先查找當前目錄中的文件,再在其子目錄中查找-fstype
查找位於某一類型文件系統中的文件-mount
不跨越文件系統mount點-follow
若是find命令遇到符號連接文件-cpio
對匹配的文件使用cpio命令【comm】
-1
不顯示只在第1個文件裏出現過的列-2
不顯示只在第2個文件裏出現過的列-3
不顯示只在第1個和第2個文件裏出現過的列【diff】
#比較2個文件的內容 diff [-c|-C Lines|-D[String]|-e|-f|-n][-b][-i][-t] File1 File2 diff [-h][-b] File1 File2 #排序字典的內容並比較不一樣的文件 diff [-c|-C Lines|-e|-f|-n] [-b] [-i] [-l] [-r] [-s] [-S File] [-t] [-w] Directory1 Directory2 diff [-h][-b] Directory1 Directory2
--clines
啓動diff命令,但只比較lines變量指定的行數。
--c
比較3行上下文
--d [string]
使得diff命令在標準輸出上創建一個file1和file2的合併版本,包含了c預處理器控件,以便沒有定義string的結果編譯等同於編譯file1,同時定義string產生file2
--e
以適合ed編輯器的格式進行輸出,將file1轉換成file2。
--f
以不適合ed編輯器的格式建立輸出,按照在-e標誌下產生的逆向順序顯示從fikle1到file2轉換的必要修改。
--h
若是要更改的部分比較短,並且分隔清晰
--i
忽略大小寫
--l
翅膀輸出格式
--n
產生相似-e
的輸出,但順序相反,並且在每一插入或刪除命令上進行更改計數
--r
使diff命令的應用程序遞歸到遇到公共子目錄
--s
報告相同的文件,不然不提
--s[file]
當比較目錄時,忽略在file變量指定的文件以前整理名稱的文件
--t
在輸出行擴展製表符
--w
忽略全部空格和製表符
vimdiff file1 file2
ext2:早期使用的,支持undelete,大文件
ext3:用於linux的日誌文件系統,支持大文件,不支持undelete
reiserfs:都支持
/bin
引導啓動所需的命令或普通用戶可能用的命令/sbin
相似/bin,但不給普通用戶使用,雖然若是必需要且容許時可使用/etc
特定機器的配置文件/root
root用戶的家目錄/lib
根文件系統上的程序所需的共享庫/lib/modules
核心可加載模塊/dev
設備文件/tmp
臨時文件/boot
引導加載器使用的文件/mnt
系統管理員臨時mount的安裝點/proc,/usr,/home
其餘文件系統的安裝點
/etc/rcor,/etc/rc.dor,/etc/rc*.d
啓動或改變運行級時運行的scripts/etc/passwd
用戶數據庫/etc/fdprm
軟盤參數表,同setdfprm設置/etc/fstab
啓動時mount -a 命令自動mount的文件系統列表/etc/group
組/etc/inittab
init的配置文件/etc/issue
getty在登陸提示符前的輸出信息/etc/magic
file的配置文件/etc/motd
成功登陸後自動退出,用於通告信息,如計劃關機時間的警告/etc/mtab
當前安裝的文件系統列表/etc/shadow
影子口令軟件的口令文件/etc/login.defs
login命令的配置文件/etc/printcap
打印機/etc/proflie,/etc/csh.login,/etc/csh.cshrc
登陸或啓動時只需的文件/etc/securetty
確認安全終端/etc/shells
可信任的shell/etc/termcap
終端性能數據庫
/dev
誰被文件/usr/X11R6
Xwindow系統的全部文件/usr/X386
X11Release5的/usr/bin
用戶命令/usr/
根文件系統沒必要要的系統管理命令/usr/man,/usr/info,/usr/doc
手冊頁、GNU信息文檔等/usr/include
c頭文件/usr/lib
程序或子系統不變的數據文件/usr/local
本地安裝的軟件和其餘文件
/var/catman
要求格式化時man的cache/var/lib
系統正常運行時要改變的文件/var/local
安裝的程序的可變數據/var/lock
鎖定文件/var/log
各類程序的log/var/run
保存到下次引導前有效的系統信息文件/var/spool
mails,news,打印隊列和其餘隊列工做的目錄/var/tmp
比/tmp容許的大或須要存在較長時間的臨時文件
/proc
是一個假的文件系統,由核心在內存中產生,提供系統信息
【mkfs】mkfs [-b Boot] [-l Label] [-i i-Nodes] [-o Options] [-p Prototype] [-s Size] [-v VolumeLabel] [-V VfsName] Device
在一個指定的設備上製做一個新的文件系統:初始化卷標,文件系統卷標和啓動塊
-b Boot
命名要在新文件系統的塊0安裝的程序-i i-Nodes
指定文件系統上i-nodes的初始數量-l Label
文件系統標號-o Options
指定用逗號分隔的虛擬文件系統
mount
mount [-f] [-n Node] [-o Options] [-p] [-r] [-v VfsName] [-t Type| [Device|Node:Directory] Directory|all|-a][-V[generic_options] special_mount_points
使文件系統可用
-a
包含true安裝屬性的節-f
在系統初始化時請求強制安裝-n node
指定保留安裝目錄的遠程節點
sed
ssh
screen
vim
《linux shell編程從入門到精通》