shell基本命令 --1

linux下安装网络工具

sudo  yum install net_tools //安装网络工具 为了使用ifconfig指令

sudo  yum  remove net_tools //卸载网络工具

输入ifconfig 验证是否安装成功 查看网络属性

vim

命令行模式:

yy复制当前行内容

nyy复制光标所在行及以后n行文本内容

p:将复制的内容粘贴

dd删除当前行内容

ndd删除光标所在行及以后n行文本内容

u撤销

ctrl+r反撤销

gg将光标跳到首行

nG将光标跳到n行

0光标跳转到当前行首位置

$光标跳转到当前行尾位置

插入模式:

命令行模式下输入INSERT从光标进入插入模式

i光标出进入

I光标所在行首进入

a从光标所在字符后进入

A从光表所在行尾进入

o光标下一行进入

O光标上一行进入

s删除光标字符后进入INSERT模式

S删除光标所在行后进入INSERT模式

底行模式

文本的保存退出替换

命令行模式下输入shift+; 即 :

:w保存

:q退出

:q!强制退出

:wq保存并退出

:x保存退出

:set number在编辑器下显示行号

:set nonumber在编辑器下不显示行号

:/string 查找字符串string,并将光标跳转到包含该字符串的行首

:%s/string1/string2/g将文本所有string1换成string2

:m,ns/string1/string2/g表示[m,n]行内所有string1换成string2

c++环境搭配

yum install gcc

yum install gcc-c++

查阅是否安装成功

gcc --version

g++ --version

CMake

yum install cmake

c++代码编译运行

ESC  ISO

方法1:

1   g++ ***1.cpp //会生成一个a.out可执行程序

2   g++ ***1.cpp -o   ***2  //会生成一个叫***2的***1.cpp的可执行程序

程序运行

./可执行程序名称

方法2:

分布编译(重要):

1.预处理(Pre_processing)

将源文件展开,删除注释,宏替换

g++ -E ***.cpp -o ***.i

2.编译

将程序生成汇编语言

g++ -S ***.i -o ***.s

3.汇编

将汇编语言生成二进制

g++ -c  ***.s -o ***.o

4.链接

链接相关库文件,生成可执行程序

g++ ***.o -o 可执行文件名

gdb调试

调试正在运行的程序,调试当前程序,调试出错程序

使用

1.准备c++程序

2.编译程序,编译选项中需要加上-g

g++ -g ***.cpp -o ***

3.启动gdb

gdb ./***

4.指令

quit/q退出

run/r 执行可执行程序,如果未设置端点,则从头到尾执行一遍

list/l 展示可执行程序的相关行,默认展示10行

list n.m展示n到m行  

list func 展示func周边的程序

break/b设置断点

info break查看所有断点信息

delete breakpoint 编号    删除编号断点

next/n 执行下一条语句

continue/c从断点处运行到下一个断点处

step 跳入指定相关函数中

set variable 变量名=值:表示给某个变量设置相关的值

gdb使用小技巧

shell :可以跟终端指令,表示执行终端相关操作

set logging on:设置开启日志功能,会在当前目录中生成gdb.txt记录接下来调试内容

watchpoint:观察点,如果设置的观察点的值发生改变,则会将该值的旧值和新值一起展示出来

gdb调试出错的文件

当可执行文件处错时,会生成core 文件用与查看出错信息(linux产生core 文件,需要设置)

ulimit -a

ulimit -c unlimited

gdb调试正在运行的文件

./a.out & 将程序后台运行 会出现一个作业号与进程号

pidof a.out查看进程号

gdb -p 进程号 调试指定的进程

库:

Windows:

***.lib 静态库

***.dll 动态库

Linux:

***. a静态库

***.so 动态库

g++ -c ***.c -o ***.o//只编译不生成二进制文件

ar -crs lib***.a ***.o//编译生成静态库

ar用于生成静态库的指令

c:用于创建静态库

r:将文件插入或替换静态库中同名文件

s:重置静态库中索引

使用库文件g++ 源文件 -L 库的路径 -l(小写L) 库名 -I(大写i) 头文件路径

动态库生成

g++ -fPIC -c ***.cpp -o ***.o //编译生成二进制文件

g++ -shared ***.o -o lib***.so//依赖于二进制文件生成一个动态库

使用库文件g++ 源文件 -L 库的路径 -l(小写L) 库名 -I(大写i) 头文件路径

注意:使用动态库时,会出现加载共享库错误,此时我们需要更改路径宏值:

export LD_LIBRARY_PATH=(库的路径)

或者将自己的动态库放入到系统的库函数目录中(/lib  /user/lib64)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值