关于SecureCRT及Vim的使用

关于SecureCRT及Vim的使用听说大部分的搞网络或者被网络搞的同学,每天都会使用SecureCRT在Linux下进行开发、测试等工作。正所谓“工欲善其事,必先利其器”,一个趁手的开发环境对工作效率的提升是不言而喻的。我在这里简单介绍一下个人在日常使用中积累下来的常用设置及操作,希望对不熟悉的朋友能有一点点参考作用,一家之言,欢迎拍砖。【SecureCRT篇】1、 自动登录服务器如果我们需要经常登录固定某

大家好,又见面了,我是你们的朋友全栈君。

听说大部分的搞网络或者被网络搞的同学,每天都会使用SecureCRT在Linux下进行开发、测试等工作。

正所谓“工欲善其事,必先利其器”,一个趁手的开发环境对工作效率的提升是不言而喻的。

我在这里简单介绍一下个人在日常使用中积累下来的常用设置及操作,希望对不熟悉的朋友能有一点点参考作用,一家之言,欢迎拍砖。

【SecureCRT篇】

1 自动登录服务器

如果我们需要经常登录固定某一台服务器,可以使用SecureCRT的自动登录功能,避免每次都要输入密码的麻烦。

打开SecureCRT,选择需要登录固定IP的会话,选择Property – Session Option – Logon Scripts,勾选 Automate logon,配置提示符及出现提示符时要发送的交互命令,便可实现自动登录。

还有另外一种方式即通过VBS脚本可以实现自动登录,这里不再赘述。

2 记录SecureCRT打屏日志

服务发布或有重要操作时,我们想要保存操作记录怎么办,全部选中然后复制粘贴吗?其实我们可以通过SecureCRT的Log Session功能实现。

打开SecureCRT会话,选择 File – Log Session,然后选择本地日志文件即可。

如果要停止日志记录,取消勾选即可。

 3、  文件上传下载

想在服务器和本地互相交换文件?可以使用SecureCRT提供的Xmodem/Zmodem功能,通过rz/sz命令实现文件发/送接收功能。

本地文件路径可以通过SecureCRT设置,如下图示:

4 反空闲

 长时间离开座位连接自动断开?可以使用SecureCRT的反空闲功能,定期自动发送指定字符串,以保持与服务器端的连接。

 SecureCRT支持\r、\n、\b、\e、\t、\v、\p等转义字符,建议使用\e。

5 模拟终端类型

 程序代码无法高亮或自动着色?试试改一下终端类型吧,通过修改终端类型,会改变终端输出时的显示风格,对应环境变量为$TERM


【自定义设置篇】

1 快速登录服务器

 平时开发及测试工作中,经常需要登录固定的一些服务器,每次都要输入IP、用户名、密码会不会太麻烦了?

这里可以使用一个简单的登录脚本即可通过配置快速访问服务器,脚本可设置默认端口、用户名、密码,方便指定IP直接登录。

2 快速加载自定义环境变量

很多同学喜欢在服务器上自定义个性化环境变量,但考虑到大部分同学共用同一登录用户,为了不影响别人使用,我们是不是要在每台机器上保存一个profile文件?

其实可以不用在每台机器上保存profile,我们可以借助一个HTTP服务达到目的。我们把profile文件保存在一个Web服务器上,然后使用SecureCRT的键盘映射功能,把下面字符串映射到任一快键键(比如F8):

cd /tmp && wget -qO – http://127.0.0.1/cgi-bin/env.cgi > .zebralrc && source .zebralrc; rm -rf .zebralrc;clear\n

在登录任一台服务器之后,只要按一下快捷键便可以自动设置自定义环境变量了。

注:自定义环境变量也可以在自动登录时通过expect交互输入,但自定义内容较多时expect偶尔会出现字串丢失的问题,多试几次通常就可以解决。

3 用好快捷键映射

经常需要在终端下输入相同的内容比如用户名或密码?这时候可以使用SecureCRT的快捷键映射功能,通过映射一键输入指定字串。

4 使用命令别名

对于常用的命令,尤其是输入参数较多的时候,可以通过alias别名简化输入。同时,使用别名也可以起到容错的作用。

5 自定义函数

通过自定义函数,可以方便地执行一些例行性的命令组合以提高效率。这里以通过进程ID查询启动时间、工作目录、路径、及启动参数为例:

6、函数组合

通过函数组合,可以方便地把多个自定义函数串联起来,实现更为强大的功能。这里以重启包含指定关键字的进程以及查看进程启动时间为例:


【文本编辑篇】 

1 VIM基本操作

VIM的基本操作,主要包括下面几方面:

1、文本编辑:移动、插入、替换、删除、查找、列模式等。

2、文件操作:新建、打开、保存、退出等。

3、代码辅助:语法高亮、代码格式化、标识符定位、taglist等。

