基本操作

因为要在Linux操作系统下写HDL,所以需要对Linux系统下的一些命令比较熟悉,以下做一下对Linux系统做一些概述性的东西,以便用到时进行查阅。

一、终端和Shell

当用户通过终端登录到系统时,其实使用的是shell程序。Shell用户可以通过Shell提供的命令程序与操作系统进行交互以完成相关的工作。Linux中的Shell程序有多种,如bash、sh、csh等。Ubuntu默认的是bash。

1、Shell提示符

xuqing@master: ~ $
<用户名>@<计算机名>:<当前目录>
“~”符号在Linux中表示“当前用户主目录”,当前用户的目录是“/home/xuqing”

2、Shell命令格式

<命令> [选项] [参数]

  • 命令:必须输入,是Shell的命令

  • 选项:可选输入,是包含一个或多个字母的代码,主要是用来改变命令执行的方式,一般以“-”开头,用于区分参数。

  • 参数:可选输入,指定命令要操作的对象,如文件名或者目录名。

    xuqing@master: ~ $ ls -al /usr
    

3、查看帮助

  • 查看外部命令,man <外部命令>或者<外部命令> --help
    例如:man ls 或者 ls --help
  • 查看内部命令,help <内部命令>
    例如:help if

二、文本编辑器

用户在使用Linux过程中经常需要编辑文本文件,比如创建Verilog HDL的源程序文件,编写Shell程序自动执行命令等,因此必须掌握至少一种文本编辑器以便高效地输入文本和修改文本文件。

  • gedit: 图形化文本编辑器程序;
  • vim:在Shell中运行的基于命令行的文本编辑器。

1、gedit

在终端中输入gedit或者gedit&,就会出现图形界面,其使用方式类似于Windows下的记事本或者写字板程序,此处不做过多介绍。

2、vim

vim不需要图形化环境,可以在Shell下直接运行,其功能强大而且运行速度快。
vim在运行过程中处于三种模式之一

  • 正常模式,也叫命令模式,vim刚启动时处于该模式下,可以输入各种命令来控制vim;
  • 文本模式,该模式下可以进行文字的输入;
  • 命令行模式,也叫底行模式,在该模式下可以在vim的最下面一行输入命令来控制vim,例如文件的保存、vim的退出等。
    三种模式的相互转换图如下:
    vim三种模式之间的转换.png
2.1 vim的基本操作
  • 启动vim
    在终端中输入命令:vim
  • 文本输入
    在正常模式下输入字符“a”或者是“i”进入文本编辑模式。
  • 文件保存
    文本输入完毕后按下Esc键,进入正常模式,然后输入冒号“:”,接下来输入“w test.txt”,这样就能将内容写入到test.txt中去。
  • 退出vim
    进入命令行模式
    输入“:wq”即为保存并退出;
    输入“:q”即为退出;
    输入“:wq test.txt”即为将内容写入到test.txt并保存退出;
2.2 vim常用的命令

