嵌入式工程师常用Linux,git, repo,shell 命令

git小技巧:git blame && git show 查看某一行代码的修改历史
如果你要查看文件的每个部分是谁修改的, 那么 git blame 就是不二选择. 只要运行'git blame [filename]', 你就会得到整个文件的每一行的详细修改信息:包括SHA串,日期和作者:

先查看某行代码由谁写的,在哪个commit中提交的:
其显示格式为: 
commit ID | 代码提交作者 | 提交时间 | 代码位于文件中的行数 | 实际代码 
类似于下面这样

你也可以用"-L"参数在命令(blame)中指定开始和结束行:
$>git blame -L 160,+10 sha1_file.c 
ace1534d (Junio C Hamano 2005-05-07 00:38:04 -0700       160)}
ace1534d (Junio C Hamano 2005-05-07 00:38:04 -0700       161)
0fcfd160 (Linus Torvalds 2005-04-18 13:04:43 -0700       162)/*


VIM键盘图

VIM命令图解.jpg

http://blog.csdn.net/zhlh_xt/article/details/52458672

https://pan.baidu.com/s/1eS363sA#list/path=%2F


xiao@xiaohua MINGW64 /h/Hoemwork/NX531J_M_kernel (master)

$ find  drivers/  -type f -name "block.c"
drivers/mmc/card/block.c
drivers/mtd/ubi/block.c

$ find  drivers/  -type f -name "block.c"  |xargs grep -iw --color "read_only"
drivers/mmc/card/block.c:       unsigned int    read_only;
drivers/mmc/card/block.c:                      md->read_only);
drivers/mmc/card/block.c:       set_disk_ro(dev_to_disk(dev), set || md->read_only);
drivers/mmc/card/block.c:               if ((mode & FMODE_WRITE) && md->read_only) {
drivers/mmc/card/block.c:       md->read_only = mmc_blk_readonly(card);
drivers/mmc/card/block.c:       set_disk_ro(md->disk, md->read_only || default_ro);
drivers/mmc/card/block.c:               cap_str, md->read_only ? "(ro)" : "");
find  drivers/  -type f -name "block.c"  |xargs grep -inw --color "read_only"
drivers/mmc/card/block.c:129:   unsigned int    read_only;
drivers/mmc/card/block.c:336:                  md->read_only);
drivers/mmc/card/block.c:357:   set_disk_ro(dev_to_disk(dev), set || md->read_only);
drivers/mmc/card/block.c:488:           if ((mode & FMODE_WRITE) && md->read_only) {
drivers/mmc/card/block.c:3700:  md->read_only = mmc_blk_readonly(card);
drivers/mmc/card/block.c:3725:  set_disk_ro(md->disk, md->read_only || default_ro);
drivers/mmc/card/block.c:4112:          cap_str, md->read_only ? "(ro)" : "");


vi 编译器
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。 
1、vi的基本概念 
  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 
1) 命令行模式command mode)
  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode) 
  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式
3) 底行模式(last line mode) 
  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

跳至指定的行 
  「ctrl」+「g」列出光标所在行的行号。
  「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
 
4.复制、粘贴、删除
复制:yy,复制光标所在一行;nyy,复制光标所在向下n行;
粘贴:p,粘贴在光标下一行;P,粘贴在光标上一行;
删除:
x或【Del】,向后删除一个字符;
X或【backspace】,向前删除一个字符;
dd,删除光标所在一行;
ndd,删除光标所在向下n行。
5.复原、重做和重复
复原:u;
重做:【Ctrl】+r;
重复上一操作:”.”。

A) 列出行号 
 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
B) 跳到文件中的某一行 
 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
 
查找与替换
向下查找名称为word的字符串:/word
向上查找名称为word的字符串:?word
重复前一个查找:n
反向重复前一个查找:N

行号的设置
显示行号(number)::set nu
取消行号(no number)::set nonu

保存和离开
保存::w
另存为::w [filename]
离开::q
保存并离开::wq或 :x




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值