4、其  它:多窗口、行折叠、多文件操作等。

以上操作都是基本功,不再赘述。

2 键盘映射和自定义函数

通过键盘映射,VIM可以定义自己的快捷键以提高输入效率。比如C++程序员可以通过下面映射添加行注释,类似于Eclispe的Ctrl+/功能:

map <F1> :s/^[ ]\{,2\}/\/\//<CR>

 使用VIM的自定义函数,则可实现更为强大的功能。如下面函数实现一键保存光标所在行内容到文件的功能:

   func! SaveLine()

       normal yy

       exe ‘:!echo ‘.substitute(@0,”\n”,””,””).’>>/tmp/line.txt’

   endfunc

   map <F1> :call SaveLine() <CR> <CR>

3 使用插件

VIM之所以被称为编辑器之神,和其强大的插件支持分不开的。这里介绍两个比较有用的插件,supertab和taglist,前者用于TAB键自动补齐,后者可以显示变量及函数列表。

4 文件对比

VIM支持强大的文件对比功能,可以支持同时对比多个文件,快速消除异同,动态更新等。几个有用到的命令如下:

do            覆盖当前文件所在行以消除异同,即diff obtain

dp            用当前行覆盖对比文件以消除异同,即 diff put

diffupdate    更新文件异同

5 调用外部程序

VIM可以使用!(即半角叹号)命令调用外部程序对正在编辑的文件进行处理,比如使用!xxd命令可以通过十六进制查看当前编辑区文件。

6 强大的正则式

VIM支持强大的正则式功能,比如使用下面命令可以替换中文字符:

%s/\([^\x00-\xff]\+\)//g

再比如下面命令可以实现简单的列交换:

%s/^\(.*\)\s\+\(.*\)\s\+\(.*\)$/\1 \3 \2/g

正则式的强大无须多言,VIM的正则式如果用好了,无论是编辑文字还是调试代码都会便捷到让你惊艳。


【附VIM常用命令】

本节列出本人使用vim过程中用到的常用命令,针对默认设置下的VIM生效,在某些自定义设置下可能不适用)

