Linux学习之基础三

vim编辑器

  • 命令模式
    • 移动光标
      • h: 左移
      • l: 右移
      • j: 下移
      • k: 上移
      • gg: 光标移动文件开头
      • G: 光标移动文件末尾
      • 0: 光标移动到行首
      • $: 光标移动到行尾
      • 123G: 跳转到第123行
    • 删除(并不是真正的删除,实际上是剪切)
      • x: 删除光标后一个字符
      • X: 删除光标前一个字符
      • dw: 删除光标开始位置的字,包含光标所在字符
      • d0: 删除光标前本行所有的内容,不包含光标所在字符
      • D(d$): 删除光标后本行所有内容,包含光标所在字符
      • dd: 删除光标所在行
      • n dd: 删除指定的行数
    • 撤销
      • u:撤销
      • ctr+r:反撤销
    • 复制粘贴
      • yy: 复制当前行
      • p: 在光标所在位置向下新开辟一行粘贴
      • P: 从光标所在行开始粘贴
    • 可视模式
      • v: 按字移动
    • 查找
      • /hello: 从光标所在位置向后查找hello
      • ?hello: 从光标所在位置向前查找hello
      • n: 下一个
      • N: 上一个
    • 替换操作
      • r: 替换当前字符
    • 文本行移动
      • >>: 文本行右移
      • <<: 文本行左移
    • 查看Man Page
      • 光标移动到函数上,shift+k
      • 3+shift+k: 查看第三章的ManPage
  • 文本模式
    • i: 插入光标前一个字符
    • I: 插入行首
    • a: 插入光标后一个字符
    • A: 插入行末
    • o: 向下新开一行,插入行首
    • O: 向下新开一行,插入行首
    • s: 删除光标所在的字符
    • S: 删除当前行
  • 末行模式
    • 行跳转
      • :123: 跳到第123行
    • 替换
      • 替换一行
        • :s/abc/123: 将当前行中的第一个abc替换成123
        • :s/abc/123/g:将当前行中的abc全部替换为123
      • 替换全部
        • :%s/abc/123:将所有行中的第一个abc替换为123
      • 替换指定行
        • 10,30s/abc/123/g:将10-30行中的abc全部替换成123
      • 执行shell命令
        • 末行模式下输入!后跟命令
  • 分屏操作
    • 水平: sp
    • 垂直: vsp + 文件名
    • ctrl+ww : 切屏

gcc

  • 编译过程
    在这里插入图片描述

静态库

  • 命名格式
    • lib开头
    • 静态库名
    • .a结尾
    • 例:libsort.a
  • 制作
    • 得到*.o
      • gcc a.c b.c c.c -c
    • 得到静态库libmytest.a
      • ar rcs libmytest.a a.o b.o c.o
      • ar 工具不包含在gcc中
      • r: 将文件插入静态库中
      • c: 创建静态库,不管库是否存在
      • s: 写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。
    • 查看库中的符号(函数,全局变量等)
      • nm libmytest.a
    • 使用静态库
      • 写法一
        • :gcc main.c 静态库路径 -o sum -I+头文件路径
        • 例:gcc main.c lib/libMyCalc.a -o sum -Iinclude
      • 写法二
        • gcc main.c -I+头文件路径 -L 静态库路径 -l 静态库名(去掉前缀和后缀) -o myapp
        • 例:gcc main.c -Iinclude -L lib -l MyCalc -o myapp

动态库(共享库)

  • 命名格式
    • lib开头
    • 动态库名
    • .so结尾
    • 例:libmytest.so
  • 制作
    • 生成"与位置无关"的目标文件
      • gcc -fPIC a.c b.c c.c -c
      • 参数-fPIC表示生成与位置无关的代码
      • 执行完毕后生成一系列的.o文件
    • 制作动态库
      • gcc -shared -o libmytest.so a.o b.o c.o
    • 使用方式与静态库类似
  • 配置路径
    • 方法一
      • export LD_LIBRARY_PATH=库目录
      • 临时设置,退出终端后就无效了
    • 方法二
      • 将方法一那句话写入家目录下.bashrc文件中
    • 方法三
      • 将库所在的绝对路径加入到/etc/ld.so.conf文件中
      • 使用sudo ldconfig -v更新
    • LD_LIBRARY_PATH
      • 指定查找共享库(动态链接库)时除了默认路径之外的其他路径
      • 设置方法:用export来设置
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值