常用的工具介绍
yum
-
在Linux中如何进行软件的安装?
软件是在服务器上,服务器提供的下载服务,因此才可以下载。
sudu yum list | grep sl
sudo yum -y install XXX
sudo yum -y remove XXX
-
正如我们的软件管家,这个软件管家,它怎么知道去哪里下载呢?
一般都是内置下载链接的地址
yum怎么知道我要下载的软件在哪里呢?
yum有自己的配置文件,也就是yum源,yum源在 /etc/yum.repo
-
怎么更新yum源呢?
- 先进行备份老的yum源 Centos-Base.repo
- wget 获取新的yum源配置文件 --可以通过网络搜索得到
- mv重命名为Centos-Base.repo
- yum clean all && yum makecache
如果你想安装的软件找不到,有可能就是在扩展的yum源中:epel.repo
sudo yum install -y epel-release # 根据base yum源,帮我们找到和他匹配的扩展yum源 sudo yum install -y
vim使用
-
vim是一种多模式的编辑器,我们最常用的有3~5种模式
命令模式(默认打开就是命令模式),插入模式,底行模式,视图模式,替换模式
-
vim就是单纯的一个编辑器
-
vim指令集
yy/nyy:复制当前行
p/np:粘贴复制的内容
u:撤销命令,撤销刚刚的操作
ctrl+r:对撤销进行撤销
dd/ndd:剪切,3dd剪切3行,如果只进行dd操作不进行粘贴就是删除操作
光标定位:
shift g:将光标定位到文档的结尾
gg:将光标定位到文档的开始
n shift g:定位到n行
shift 4:将光标定义到文本行的结尾
shift 6:将光标定义到行的开始
w,b:按照单词进行前后移动,w向后移动,b向前移动
shift ~:进行快速大小写切换
r:替换光标所在的字符,支持nr,连续替换
shift r:进入替换模式
nx :行内删除,支持nx,从前往后删
shift x:从后往前删
h:往左走
j:向下移动
k:向上移动
l:向右移动
进入插入模式:i a光标向后移动一个 o光标另起一行
底行模式:/xxx搜索
:wq! 保存并且强制退出
:!+操作 不退出vim进行操作
:set nu/nonu
:%s///g 替换
:/key
:!command
:vs file 进行分屏
在vim分屏下ctrl ww 进行切屏
-
vim的配置
vim在启动的时候会自动在当前目录下寻找vim的配置文件,一个用户,一个vim配置
.vimrc----在这个文件里进行配置
gcc/g++
gcc是专门用来编译C语言的,g++是专门用来编译C++的
程序的翻译包括预处理-编译-汇编-链接
- 预处理–头文件展开,条件编译,宏替换,去注释
- -E:从现在开始进行预处理,处理完之后就停下来,生成.i文件
- 编译–c语言->汇编语言
- -S:编译完停下来生成.s文件
- 汇编–(汇编->可重定位二进制文件,不可以被执行,bin.obj)只把我们自己的代码翻译成二进制目标文件
- -c:从现在开始进行程序的翻译,汇编完之后就停下来生成.o文件
- 链接(将我们自己形成的obj文件和库文件进行合并,形成可执行程序)
- 直接gcc .o文件就行,就可以生成可执行文件了。
记忆:ESc——>iso
g++也是一样的操作
ldd命令:检测可执行程序依赖了哪些库
在linux环境下,库在/usr/include下,linux系统默认已经携带了语言级别的头文件和语言对应的库。
库分为两种,动态库和静态库。linux系统默认使用动态链接和动态库。
- 静态库:libxxxxxx.a
- 动态库:libxxxxxx.so
-
动态库和静态库的区别
动态库 (dynamic library) 和静态库 (static library) 是两种不同类型的库文件。
静态库是在编译时直接嵌入到可执行文件中的,所以可执行文件体积会变大。它们可以被多个程序共享,但是当库文件被修改或者升级时,需要重新编译所有使用它的程序才能生效。
动态库则是在程序运行时加载的,因此可执行文件体积会小一些。它们也可以被多个程序共享,而且当库文件被修改或者升级时,只需要替换库文件即可,不需要重新编译程序。
需要注意的是,不同平台和编译器对于静态库和动态库的实现方式可能不同。一般来说,Windows 系统的 DLL 文件为动态库,而 Linux 系统的 .so 文件为动态库
只要把动态库删掉,所有依赖这个动态库的程序就无法执行了
一般的云服务器,默认都只有动态库,你如果在静态链接的时候可能会报错。
-
报错时候的解决
sudo yum install -y libc-static #安装C的静态库
自动化构建工具make/Makefile
make是一个命令,Makefile是一个文件
多个编译和多个链接利用gcc和g++比较麻烦,利用make和Makefile实现一定程度的自动化构建
git
安装git
yum install git
gdb
gcc/gdb默认形成的可执行程序是release版本的
l 1#从第一行查看程序
b 17 #在第17行打断点
r #运行程序
info b #查看断点信息
disable breakpoint 2 #使断点编号为2的断点设置成空心断点
enable breakpoint 2 #使断点编号为2的断点设置成实心断点
gdb
gcc/gdb默认形成的可执行程序是release版本的
l 1#从第一行查看程序
b 17 #在第17行打断点
r #运行程序
info b #查看断点信息
disable breakpoint 2 #使断点编号为2的断点设置成空心断点
enable breakpoint 2 #使断点编号为2的断点设置成实心断点