Linux命令基础——vim+gcc+ibrary

在学习Linux命令基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

08-linux-day02(vim-gcc-library)

目录:一、学习目标二、vim1、vim光标的移动2、vim删除内容3、vim复制粘贴与可视模式4、vim查找、格式调整、查看man文档5、vim从命令模式到编辑模式6、vim行末查找替换与保存退出7、vim分屏模式8、vim的设置三、gcc编译1、gcc编译流程2、gcc流程和相关参数3、gcc编译参数24、gcc补充说明四、库1、静态库的制作和使用2、动态库的制作3、动态库的使用4、静态库和动态库的总结

一、学习目标

1、掌握vim命令模式下相关命令的使用

2、掌握从命令模式切换到编辑模式的相关命令

3、掌握vim末行模式下相关命令的使用

4、能够说出gcc的工作流程和掌握常见参数的使用

5、熟练掌握Linux下的静态库的制作和使用

6、熟练掌握Linux下的共享库的制作和使用

二、vim

1、vim光标的移动


vi与vim——vim是vi增强版

》安装vim:sudo apt-get install vim

》设置vim作为默认的文本编辑器

  sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1

  sudo update-alternatives --set editor /usr/bin/vim

  sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1

  sudo update-alternatives --set vi /usr/bin/vim

》查看vim教程文档:vimtutor


移动光标:

h:左;j:下:;k:上;l:右

0:行首;$(Shift+4):行尾

gg:文件第一行

G:文件尾部

12D:调到第12行

2、vim删除内容

x:删除光标所在的位置字母

u:撤销

X:删除光标之前的位置字母

dw:删除单词和一个空格(光标要定位到单词的第一个字母)

d$(d+Shift+4)删除光标到行尾

d0:删除光标到行头

D:删除光标到行尾,同d$

dd:删除光标所在行(剪切)

ndd:删除光标所在行开始n行

DD:删除两行

3、vim复制粘贴与可视模式

yy:复制一行内容

dd:剪切一行内容

nyy:复制n行内容

p/P:粘贴(注意:粘贴行不一样!)

r:替换,输入r之后,再输入一个字母

》可视模式

  v进入可视模式;

  移动光标选中内容;

  按y复制内容;

  移动光标到目的地

  按p/P将内容粘贴

4、vim查找、格式调整、查看man文档

》查找

/srcpattern

  n/N:进行遍历,注意向前还是向后

?srcpattern

  n/N:进行遍历,方向与/的方式相反

#:光标移动到字符串上,按#,可以查找该字符串

》格式调整:

  gg=G:代码文件整体调整格式(在命令状态下直接输入,不需要输入冒号,gg文件首,G是文件尾,所以 gg=G 是整理全部代码。)

  >>当前行向右移动一个Tab

  <<当前行向左移动一个Tab

  n>>当前行开始n行,向右移动一个Tab

  n<<当前行开始n行,向左移动一个Tab

》man帮助查看K或者n+K

5、vim从命令模式到编辑模式

命令模式变为编辑模式(啊,IOS)

  i:在光标前插入

  a:在光标后插入

  I:在行首插入

  A:在行尾插入

  o:下一行插入

  O:上一行插入

  s:删除当前字母,变为插入模式

  S:删除当前行,进入插入模式

6、vim行末查找替换与保存退出

》末行模式:(输入:进入末行模式)

执行命令

  :!ls -l

》代码替换

  :s/src/des/——只会替换当前行第一个匹配的src为des

  :s/src/des/g——只会替换当前行所有的src为des

  :%s/src/des/——只会替换所有行的第一个匹配src为des

  :%s/src/des/g——替换文件内容所有的src为des 

》保存退出

  :wq——保存退出

  :w——只保存

  :q——只推出,文件不能修改

  :q!——强退

  :x——保存退出

  ZZ——保存退出(命令模式下)

7、vim分屏模式

:sp——横分

:vsp——竖分

:qall——全退,不保存

:wqall——全保存

8、vim的设置


vim下载:https://github.com/chxuan/vimplus

安装vimplus
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh

/home/user/.vimrc——本用户的配置文件(user要替换为对应用户名)

/etc/vim/vimrc——系统vim配置文件

set -o vi,在系统环境设置此项,可以在当前shell环境下使用vi快捷键。

