Bash_profile
# .bash_profile
# get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# user specific environment and startup programs
export CVSROOT=:pserver:name@192.168.2.94:/cvs/src
export PROJECT_HOME=/home/name
export LANG=en_YS
显示n层目录结构
tree -L n
查看网络和进程
ps –ef|grep ow
netstat –nap|grep “owlrm”
netstat –nap|grep “US”
查看计算机位数
getconf LONG_BIT
Shell脚本
#!/bin/bash
执行脚本,必须先使其可执行
chomd +X filename.sh
脚本调试
sh -x filename.sh
上述命令会执行该脚本,同时显示所有变量的值
sh -n filename.sh
不执行该脚本,只检查语法的模式,返回所有语法错误
Ctags 配置
ctags –R .
.vimrc 增加一行:set tags=tags;/
nnoremap <silent> <F8>:TlistToggle<CR>
在vim中按F8就可以打开/关闭taglist
Makefile
内部变量
$@表示目标名(:前面的部分,比如all)
$<表示依靠列表(:后面的部分)中的第一个依靠文件
$^表示所有依靠文件
单机界面的启动
cd /opt/contex/ContEm-3.4.5.5_Preview/bin
./startup.sh
ps –e|grep java
grep “your debug info” lsd.log
tailf lsd.log |grep “your debug info”
tcpdump抓包
tcpdump udp and port 161 –i lo –s 0 –w 1.cpp –vv
tcpdump host 192.168.91.46 –s 0 –w 1.cpp –vv
Post
./owhttp 192.168.91.46 6040 1.xml
Gdb调试
File core.5678
Gdb owccm core.5678
Bt
代码架构
Cmd 接口的实现
Entity 数据抽象
Job 后台线程任务
Mgr db封装,管理数据
Msg 发送请求
Servicelocator 对象实例化
Serviceservlet 服务请求
MD5
Md5sum owccm
ENV设置语言
Env |grep LANG
Export LANG=en_YS
VIM替换命令
:%s/info/debug/g
String和C风格转换
String类赋给C风格的字符串
String var(“Olympic”);//string var = “Olympic”;
Const char *p = var.c_str();
把整数123打印成一个字符串保存在s中
Sprintf(s,”%d”,123);
动态内存分配(C版本)
Void *p;
P = (int *)malloc(sizeof(int)*100);
SecureCRT
从服务器下载文件到本机
sz filename
从本机上传文件至服务器
rz
SCP
注意:并不需要端口
scp -P 5188 gcm-4.0.1.4.B1.pkg root@192.168.91.46:/tmp/package
OWL
export OWL=OWL4.2
Cvs 逐行查看修改历史
cvs ann -rBranch_4_0_0_0_20120228 entity/xrmqamrelation.cpp >1.log
ORACLE数据库配置
cd /opt/client_2/
export ORACLE_HOME=/opt/client_2/
export PATH=/opt/client_2/bin/:$PATH
export LD_LIBRARY_PATH=/usr/lib:/usr/lib64/:/opt/client_2/lib/
sqlplus /nolog
vim /opt/client_2/network/admin/tnsnames.ora
查看db
/usr/local/BerkeleyDB.5.1/bin/db_checkpoint -1 -h /data/db/lrm/
/usr/local/BerkeleyDB.5.1/bin/db_dump -p /data/db/lrm/xrmcomponent.db
TAG
<1>: CVS
打tag时需要修改的文件如下:
Makefile version.h changelog
[jiangzhe@contex201 main]$ cvs rtag XRM_3_4_5_7_SP3_B6_20130131 cdnsimba/xrm
比较两个版本间的区别:
Cvs diff –r COMMON_3_4_5_7_SP3_B1_20120127 COMMON_3_4_5_7_SP3_B1_20130127 cdnsimba/lib
<2>: GIT
git tag XRM_3_4_5_7_SP3_B6_20130131
git push origin XRM_3_4_5_7_SP3_B6_20130131
License信息管理
Generate gethardwareinfo
第一步:./gethardwareinfo得到机器的硬件信息码
第二步:修改LICENSE.xml,主要修改hard-info等信息
第三步:./generate –f LICENSE.xml生成xxx_license.dat
GIT
1.设置用户和邮件
[zhe.jiang@6SATA ~]$ git config user.name "zhe.jiang"
[zhe.jiang@6SATA ~]$ git config user.email
2.初始化git步骤
cd ~/.ssh
ssh-keygen –t rsa –C
cat id_rsa.pub,添加key到github
cd
mkdir cdn4
cd cdn4
git init
git clone ssh://zhe.jiang@git.sihuatech.com:29418/cdnsimba/xcm.git
3.生成自己账号的公钥:参照:,然后登陆:,将自己的公钥,添加进去。(先sign in,再进入Setting,再SSH Public Keys)。
以获取cdnsimba/xcm代码为例,步骤:
- mkdir test
- cd test
- git init
- git clone ssh://zhe.jiang@git.sihuatech.com:29418/cdnsimba/xcm.git
5.checkout分支
git checkout -b Branch_ForOCNSDV_20130415 origin/Branch_ForOCNSDV_20130415
git branch
6.切换到master
git checkout master
7.查看blob对象的内容
git show 6280d27dc631
SSH
ssh
GREP
grep -10 "qamDevice.getUsedBandwidth()" lrm.log.4
时间格式转换
478 string::iterator it = serviceEndTime.begin();
479 for(;it!=serviceEndTime.end();it++)
480 {
481 if(*it=='-' || *it==' ' || *it==':')
482 serviceEndTime.erase(it);
483 }
Token认证
频道配置
认证信息 authpolicy策略:脚本/加密字符串:authmode=3|key=The Secr
高级信息 认证字符串:token=
cd cdn4/cdntools/token
make
./tokeninfo -c -u http://192.168.101.11:7368/opt/hero.ts -a 'The Secr' -i 192.168.101.11 -E 10000000
路由和Ping操作
Ping 192.168.1.1
Ping 8.8.8.8
Route add 192.168.100.0 mask 255.255.255.0
时间字符串处理函数
void TimeToClock(time_t time, char * clock)
{ struct tm temp1; time_t sec = time; localtime_r(&sec, &temp1); temp1.tm_year += 1900; temp1.tm_mon += 1; int rc = sprintf(clock, "%04d-%02d-%02d %02d:%02d:%02d", temp1.tm_year, temp1.tm_mon, temp1.tm_mday, temp1.tm_hour, temp1.tm_min, temp1.tm_sec ); clock[rc] = '\0'; }LD_LIBRARY_PATH设置
cp testserver /opt/contex/lrm/bin/
cd /opt/contex/lrm/bin/
ldd testserver
grep "LD_L" owlrm.sh
export LD_LIBRARY_PATH=/opt/contex/lrm/lib/
./testserver &(后台运行)
字符串截取函数
#include<cstdio>
#include<string>
#include<iostream>
#include<list>
using namespace std;
int main()
{
string sessionGroup = " SM1 SM2 SM3 SM4 SM5 ";
list<string> sessionGroupList;
string::iterator ite = sessionGroup.begin();
string tmpStr("");
for(; ite != sessionGroup.end(); ite++)
{
if(*ite != ' '){
tmpStr += *ite;
}
else{
if(tmpStr.size() != 0){
sessionGroupList.push_back(tmpStr);
tmpStr.clear();
}
}
}
}
Rpm包解压
闲话少说,祭出法宝,因为rpm实际上使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:
rpm2cpio xxx.rpm | cpio –div
Pkg打包
tar czf keeper-3.4.6.2.B2.pkg install.sh bin lib
tar zcvf lsd.tar.gz lsd.log.1 (!这个很好!)
-rw-r--r-- 1 root root 245M 42 11:32 lsd.log.1
-rw-r--r-- 1 root root 15M 42 15:25 lsd.tar.gz
grep加强版
grep "$1" -r . |awk -F":" '{print $1}' |grep -e "\.cpp" -e "\.h" |uniq
关于代码建分支
Br表示分支,区别于Tag
Bug表示分支目的是修复bug,JiraNum是jira单号
Fun表示分支目的是开发新功能,Desc是功能描述,在此不用jira单号,是考虑一个功能在jira上会拆分为多个单子
Date是开分支时间
格式:
Br_Bug_JiraNum_Date
Br_Fun_Desc_Date
样例:
Br_Bug_CONTEXIII5678_20140218
Br_Fun_M3u8Tag_20140218
Linux开放端口
1)、修改 /etc/sysconfig/iptables 文件
2)、重启 iptables
service iptables restart