1.文件系统
/dev/null "黑洞" 只写,调试时会打日志,运行时不需要这些日志可以打印到此
/dev/shm 默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录。可以通过df 命令查看结果
tmpfs有以下优势:
1.1 动态文件系统,在linux下,默认最大为内存的一半大小,使用df -h命令可以看到
1.2 闪电般的速度,典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间
1.3 tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
2.shell
2.1 > 写入文件并覆盖旧文件
>> 加到文件的尾部,保留旧文件内容
2.2 读取文件
while read line
do
echo $line
done < file(待读取的文件)
2.3 基本符号
➜ ~ name=ma
➜ ~ echo "$name" ma
➜ ~ echo '$name' $name
➜ ~ echo $name ma #默认为双引号
➜ ~ echo ${name} ma #防止字符串拼接时出错,eg $nameaa
➜ ~ echo $(name) sh: command not found: name #$(0 与 $``作用相同 执行命令
➜ ~ declare dat=$(date +%Y_%m_%d)
➜ ~ echo $dat
2015_03_17
2.4
➜ ~ wc -l passwd | cut -f1 -
36 passwd
➜ ~ wc -l passwd | cut -d' ' -f1 #cut获取以-d指定的分隔符,-f表示分割的第几列
36
2.5 管道|
有些指令不能制定标准输入 比如ls,
可以使用xargs配合
➜ ~ aDS | xargs ls
zsh: command not found: aDS
qss test1
2.6 grep
grep 'regex' file_name
egrep 'regex' file_name (扩展正则)
frep ‘ ’ file_name (fgrep 命令检索固定字符串,它不识别正则表达式,是快速搜索命令)
2.7 sed
sed格式与grep格式相同
➜ ~ sed -n '1p' passwd (-n 不打印远行 ,输出第一行)
root:x:0:0:root:/root:/bin/bash
➜ ~ sed -n '1,3p' passwd (输出1到3行)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
➜ ~ sed -n '1p;3p' passwd (输出1和3行)
root:x:0:0:root:/root:/bin/bash
bin:x:2:2:bin:/bin:/usr/sbin/nologin
➜ ~ sed -n 's/root/Root/pg' passwd (s正则匹配 Root替换root g:global全部 p:print)
Root:x:0:0:Root:/Root:/bin/bash
➜ ~ sed -n '/yu/p' passwd
yuchenyu:x:1000:1000:yuchen.yu,,,:/home/yuchenyu:/bin/zsh
➜ ~ sed -n 's/yu//pg' passwd (删除yu 对比上面)
chen:x:1000:1000:chen.,,,:/home/chen:/bin/zsh
➜ ~ sed '2d' passwd1 (删除第二行)
2.8 sort
sort -n -r (n以数字进行排序,默认string r表示降序)
2.9 uniq
uniq -c (c表示重复次数)
2.10 awk
➜ ~ awk -F: '{print $1}' passwd (F指出分隔符:)
➜ ~ awk -F: '{print $1 NR " "NF}' passwd (NR :行数 NF:当前行的列数)
➜ ~ awk -F: '/root/{print $1 NR NF}' passwd (正则,匹配root)
➜ ~ awk -F: '$1~/root/{print $1 NR NF}' passwd (制定第一列满足正则)
➜ ~ awk -F: '$1!~/root/{print $1 NR NF}' passwd (制定除第一列满足正则)
所有UNIX命令,要取结果或输出,都要用$( )或反引号``