第8章 Linux磁盘与文件系统管理
ln [-sf] 源文件 目标文件
-s:符号连接,如果不加参数就是硬连接
-f:如果目标文件已存在,则先删除,再建立连接。
硬连接只是在某个目录下的块多写入一个关联数据,不会用掉inode与磁盘空间。符号连接会生成一个新的inode,也就是生成了一个新的文件,
文件大小就是文件名字符串的长度。因此,删除一个硬连接的源文件,文件仍能正常打开,删除符号连接的源文件,则符号连接的文件无法打开。
dd命令: dd if=input_file of=output_file bs=block_size count=number 。
第11章 认识Bash Shell
type命令查看命令来自于外部还是内置于shell。type [-tpa] name
echo命令获取变量,如 echo $PATH 会显示变量PATH内容。
env命令列出所有的环境变量,set命令列出环境变量及其他自定义变量。
用read命令可以读取来自键盘输入的变量: read [-pt] variable 。其中-p后接提示符,-t接等待秒数。
declare和typeset的功能一样,用于声明变量的属性: declare [-aixr] variable
其中-a定义为数组,-i定义为整数数字,-x用法与export一样,定义为环境变量,-r定义为只读变量,不可更改内容不可取消(用unset命令)。
ulimit命令限制用户系统资源,包括打开文件数、可使用CPU时间、可使用内存总量等。
在${variable}格式变量名后面可接#、##、%、%%、/、//等,可以删除或替换变量内容,例如:
echo ${vbird/testing/TEST} 将变量vbird的值中的第一个testing替换为TEST,而echo ${vbird//testing/TEST} 将变量vbird的值中所有的testing替换为TEST。
另外,还可以根据变量的内容是否设置来确定目标变量的赋值:
alias 别名。
history命令可列出最近的命令。history n 列出最近n条命令;history -c 将当前shell中的所有history内容清除;
history [-raw] histfiles -a将新增history命令加入histfiles;-r将histfiles内容读到当前shell;-w将当前记忆内容写入到histfiles。
另外,!number 执行第number条命令;!command由最近命令搜索以command开头的命令并执行;!!执行上一条命令。
环境设置文件bashrc、~/.bashrc、~/.profile等等:
终端的环境设置:stty -a 查看当前环境中所有按键列表。
$()的作用与引号``一样。
数据流重导向
标准输入,0,使用<或<<
标准输出,1,使用>或>>
标准错误输出,2,使用2>或2>>
将输出重定向到/dev/null,就是将其丢掉且不显示;同时写入同一个文件可用 2>&1 。
&&当前一个命令结果没有错误消息时,执行后一个命令;而||则相反,当前一个命令有错误消息时才执行后一个命令。
管道命令
cut -d ‘分隔符’ -f fields cut -c 字符范围
echo $PATH | cut -d ':' -f 3,5 取以:为分隔符的串的第三个和第五个字段。
export | cut -c 12- 取第12个字符以后的所有字符串。
grep [-acinv] ‘目标字符串’ filename 其中-a将二进制文件以文本文件方式搜索,-c计算找到‘目标字符串’的次数,
-i忽略大小写,-n顺便输出行号,-v反向选择,即显示没有目标字符串的行。
排序命令
sort [-fbMnrtuk] [file or stdin]
uniq [-ic] 排序完成后,将重复的数据仅显示一次,其中-i忽略大小写,-c进行计数。
wc [-lwm] -l显示多少行,-w显示多少字(单词),-m多少字符。
双向重导向: tee [-a] file -a(append)将数据附加在file末尾
字符转换命令
tr删除或替换、col将Tab转换为空格、join将两个文件的相关数据整合、paste将两个文件中每行贴在一起,
且中间以tab隔开,expand将tab转成空格。
拆分命令
split [-bl] file PREFIX -b要拆分的文件大小,可加单位,-l按行数拆分;
当没有file名(如标准输入输出),用-代替file名;
合并文件可用>> ,如 cat termcap* >> termcapback 。
参数代换
xargs [-0epn] commond 其中-0将特殊字符还原成一般字符,-e(EOF)后接字符串,遇到该字符串时停止继续工作,
-p每次执行时询问,-n要使用几个参数。
某些需要文件名的命令,stdin和stdout可用-来代替。