CTRL-[  进入普通模式(此模式为VIM默认模式)

:       普通模式下按冒号可进入命令模式

i       普通模式下按 i 进入编辑模式

 

命令行模式

    q        退出文件

    qa[ll]   即出所有 vim 缓冲区。同理有:xa[ll],:wqa[ll]等

    q!       强制退出文件

    w        写入文件

    w!       强制写入文件

    wq       写入并退出

    w file   写入文件file

    r file   读入文件file

 

    set ic           即 set ignore case,在查找时忽略大小写

    set noic         即 set noignorecase 使之大小写敏感

    script           列出当前VIM所用到的配置文件,全称为scriptname

    syntax           列出当前文件类型已定义的语法项

    syntax on        启用语法高亮,类似syntax enable

    syntax off       关闭语法高亮

    syntax clear     清除已有语法高亮规则

 

    set tabstop=4        设置TAB键为四个空格, 可简写为set ts=4

    set cmdheight=3      设置VIM窗口底部命令行的调度,默认为1

    set fileformat=unix  设置当前文件格式为unix, 可简写为ff

    set filetype=cpp     设置当前文件类型为cpp, 可简写为ft

    set list             设置制表符以^I显示,行尾会有$字符

    set iskeyword        定义VIM的WORD字符集。 简写为set isk

    set nolist           与上面相反,不再显示制表及换行

    set nowrap           不允许自动换行

    set wrap             与上面相反,启用自动换行功能

    set autowrite        打开自动存盘功能

    set noautowrite      关闭自动存盘功能

    set autoindent       启用自动缩进,可简写为set ai

   set noautoindent     取消自动缩进.

    set backup           文件保存时会生成一个备份文件

    set backupext=.bak   修改备份文件名的后缀为.bak,默认为~

    set nobackup         关闭自动备份功能.

    set number           在每一行前显示行号

    set nonumber         在行前不显示行号

    set hls              显示查找高亮

    set nohls            取消查找高亮

 

设置色彩显示

    set background=dark  使用暗色背景,简写为bg

    set background=light 使用亮色背景

    colorscheme evening  设置颜色方案

    syntax clear         暂时关闭语法高亮,仅对当前文件生效

    syntax off           关闭语法高亮,对所有文件生效。

    syntax manaul        暂时启动语法高亮,仅对当前文件生效

    syntax on            打开语法高亮,对所有文件生效

 

查看帮助

    help command         可查看关于命令command的详细信息

    set command&         恢复选项command的默认值

 

进入编辑模式

    i        光标前编辑

    I        光标置于当前行的第一个非空白字符处并进入编辑模式

    a        在光标后编辑

    A        在行尾编辑

    o        在光标所有行下行开启新行并编辑

    O        在光标所在行上行开启新行并编辑

    s        删除当前光标所在字符后编辑

    S        删除当前行(不包括行前空白)后编辑

 

光标的移动和删除

    h        左

    j        下

    k        上

    l        右

    H        屏幕左上角非空白处

    M        屏幕中间非空白处

    L        屏幕左下角非空白处

    w        右移下一个字的开始处

    W        同上,不过以空白区分字(word)

    e        移到所在字的末端

    E        同上,不过以空白区分字(word)

    b        移到上一个字的开始处

    B        同上,不过以空白区分字(word)

    gg       文件首

    G        文件尾

    }        跳到下一个空行处

    {        跳到前一个空行处

    x        删除光标所在字符

    X        删除光标前的字符

    0        行前

    ^        行前非空白处

    $        行尾

    d        删除指令,可与其它指令组合。

    dw       删除一个字(从字的光标位置删除到字尾,包括字后空白)

    daw      删除一个字(从字首删除到字尾,包括字后空白)

    diw      删除一个字(从字首删除到字尾,不包括字后空白)

    d0       删至行首

    dd       删除当前行

    D        删除到行尾

 

与数字组合

    50l        向后移50个单元

    d5w        删除后面5个字

    dL         删除到屏幕底端

    100gg      跳到文件第100行

    100G       同上

 

其它指令

    K        查找当前字的man页,相当于执行!man <cword>,

    .        重复上一个改变,包括插入,删除,或替换操作

    u        撤销

    %        当光标位于小中大括号时, 移动到小中大括号相对应的左右括号

    J        把下一行连接到当前行, 实际操作为删除当前行的换行符

    =       重新排版指令, 如=% , =L等等

    >>       向右缩进, 3>>

    <<       向左缩进 

    CTRL-f   向前翻页(即光标向下移动)

    CTRL-b   向后翻页(即光标向上移动)

    CTRL-u   向后滚动半屏

    CTRL-d   向前滚动半屏

    zz       使当前位置成为屏幕的中间

    [I       显示包含当前字的所有行

 

跳来跳去的标签

    m   标签指令, 

    mx  把当前位置标为x , x可为 a-zA-Z

    ‘x  跳至标签为x所在行的行首非空白处

    `x  跳至标签为x所在行标签时的位置

 

文本选择

    v        按行选中,以单元为单位,可以组合使用:v%,vL,v$

    V        按行选中,以行为单位

    CTRL-v   按列选中

   

选中后可进行操作

    u   转成小写  

    U  转成大写  

    y  拷贝 

    >  向右缩进   

    <   向左缩进

 

复制(yank)与粘贴(paste)

    y        拷贝指令,拷贝选定内容到缓冲区

    Y        拷贝指令,拷贝当前行的内容到缓冲区

    p        粘贴指令,粘贴由x, X, d, D, y引起的缓冲区

    P        粘贴指令,不同的是p把缓冲区内容放在当前光标之后

    yy       拷贝当前行

    y4j      拷贝当前行和后 4 行

    y`a      拷贝至标签a, 以行为单位

    y’a      拷贝至标签a, 以字符为单位

    2p       粘贴2次

    xp       对换当前字符和下一字符

    ddp      对换当前行和下一行

 

字符替换

    rx        把当前字符替换为x, x为任意字符

    R         替换n个字符, 直到按Esc或^[为止

 

全局命令

:global  找到符合匹配模式的行执行命令于其上

格式为:[range]global/{pattern}/{command},可简写为g

 

字串查找

    /        向后查找

    ?        向前查找

    *        向后查找光标所在字

    #        向前查找光标所在字

    n        下一个

    N        上一个

 

文件及位置信息

    CTRL-g        当前文件信息

    g CTRL-g      当前位置信息

 

记录和重复操作

    q            记录指令

    @            重复操作指令

    qx…q       x为a-zA-Z, …表示一系列的操作, 最后的q表示结束

    @x           重复标签为x的记录, n@x表示重复n次

 

区域无关指令

    像h, j, k, l ^F ^B这些基本的光标移动指令和m等等

 

区域相关指令

    d  y  =       这一类的操作与当前光标和最后的光标有关

    > < u U       指令在选中块之后使用

 

多行折叠

    zf        后加移动指令, 就能折叠这个区域, 如zf%,zfG等等

    zo        打开折叠

 

快速移动

    ^F ^B w W  %  30j 等

    /  ?

    fo        移到当前行中当前位置之后第一个字符o的位置

    Fo        移到当前行中当前位置之前第一个字符o的位置

 

大小写转换

    ~        大小写互换

    g~~      把该行的大小写互换

    guu      把当前行换成小写    

    gUU      把当前行换成大写  

    gUw      把当前光标位置一直到当前字结束换成大写

 

编辑模式

     CTRL-p        自动补全,或CTRL-n       

     CTRL-[        进入c-mode模式

 

字串替换

    :%s/a/b/g       把文件当中的所有的a换成b

                    选项g可以使用全文替换

                    选项c可以强制在每次替换前要求确认

                    选项i可以使查找被替换对象时忽略大小写 

 

外部命令

    :! cmd        执行命令cmd                

    :sh           暂时退出vim, 执行$SHELL

    CTRL-z        把当前程序,如VIM,挂到后台

    fg            把位于栈顶的后台程序调至前台

 

使用TAG

    CTRL-]        跳至该tag处   

    CTRL-t        返回   

    g]            显示该tag信息

 

语法高亮

    使用:syntax on就能够激活语法高亮显示了, 如果还没有显示颜色

    使用不同颜色方案: colorscheme default

 

对码农比较有用的一些东东

—————————————–

ctags *   为当前上当下所有文件创建tags文件.

CTRL-]     跳到目标tag处

CTRL-t     跳到前一次tag处

CTRL-w ]   分隔窗口并跳到目标tag处

