/dev/random与/dev/urandom

 /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。

  这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机性。/dev/urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。

Linux中变量#,#,@,0,0,1,2,2,*,$$,$?的含义

$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,1其他表示有错误

dd与cp

cp:copy,复制目录及文件,cp temp.txt /root/
dd:disk dump,复制文件,dd if=/root/dd.txt of=dd2.txt


使用dd测试硬盘读性能:
dd if=/root/dd.txt of=dd2.txt bs=1M count=10
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。 bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节(\0)。

sed

sed:行处理
awk:列处理


删除匹配字符的行,并更新原文件
sed -i ‘/matchchars/d’ filename #不加-i,会在屏幕输出更改后的内容,并不会改原文件.