温故知新-linux命令

62 阅读2分钟

一、硬件相关

hdparm -tT /dev/vda # 在磁盘上执行测试性读取操作系统信息
badblocks -v /dev/hda1  # 检查磁盘hda1上的坏磁块

二、文本处理

sed '/^$/d' example.txt  # 从example.txt文件中删除所有空白行 
sed '/ *#/d; /^$/d' example.txt # 从example.txt文件中删除所有注释和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' # 合并上下单元格内容
sed -e '1d' result.txt # 从文件example.txt 中排除第一行 
sed -n '/stringa1/p'  # 查看只包含词汇 "string1"的行 
sed -e 's/ *$//' example.txt # 删除每一行最后的空白字符 
sed -e 's/stringa1//g' example.txt # 从文档中只删除词汇 "string1" 并保留剩余全部 
sed -n '1,5p;5q' example.txt  # 查看从第一行到第5行内容 
sed -n '5p;5q' example.txt  # 查看第5行 
sed -e 's/00*/0/g' example.txt  # 用单个零替换多个零
cat example.txt | awk 'NR%2==1'  # 删除example.txt文件中的所有偶数行
paste -d '+' file1 file2 # 合并两个文件或两栏的内容,中间用"+"区分
sort file1 file2 | uniq # 取出两个文件的并集(重复的行只保留一份) 
sort file1 file2 | uniq -u # 删除交集,留下其他的行 
sort file1 file2 | uniq -d # 取出两个文件的交集(只留下同时存在于两个文件中的文件) 
comm -1 file1 file2 # 比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2 # 比较两个文件的内容只删除 'file2' 所包含的内容 
comm -3 file1 file2 # 比较两个文件的内容只删除两个文件共有的部分
tail+10 /etc/passwd # 显示/etc/passwd/文件从第 10 行开始到末尾的内容

三、查找&备份

find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents  # 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 # 查找所有以 '.log' 结尾的文件并做成一个bzip包