注意:终端需要重启或者执行(~/.bashrc)才能生效!

三、gcc编译

1、gcc编译流程

2、gcc流程和相关参数

-c——>编译成.o文件

-E——>输出到标准输出,宏替换,头文件展开

-S——>编译成汇编

-I(大i)——>包含头文件路径(可以绝对路径,可以相对路径)

  如:gcc add.c -I./include/ -D DEBUG -o app -g -Wall -O1

-o——>目标文件

-D——>指定宏编译

3、gcc编译参数2

-L——>包含库文件路径

-l——>(小写L)指定库名称(通常libxxx.so或者libxxx.a,-lxxx)

-r——>编译成.o文件

-g——>用户gdb调试,不加此选项不能gdb调试

-Wall——>(warning all)显示更多的警告

-lstdc++——>编译c++代码

  如:gcc hello.cpp -lstdc++ -o cpp -O

-O——>优化选项,1-3越高优先级越高

4、gcc补充说明

Ctrl+W+W:多屏切换

四、库

1、静态库的制作和使用

静态库的文件命名格式:libxxx.a(相当于Windows下的xxx.lib)

》制作步骤

(1)编译为.o文件

(2)将.o文件 打包:ar rcs libmycalc.a file1.o file2.o file3.o...

    nm libmycalc.a——>查看libmycalc.a文件文件内容

(3)将头文件与库一起发布

  如:将libmycalc.a移动到lib文件夹下

  运行:gcc main.c -o app -I include/ -L lib/ -lmycalc(小写L)

》使用

  编译时需要加静态库名(记得路径),-I包含头文件

Ubuntu下计算器:bc(退出:quit)

2、动态库的制作

动态库的文件命名格式:libxxx.so(相当于Windows下的xxx.dll)

》制作步骤

(1)编译与位置无关的代码,生成.o,关键参数-fPIC(有的Linux可以不加,为了统一,都加上!)

  如:gcc -fPIC -c *.c -I ../include/ (大写i)

(2)将.o文件打包:关键参数-shared

  如:gcc -shared -o libCalc.so *.o

(3)将库与头文件一起发布

  如:将libCalc.o移动到lib文件夹下

  运行:gcc main.c -o app -I include/ -L lib/ -lCalc(小写L)报错:找不到链接libCalc.so!

    ldd app——检查链接(小写L)

      得到:libCalc.so=> not found

3、动态库的使用

使用编译的时候与静态库一样,需要配置库的路径,保证ld链接器能够加载!

》使用

(1)-L指定动态库路径,-l指定库名

  如:gcc main.c -o app -I include/ -L lib/ -lCalc(小写L)

(2)解决不能加载动态库的问题

  1.拷贝到系统的/lib或/usr/lib库目录下,不允许

    也可以使用软链接:sudo ln -s lib/libCalc.so /lib/libCalc.so(相对路径不行)

    删除软链接:sudo rm /lib/libCalc.so

    使用当前路径:sudo ln -s ~/linux/cmd/Calc/lib/libCalc.so /lib/libCalc.so

  2.将库路径添加到环境变量,修改LD_LIBRARY_PATH环境变量,用冒号分隔,不是特别推荐

  echo $LD_LIBRARY_PATH

  export LD_LIBRARY_PATH=/home/wang/linux/cmd/Calc/lib/:$LD_LIBRARY_PATH

    export只是一次生效

    要永久生效,把路径放入.bashrc中

  3.配置/etc/ld.so.conf文件,增加/home/wang/cmd/Calc/lib路径,执行sudo idconfig -v(需要root权限!)

  sudo vi /etc/ld.so.conf——打开ld.so.conf增加:

    /home/wang/linux/cmd/Calc/lib

  sudo ldconfig -v——设置生效

4、静态库和动态库的总结

》静态库优缺点总结

  优点:1)执行速度快;2)发布应用时不需要发布库

  缺点:1)执行程序体积会变比较大;2)库变更时需要重新编译应用

》动态库优缺点总结

  缺点:1)执行时需要加载动态库,相对而言,比静态库慢;2)发布应用时需要同时发布动态库

  优点:1)执行程序体积小;2)库变更时,一般不需要重新编译应用(如:接口更改,两数相加改为三数相加,需要重新编译)

在学习Linux命令基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值