vim设计之初宗旨在于只用键盘操作就可以快速完成vim所有的操作,因此vim命令众多。以下是vim较为常用的部分命令(以下命令在正常模式下输入,前缀带有冒号的命令表示命令模式下执行

  • 进入vim
    • vim,启动vim
    • vim 文件名,启动vim并打开或者新建文件
  • 光标移动

    • h,向左移动一个字符
    • l,向右移动一个字符
    • j,向下移动一行
    • k,向上移动一行
    • 0或<HOME>,移动到行开始(注意是数字0)
    • $或<END>,移动到行尾

  • w,移动到下个单词的词首
  • b,移动到上个单词的词首
  • e,移动到下个单词的词尾
  • ge,移动到上个单词的词首
  • ^,移动到当前行的第一个非空白字符上
  • g_,移动到当前行的最后一个非空白字符上
  • nG,跳转到指定的第n行
  • gg,跳转到第一行
  • G,跳转到最后一行
  • H,跳转到当前屏幕的首行
  • M,跳转到当前屏幕的中间一行
  • L,跳转到当前屏幕的尾行
  • ZZ,将当前行放到屏幕中央

搜索单字符
  • fx,在当前行上查找下一个字符x
  • Fx,在当前行上查找上一个字符x
搜索字符串
  • /,先键入/,再输入想要搜索的字符串,然后回车。.*[]^%/?~$这些具有着特殊的意义,如果想要搜索这些字符本身,需要在前面加上反斜线\
搜索Word

将光标置于Word上,*代表向后查找,#代表向前查找
vim搜索到的字符一般处于高亮状态,如果你想跳到下一个匹配的字符串,键入n,如果是跳到上一个则是N。

移动到匹配的括号上
  • %,默认的匹配括号包括三种:()[]{}。当多层次时能够迅速匹配,如果想加入新的匹配符号"<>",可以做如下命令:set mps+=<:>

  • '.,跳到最后修改的那一行
  • `.,跳到最后修改的那一点
  • gd,跳转到文件第一次出现的地方,通常是变量定义的地方
  • ma,用字母a标记当前光标所在的位置,这里a可以是任意字母
  • `a,跳转到a处
  • ``,跳转到上一次光标所在处

vim中基本的编辑命令形式:编辑命令+作用范围

删除:d 复制:y 改变:c(改变的含义为删除并进行插入)

文本删除
  • dd,删除当前行,3dd删除3行
  • dw,删除光标所在位置到下一个字的第一个字母(包括空格)
  • cw,删除光标所在位置到下一个字的第一个字母(不包括空格)
  • daw,删除一个单词(包括词尾空格)
  • diw,删除一个单词(不包括词尾空格)
  • das,删除一句话
  • dfx,删除光标所在位置到本行中下一个字符x出现的位置
  • x,删除当前光标下的字符
    • nx,删除光标后n个字符,例如3x
    • nX,删除光标前n个字符,例如3X
  • 撤消/重做
    • u,恢复上一条命令
    • .,重复一条命令
  • 搜索
    • /字符串,向下搜索字符串
    • ?字符串,向上搜索字符串
    • n,继续搜索
    • N,继续向相反方向搜索

替换 [range]substitute/from/to/[flags]

  • “.”代表当前行;“$”代表最后一行;“%”代表对所有的进行操作,如果不指定范围,则只替换本行的对象
    “+-”相对偏移量,例如:与其等价的描述是在当前行键入“5:”,在vim的左下角就会出现等价的描述“.,.+4”,含义为表示从当前行下到当前行的第5行这个范围内进行替换操作。
  • substitute/from/to 可以用s来替换
  • flags 这个附加参数包括i(不区分大小写)g(替换一行中所有符合的字符串)p(列出所有被改变的行)c(在执行每个替换前都要求用户确认) 如果不指定参数,那么只替换一行中第一次被发现的目标字符串
  • ra,用字母a替换当前光标下的字符
  • R,可以实现多字符替换,其实也就是shift+r键
  • :s/p1/p2/g,将当前行中所有p1均用p2替换
  • %s/p1/p2/,将当前所有的文本进行替换
  • :n1,n2s/p1/p2/g,将第n1行至n2行中所有的p1均用p2替换
  • :.,.+4s/p1/p2/g,将光标所在的当前行直至当前行的下面4行中所有的p1均用p2替换
    • :g/p1/s//p2/g,将文件中所有的p1均用p2替换
  • 复制/粘贴
    • nyy,将当前第n行放入缓冲区
    • yy,复制一整行
    • p,将缓冲区的内容放到当前行下面
    • P,将缓冲区的内容放到当前位置的上面
三、大小写转化

visual下,键入hjkl选中区域

  • U,小写变大写
  • u,大写变小写
  • U,小写变大写- U,小写变大写

  • Ctrl - p 插入模式下进行单词补齐(向前查找单词)
  • Ctrl - n 插入模式下进行单词补齐(向后查找单词)

一、查找单词
  • 将光标移动到所需要关注的Word上,按*号,文中所有的这个Word都会被选中高亮。
  • /word,查找含word的词
  • /<word>,只查找word这个单词
二、折叠
  • normal模式下,移到所要的行,键入zf18j(折叠光标以下18行)
  • visual模式下,用jklh选中要折叠的文本,键入zfzo,打开折叠;zr,打开所有折叠;zc,关闭折叠,zm,关闭所有折叠

3、对齐

  • 左对齐:{range}left[margin],range是需要进行对齐的行范围,margin是对齐后的行首距离窗口最左边的距离。例::90,100 left 0 左对齐

  • 右对齐:{range}right[width],range是需要进行对齐的行范围,width是对齐后每行的长度

  • 保存文件

    • :w,存盘
    • :w 文件名,存盘至文件
  • 退出vim

    • :q,退出
    • :wq,保存退出
    • :q!,强制退出

补充:

  • VISUAL模式下,选中文本之间按c键就可以将选中的文本删除,并变为inst模式。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,357评论 0 5
  • vim基本操作 Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行。 插入模式:可以输入文本,在正常...
    一直玩编程阅读 342评论 0 0
  • 前言 有一段时间特别执着于研究各种编辑器,从 Sublime,到 Vim,再到Atom, Emacs 等等,兜了一...
    lovekun阅读 532评论 0 0
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,097评论 9 467
  • 一颗心被禁锢太久,总想高飞飞往千山万水。 高中以前没出过市,高考填志愿时就想要飞出去看看外面的世界。但也没出过省,...
    happny阅读 150评论 0 0