收集整理的Linux下的小技巧(三)


1.远程copy大文件

利用ssh和tar,一边压缩,一边copy. 当文件大小上G了以后比较有用.
如果你要copy的文件名为big_file.img,则可以用如下命令.
tar -czvf - big_file.img | ssh dest_host "cd /share/; tar -xvf"


copy 到dest_host的/share/目录.

2.文件自动备份

用rsync,查一下 rsync的manual就会了,很方便也比较简单。我用rsync来备份几百G的数据依然工作的非常好。
用rsync还有几个原因:
增量式备分
远程文件可进行一边压缩一边备分

3.Linux X Window下连接Windows的桌面

1).用rdesktop命令,请先安装rdestktop的RPM包,然后把Windows的远程桌面打开
2).用VNC,在Windows下安装 realvnc的server,然后在Linux下用vncviewer命令连接Windows的桌面

4.用wget下载整个网站

wget -r -p -np -k http://www.shaohui.org

5.解决vim中文乱码问题

把一下配置copy到你的vimrc里面,然后问题就解决了,另外对于中文的显示,pietty比putty做得更好。推荐一下。

set fileencodings=utf-8,cp936,big5,latin1
an 20.4109 &Edit.-SEP6- <Nop>
an 20.4109.10 &Edit.Encoding.&GBK :set encoding=gbk<CR>
an 20.4109.11 &Edit.Encoding.&Big5 :set encoding=big5<CR>
an 20.4109.12 &Edit.Encoding.&UTF-8 :set encoding=utf-8<CR>
an 20.4119.10 &Edit.Fileencodings.&GBK :set fileencodings=gbk<CR>
an 20.4119.11 &Edit.Fileencodings.&Big5 :set fileencodings=big5<CR>
an 20.4119.12 &Edit.Fileencodings.&UTF-8 :set fileencodings=utf-8<CR>
an 20.4139 &Edit.gb\ \ convert.gb->big5 :%!autogb -i gb -o big5<CR>
an 20.4139 &Edit.gb\ \ convert.gb->utf8 :%!autogb -i gb -o utf8<CR>
an 20.4149 &Edit.big5\ \ convert.big5->gb :%!autogb -i big5 -o gb<CR>
an 20.4149 &Edit.big5\ \ convert.big5->utf8 :%!autogb -i big5 -o utf8<CR>
an 20.4159 &Edit.utf8\ \ convert.utf8->gb :%!autogb -i utf8 -o gb<CR>
an 20.4159 &Edit.utf8\ \ convert.utf8->big5 :%!autogb -i utf8 -o big5<CR>

6. 字符集转换

也是用来解决中文乱码问题,尤其是用wget下载网页的时候出现的乱码,tip 5解决了用vim的乱码问题,但是用cat命令查看问题的时候依然乱码。最近想写个脚本去baidu mp3去抓歌曲,顺便解决了这个问题。
iconv -f gbk -t utf8 srcfile > dstfile

7. Shell中多行变一行的方法

一直都用vim来做,就是太ugly了一些。
vi filename -c ":%s/\n//g" -c ":x"
google了一把,有意外的收获
文本内容:
$cat test.txt
001
002
003
004
005
006
0000999

需要格式化成:
001 002 003 004 005 006 0000999

方法一、最好的答案
xargs < test.txt

方法二、整个文件读入一个变量,然后直接打印,也很容易理解
a=`cat test.txt`;echo $a
方法三、使用tr把换行符替换成空格:
tr -s "\n" " " < test.txt;echo

方法四、使用sed,把整个文件读入保持空间,处理最后一行的时候,替换所有换行符为空格,打印:
sed -n '1h;1!H;${g;s/\n/ /g;p;}' test.txt

方法五、使用awk,读入一行打印一行,但是不打印换行符,最后一行多打印一个换行符:
awk '{printf("%s ",{GetProperty(Content)});}END{print}' test.txt

方法六、使用paste命令格式化打印,-d指定分隔符,-s表示合并成一行:
paste -d" " -s - < test.txt

方法七、使用pr格式化打印,-s指定分隔符,-50指定每行打印多少域,-t指定取消页眉、页尾:
pr -50t -s" " test.txt

8.Linux下的多线程下载工具

wget是单线程下载,所以速度很慢。 prozilla是个不错的选择,有命令行的,也有GUI版本的,下载速度超级快。
官方网站:http://prozilla.genesys.ro/
安装很简单, 我用source自己make的。

 

