,表示从当前行开始到最后一行) :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky :%s/vivian/sky/g(等同于 :g...user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/ 删除文本中的^M 问题描述:对于换行,window下用回车换行(0A0D)来表示,linux...在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令: :%s/VM// :%s/^M$//g 如果上述方法无用,则正确的解决办法是: tr -d “\r” dest tr
Vi放弃所作修改而直接退到shell下,则Vi在显示窗口的状态行给出提示信息: File exists (use ! to override) 此时, 在末行模式下,。...在末行模式下,若在用此命令退出Vi时,返回到shell;若当前编辑的文件没被修改过,输入命令 :wq Vi将先保存文件,输入命令 :w Vi保存当前编辑文件,输入命令 :x 该命令的功能同命令模式下的ZZ...命令功能相同,连按两次大写字母Z,编辑文件没有被保存,然后Vi并不退出, 在命令模式中,则Vi保存该文件后退出。...newfile 否则可选择另外的文件名来保存当前文件,若当前编辑的文件曾被修改过,但并不退出,若用户就是不想保存被修改后的文件而要强行退出Vi时, 在末行模式下,则Vi直接退出, 返回到shell,若newfile...是一个已存在的文件,然后退出Vi返回到shell, 在末行模式下,则Vi在显示窗口的最末行显示如下信息: No write since last change (use !
简单的epoll例子 下面的例子,是从笔者本人用c语言写的dbproxy中的一段代码。由于细节过多,所以做了一些删减。...那么,由accept获得的client_fd的结构如下图所示: (注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https://my.oschina.net/alchemystar/blog/1791017) 既然知道了tfile->f_op->poll的实现...add_wait_queue(whead, &pwq->wait); } 这样client_fd的结构进一步完善,如下图所示: ep_poll_callback函数是唤醒对应epoll_wait的地方,我们将在后面一起讲述...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...简单的epoll例子 下面的例子,是从笔者本人用c语言写的dbproxy中的一段代码。由于细节过多,所以做了一些删减。...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...ep_poll_callback函数是唤醒对应epoll_wait的地方,我们将在后面一起讲述。...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。
Linux vi的使用 vi模式转换 经常使用的三种基本模式:命令模式(Command Mode),输入模式(Input Mode),末行模式(Last Line Mode),其他的9种模式不做介绍,...vi文件保存和退出 :w 保存文件 :q 退出文件,若文件有改动则提示不能退出 :q!...强制退出,即不保存就退出 :wq 保存并且退出 vi常用操作 1、插入文本(i,I,a,A,o,O) 添加: 输入a后,在光标的右边插入文本 输入A,在一行的结尾处添加文本 插入:...输入dw来删除该词余下的部分 删除一行 将光标放置到该行的任意处并输入dd 删除多行 ndd 包括当前行 删除到文件的结尾 为删除从当前行到文件结尾的所有内容(包括当前行),需输入dG 4、复制...复制一行命令:yy 粘贴命令:p (粘贴到当前行的下一行) 复制指定文件的内容 : r filename 5、查找一个字符串 输入/,并在/后面输入要查找的串,然后按下回车
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。...由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。...Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。...ESC 从输入状态退至命令状态 x 删除光标后面的字符 #x 删除光标后的#个字符 X (大写X),删除光标前面的字符 #X 删除光标前面的#个字符 dd 删除光标所在的行 #dd 删除从光标所在行数的...R:用随后输入的文本取代从当前光标处及其后面的若干字符,每输入一个字符就取代原有的一个字符,直到按键结束这次取代。若新输入的字符数超过原有对应字符数,则多出部分就附加在后面。
在Linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"...一般错误原因都是前者,解决方案是在使用vi命令打开文件时,前面加上sudo来临时提供管理员权限,比如使用命令“sudo vi hosts”打开编辑文件。...vi +/aaa xxx 编辑xxx文件,并将光标置于aaa处 ls -al sudo chown userId xxx.pl sudo chgrp 'domain users' xxx.pl sudo
vim 是对 vi 的扩展,文中的很多操作是 vi 通用的 vi 是区分大小写的命令的,也就是说 g与G 是不同的命令 在不同模式下,快捷键是不一样的 模式分 一般模式 编辑模式 指令模式 一般模式用于文件内部操作...,直到按 esc 为止 s 从当前行开始,以输入的文本替代指定数目的字符 S 删除指定数目的行,并以输入的文本替代 ncw,nCW 修改指定数目 n 的字符 nCC 修改指定数目 n 的行 删除命令...按键 效果 ndw,nDW 删除光标开始及其后 n-1 个字符 dw 删除这个单词后面的内容 dd 删除光标当前行 dG 删除光标后的全部文字 d$ 删除本行光标后面的内容 d0 删除本行光标前面的内容...当我们输入命令中的 “0” 时,Vim 会认为我们要在文本中插入一个 0,并在屏幕上显示输入的“0”;然后当我们执行命令 0-Ctrl-Shift-d 时,Vim 就会意识到我们要做的是减少缩进,这时 0 会就会从屏幕上消失...* 或 + 寄存器,则可能是由于没有安装 vim 的图形界面所致 sudo apt-get install vim-gnome 设置 vim 永远显示行号 修改 vim 的配置文件加入 set nu vi
从linux源码看socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...接着在FIN_WAIT2状态等待对端的FIN,完成后面两次挥手: ?.../ // 状态设置程close_wait状态 tcp_set_state(sk, TCP_CLOSE_WAIT); // 这一句表明,当前fin可以延迟发送 // 即和后面的数据一起发送或者定时器到时后发送...但最终解决方案还是得从应用程序着手。...直到现在自己带着问题独立看linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。
Linux命令 – vi命令 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,Vi是...Linux中最基本的文本编辑器。...例如 20 则光标会向后面移动 20 个字符距离。...(常用) a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。...6.常用范例: 例一:进入一般模式 命令:vi log1.txt vi 后面一定要加文件名,不管该文件存在与否。 按下 ESC 按钮回到一般模式。
工具: Linux 方法: 1、首先进入Linux的命令行界面.在目录下创建一个用于测试的文本文件(touch filename).这里就新建了一个test12文本文件.当然这个名字是可以随便取得....2、用”vi test12″命令进入vi命令行模式(vi filename)....这样就将文本保存了.然后推出了vi编辑器.如果不想保存就按一下键盘上的”ESC”,输入”:q!”....「#yy」:例如,「6yy」表示拷贝从光标所在的该行”往下数”6行文字。 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与”y”有关的复制命令都必须与”p”配合才能完成复制与粘贴功能。
文章目录 vi和vim 模式 一般模式 编辑模式 命令模式 快捷键 vi和vim ---- Vi是unix/linux操作系统中最经典的文本编辑器,只能是编辑字符,不能对字体、段落进行排版;它既可以新建文件...Vim是从 Vi 发展出来的一个文本编辑器,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计代码补全、编译及错误跳转等方便编程的功能特别丰富,vim适用于coding。...就能进入一般模式了: 编辑模式 在一般模式下输入以下快捷键就能进入到编辑模式,进行文本编辑: 快捷键 作用 i 从目前光标所在处输入(常用) I 在目前所在行的第一个非空格符处开始输入 a 从目前光标所在的下一个字符处开始输入...A 从光标所在行的最后一个字符处开始输入 o 在目前光标所在的下一行处输入新的一行 O 在目前光标所在处的上一行输入新的一行 r 只会取代光标所在的那一个字符一次 R 会一直取代光标所在的文字,直到按下...则为强制保存并退出(常用) :w [filename] 将编辑的数据储存成另一个档案(类似另存新档) :r [filename] 在编辑的数据中,读入另一个档案的数据并加到游标所在行后面 :!
一、前述 Vi类似记事本,所以用好记事本对编程效率有很大得影响,有着事半功倍的效率。...按键具有编辑文本功能:默认打开进入编辑模式 输入模式:按键本身意义 末行模式:接受用户命令输入 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面
有,并且你一定会收藏因为这里你能学到AI永远也教不到的知识一、这才是你要掌握的知识思维别嫌啰嗦,因为你必须要具备有这个思维有没有想过,百度上的各大文章、博客关于vi的知识点,它是从哪里来的?...索要官方文档的步骤:(下面演示就以vi产品来演示一下)问AI要产品的官方文档链接地址拿到官方文档链接地址,然后去找使用文档其它技术栈也按照这个去学就可以啦,有了这个思维,后面的知识点你也可以总结出来,因为我也是从官方文档手册来的二...、初次认识vivi是一个文本编辑器,在Linux系统很常见,它有三种常见模式,流程如下,这三种模式也是非常非常常用的,但你不需要死记硬背(当你忘记了可以翻出这个笔记、即使笔记没了,你有上面的思维也可以从官方文档里查到...)三、最少必备命令知识点光说不练假把式,别总是看,按照下面总结的,自己尝试用起来,这样才能加深印象。...a键在光标后面插入字符按o键在光标另起一行插入字符2.
:强制退出,不保存 vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它。...i: 插入,从目前光标所在之处插入所输入的文字。 a: 增加,目前光标所在的下一个字开始输入文字。 o: 插入新的一行,从行首开始输入文字。...,强制离开并放弃编辑的文件) Command mode功能键列表 在介绍command mode指令的时后,指令后面加上“常用”字眼的功能键,表示比较常用的vi指令,请读者您一定要学会、记住。...[常用] (3)删除文字 x:每按一次删除光标所在位置的后面一个字符。[超常用] x:例如,6x 表删除光标所在位置的后面6个字符。...│不保存文件,直接退出 │ ├───────────┼───────────────┤ │:q │退出vi │ VI常用技巧VI命令可以说是Unix/Linux
很多时候我们需要在多个源程序之间实现函数、宏定义、外部变量等的跳转查询,甚至有时候需要到内核或库源代码里窥视他们真面目,这对于windows的各种IDE而言都是基本功能,但是我最爱的vi呢?...vi是我的最爱,不仅因为他的高效,还因为他支持插件,今天只讲一款,叫ctag,用来干嘛?当然就是帮我们做代码定义跳转啦。废话少讲,来搞搞: 第一,下载。...事情的开始,你需要库函数的源代码和Linux内核的源代码,我们的目的就是要在需要的时候可以跳转到这些地方的某些文件当中去查看相关的资料信息,有了上面的ctags工具之后,我们就可以在源代码的顶层目录处执行下面这条命令...其中/home/vincent/*的意思是:在该路径下的所有文件(因为用了通配符*)都可以通过tags文件实现跳转(包括其子目录),而这个tags文件,就是由后面这个路径/home/vincent/glibc...例如添加以下信息(注意/home/vincent要换成你自己的系统的家目录路径): au BufEnter /home/vincent/* setlocal tags+=/home/vincent/Linux
n个词移到缺省缓冲区中 │ ├──┼──────────────────────┤ │p │如果缺省缓冲区中包含一行文本,则在当前 │ │ │行后面插入一个空行井将缺省缓冲区中的声.../Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。...虽然您可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。 nG——跳转命令。n为行数,该命令立即使光标跳到指定行。...string——从光标所在处向后或向前查找相应的字符串的命令。 —- 4.拷贝复制命令 —- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。...*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。
vim 是对 vi 的扩展,文中的很多操作是 vi 通用的 vi 是区分大小写的命令的,也就是说 g与G 是不同的命令 在不同模式下,快捷键是不一样的 模式分 一般模式 编辑模式 指令模式 一般模式用于文件内部操作...,直到按 esc 为止 s 从当前行开始,以输入的文本替代指定数目的字符 S 删除指定数目的行,并以输入的文本替代 ncw,nCW 修改指定数目 n 的字符...当我们输入命令中的 “0” 时,Vim 会认为我们要在文本中插入一个 0,并在屏幕上显示输入的“0”;然后当我们执行命令 0-Ctrl-Shift-d 时,Vim 就会意识到我们要做的是减少缩进,这时 0 会就会从屏幕上消失...寄存器,则可能是由于没有安装 vim 的图形界面所致undefinedsudo apt-get install vim-gnome 设置 vim 永远显示行号 修改 vim 的配置文件加入 set nu vi...set shiftwidth=n 设置自动语法高亮 syntax on 原文链接:https://rumenz.com/rumenbiji/linux-vi-vim.html
本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...以下为代码对比: ========================>linux 内核版本2.6.32-431<======================== #define TCP_TIMEOUT_INIT...timeout = ((2 << boundary) - 1) * rto_base; ...... } ========================>linux 内核版本2.6.32.630时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: 由于没有java并没有设置so_sndtimeo的选项,所以在...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
PostgreSQL 查看内存使用的方法比较多, 大部分都是进入到POSTGRESQL 中进行查看的,今天从PostgreSQL 外部来查看内存的使用方式和方法....在LINUX 中proc目录中有所有相关的进程的信息, PSS 通过下面的预计获得,所以RSS - PSS 等于的就是进程独享的内存 ps -u postgres o pid= | sed 's#.
领取专属 10元无门槛券
手把手带您无忧上云