网站维护入口建设工程人员押证在哪个网站查
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:23
当前位置: 首页 > news >正文
网站维护入口,建设工程人员押证在哪个网站查,济南济阳网站建设,网站建设设计主要系统Linux环境基础开发工具的使用yum、vim、gcc、g、gdb、make/Makefile Linux软件包管理器- yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行… Linux环境基础开发工具的使用yum、vim、gcc、g、gdb、make/Makefile Linux软件包管理器- yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总vim的简单配置 Linux编译器- gcc/ggcc/g的作用gcc/g语法预处理编译汇编链接静态库与动态库 Linux调试器 gdbgdb使用须知gdb命令汇总 Linux项目自动化构建工具make/Makefilemake/Makefile的重要性依赖关系和依赖方法多文件编译make原理项目清理完善makefile Linux第一个小程序-进度条行缓冲区的概念r和n进度条代码及效果展示 Linux软件包管理器- yum
Linux下安装软件的方式
Linux下安装软件的方式 在Linux下安装软件的方法大概有以下三种 1下载到程序的源代码自行进行编译得到可执行程序。 2获取rpm安装包通过rpm命令进行安装。未解决软件的依赖关系 3通过yum进行安装软件。常用
认识yum
yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器能够从指定的服务器自动下载RPM包并且安装可以自动处理依赖性关系并且一次安装所有依赖的软件包无须繁琐地一次次下载、安装。
注意一个服务器同一时刻只允许一个yum进行安装不能在同一时刻同时安装多个软件。
因为yum是从服务器上下载RPM包所以在下载时必须联网可以通过ping指令判断当前云服务器是否联网。 查找软件包
[qqiZ0jl65jmm6w9evbwz2zuoZ root]\( yum list 说明一下 1软件包名称主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。 2x86_64后缀表示64位系统的安装包i686后缀表示32位系统安装包选择包时要和系统匹配。 3el7表示操作系统发行版的版本“el7表示的是centos7/redhat7”“el6表示centos6/redhat6”。 4最后一列表示的是“软件源”的名称类似于“小米应用商店”“华为应用商店”这样的概念。
这里我们以查找lrzsz为例。 lrzsz可以将Windows当中的文件上传到Linux当中也可以将Linux当中的文件下载到Windows当中实现云服务器和本地机器之间进行信息互传。 [qqiZ0jl65jmm6w9evbwz2zuoZ root]\) yum list | grep lrzsz由于包的数量非常多所以我们可以使用grep指令筛选出我们所关注的包这里我们以lrzsz为例。 此时就只会显示与lrzsz相关的软件包。
安装软件
指令 sudo yum install 软件名
[qqiZ0jl65jmm6w9evbwz2zuoZ root]\( sudo yum install lrzszyum会自动找到都有哪些软件包需要下载这时候敲“y”确认安装当出现“complete”字样时说明安装完成。
注意事项 1安装软件时由于需要向系统目录中写入内容一般需要sudo或者切换到root账户下才能完成。 2yum安装软件只能一个装完了再装另一个正在使用yum安装一个软件的过程中如果再尝试用yum安装另外一个软件yum会报错。
如何实现本地机器和云服务器之间的文件互传
既然已经安装了lrzsz这里就顺便说一下lrzsz如何使用。 指令 rz -E 通过该指令可选择需要从本地机器上传到云服务器的文件。 指令 sz 文件名 该指令可将云服务器上的文件下载到本地机器的指定文件夹。
卸载软件
指令 sudo yum remove 软件名
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\) sudo yum remove lrzsz
yum会自动卸载该软件这时候敲“y”确认卸载当出现“complete”字样时说明卸载完成。
Linux编辑器 - vim
vim的基本概念
vim在我们做开发的时候主要解决我们编写代码的问题本质上就是一个多模式的文本编辑器。
我们这里主要介绍vim最常用的三种模式命令模式、插入模式、底行模式。 1、命令模式Normal mode。 在命令模式下我们可以控制屏幕光标的移动字符、字或行的删除复制粘贴剪贴等操作。 2、插入模式Insert mode。 只有在插入模式下才能进行文字输入该模式是我们使用最频繁的编辑模式。 3、底行模式Command mode。 在底行模式下我们可以将文件保存或退出也可以进行查找字符串等操作。在底行模式下我们还可以直接输入vim help-modes查看当前vim的所有模式。
vim下各模式的切换
指令 vim 文件名
[qqiZ0jl65jmm6w9evbwz2zuoZ ]\( vim test.cc 进入vim后默认为命令模式普通模式要输入文字需切换到插入模式。 【命令模式】切换至【插入模式】 1输入「i」在当前光标处进入插入模式。 2输入「a」在当前光标的后一位置进入插入模式。 3输入「o」在当前光标处新起一行进入插入模式。
【命令模式】切换至【底行模式】 1输入「Shift;」即可实际上就是输入「:」。
【插入模式】或【底行模式】切换至【命令模式】 1插入模式或是底行模式切换至命令模式都是直接按一下「Esc」键即可。
vim命令模式各命令汇总
【移动光标】 1按「k」光标上移。 2按「j」光标下移。 3按「h」光标左移。 4按「l」光标右移。 5按「\)」移动到光标所在行的行尾。 6按「^」移动到光标所在行的行首。 7按「gg」移动到文本开始。 8按「Shiftg」移动到文本末尾。 9按「nShiftg」移动到第n行行首。 10按「nEnter」当前光标向下移动n行。 11按「w」光标从左到右从上到下的跳到下一个字的开头。 12按「e」光标从左到右从上到下的跳到下一个字的结尾。 12按「b」光标从右到左从下到上的跳到上一个字的开头 【删除】 1按「x」删除光标所在位置的字符。 2按「nx」删除光标所在位置开始往后的n个字符。 3按「X」删除光标所在位置的前一个字符。 4按「nX」删除光标所在位置的前n个字符。 5按「dd」删除光标所在行。 6按「ndd」删除光标所在行开始往下的n行。 【复制粘贴】 1按「yy」复制光标所在行到缓冲区。 2按「nyy」复制光标所在行开始往下的n行到缓冲区。 3按「yw」将光标所在位置开始到字尾的字符复制到缓冲区。 4按「nyw」将光标所在位置开始往后的n个字复制到缓冲区。 5按「p」将已复制的内容在光标的下一行粘贴上。 6按「np」将已复制的内容在光标的下一行粘贴n次。 【剪切】 1按「dd」剪切光标所在行。 2按「ndd」剪切光标所在行开始往下的n行。 3按「p」将已剪切的内容在光标的下一行粘贴上。 4按「np」将已剪切的内容在光标的下一行粘贴n次。 【撤销】 1按「u」撤销。 2按「Ctrlr」恢复刚刚的撤销。 【大小写切换】 1按「」完成光标所在位置字符的大小写切换。 2按「n~」完成光标所在位置开始往后的n个字符的大小写切换。 【替换】 1按「r」替换光标所在位置的字符。 2按「R」替换光标所到位置的字符直到按下「Esc」键为止。 【更改】 1按「cw」将光标所在位置开始到字尾的字符删除并进入插入模式。 2按「cnw」将光标所在位置开始往后的n个字删除并进入插入模式。 【翻页】 1按「Ctrlb」上翻一页。 2按「Ctrlf」下翻一页。 3按「Ctrlu」上翻半页。 4按「Ctrld」下翻半页。
vim底行模式各命令汇总
在使用底行模式之前记住先按「Esc」键确定你已经处于命令模式再按「:」即可进入底行模式。
【行号设置】 1「set nu」显示行号。 2「set nonu」取消行号。 【保存退出】 1「w」保存文件。 2「q」退出vim如果无法离开vim可在「q」后面跟一个「!」表示强制退出。 3「wq」保存退出。 【分屏指令】 1「vs 文件名」实现多文件的编辑。 2「Ctrlww」光标在多屏幕下进行切换。 【执行指令】 1「!指令」在不退出vim的情况下可以在指令前面加上「!」就可以执行Linux的指令例如查看目录、编译当前代码等。
vim的简单配置
【配置文件的位置】 1在目录/etc/下面有个名为vimrc的文件这是系统中公共的配置文件对所有用户都有效。 2在每个用户的主目录/home/xxx下都可以自己建立私有的配置文件命名为“.vimrc”这是该用户私有的配置文件仅对该用户有效。
例如普通用户在自己的主目录下建立了“.vimrc”文件后在文件当中输入set nu指令并保存下一次打开vim的时候就会自动显示行号。
vim的配置比较复杂某些vim配置还需要使用插件建议不要自己一个个去配置。比较简单的方法是直接执行以下指令想在哪个用户下让vim配置生效就在哪个用户下执行该指令不推荐直接在root下执行 curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh bash ./install.sh 然后按照提示输入root密码 然后等待安装配置最后手动执行source ~/.bashrc即可。 配置完成后像什么自动补全、行号显示以及自动缩进什么的就都有了。
Linux编译器- gcc/g
gcc/g的作用
gcc和g分别是GNU的C和C的编译器gcc和g在执行编译的时候一般有以下四个步骤 1预处理头文件展开、去注释、宏替换、条件编译。 2编译C代码翻译成汇编语言。 3汇编汇编代码转为二进制目标代码。 4链接将汇编过程产生的二进制代码进行链接。
gcc/g语法
语法 gcc/g 选项 文件 常用选项 1-E 只进行预处理这个不生成文件你需要把他重定向到一个输出文件里面否则将把预处理后的结果打印到屏幕上。 2-S 编译到汇编语言不进行汇编和链接即只进行预处理和编译。 3-c 编译到目标代码 4-o 将处理结果输出到指定文件该选项后需紧跟输出文件名。 5-static 此选项对生成的文件采用静态链接。 6-g 生成调试信息若不携带该选项则默认生成release版本。 7-shared 此选项将尽量使用动态库生成文件较小。 8-w 不生成任何警告信息。 9Wall 生成所有警告信息。 10-O0/-O1/-O2/-O3 编译器优化选项的四个级别-O0表示没有优化-O1为缺省值-O3优化级别最高。
预处理
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\( gcc -E test.c -o test.i
预处理功能主要包括头文件展开、去注释、宏替换、条件编译等。预处理指令是以#开头的代码行。-E选项的作用是让gcc/g在预处理结束后停止编译过程。-o选项是指目标文件“xxx.i”文件为已经过预处理的原始程序。 编译
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\) gcc -S test.i -o test.s在这个阶段中gcc/g首先检查代码的规范性、是否有语法错误等以确定代码的实际要做的工作在检查无误后将代码翻译成汇编语言。用户可以使用-S选项来进行查看该选项只进行编译而不进行汇编生成汇编代码。-o选项是指目标文件“xxx.s”文件为已经过翻译的原始程序。 汇编
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\( gcc -c test.s -o test.o汇编阶段是把编译阶段生成的“xxx.s”文件转成目标文件。使用-c选项就可以得到汇编代码转化为“xxx.o”的二进制目标代码了。 链接
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\) gcc test.o -o test在成功完成以上步骤之后就进入了链接阶段。链接的主要任务就是将生成的各个“xxx.o”文件进行链接生成可执行文件。gcc/g不带-E、-S、-c选项时就默认生成预处理、编译、汇编、链接全过程后的文件。若不用-o选项指定生成文件的文件名则默认生成的可执行文件名为a.out。 注意 链接后生成的也是二进制文件。
静态库与动态库
函数库一般分为静态库和动态库两种
静态库是指编译链接时把库文件的代码全部加入到可执行文件当中因此生成的文件比较大但在运行时也就不再需要库文件了静态库一般以.a为后缀。 动态库与之相反在编译链接时并没有把库文件的代码加入到可执行文件当中而是在程序运行时由链接文件加载库这样可以节省系统的开销动态库一般以.so为后缀。
动态链接 优点省空间磁盘的空间内存的空间bin体积小加载速度快。 缺点依赖动态库程序可移植性较差。 静态链接 优点不依赖第三方库程序的可移植性较高。 缺点浪费空间。 其次我们还可以使用ldd指令查看动态链接的可执行文件所依赖的库。 图中的/lib64/libc.so.6就是当前云服务器当中的C标准库。
虽然gcc和g默认采用的是动态链接但如果我们需要使用静态链接带上-static选项即可。
[qqiZ0jl65jmm6w9evbwz2zuoZ ~]\( gcc test.c -o test_s -static此时生成的可执行文件就是静态链接的了。 我们可以查看源代码相同但链接方式不同而生成的两个可执行程序test和test_s的大小。 这也证明了动态链接比较节省空间而静态链接比较浪费空间
Linux调试器 gdb
gdb使用须知
程序发布方式 1、debug版本程序本身会被加入更多的调试信息以便于进行调试。 2、release版本不会添加任何调试信息是不可调试的。
在Linux当中gcc/g默认生成的可执行程序是release版本的是不可被调试的。如果想生成debug版本就需要在使用gcc/g生成可执行程序时加上-g选项。 对同一份源代码分别生成其release版本和debug版本的可执行程序并通过ll指令可以看到debug版本发布的可执行程序的大小比release版本发布的可执行程序的大小要大一点其原因就是以debug版本发布的可执行程序当中包含了更多的调试信息。
gdb命令汇总
【进入gdb】 指令 gdb 文件名
【调试】 1「run/r」运行代码启动调试。 2「next/n」逐过程调试。 3「step/s」逐语句调试。 4「until 行号」跳转至指定行。 5「finish」执行完当前正在调用的函数后停下来不能是主函数。 6「continue/c」运行到下一个断点处。 7「set var 变量x」修改变量的值为x。
【显示】 1「list/l n」显示从第n行开始的源代码每次显示10行若n未给出则默认从上次的位置往下显示.。 2「list/l 函数名」显示该函数的源代码。 3「print/p 变量」打印变量的值。 4「print/p 变量」打印变量的地址。 5「print/p 表达式」打印表达式的值通过表达式可以修改变量的值。 6「display 变量」将变量加入常显示每次停下来都显示它的值。 7「display 变量」将变量的地址加入常显示。 8「undisplay 编号」取消指定编号变量的常显示。 9「bt」查看各级函数调用及参数。 10「info/i locals」查看当前栈帧当中局部变量的值。
【断点】 1「break/b n」在第n行设置断点。 2「break/b 函数名」在某函数体内第一行设置断点。 3「info breakpoint/b」查看已打断点信息。 4「delete/d 编号」删除指定编号的断点。 5「disable 编号」禁用指定编号的断点。 6「enable 编号」启用指定编号的断点。
【退出gdb】 1「quit/q」退出gdb。
Linux项目自动化构建工具make/Makefile
make/Makefile的重要性
会不会写Makefile从侧面说明了一个人是否具备完成大型工程的能力。一个工程的源文件不计其数按照其类型、功能、模块分别放在若干个目录当中Makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译甚至于进行更复杂的功能操作。Makefile带来的好处就是“自动化编译”一旦写好只需一个make命令整个工程完全自动编译极大的提高了软件开发的效率。mak是一个命令工具是一个解释Makefile当中指令的命令工具一般来说大多数的IDE都有这个命令例如Delphi的makeVisual C的nmakeLinux下GNU的make。可见Makefile都成为了一种在工程方面的编译方法。make是一条命令Makefile是一个文件两个搭配使用完成项目自动化构建。
依赖关系和依赖方法
在使用make/Makefile前我们首先应该理解各个文件之间的依赖关系以及它们之间的依赖方法。
依赖关系 文件A的变更会影响到文件B那么就称文件B依赖于文件A。
例如test.o文件是由test.c文件通过预处理、编译以及汇编之后生成的文件所以test.c文件的改变会影响test.o所以说test.o文件依赖于test.c文件。
依赖方法 如果文件B依赖于文件A那么通过文件A得到文件B的方法就是文件B依赖于文件A的依赖方法。
例如test.o依赖于test.c而test.c通过gcc -c test.c -o test.o指令就可以得到test.o那么test.o依赖于test.c的依赖方法就是gcc -c test.c -o test.o。
多文件编译
当你的工程当中有多个源文件的时候应该如何进行编译生成可执行程序呢 首先我们可以直接使用gcc指令对多个源文件进行编译进而生成可执行程序。 但进行多文件编译的时候一般不使用源文件直接生成可执行程序而是先用每个源文件各自生成自己的二进制文件然后再将这些二进制文件通过链接生成可执行程序。 原因
若是直接使用源文件生成可执行程序那么其中一个源文件进行了修改再生成可执行程序的时候就需要将所以的源文件重新进行编译链接。而若是先用每个源文件各自生成自己的二进制文件那么其中一个源文件进行了修改就只需重新编译生成该源文件的二进制文件然后再将这些二进制文件通过链接生成可执行程序即可。
注意 编译链接的时候不需要加上头文件因为编译器通过源文件的内容可以知道所需的头文件名字而通过头文件的包含方式“尖括号”包含和“双引号”包含编译器可以知道应该从何处去寻找所需头文件。
但是随着源文件个数的增加我们每次重新生成可执行程序时所需输入的gcc指令的长度与个数也会随之增加。这时我们就需要使用make和Makefile了这将大大减少我们的工作量。
步骤一 在源文件所在目录下创建一个名为Makefile/makefile的文件。 步骤二 编写Makefile文件。 Makefile文件最简单的编写格式是先写出文件的依赖关系然后写出这些文件之间的依赖方法建议从下往上写。 编写完毕Makefile文件后保存退出然后在命令行当中执行make指令便可以生成可执行程序以及该过程产生的中间产物。 Makefile文件的简写方式
\)表示依赖关系中的目标文件冒号左侧。\(^表示依赖关系中的依赖文件列表冒号右侧全部。\)表示依赖关系中的第一个依赖文件冒号右侧第一个。
例如以上Makefile文件可以简写为 说明 gcc/g携带-c选项时若不指定输出文件的文件名则默认输出文件名为xxx.o所以这里也可以不用指定输出文件名。
make原理
make会在当前目录下找名字为“Makefile”或“makefile”的文件。如果找到它会找文件当中的第一个目标文件在上面的例子中它会找到mytest这个文件并把这个文件作为最终的目标文件。如果mytest文件不存在或是mytest所依赖的后面的test.o文件和main.o文件的文件修改时间比mytest文件新那么它就会执行后面的依赖方法来生成mytest文件。如果mytest所依赖的test.o文件不存在那么make会在Makefile文件中寻找目标为test.o文件的依赖关系如果找到则再根据其依赖方法生成test.o文件类似于堆栈的过程。当然你的test.c文件和main.c文件是存在的于是make会生成test.o文件和main.o文件然后再用test.o文件和main.o文件生成最终的mytest文件。make会一层又一层地去找文件的依赖关系直到最终编译出第一个目标文件。在寻找的过程中如果出现错误例如最后被依赖的文件找不到那么make就会直接退出并报错。
项目清理
在我们每次重新生成可执行程序前都应该将上一次生成可执行程序时生成的一系列文件进行清理但是如果我们每次都手动执行一系列指令进行清理工作的话未免有些麻烦因为每次清理时执行的都是相同的清理指令这时我们可以将项目清理的指令也加入到Makefile文件当中。 想clean这种没有被第一个目标文件直接或间接关联那么它后面所定义的命令将不会被自动执行但我们可以显示要make执行。
完善makefile
在makefile中我们也可以使用变量来批量化编译即定义一个宏然后以后更换这个宏就可以让这个makefile编译不同的文件了。 格式 变量名变量所指文件 等号中间没有空格。 例如 完善下面这个makefile 但是每一次我们运行依次makefile都会有下面的提示如果想去除提示我们可以加: 最后我们可以做一些修饰 Linux第一个小程序-进度条
行缓冲区的概念
我们先来看看这个代码这里使用了sleep函数具体sleep的使用可以查看sleep 运行如下 该代码先输出字符串hello world然后休眠3秒之后结束运行。那么对于以下代码呢
可以看到代码中仅仅删除了字符串后面的’\n’那么代码的运行结果还与之前相同吗答案否定的该代码的运行结果是先休眠3秒然后打印字符串hello world之后结束运行。该现象就证明了行缓冲区的存在。
显示器对应的是行刷新即当缓冲区当中遇到’\n’或是缓冲区被写满才会被打印出来而在第二份代码当中并没有’\n’所以字符串hello world先被写到缓冲区当中去了然后休眠3秒后直到程序运行结束时才将hello world打印到显示器当中。
r和n
\r 回车使光标回到本行行首。 \n 换行使光标下移一格。
而我们键盘上的Enter键实际上就等价于\n\r。 既然是\r是使光标回到本行行首那么如果我们向显示器上写了一个数之后再让光标回到本行行首然后再写一个数不就相当于将前面一个数字覆盖了吗 但这里有一个问题不使用’\n’进行换行怎么将缓冲区当中数据打印出来 这里我们可以使用fflush函数该函数可以刷新缓冲区即将缓冲区当中的数据刷新当显示器当中。 对此我们可以编写一个倒计时的程序。 在输出下一个数之前都让光标先回到本行行首就得到了倒计时的效果 我们来实现一个简单的进度条 进度条代码及效果展示
- 上一篇: 网站维护内容有哪些手机制作模板图片的app
- 下一篇: 网站维护升级完成aspx网站开发 案例
相关文章
-
网站维护内容有哪些手机制作模板图片的app
网站维护内容有哪些手机制作模板图片的app
- 技术栈
- 2026年03月21日
-
网站维护后期费用做百度收录的网站
网站维护后期费用做百度收录的网站
- 技术栈
- 2026年03月21日
-
网站维护工作内容帮忙网页设计师
网站维护工作内容帮忙网页设计师
- 技术栈
- 2026年03月21日
-
网站维护升级完成aspx网站开发 案例
网站维护升级完成aspx网站开发 案例
- 技术栈
- 2026年03月21日
-
网站维护托管要多少钱你愿不愿意做我女朋友网站
网站维护托管要多少钱你愿不愿意做我女朋友网站
- 技术栈
- 2026年03月21日
-
网站维护要什么做移动端网站软件
网站维护要什么做移动端网站软件
- 技术栈
- 2026年03月21日






