vim
# 跳转到80行
80gg
# 跳转到第一行
gg
# 跳转到最后一行
G
# 删除一行
dd
# 撤销上一步的操作
u
大文件切割
# 将 test.txt 文件每 10M 大小切割成一个小文件
split -b 10M test.txt
# 把小文件合并成大文件
cat x* > test.txt
find
# -name 区分大小写
# -iname 忽略大小写
# -regex 区分大小写的正则表达式
# -iregex 忽略大小写的正则表达式
# 匹配 abc.txt
find ./ -name "abc.txt"
# 匹配 abc.txt Abc.txt
find ./ -iname "abc.txt"
# 匹配 abc.txt
find ./ - regex ".*abc.txt"
# 匹配 abc.txt Abc.txt
find ./ - iregex ".*abc.txt"
grep
# 查找包含a或b的行
grep “a\|b” access.log
sed
# 把x.txt中的所有(末尾添加 g)$a替换成123
# 对于\ $ * + ( ),写成\\,\$,\*,\+,\(,\)。
sed -i "s/\$a/123/g" x.txt
# 删除一行
sed -i '/search some thing/d' filename
# 删除最后一行
sed -i '$d' filename
# 增加一行
# 在第一行前添加
sed -i '1i添加的内容' filename
# 在最后一行行前
sed -i '$i添加的内容' filename
# 在最后一行行后
sed -i '$a添加的内容' filename
# 修改一行
# 第2行改成 "c": "d"
sed "2c \"c\":\"d\"" filename
stat
$ stat big_file
Access: 2009-05-10 12:13:00.000000000 +0800 访问时间 例如cat
Modify: 2009-05-10 12:13:00.000000000 +0800 内容修改时间 例如 >>
Change: 2009-05-10 12:14:55.000000000 +0800 属性修改时间 例如 chmod
压缩目录
tar -zcvf xxx.tar.gz *
# 解压到指定目录
tar -zxvf xx.tar.gz -C test
创建大文件
# 在当前目录下生成一个大小为1G的二进制大文件,内容是一堆0。
# if 输入文件
# of 输出文件
# bs 字节为单位的块大小
# count 被复制的块数
# /dev/zero是一个字符设备,不断的返回0值字节
dd if=/dev/zero of=./test.log count=2 bs=512M
对比文件差异
vimdiff a.txt b.txt
设置文件不可删除
# 只能追加内容,rm -f也不行
# 撤销参数是-a
chattr +a xxx