Linux
Tony_Xian
这个作者很懒,什么都没留下…
展开
-
linux下在ctags不能正常使用,cstag:找不到tag
本人遇到的具体情况为,在某个目录下有一些头文件,使用vim写代码的时候需要使用ctags查找一些函数,在 /etc/vimrc 下添加:set tags=/路径/tags,但是一直出现错误:E257:cstag:找不到tag。解决方法:在用户的家目录下创建.vimrc文件,在这个文件里进行设置即可如:#vim ~/.vimrc在.vimrc中设置:set tags=/路径/tags—...转载 2020-03-17 09:57:40 · 1924 阅读 · 1 评论 -
vim自动补全
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vimvi .vimrcset nocompatible "去除VIM一致性,必须"filetype off "必须""设置包括vundle和初始化相关的运行时路径"set r...原创 2020-03-14 14:59:32 · 241 阅读 · 0 评论 -
xshell生成公钥和私钥
一.打开你的xshell工具,工具栏有一个工具选项,点开选择新建用户密钥生成向导(如下图所示)二.点开之后就会如上图所示一样,点击选择下一步,出现如下,再点击下一步点击完下一步会出现如下图所示密钥名称可以自己命名,然后输入密钥密码,(记住密钥密码),点击下一步,弹出如下界面点击保存为文件按钮,记住保存在哪,这个是公钥文件,公钥文件保存完成,点击完成按钮会出现如下界面...转载 2020-02-16 19:51:24 · 2255 阅读 · 0 评论 -
使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤……在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网;或者(2)你在执行了shell命令之后必须要关闭终端软件(...转载 2020-02-05 18:52:59 · 308 阅读 · 0 评论 -
什么是死锁和如何解决死锁
如果一组进程中每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。举例来说:有两个进程A和B,A持有资源a等待b资源,B持有资源b等待a资源,两个进程都在等待另一个资源的同时不释放资源,就形成死锁。形成死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3...转载 2020-02-03 19:43:46 · 596 阅读 · 0 评论 -
错误"error while loading shared libraries: xxx.so.x" 的原因和解决办法
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,比如:error while loading shared libraries: libprotobuf.so.9: cannot open shared object file: No such file or directory原因一般有两个,一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者...转载 2020-01-16 16:05:35 · 1631 阅读 · 0 评论 -
centos7安装bazel
先决条件:openjdk1.8 ,openjdk-devel1.81. 操作系统需求centos72. 资源库下载https://docs.bazel.build/versions/master/install-redhat.html参见以上链接,下载repo文件并复制到 /etc/yum.repos.d/.3. 安装yum install bazel可能会存在镜...转载 2020-01-11 14:20:01 · 1286 阅读 · 1 评论 -
xshell远程连接自动断开的问题解决办法
关于用xshell远程连接系统自动断开问题的解决办法:1、服务器端的配置我们都知道,作为服务器,默认一般都是被动的等待客户端的连接到来。但对基于ssh协议的xshell的运用,总是出现自动断开的情况。vi命令打开/etc/ssh/sshd_config文件,可以看到:ClientAliveInterval用来指定服务器向客户端发送消息的时间间隔。默认是0,即不发送。Cli...转载 2019-08-05 16:31:07 · 1054 阅读 · 0 评论 -
Xshell远程连接虚拟机时很慢
今天突然发现使用Xshell远程连接虚拟机连不上了,就想起公司昨天修改的IP地址和网关,立马登录Linux中去修改了DNS和网关,还ping了一下主机和百度,没问题,ok,保存退出。然后使用Xshell5连接虚拟机,直接ssh root@ip半天不出输入密码的输入框,我都以为断网了,等了半天出来了密码输入框,输入之后又等待半天,居然连上了,太慢了,不能忍了。就开始研究百度了。后来发现...转载 2019-08-05 11:44:14 · 701 阅读 · 0 评论 -
ulimit相关
https://www.cnblogs.com/zengkefu/p/5649407.html转载 2019-05-27 13:01:38 · 72 阅读 · 0 评论 -
xshell设置快捷键 设置Ctrl+C Ctrl+V快捷键为复制粘贴
https://www.cnblogs.com/sxdcgaq8080/p/10025759.html转载 2019-04-15 00:10:30 · 690 阅读 · 0 评论 -
linux下支持C++11
g++ -std=c++11 -o test test.cpp或者:sudo vim ~/.bashrc在some more ls aliases注释块的地方添加下面这两行:alias g++11='g++ -g -Wall -std=c++11'alias g++14='g++ -g -Wall -std=c++14'source ~/.bashrcg++11 -o ...转载 2019-04-06 23:31:58 · 358 阅读 · 0 评论 -
CENTOS7配置静态IP后无法ping通外部网络的问题
我今天想谈论的并不是如何配置静态IP,这样的话题已经有好多高手再谈。我想谈的是为什么,我按照他们的教程无论如何也要发生各种问题,没办法连接外网的问题。先给大家看我的最终版配置方案:我只修改了一个文件,修改的部分已经红色标出。注:这个配置足够解决所有问题,不需要修改其他地方vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethe...转载 2019-02-12 10:18:56 · 5238 阅读 · 1 评论 -
VIM文本替换命令
在VIM中进行文本替换: 1. 替换当前行中的内容: :s/from/to/ (s即substitude) :s/from/to/ : 将当前行中的第一个from,替换成to。如果当前行含有多个 from,则只会替换其中的第一个。 :s/from/to/g :...转载 2019-01-06 15:07:21 · 495 阅读 · 4 评论 -
设置windows和linux共享文件夹
在vmware下点击虚拟机选择设置,再点击选项,选择共享文件夹,选择总是启用,然后自己选择目录即可 linux下执行以下命令(centos版本)yum install open-vm-tools-devel -ycd /mnt mkdir hgfsvmhgfs-fuse .host:/ /mnt/hgfs 参考:https://www.cnblogs.co...原创 2018-11-14 18:52:10 · 406 阅读 · 0 评论 -
解决 CentOS7 安装完成后ifconfig命令不能用
今天用VMWare安装了CentOS7,选择了最小安装包模式,安装完毕之后想查看一下本机的ip地址,发现报错# ifconfig-bash: ifconfig: command not found谷歌了一下,整理了一下解决思路 查看ifconfig命令是否存在 查看 /sbin/ifconfig是否存在 如果ifconfig命令存在,查看环境变量设置...转载 2018-11-14 09:18:21 · 1281 阅读 · 0 评论 -
vim 设置tab宽度
http://blog.chinaunix.net/uid-346158-id-2131115.html 工作中嫌vim 中一个tab的宽度太大,debian系统,没改之前是宽度是8个字符,想改成4,如下:cd ~vim .vimrc添加如下几行:(括号中的不是,是我添加的)set shiftwidth=4 (表示每一级缩进的长度)set softtabsto...转载 2018-08-19 16:44:51 · 1757 阅读 · 0 评论 -
Linux 快速配置 VIM 实现语法高亮 自动补全 自动缩进以及文件管理等功能
1.首先下载以下压缩包并解压链接:http://pan.baidu.com/s/1o82ke5k 密码:75rq 解压后可以看到里面有三个文件 文件夹doc文件夹plugin隐藏文件.vimrc 2.然后 cd ~ 进入自己的工作目录ls -a 看在隐藏文件中有没有 文件夹.vim 和隐藏的配置文件 .vimrc 没有的话 mkdir .vim...转载 2018-08-19 16:49:48 · 1929 阅读 · 0 评论 -
Unix/Linux中的read和write函数
文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或create返回的文件描述符表示该文件,将其作为参数传给read或write函数。write函数 write函数定义如下:#include <unistd>ssize_t ...转载 2018-08-26 23:45:25 · 370 阅读 · 0 评论 -
socket关于数据边界的说明
Socket的Send,Recv的长度问题:一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。 windows的缓冲区经验值是4k。 Socket本身分为两种,流(TCP)和数...转载 2018-08-22 21:25:48 · 2031 阅读 · 0 评论 -
关于linux下printf函数输出不及时的解决
在linux系统下,printf函数是行缓冲式的输出,当printf遇到\n时,或者缓冲区满时,才会将缓冲区里的内容刷新到标准输出(stdout).因此, printf("p"); 等语句的显示不能立刻显示在屏幕上,但是printf("p\n"); 可以.为了解决这个问题可以通过:fflush(stdout);解决,即变成:printf("p");fflush(stdout);问题可以得...转载 2018-08-27 21:51:31 · 2609 阅读 · 0 评论 -
linux网络编程之shutdown() 与 close()函数详解
1.close()函数#include<unistd.h>int close(int sockfd); //返回成功为0,出错为-1. close 一个套接字的默认行为是把套接字标记为已关闭,然后立即返回到调用进程,该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数,然而TCP将尝试发送已排队等待发送到对端的任何数据,发送完...转载 2018-08-31 12:29:03 · 1511 阅读 · 0 评论 -
面试题整理 tcp三次握手的过程,accept发生在三次握手哪个阶段?
tcp三次握手的过程,accept发生在三次握手哪个阶段?第一次握手:客户端发送syn包(syn=j)到服务器。 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。 三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用ac...转载 2018-09-02 21:05:42 · 1507 阅读 · 0 评论 -
三次握手的缺陷&accpet函数在什么地方调用
我记得这个问题是大4同学在找工作的时候被问及的(我考研)。他当时也是一脸懵逼,回来之后还把这个跟我说了,我也不知道这个问题的答案(说白了就是知识串联的不好)。不过后来从新整理一下思路就得到答案了,这里我就不放三次握手的图解过程了。完全可以从之前的知识以及常识推出这个问题的答案。我们都知道三次握手的第一步是客户端向服务器发送连接请求,第二步是服务器回应客户端的请求,第三步是客户端确认连接。其实这...转载 2018-09-02 21:06:27 · 244 阅读 · 0 评论 -
socket中的read返回0
在socket中服务器与客户端进行通信,当其中一方调用close(即这一方会发送一个fin)关闭套接字之后,另一方read()会返回一个0。我之前编写的一个服务器与客户端通信(一个服务器只连接一个客户端):服务器开两个进程,一个用于接收客户端发送的数据,另一个进程用于向客户端发送数据。客户端开两个进程也是一个用于发送数据一个用于接收数据。由于创建了两个进程,那么套接字的引用计数都为2,只有...翻译 2018-09-15 17:24:01 · 3962 阅读 · 0 评论 -
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
recv:阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:非阻塞模式下返回 值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况 下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返...转载 2018-09-15 17:26:41 · 474 阅读 · 0 评论 -
关于TCP和UDP的服务器和客户端的执行步骤
TCP编程的服务器端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数setsockopt(); * 可选3、绑定IP地址、端口等信息到socket上,用函数bind();4、开启监听,用函数listen();5、接收客户端上来的连接,用函数accept();6、收发数据,用函数send()和recv(),或者read()和write();...转载 2018-09-25 22:32:42 · 1253 阅读 · 0 评论 -
关于linux下read和write函数
以下说明指在网络编程中,即Socketlinux下read函数当缓冲区没有数据可读时,read会阻塞当要读的字节数小于缓冲区数据的字节数时,则将要读的字节数的内容读出来当要读的字节数大于等于缓冲区,则将缓冲区的内容全部读出来此缓冲区是指套接字缓冲区,并不是read函数里面的buf,下同 linux下write函数当写入的数据大于缓冲区的大小时,即缓冲区已没有足够空间...原创 2018-09-20 23:57:20 · 657 阅读 · 0 评论 -
Linux进程间通信方式
https://blog.csdn.net/godleading/article/details/78391159#%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86-2转载 2018-10-18 20:47:57 · 687 阅读 · 0 评论 -
Linux命令--如何选中几行再粘贴到某行
1.选中几行:命令行模式下开始行号,结束行号+y,再回车2.粘贴命令行模式下,按P转载 2018-08-19 16:31:05 · 2388 阅读 · 2 评论