”         返回上一次光标停留处

[I         查找全局标识符

[D         只查找#define定义的标识符,其它同[I

gD         查找局部标识符,只查找当前文件

gd         查找局部标识符,只查找当前函数

[#         跳到#if …#else #endif的开始元素

]#         跳到#if …#else #endif的结束元素

[[         移动到一个代码块的开头

][         移到到一个代码块的结尾

[{         跳到当前代码块的开头,会跳过与它平级的代码块

]}         跳到当前代码块的结尾,跳过与它平级的代码块

[m         光标在类中时可找到前一个函数的开始          

]m         光标在类中时找到下一个函数的结尾

[]         向后查找一个函数的结尾,函数的结尾以第一列出现}为标志     

]]         向前查找一个函数的开始

%          在(),[],{}之间移动

[(         类似于[{,不过工作于()而不是{}

])         类似于]},不过工作于()而不是{}

ga         显示光标处的字符编码信息

【结束语】

上面简单列举了个人工作过程中在Linux下的常用操作及设置,权做抛砖,欢迎各位同好交流指正。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137295.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cas单点登录实现原理(用户登录测试用例)

    转载地址http://www.cnblogs.com/lihuidu/p/6495247.html1、基于Cookie的单点登录的回顾    基于Cookie的单点登录核心原理:   将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。   该方式缺…

  • sql2005 数据库还原,备份集中的数据库备份与现有的数据库不同,解决办法

    sql2005 数据库还原,备份集中的数据库备份与现有的数据库不同,解决办法在“选项”中选择“覆盖现有数据库”,否则就会出现“备份集中的数据库备份与现有的数据库”的问题。 

  • 数据结构和数据结构导论_数据结构导论pdf百度云

    数据结构和数据结构导论_数据结构导论pdf百度云数据是指所有被计算机存储,处理的对象。数据元素是数据的基本单位,是运算的基本单位,通常具有完整确定的实际意义。数据元素常常又简称为元素。数据元素由数据项组成。在数据库中,数据项要成为字段或域。它是数据不可分割的最小标识单位。数据可有若干数据元素组成,而数据元素又由若干个数据项组成。数据的逻辑结构是指数据元素之间的逻辑关系。所谓逻辑关系是指数据元素之间的关联方式或邻接关系。集合中任何两个节点之间都没有邻接关系,组织形式松散。线性结构中结点按照逻辑关系一次排成一条链,节点之间一个一个依次相连接。树形结构

  • MNIST是什么(plist是什么意思)

    初始的迷茫我想很多菜鸟和我一样,开始零基础学习机器学习,没办法火啊,为了钱大家都是冲呀。估计很多人开始学习ML,就一头雾水,完全不知道在说什么。因为学习模式和学习其他语言完全不同,我们知道学习其他语言的时候,第一个程序就是打印“HelloWorld”。其实机器学习是在某个框架下,使用某种语言,来解决问题。因此对于零基础的菜鸟而言,我们需要先学习好某种语言,可以推荐Python,因为功能强…

  • android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…

    android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…在上一篇文章中,我整理并测试了六种来自国际力量的Android浏览器,包括流行的Chrome,具有丰富扩展功能的Firefox,具有隐私和安全性的FirefoxFocus,具有悠久历史的Opera,以及后来的MicrosoftEdge,Yandex除了主要国际制造商生产的产品外,国内开发商还致力于Android浏览器类别。他们希望在保持简单设计的基础上,寻求提供更多差异化的功能。这次我选择了五…

  • python 获取时间戳_python十个实例

    python 获取时间戳_python十个实例1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳importtimeimportdatetimet=time.time()print(t)#原始时间数据print(int(t))#秒级时间戳print(int(round(t*1000)))#毫秒级时间戳print(int(round(t*1000000)))#微秒级时间戳返回1…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号