tar命令
tar指定路径解压:
tar -zxvf xxx.tgz -C /home/your/dir(此目录必须首先存在)
tar当前路径解压:
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压 tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压 tar.Z
tar命令打包文件,并未进行压缩
tar -cvf tarfile.tar file1 file1 file3 //打包当前目录下的3个文件为.tar
tar -czvf ~/monitor/monitor.tgz monitor //将moniotr文件夹用gzip压缩为monitor.tgz包
其他的解压缩命令
unrar e file.rar //解压rar
unzip file.zip //解压zip
rpm命令安装程序
rpm -ivh your-package.rpm //安装rmp安装包
rpm -q your-package.rpm //查找yum安装包
grep命令查找文件中的字符串
grep -rn hello ./* //在当前目录下查找包含'hello'字符串的文件
grep -rn fine ./* | grep -v test.c //在当前目录下查找包含'fine'字符文件,但跳过test.c文件
创建目录
mkdir -p /home/xu/test/ipc //中间目录不存在也会创建,存在就不创建成功返回
mkdir /home/xu/test/ipc //中间目录不存在失败返回
netstate查看端口命令
netstat //列出系统中所有套接子的状态
netstat -a //查看当前系统中所有套接子的情况[包括监听和未监听的] 默认不显示LISTEN相关
netstat -at //列出所有tcp套接子的信息
netstat -au //列出所有 udp 端口 netstat -au
netstat -l //仅列出在 Listen (监听) 的端口状态
netstat -r //显示核心路由信息 使用 netstat -rn 显示数字格式,不查询主机名称
netstat -c //每隔一个固定时间,执行该netstat命令
netstat -s //显示所有端口的统计信息
netstat -ap | grep ssh //找出程序运行的端口
netstat -an | grep ':80' // 找出运行在指定端口的进程
netstat -nlpt //查看tcp相应的端口是否开启
netstat -nta //显示所有tcp的端口信息,-t显示tcp协议 -n直接使用IP地址显示 -a显示全部
netstat -pnta |grep monitor //显示跟monitor程序相关的端口信息 必须有-p选项 -p显示程序名
netstat -ctnpa |grep monitor //实时的显示monitor程序相关的端口信息
netstat -ltnp | grep 30000 //显示端口30000相关的信息
netstat -nlpt | grep BRM //显示BRM程序相应的端口信息
使用ftp传送文件
1.与远程地址建立连接:
ftp 197.1.4.105
2.将文件转换成二进制格式
bin
3.将本地文件传送到远程(只能传送文件 不能传送文件夹 文件夹需压缩)
put test.zip
4.获取远程文件
get test.zip
5.解压文件
unzip test.zip //解压到当前的目录下
Linux中的SVN使用
添加新文件:
svn add filename
添加修改:
svn ci
更新远程到本地:
svn up
gdb调式
coredump的设置:只对当前的端口有作用
ulimit -c unlimited //产生coredump且不受大小受限制
ulimit -c 0 //取消产生coredump
调试core文件,进入之后bt查看当前的栈哪个函数造成段错误
gdb monitor core.345343 //monitor为可执行二进制文件
调式一个带参数的可执行程序: ./a.out 127.0.0.1 10008
方式一:
gdb a.out
set args 127.0.0.1 10008
run //运行程序
方法二:
gdb --args a.out 127.0.0.1 10003
run //运行程序
调试一个正在运行的程序:
ps -ef |grep monitor //显示所有与damR相关的进程号 ps aux |grep monitor
gdb --pid pid //调试正在运行的pid的程序 需要root的权限
断点设置:
b net.c: 200 //在net.c的200行设置一个断点
b connect //在函数connet处设置一个断点
b 200 //在本文件的200行设置一个断点
删除断点:
clear list_insert //删除函数的所有断点
clear list.c:list_delet //删除文件中函数的所有断点
clear 12 //删除行号的所有断点
clear list.c:12 //删除文件中行号的所有断点
信号调试:
handle SIGINT nostop pass print //接收信号不停止,传递给正在调试的程序并打印信号
signal SIGINT //产生一个SIGINT信号
查看数值
print *set@len //打印set[char* int*等等]这个指针所指内存里面的值,打印出1en的长度
set print elements len//len为设置的需要打印的多少字节数,以后使用p的时候会显示出这么多字节的数据
set print pretty //需要打印结构体的时候设置此选项更加的具有可读性
list //列出下面要进行运行的代码 ctrl+x ctrl+a gdb显示代码
info thread //查看当前多少线程 *代表正在运行的线程
x 0x123456 //以十六进制的格式打印出地址0x123456的内存的值
bt[backtrace] //查看当前线程整个栈的情况
thread 虚拟进程号 //【前面的小数字1,2,3】 //切换到某个线程
frame 1 // 切换到栈的第二次 0代表栈顶
运行中的控制
next //不进入函数里面往下面执行一步 n
step //进入函数里面往下面执行一步 s
continue //继续运行直到遇到断点或者给gdb发送信号ctrl+c[如果是多线程则需要关闭调度锁] c
多线程调式:
set scheduler-locking on //锁住其他线程,除了带*的线程其他全部停止运行
set scheduler-locking off //关闭锁定
调试时进入系统无法退出,则输入命令:
finish // 直接退出函数 函数依旧会执行
替换字符串
sed文件外替换:
sed -i ‘s/oldstring/newstring/g’ `grep "oldstring" -rl path`
sed -i 's/oldstring/newstring/g' file.c file1 files//替换这三个文件中的内��|9
-i: 在文件中直接替换,而不是输出到终端
-r:在目录中递归查找
-l: 输出找到包含oldstring 的文件名
“s/oldstring/newstring/g” 替换字符串的语法,后面的g表示替换所有的
grep "oldstring" -rl path : 注意该命令两边的引号
将当前目录下所有文件中”mfptp_parser”替换成”mfptp_parse_info”[全局替换] -type f 代表所有普通文件
find ./ -type f |xargs sed -i s#mfptp_parser#mfptp_parse_info#g
vim文件内替换:
%s/oldstring/newstring/g
远程登录问题
打开服务,可以让别的机器远程登录 ssh 和scp功能:
service sshd start
远程电脑connect连接不上[Errno 113 No route to host],则开启远程绑定的端口
firewall-cmd --add-port=10003/tcp //10003为要连接的端口
kill命令
killall damR//杀死所有关于damR的相关进程
kill -9 pid//杀死进程pid
vim粘贴时格式混乱的问题
如果在.vimrc中设置了自动缩进set autoindent,那么在插入模式下粘贴代码时,vim会自动为代码缩进,导致格式混乱。解决的办法如下:
在.vimrc中设置set paste选项,这样粘贴代码时就不会产生缩进了,但是如果需要缩进的时候又要把该选项改回set nopaste。这样换来换去很麻烦,所以可以设置一个开关。
set pastetoggle
如此,通过按F9键就可以打开和关闭paste选项了,粘贴之前按下F9,需要缩进时再按下F9。
其他
调试网络程序需要用到的命令:
ps -t pts/6 -o pid,ppid,tty,stat,args,wchan
ps -T -p pid //显示进程pid里面创建的线程
调试的几个命令:
ps -ef | grep programName //找到在运行的programName的pid
gdb –pid pidNumber //可以直接这样调试正在运行的程序
top //查看cpu的利用率
netstat -nlpt //查看tcp相应的端口是否开启
strace -p pid
htop -p pid
查看共享内存命令:
ipcs -m