# paste <first file> <second file> ......
[命令] Linux 命令 uniq (文件里字符重复的管理)
案例一:uniq 命令去重
# cat test.txt
a1
b2
c3
a1
d2
e3
a1
c3
# sort test.txt | uniq
a1
b2
c3
d2
e3
(补充:这里以给 test.txt 文件里的字符为例)
案例二:uniq 只显示重复的行
# cat test.txt
a1
b2
c3
a1
d2
e3
a1
c3
# sort test.txt | uniq -d
a1
c3
(补充:这里以只显示 test.txt 文件里重复的行为例)
案例三:uniq 只显示不重复的行
# cat test.txt
a1
b2
c3
a1
d2
e3
a1
c3
# sort test.txt | uniq -u
b2
d2
e3
(补充:这里以只显示 test.txt 文件里不重复的行为例)
案例四:显示每个字符出现的次数
# cat test.txt
a1
b2
c3
a1
d2
e3
a1
c3
# sort test.txt | uniq -c
3 a1
1 b2
2 c3
1 d2
1 e3
(补充:这里以显示 test.txt 每个字符出现的次数为例)
[步骤] Linux 加密压缩 (tar 版)
步骤一:创建测试文件
# touch test.txt
(补充:这里以创建 test.txt 文件为例)
步骤二:加密压缩文件或目录
2.1 交互式加密压缩文件或目录
# tar -zcf - test.txt | openssl des3 -salt | dd of=test1.tar.gz
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
0+1 records in
0+1 records out
224 bytes copied, 7.04902 s, 0.0 kB/s
(
补充:
1) 这里以将 test.txt 文件加密压缩成 test1.tar.gz (压缩)包为例
2) 如果要以 bzip2 的格式进行压缩,则将命令中的 -zcf 换成 -jcvf 将 test1.tar.gz 换成 test1.tar.bz2
3) 如果要以 xz 的格式进行压缩,则将命令中的 -zcf 换成 -Jcvf 将 test1.tar.gz 换成 test1.tar.xz
)
2.2 非交互式加密压缩文件或目录
# tar -zcf - test.txt | openssl des3 -salt -f eternalcenter | dd of=test2.tar.gz
des3: Unrecognized flag f
des3: Use -help for summary.
0+0 records in
0+0 records out
0 bytes copied, 0.00376576 s, 0.0 kB/s
(
补充:
1) 这里以将 test.txt 文件加密压缩成 test1.tar.gz (压缩)包并且将密码设置为 eternalcenter 为例
2) 如果要以 bzip2 的格式进行压缩,则将命令中的 -zcf 换成 -jcvf 将 test1.tar.gz 换成 test2.tar.bz2
3) 如果要以 xz 的格式进行压缩,则将命令中的 -zcf 换成 -Jcvf 将 test1.tar.gz 换成 test2.tar.xz
)
步骤三:解压加密文件或目录
3.1 交互式解压加密文件或目录
3.1.1 删除原测试目录和里面的文件
# rm -rf test.txt
(补充:这里以删除 test.txt 文件为例)
3.1.2 交互式解压加密文件或目录
# dd if=test2.tar.gz | openssl des3 -d | tar zxf -
0+1 records in
0+1 records out
224 bytes copied, 0.000589721 s, 380 kB/s
enter des-ede3-cbc decryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
(
补充:
1) 这里以解压 test2.tar.gz (压缩)包为例
2) 如果是 bzip2 格式的(压缩)包,则将命令中的 -zxf 换成 -jcvf 将 test1.tar.gz 换成 test1.tar.bz2
3) 如果是 xz 格式的(压缩)包,则将命令中的 -zxf 换成 -Jcvf 将 test1.tar.gz 换成 test1.tar.xz
)
3.2 非交互式解压加密文件或目录
3.2.1 删除原测试目录和里面的文件
# rm -rf test.txt
(补充:这里以删除 test.txt 文件为例)
3.2.2 非交互式解压加密文件或目录
# dd if=test1.tar.gz | openssl des3 -d -k eternalcenter | tar zxf -
0+1 records in
0+1 records out
224 bytes copied, 0.000574539 s, 390 kB/s
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
(
补充:
1) 这里以解压 test1.tar.gz (压缩)包并且解压密码为 eternalcenter 为例
2) 如果是 bzip2 格式的(压缩)包,则将命令中的 -zxf 换成 -jcvf 将 test1.tar.gz 换成 test1.tar.bz2
3) 如果是 xz 格式的(压缩)包,则将命令中的 -zxf 换成 -Jcvf 将 test1.tar.gz 换成 test1.tar.xz
)
[步骤] Linux 加密压缩 (zip 版)
步骤一:创建测试目录和测试文件
# mkdir test
# touch test/test.txt
(补充:这里以创建 test 目录和里面的 test.txt 文件为例)
步骤二:加密压缩文件或目录
2.1 交互式加密压缩文件或目录
# zip -re test1.zip test
Enter password:
Verify password:
adding: test/ (stored 0%)
adding: test/test.txt (stored 0%)
(补充:这里以将 test 目录和里面的 test.txt 文件加密压缩成 test1.zip (压缩)包为例)
2.2 非交互式加密解压文件或目录
# zip -rP eternalcenter test2.zip test
adding: test/ (stored 0%)
adding: test/test.txt (stored 0%)
(补充:这里以将 test 目录和里面的 test.txt 文件加密压缩成 test2.zip (压缩)包并且将密码设置为 eternalcenter 为例)
步骤三:解压加密文件或目录
3.1 交互式解压加密文件或目录
3.1.1 删除原测试目录和里面的文件
# rm -rf test
(补充:这里以删除 test 目录和里面的文件为例)
3.1.2 交互式解压加密文件或目录
# unzip test2.zip
Archive: test2.zip
creating: test/
[test2.zip] test/test.txt password:
extracting: test/test.txt
(补充:这里以解压 test2.zip (压缩)包为例)
3.2 非交互式解压加密文件或目录
3.2.1 删除原测试目录和里面的文件
# rm -rf test
(补充:这里以删除 test 目录和里面的文件为例)
3.2.2 非交互式解压加密文件
# unzip -P eternalcenter test1.zip
Archive: test1.zip
creating: test/
extracting: test/test.txt
(补充:这里以解压 test2.zip (压缩)包并且解压密码为 eternalcenter 为例)
[步骤] Linux rm 命令的监控
步骤一:将原来的 rm 命令进行备份
# cp /usr/bin/rm /usr/bin/rm.original
步骤二:创建一个记录 rm 命令使用的脚本
# cat /usr/bin/rm
#!/bin/bash
log=/var/log/rm_command.log
echo "The $$ is calling rm command" >> $log
echo "The full command is $*" >> $log
echo
echo "now use this command to get more information: /bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd" >>$log
/bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd >>$log
/usr/bin/rm.original $*
echo "============================================================" >>$log
步骤三:给记录 rm 命令使用的脚本执行权限
# chmod 755 /usr/bin/rm.original
步骤四:下次使用 rm 命令后就可以监控 /var/log/rm_command.log 日志了
(步骤略)