好记性不如烂笔头,多练一定可以记住
1. tar.bz2.gz解压方法
php-5.2.3.tar.bz2.gz 的解压方法 [root@jock99 jock22]# gunzip php-5.2.3.tar.bz2.gz [root@jock99 jock22]# tar -xvf php-5.2.3.tar.bz2 (再进行解压) 然后再 编译安装。。
tar zxvf xxx.tar.gz
http://blog.sina.com.cn/s/blog_7993615401015244.html
压缩:
tar czvf C02.tar.gz C02/
解压:
tar xzvf folderTared.tar.gz /theDir/
filename=download.dat var=`echo "aaa,bbb,ccc"|awk -F ',' '{print $2}' ` fsize=`ls -l $filename | awk '{print $5}'` echo $var echo $fsize
3. curl 命令测试
curl "http://10.161.129.36:8090/mobile_road?df=4&idx=32&lv=12&dth=50&bn=1&bl=10" -o block.dat-o将下载结果存入文件中。
4. 修改vim配置
vi ~/.vimrc # 每次自动显示行号,tableSize设为4个空格。 :set ts=4 :set nu
vi中输入Tab制表符问题:
直接i,然后tab按键,按backspace的时候发现tab输入的是四个空格; 另一种方式,i,然后ctrl+v,然后tab,backspace的时候确实是tab按键,不是四个空格。
# read file line #!/bin/sh infile=download.dat while read -r line do url=`echo $line|awk -F ' ' '{print $1}'` dlsize=`echo $line|awk -F ' ' '{print $2}'` #echo $line echo $url, $dlsize done < $infiledownload.dat 文件内容:
http://113.142.18.208/r?df=4&idx=32&lv=16&dth=20&bn=3&bl=292,270,293 20392 http://113.142.18.208/r?df=4&idx=32&lv=17&dth=20&bn=2&bl=292,293 17520 http://113.142.18.208/r?df=4&idx=32&lv=18&dth=20&bn=2&bl=292,293 19460执行上述脚本,输出结果跟文件内容一致。
6. 基于curl,shell的自动化url测试工具:
输入文件内容如download.dat,通过awk将每行的url和dlsize存入两个变量中,通过curl下载数据写入临时文件block.dat,获取block.dat大小和dlsize比对。
# read file line #!/bin/sh infile=download.dat datafile=block.dat while read -r line do url=`echo $line|awk -F ' ' '{print $1}'` dlsize=`echo $line|awk -F ' ' '{print $2}'` #echo $line #echo $url, $dlsize #use url for download curl $url -o $datafile #get datafile size fsize=`ls -l $datafile | awk '{print $5}'` #check is download successfully? echo echo "+++++++++++++++++" if [ $fsize == $dlsize ];then echo "download successful" else echo "download failed." fi echo $fsize, $dlsize echo "-----------------" echo done < $infile
http://113.142.18.208/r?df=4&idx=32&lv=12&dth=20&bn=6&bl=32,25,31,33,24,30 6483对应最终一段输出内容 :
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6483 100 6483 0 0 5693k 0 --:--:-- --:--:-- --:--:-- 5073k +++++++++++++++++ download successful 6483, 6483 -----------------
7. Makefile 相关
% 零匹配或者若干字符匹配, %.h, %.c, mobile_%.h mobile_开头的头文件。
* *.c所有后缀为点c的文件
$? 所有比目标新的依赖目标的集合,空格分开
当你希望只对更新过的依赖文件进行操作时,"$?"在显式规则中很有用,例如,假设有一个函数库文件叫"lib",其由其它几个object文件更新。那么把object文件打包的比较有效率的Makefile规则是:
lib : foo.o bar.o lose.o win.o
ar r lib $? # 打包命令
$< 所有依赖目标集
$@ 所有目标集
例子:
objects = foo.o bar.o all: $(objects) $(objects): %.o: %.c $(CC) -c $(CFLAGS) $< -o $@上面的例子中,指明了我们的目标从$object中获取,“%.o”表明要所有以“.o”结尾的目标,也就是“foo.o bar.o”,也就是变量$object集合的模式,而依赖模式“%.c”则取模式“%.o”的“%”,也就是“foo bar”,并为其加下“.c”的后缀,于是,我们的依赖目标就是“foo.c bar.c”。而命令中的“$<”和“$@”则是自动化变量,“$<”表示所有的依赖目标集(也就是“foo.c bar.c”),“$@”表示目标集(也就是“foo.o bar.o”)。于是,上面的规则展开后等价于下面的规则:
foo.o : foo.c $(CC) -c $(CFLAGS) foo.c -o foo.o bar.o : bar.c $(CC) -c $(CFLAGS) bar.c -o bar.o
一个简单的Makefile框架:
CC = gcc XX = g++ CFLAGS = -Wall -O -g TARGET = ./road_server INCDIR = -I"/usr/local/include" LIBDIR = -L"/usr/local/lib" LIBS = -lfcgi -lz -lpthread RM = rm -rf %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ %.o:%.cpp $(XX) $(CFLAGS) -c $< -o $@ SOURCES = $(wildcard *.c *.cpp) OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES))) $(TARGET) : $(OBJS) $(XX) $(OBJS) $(INCDIR) $(LIBDIR) $(LIBS) -o $(TARGET) chmod a+x $(TARGET) clean : $(RM) *.o $(TARGETS)
参考:http://www.chinaunix.net/old_jh/23/408225.html
wildcard 函数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。注意函数跟参数间空格隔开。
SOURCES = $(wildcard *.c *.cpp) 结果是"a.c b.cpp d.cpp e.c" 等。
patsubst(patten substitude, 匹配替换的缩写)函数需要3个参数:第一个是需要匹配的模式,第二个是替换的模式,第三个是被处理的由空格分隔的字列。函数跟参数间空格隔开,参数之间用逗号隔开
OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(SOURCES))) 结果是"a.o b.o d.o e.o"
$< 表示上面一行 冒号右边所有的文件, $@ 表示上一行冒号左边所有文件。
VI正确输入制表符:修改Makefile文件时,i,tab输入制表符,然后backspace会发现tab被自动解析成四个空格。。输入tab方法:i,ctrl v,tab;此时backspace发现确实是制表符。
8. 手机抓包工具TcpDump
下载tcpdump包,拷到adb目录下,
电脑连接手机打开cmd,进入命令行,切换到adb目录下,执行:
adb push tcpdump /data/local/ adb shell chmod 6755 /data/local/tcpdump cd /data/local/ ./tcpdump -p -vv -s 0 -w /sdcard/capture.pcap要停止,按ctrl+c。
然后在sdcard目录下生成capture.pcap文件,使用WireShark 查看。
参考:http://www.pocketdigi.com/20111013/537.html
9. dos2unix
window上建立的文本文件每行结束符为^M,到linux上通过命令
dos2unix test.txt去掉文本中的^M符号。
10. 查找命令
find ./ -name "*.sh"寻找当前根目录下所有后缀为sh的文件。
11. 文件夹中文乱码问题
export LANG=zh_CN
写到文件, vi ~/.bash_profile
文件中录入 export LC_ALL=zh_CN.gbk
VIM中中文乱码问题:
set encoding=cp936 set fileencodings=gbk,utf-8,big5
su 登陆root
su - peteryfren 切换到指定账户
cd ~跳到当前账户根目录
13. secureCRT中home、delete、end按键不好使:
工具 \ 键映射编辑器中 双击这些按键,对话框listview下选择发送字符串,后面文本框中依次输入:
E VK_END \033[4~ E VK_HOME \033[1~ E VK_INSERT \033[2~ E VK_DELETE \033[3~http://www.opensoce.com/1340.html
14. Vim中home、delete、end按键不好使:
vi ~/.vim rc
set term=xterm set nu set backspace=indent,eol,start set encoding=cp936 set fileencodings=gbk,utf-8,big5 set sw=4 set ts=4 set et set hlsearchhttp://www.cbug.org/2012/09/12/vim-end-home.html
15. Vim中样式设置
colo delek syntax enablecolor主题路径:/usr/share/vim/vim64/colors
16. SecureCRT 设置:
反空闲 会话选项 / 终端 / 反空闲, 每隔600秒发送空格。
记住上次连接 全局选项 / 常规 / 默认会话 / 记住并连接最后一次使用的会话 。 克隆几个会话,下次打开后继续使用。
别自己设置字体 使用默认的Lucida Console字体。手工设置其他字体后会导致该字体丢失。。BUG。
主题:终端选择Linux,外观 颜色方案选择 黑 / 花白。
鼠标设置:Option / Global Option / Terminal 下面的Copy on select,Paste on right button
17. hexdump 使用
http://blog.csdn.net/zybasjj/article/details/7874720
hexdump file.bat -C | head // asc码形式输出file.dat文件头部
18. history 格式设置,
root权限直接 vi /etc/bashrc
用户权限,vi ~/.bashrc
#设置保存历史命令的文件大小 export HISTFILESIZE=10000000 #保存历史命令参数 export HISTSIZE=1000000 #实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的互相覆盖 #等号后面不能有空格 export PROMPT_COMMAND="history-a" #记录每条历史命令的执行时间 export HISTTIMEFORMAT="%Y-%d_%H:%M:%S"然后执行history 10 输出最近使用10条命令。注意文件中复制运算符=前后不能有空格。