- 前言
- 一、Linux编辑器 ---vi/vim
- 1. vi/vim介绍
- 2. vi/vim 各种模式间的相互切换
- 3.一般模式
- 4.编辑模式
- 4.命令行模式
- 二、Linux软件包管理器 --- yum/RPM
- 1.yum介绍
- 2.YUM本地源:系统安装光盘
- 3.YUM的使用操作
- 4.RPM介绍
- 4.1RPM包的名称格式
- 5.RPM指令
- 三、Linux编译器 --- gcc/g++
- 四、Linux调试器 --- gdb
- 五、Linux项目管理器 --- make/makefile
- 总结
前言
一、Linux编辑器 —vi/vim 1. vi/vim介绍
vi 是 Linux 系统内置的文本编辑器,具有程序编程的能力,vim 可以看作是 vi 的增强版,可以字体颜色来辨别语法是否正确,便于程序的设计,而且具有代码补全、编译、错误跳转等开发功能。
vi 和 vim 有三种常用模式:
2. vi/vim 各种模式间的相互切换 3.一般模式正常模式;默认为此模式,使用 vim 打开一个档案时直接就是正常模式,在该模式中可以使用方向键来移动光标,可以使用删除键处理档案内容,也可以复制、粘贴档案内容。
插入模式;可以编辑具体内容的模式,在正常模式中按下 i 、o、 O 、a A、 R 等字母(一般按 i 即可)后会进入该编辑模式。
在命令行模式输入冒号切换到末行模式,再按ESC又返回到命令行模式。编辑模式和末行模式之间不能直接切换,只能通过命令行模式切换;
| 命令 | 说明 |
|---|---|
| x / X | x是删除下一个字符,X是删除上一个字符 如果想删除6个字符,那就" 6x " |
| yy | 复制光标所在行如果想要复制20行,那就 " 20yy " |
| p/P | p是粘贴到下一行,P是粘贴到上一行 |
| dd | 剪切(删除)光标所在行如果想要删除16行,那就 " 16dd " |
| u | 撤销 |
| Ctrl+l | 反撤销 |
| .(小数点) | 重复上一个动作 |
| gg/G | gg是回到第一行,G是回到最后一行,如果想要回到第16行,那就 " 16G " |
| y1G/yG | y1G是复制当前行前面的所有数据,yG是复制当前行之后的全部数据 |
| d1G/dG | d1G是删除当前行前面的所有数据,dG是删除当前行之后的全部数据 |
| v/V/Ctrl+v | v是光标起始和结束之间的文本会被选中,V是光标起始和结束之间的所有行被选中,Ctrl+v是光标起始和结束之间构成的矩形区域被选中 |
| shfit+zz | 保存退出 |
| shfit+zq | 不保存退出 |
| 选项 | 作用 |
|---|---|
| I、i | i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用) |
| A、a | a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) |
| O、o | 这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!(常用) |
| R、r | r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) |
| :命令 | 说明 |
|---|---|
| :w | 保存 |
| :q | 退出 |
| :wq | 保存并退出 |
| :q! | 不保存退出 |
| :set nu | 设置行号 |
| :set nonu | 取消行号 |
| : /关键字 | 搜索文件(从文件开头往下找) |
| : ?关键字 | 搜索文件(从文件末尾往往上找) |
| :%s/被替换的字符/替换后的字符/g | 全局替换文本 |
Yum(全称为Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的shell前端软件管理器,基于RPM包管理,能够从指定服务器自动下载RPM包并且安装可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装;
2.YUM本地源:系统安装光盘目的:通知Linux服务器,通过本机的系统光盘获得软件包,并安装软件
默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等。
2.1安装 wget, wget 用来从指定的 URL 下载文件
yum install wget
2.2YUM核心配置目录
YUM核心配置目录:/etc/yum.repos.d/
2.3备份移除官方YUM库
#rm -rf /etc/yum.repos.d/* 或
#mv /etc/yum.repos.d/* /tmp
2.4编写本地YUM库配置文件
#vim /etc/yum.repos.d/dvd.repo
// /etc/yum.repos.d/是YUM下载地址目录
[dvd]
//[dev]某一个库的名称,中括号[]是必须的
name=dvd
//name=dvd是库的说明,name是必须的
baseurl=file:///mnt/
// baseurl=file:///mnt/cdrom下载库的具体地址(重要)
gpgcheck=0
//gpgcheck=0是关闭校验
2.5挂载安装光盘
#mkdir /mnt/cdrom
#vim /root/.bashrc
//自启动文件,跟随用户启动程序运行的程序
//作用:可以避免每次重启需重新挂载
#mount /dev/cdrom /mnt/cdrom
//mount挂载
// /dev/cdrom是光驱文件
///mnt/cdrom是挂载点
//重启后,使用ls /mnt/cdrom,查看到光盘信息即可
2.6使用YUM安装和卸载程序
#yum install -y http
// 安装软件
#systemctl start http
// 启动软件
#systemctl stop firewalld
关闭防火墙
#systemctl disable firewalld
禁用防火墙开机自启
2.7模拟客户机访问
3.YUM的使用操作打开浏览器,输入网站服务的ip地址。http://127.0.0.1,验证网站程序部署成功
3.1yum指令
语法:
yum -[选项] [参数] //yum选项-y:是对所有提问回答yes
参数说明:
| 参数 | 作用 |
|---|---|
| install | 安装rpm软件包 |
| update | 更新rpm软件包 |
| check-update | 检查有没有可以用的更新rpm软件安装包 |
| remove | 删除指定的rpm软件包 |
| list | 显示软件包信息 |
| clean | 清理yum过期的缓存 |
| deplist | 显示yum软件包的所有依赖关系 |
| 3.2安装 |
全新安装:
#yum -y install httpd vsftpd
// yum主命令 -y (yes)自动确认 install 安装 http 软件包1 vsftpd 软件包2 软件包N
重新安装:
当软件缺失文件,可尝试重新安装
#yum -y reinstall httpd
// reinstall 重新安装
更新安装
#yum -y update httpd
// 升级一个程序httpd
#yum -y update
// 更新系统
3.3查询
#yum list httpd
// 带@是已经安装的
3.4卸载
4.RPM介绍卸载程序:
#yum -y remove httpd
// remove移除,卸载软件包
RPM Packge Manager(原red Hat Package,现在是一个递归缩写),由Red Hat公司提出,被众多Linux发行版所采用,也称二进制(binary code)无序编译,可以直接使用,无法设定个人设置,开关功能。
4.1RPM包的名称格式软件包示列(注意后缀):mysql-community-community-common-5.7.12-el7.x86_64.rpm
5.RPM指令RPM包:Apache - 3.0-11. el7. x86_64. rpm
// Apache软件包名、3.0-11版本号(version)、enterprise linux 7(el7)发布版本(Release5/6/7)、
x86_64系统平台(32/64)、.rpm文件后缀
语法:rpm -[选项] [参数]
| 选项 | 作用 |
|---|---|
| -qa | 查询安装的全部rpm软件包 |
| -e | 卸载rpm软件包 |
| -e --nodeeps | 卸载软件时,不检查依赖 |
| -ivh | 用进度条显示安装时的详细信息 |
| -v | 显示详细信息 |
| -h | 进度条 |
5.1安装
#cd /mnt/cdrom/Packages
//检查包是否存在
#ls wget-1.14-18.el7_6.1.x86_64.rpm
//下载wget-1.14-18.el7_6.1.x86_64.rpm包
#wget-1.14-18.el7_6.1.x86_64.rpm
//安装
#rpm -ivh wget-1.14-15.el7.x86_64.rpm
-i(安装)、 -v(可视)、 -h(百分比)
5.2查询
#rpm -q wget wget-1.14-15.el7.x86_64
//看到软件包的名字,就说明rpm -q查询成功,已经安装软件
5.3卸载
卸载软件包
#rpm -evh wget-1.14-15.el7.x86_64
再次查询,发现已经卸载
#rpm -q wget-1.14-15.el7.x86_64
//未安装软件包 wget-1.14-15.el7.x86_64
vim编辑器编写代码后,c程序使用gcc编译器,c++程序使用g++编译器。
使用方法:先用vim 写好文件
#vim example.c
#gcc example.c
默认生产的可执行文件为a.out,要想生成指定文件名可用-o+文件名。
#gcc xxx.c -o xxx
gcc命令选项:
| 选项 | 功能 |
|---|---|
| -E | 只激活预处理,不产生文件 |
| -S | 编译到汇编语言 |
| -c | 编译到目标代码 |
| -o | 生成指定文件 |
| -g | 生成调试信息 |
| -static | 采用静态链接库文件 |
在学习gcc编译器之前,先回顾一下c程序编译链接的过程:
预处理(进行宏替换)
编译(生成汇编)
汇编(汇编转为机器码)
链接(生成可执行文件或库文件)
gcc编译.c文件时,可以通过不同选项实现查看各个过程的编译结果。
预处理过程
gcc -E test.c -o test.b
vim test.i 查看内容发现预处理过程包括宏定义,文件包含,条件编译和去注释等。
编译过程
gcc -S test.b -o test.a
vim test.a 查看内容发现,在这个阶段首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,把代码翻译成汇编语言
汇编过程
gcc -c test.a -o test.o
vim test.o查看内容发现,程序已经从汇编指令转为机器码
链接过程
gcc test.o -o test
链接过程主要是将自己写的程序与函数或第三方库关联起来,生成可执行程序。
这里函数库分为静态库和动态库两种。
1.静态库是指编译链接的时候,将所有库文件的代码全部添加到可执行代码中,在运行时不需要库文件,但是静态库文件较大,其后缀为.a
2.动态库是在程序执行时由运行时链接文件加载库,节省系统的开销,动态库文件较小,其后缀为.so
gcc 默认生成的可执行文件是动态链接的,可以通过file命令查看验证。当然要想可执行文件是静态链接,可以通过-static命令。
tips:有些服务器没有安装C语言的静态库,运行gcc -static test.c -o test_static会出现can not found -lc的错误,这里只需要运行sudo yum install glibc-static,安装静态库即可。
四、Linux调试器 — gdb当使用gcc编译程序时,出现错误,又想和vs一样进行程序调试,怎么办呢?
在Linux下也有支持程序调试的调试器:gdb
用gdb调试的指令为:#gcc 文件名
此时文件必须带有调试信息,使用-g指令让可执行程序带有调试信息。
常用的调试命令:
| 命令 | 功能 |
|---|---|
| list/l | 显示源代码 |
| r/run | 运行程序 |
| n/next | 单条运行 |
| s/step | 进入函数调用 |
| break/b 行号 | 在某一行设置断点 |
| undisplay n | 取消跟踪查看序号为n的变量 |
| display 变量名 | 跟踪查看变量的值 |
| delete breakpoints n | 删除序号为n的断点 |
| info b | 查看断点信息 |
| finish | 执行完当前函数 |
| continue | 执行到下一断点 |
| p 变量名 | 打印变量值 |
使用ctrl+d或quit退出
五、Linux项目管理器 — make/makefile实现一个项目通常会有很多文件,Linux通过Makefile来管理这些文件的运行先后等复杂操作。
make是一个指令,Makefile是一个文件,两者搭配使用,实现项目自动化构建。
Makefile文件的书写格式为:
目标文件:依赖文件
gcc [选项] 依赖文件 -o 目标文件
以example.c为例,若想把预处理、编译、汇编和链接过程的文件都生成,Makefile的书写为:
make命令运行结果:
要想删除make运行得到的可执行文件,则只需要在Makefile文件中加入:
tips.PHONY是一个修饰符号,让其后面的命令总是可执行
然后执行make clean即可。
#make clean
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Linux常用工具的使用,从而便利我们的工作与学习。



