ic 卡获取帐号apdu指令_IC入职新同学必备技能手册#1 - Shell and Vim

本文旨在帮助刚入职IC行业的新人掌握一些基础的Shell和Vim技能,包括ls、重定向、rm、find、sed、grep等Shell命令的使用,以及vim编辑器的基本操作,如打开文件、保存退出、跳转和搜索等。通过这些技能的学习,能提高日常工作效率。
摘要由CSDN通过智能技术生成

写在前面:

准备用2-3篇文章的篇幅,将一些必备的技能cover一遍,期望对于入职IC的新同学有一些帮助。这些东西,每一项其实在网络上的介绍资源都非常丰富,但是IC新同学常常面对的问题是,并不知道“原来这个事情是这么做的”。所以,长话短说。

预计的topic list:

  • Shell and Vim
  • 正则表达式
  • Perforce (版本管理系统)

Shell (其实就是命令行模式,这里我暂时不讲Cshell or bash脚本怎么写,先说基本的)

注:以下内容只涉及平时最常用的部分,并没办法覆盖所有功能,见谅。

ls <path>

ls就是列出<path>位置的所有文件和文件夹。常见的使用形式:

  • ls -rtl 按照更新时间、倒序显示文件or文件夹的详细信息。这个我认为是最最最常用的指令,因为列文件时候,往往最关心最近产生、更改的文件名。

重定向操作

举例:ls *.csh > tmp ,就是列出当前路径所有的*.csh文件,并且将输出文本结果全部存储到tmp这个临时文件中。

rm <path>

删除文件或文件夹。

  • rm -rf 强制删除<path>位置的所有文件和子文件夹内容。慎用,不过一般重要文件都是在版本控制系统下,如果误删除其实问题不大,还好啦。

find <path> -name "*.log"

在<path>位置和所有子文件夹,查找符合*.log条件的所有文件。这里的*,并不是正则表达式,通配符而已。

sed -i 'regexp' file_name.log

sed是功能比较强的文本处理工具,最常用的还是在命令行进行指定文件(file_name.log)替换操作。替换指令由正则表达式 regexp 决定(正则表达式会在后面简单举例讲解,regexp这里只是一个代称,并不是真正的指令)

sed -i 's/rams/model/rams/synth/'  compile.vc
    • 上述举例,是将compile.vc中的所有 rams/model 替换成 rams/synth

grep "text_to_search" * -r

grep这个命令的使用频率几乎不亚于ls. 具体是说什么场景呢,你想在一个指定的path下(可以搜索所有子文件夹)所有类型文件是否包含一个特定text(可以是正则表达式),命中就返回结果。

举例场景:运行某个脚本,产生一个err msg, "key <blah> not found". 这个blah是啥东西,不清楚,找找都在哪里出现过,可能有线索。好!grep命令可以用了:

grep "blah" *.tcl -r

其中-r是搜索所有子文件夹的开关,如果大范围搜索可用,小范围(当前文件夹)就不用。

注意:grep支持正则表达式,就是说text_to_search可以换成正则表达式。

管道操作

管道操作是Linux系统中比较好用的一个组合命令方式。以下举例说明:

run_sim.sh  |  tee run.log
    • 其中:
    • run_sim.sh 是第一个命令,可以理解为要执行一个名叫run_sim.sh的脚本
    • | 称为 管道符 配合后面的tee run.log ,就是让run_sim.sh 这个脚本执行产生的所有文本输出,都存储到run.log的文件里。tee 命令就是从指定的输入流里面读文本,并存储到指定文件。
ls * | more
    • 这个操作也常见,如果当前路径文件特多,用管道操作传递给more命令,达到输出满屏则停止,等待用户键盘响应再继续的功能。
    • | more可以配合很多能产生文本输出的命令/脚本

vim (gvim)

vim是几乎最常用的文本编辑器(基于命令行显示),gvim则是对应的GUI图形界面版本(我倾向用gvim,但是有的时候terminal所在的server卡,用vim启动会更快一些)。

注:可能各位会有自己更喜欢的文本编辑器,但vim确实是就地取材最方便的一个,虽然学习曲线不友好。我这里挑一些最常用的操作快捷命令。

打开一个文件

vim <file name>

保存和退出

  • :wq (就是直接在vim中输入这3个字符)-> 保存并退出(碰到修改只读文件时,需要用 :wq!)
  • :w 只保存
  • :q! 强制退出,并忽略已有的修改

跳转操作

  • gg 回到文本第一行第一列 (也就是在vim/gvim中,直接连敲两次g,中间间隔多少时间无所谓,只需要是连续的)
  • shift+g (shift键) 回到文本最后一行最后一列
  • :10 表示跳到第10行

搜索

  • /text_to_search (先输入一个/ 符号,后面跟上你要搜索的内容,支持正则表达式)
    • 举例: /ucli 搜索ucli这个text,并跳到第一个结果
  • ?text_to_search (一样的搜索,只不过,前面是正向搜索,?是反向搜索)
  • n (按n键)跳到下一个搜索命中位置
  • shift+n 跳到前一个搜索命中位置

打开当前行内容所指示的文件

  • gf 意思是,如果当前光标所处位置的内容,是一个文件or文件夹的path。那么,你可以在此时敲gf两个字母,跳过去。
    • 使用背景:比如verilog文件中会include一些header file。直接跳进去看看,唰,方便。
  • 怎么回来?ctrl+o 其实这个是跳到上一个光标到过的位置,针对gf的跳转操作,有时候需要多按几次ctrl+o 。

即兴所写,会持续补充Shell and Vim,欢迎勘误和探讨。

求关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值