摘自 《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编程从入门到精通》