Linux常用命令笔记

来源:互联网 发布:滑雪服品牌 知乎 编辑:程序博客网 时间:2024/06/05 22:39

tar命令

tar指定路径解压:

tar  -zxvf xxx.tgz  -C  /home/your/dir(此目录必须首先存在) 

tar当前路径解压:

tar -xvf file.tar        //解压 tar包tar -xzvf file.tar.gz    //解压 tar.gztar -xjvf file.tar.bz2   //解压 tar.bz2tar -xZvf file.tar.Z     //解压 tar.Z

tar命令打包文件,并未进行压缩

tar -cvf tarfile.tar file1 file1 file3  //打包当前目录下的3个文件为.tartar -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 -aunetstat -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.outset args 127.0.0.1 10008run  //运行程序

方法二:

gdb --args a.out 127.0.0.1 10003run  //运行程序

调试一个正在运行的程序:

ps -ef |grep monitor //显示所有与damR相关的进程号  ps aux |grep monitorgdb --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 //不进入函数里面往下面执行一步  nstep //进入函数里面往下面执行一步    scontinue //继续运行直到遇到断点或者给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

原创粉丝点击