本文作者:

1.远程copy大文件

利用ssh和tar,一边压缩,一边copy. 当文件大小上G了以后比较有用.
如果你要copy的文件名为big_file.img,则可以用如下命令.
tar -czvf - big_file.img | ssh dest_host "cd /share/; tar -xvf"


copy 到dest_host的/share/目录.

2.文件自动备份

用rsync,查一下 rsync的manual就会了,很方便也比较简单。我用rsync来备份几百G的数据依然工作的非常好。
用rsync还有几个原因:
增量式备分
远程文件可进行一边压缩一边备分

3.Linux X Window下连接Windows的桌面

1).用rdesktop命令,请先安装rdestktop的RPM包,然后把Windows的远程桌面打开
2).用VNC,在Windows下安装 realvnc的server,然后在Linux下用vncviewer命令连接Windows的桌面

4.用wget下载整个网站

wget -r -p -np -k http://www.shaohui.org

5.解决vim中文乱码问题

把一下配置copy到你的vimrc里面,然后问题就解决了,另外对于中文的显示,pietty比putty做得更好。推荐一下。

set fileencodings=utf-8,cp936,big5,latin1
an 20.4109 &Edit.-SEP6- <Nop>
an 20.4109.10 &Edit.Encoding.&GBK :set encoding=gbk<CR>
an 20.4109.11 &Edit.Encoding.&Big5 :set encoding=big5<CR>
an 20.4109.12 &Edit.Encoding.&UTF-8 :set encoding=utf-8<CR>
an 20.4119.10 &Edit.Fileencodings.&GBK :set fileencodings=gbk<CR>
an 20.4119.11 &Edit.Fileencodings.&Big5 :set fileencodings=big5<CR>
an 20.4119.12 &Edit.Fileencodings.&UTF-8 :set fileencodings=utf-8<CR>
an 20.4139 &Edit.gb\ \ convert.gb->big5 :%!autogb -i gb -o big5<CR>
an 20.4139 &Edit.gb\ \ convert.gb->utf8 :%!autogb -i gb -o utf8<CR>
an 20.4149 &Edit.big5\ \ convert.big5->gb :%!autogb -i big5 -o gb<CR>
an 20.4149 &Edit.big5\ \ convert.big5->utf8 :%!autogb -i big5 -o utf8<CR>
an 20.4159 &Edit.utf8\ \ convert.utf8->gb :%!autogb -i utf8 -o gb<CR>
an 20.4159 &Edit.utf8\ \ convert.utf8->big5 :%!autogb -i utf8 -o big5<CR>

6. 字符集转换

也是用来解决中文乱码问题,尤其是用wget下载网页的时候出现的乱码,tip 5解决了用vim的乱码问题,但是用cat命令查看问题的时候依然乱码。最近想写个脚本去baidu mp3去抓歌曲,顺便解决了这个问题。
iconv -f gbk -t utf8 srcfile > dstfile

7. Shell中多行变一行的方法

一直都用vim来做,就是太ugly了一些。
vi filename -c ":%s/\n//g" -c ":x"
google了一把,有意外的收获
文本内容:
$cat test.txt
001
002
003
004
005
006
0000999

需要格式化成:
001 002 003 004 005 006 0000999

方法一、最好的答案
xargs < test.txt

方法二、整个文件读入一个变量,然后直接打印,也很容易理解
a=`cat test.txt`;echo $a
方法三、使用tr把换行符替换成空格:
tr -s "\n" " " < test.txt;echo

方法四、使用sed,把整个文件读入保持空间,处理最后一行的时候,替换所有换行符为空格,打印:
sed -n '1h;1!H;${g;s/\n/ /g;p;}' test.txt

方法五、使用awk,读入一行打印一行,但是不打印换行符,最后一行多打印一个换行符:
awk '{printf("%s ",{GetProperty(Content)});}END{print}' test.txt

方法六、使用paste命令格式化打印,-d指定分隔符,-s表示合并成一行:
paste -d" " -s - < test.txt

方法七、使用pr格式化打印,-s指定分隔符,-50指定每行打印多少域,-t指定取消页眉、页尾:
pr -50t -s" " test.txt

8.Linux下的多线程下载工具

wget是单线程下载,所以速度很慢。 prozilla是个不错的选择,有命令行的,也有GUI版本的,下载速度超级快。
官方网站:http://prozilla.genesys.ro/
安装很简单, 我用source自己make的。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3