Linux(三)

1、vim编辑器的使用

vi – vim

vim 是从 vi 发展过来的一款文本编辑器
格式:vi a.txt

工作模式

(1)命令模式 – 打开文件之后,默认进入命令模式
命令模式下的操作:

  • 光标的移动:
    H——前
    J——下
    K——上
    L——后
    将光标移动到行首: 0
    将光标移动到行尾: $
    将光标移动到文件开始位置: gg
    将光标移动到文件末尾: G
    行跳转: nG(n是自然数)

  • 删除操作:
    删除光标后边的字符: x
    删除光标前边的字符:X
    删除单词: dw (光标移动到单词的开始位置, 否只能删除一部分)
    删除光标到行首的字符串: d0
    删除光标到行尾的字符串:D
    删除光标当前行: dd
    删除多行: ndd (n – 自然数)
    剪切 == 删除

  • 撤销操作
    撤销: u
    反撤销: ctrl + r

  • 复制粘贴
    复制: yy
    复制多行: nyy
    粘贴: p (光标所在行的下一行)
    粘贴: P (光标所在行)

  • 可视模式
    切换到可是模式: v
    选择内容: hjkl
    操作—— 复制: y 删除: d

  • 查找操作
    1) /hello
    2) ?hello
    3) # (把光标移动到查找的单词身上,按#)
    遍历时的快捷键: N/n

  • 查看man文档:man man
    (2) 编辑模式 – 需要输入一些命令,切换到编辑模式
    文本模式下的操作:
    切换到文本模式:

      a -- 在光标所在位置的后边插入
      A -- 在当前行的尾部插入
    
      i -- 在光标所在位置的前边插入
      I -- 在光标所在行的行首插入
      	
      o -- 在光标所在行的下边建一个新的行
      O -- 在光标所在行的上边建一个新的行
      	
      s -- 删除光标后边的字符
      S -- 删除光标所在的行
    

(3)末行模式 – 在末行模式下可以输入一些命令
末行模式下的操作:

  • 查找:
    : s/tom/jack/g(替换光标所在行d的所有tom替换成jack)
    :%s/tom/jack(替换光标所在行,tom被替换成jack)
    :20,25s/tom/jack/g(20-25行被替换)
  • 保存退出:
    q: 退出
    q!: 退出不保存
    w: 保存
    wq: 保存退出
    x == wq
    在命令模式下保存退出: ZZ
  • 分屏操作:
    1>. 水平分屏——:sp
    2>. 垂直分屏——:vsp
    分屏之间的切换——Ctrl ww
    关闭:qalll、wqall、q(光标位于哪个就关闭哪个)

2. 静态库的制作

(1) 命名规则
lib + 库的名字 + .a
例如:libmytest.a
(2)制作步骤:

  • 1、生成对应的.o文件 – .c --> .o -c
  • 2、将生成的.o文件打包: ar rcs + 静态库的名字(libMytest.a) + 生成的所有的.o

(3)发布和使用静态库,包含lib和include
(4)优缺点
优点:发布程序时,不需要提供对应的库;加载库的速度快。
缺点:库被打包到应用程序,导致库的体积很大;库发生了改变,需要重新编译程序。

3. 共享库的制作

(1)命名规则
lib + 名字 + .so
(2)制作步骤

  • 1、生成与位置无关的代码 (生成与位置无关的.o)
  • 2、将.o打包成共享库(动态库)

(3)发布和使用共享库

  • 1、gcc main.c lib/libmytest.so -o app -Iinclude
  • 2、gcc main.c -Iinclude -L + 库所在目录 -l + 库名 -o + 生成文件名
    (4)解决程序执行时动态库无法被加载的问题
  • 临时测试
    环境变量: LD_LIBRARY_PATH=将动态库的路径设置给该变量
    将设置的值,导入到系统环境变量中: export LD_LIBRARY_PATH
    当终端关闭,设置会失效。
    (5)优缺点
    优点:执行程序体积小;动态库更新了,不需要重新编译程序(前提是接口不改变)。
    缺点:加载速度慢;发布程序时,需要将动态库提供给用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值