毕业设计做网站有哪些需求,wordpress多站点是什么意思,郑州电力高等专科学校怎么样,潍坊 公司 网站前言
在这篇文章中#xff0c;我将深入学习和理解Linux环境基础开发工具的使用。无论你是初学者还是有一定经验的开发者#xff0c;相信这篇文章都会对你有所帮助。我们将详细讲解软件包管理器、编辑器、编译器、调试器、自动化构建工具以及版本控制工具的使用。
Linux软件…前言
在这篇文章中我将深入学习和理解Linux环境基础开发工具的使用。无论你是初学者还是有一定经验的开发者相信这篇文章都会对你有所帮助。我们将详细讲解软件包管理器、编辑器、编译器、调试器、自动化构建工具以及版本控制工具的使用。
Linux软件包管理器YUM
什么是软件包
在Linux下安装软件一个常用的办法是下载到程序的源代码并进行编译得到可执行程序。但是这样太麻烦了于是有些人把一些常用的软件提前编译好做成软件包可以理解成Windows上的安装程序放在一个服务器上通过包管理器可以很方便地获取到这个编译好的软件包直接进行安装。软件包和软件包管理器就好比 “App” 和 “应用商店” 这样的关系。YUMYellow dog Updater, Modified是Linux下非常常用的一种包管理器主要应用在Fedora、RedHat、CentOS等发行版上。
关于rzsz
rzsz是一个用于Windows机器和远端的Linux机器通过XShell传输文件的工具。安装完毕之后可以通过拖拽的方式将文件上传到远端服务器非常方便。需要注意的是使用yum进行操作时必须确保主机虚拟机网络畅通可以通过ping指令验证网络连接是否正常。
查看软件包
通过yum list命令可以列出当前系统中所有的软件包。由于包的数目可能非常多我们可以使用grep命令筛选出我们关注的包。例如
yum list | grep lrzsz结果如下
lrzsz.x86_64 0.12.20-36.el7 base软件包名称包括主版本号、次版本号、源程序发行号、软件包的发行号、主机平台和CPU架构。例如x86_64表示64位系统的安装包i686表示32位系统安装包。选择包时要和系统匹配。el7表示操作系统发行版的版本如CentOS7/RedHat7el6表示CentOS6/RedHat6。最后一列base表示软件源的名称类似于小米应用商店、华为应用商店的概念。
安装软件
通过YUM我们可以通过很简单的一条命令完成软件的安装。例如安装lrzsz
sudo yum install lrzszYUM会自动找到需要下载的软件包用户需要敲y确认安装出现complete字样说明安装完成。需要注意的是安装软件时由于需要向系统目录中写入内容一般需要使用sudo或切换到root账户下才能完成。另外YUM安装软件时只能一个装完了再装另一个如果在安装过程中再尝试用YUM安装另一个软件YUM会报错。如果遇到YUM报错可以自行百度解决方法。
卸载软件
卸载软件同样非常简单
sudo yum remove lrzszLinux编辑器VIM使用
VIM的基本概念
VIM是VI的升级版本它不仅兼容VI的所有指令而且还有一些新的特性例如语法加亮、可视化操作等。VIM具有多种模式目前我们主要掌握三种命令模式Command Mode、插入模式Insert Mode和末行模式Last Line Mode。
命令模式Command Mode控制屏幕光标的移动、字符、字或行的删除、复制某区段等操作以及进入插入模式或末行模式。插入模式Insert Mode在此模式下可以进行文字输入按ESC键可回到命令模式。末行模式Last Line Mode进行文件保存或退出操作也可以进行文件替换、找字符串、列出行号等操作。在命令模式下按:即可进入末行模式。
VIM的基本操作
进入VIM
在系统提示符下输入vim及文件名称后进入VIM全屏幕编辑界面。例如
vim test.c进入VIM后默认处于命令模式需要切换到插入模式才能输入文字。
模式切换
命令模式切换至插入模式按a、i或o。 a从光标当前位置的下一个位置开始输入文字。i从光标当前位置开始输入文字。o插入新的一行从行首开始输入文字。 插入模式切换至命令模式按ESC键。命令模式切换至末行模式按shift :。
退出VIM及保存文件
在命令模式下按一下:进入末行模式。例如
:w # 保存当前文件
:wq # 保存并退出VIM
:q! # 不保存强制退出VIMVIM正常模式命令集
插入模式
i切换进入插入模式从光标当前位置开始输入文件。a切换进入插入模式从光标当前位置的下一个位置开始输入文字。o切换进入插入模式插入新的一行从行首开始输入文字。
移动光标
使用h、j、k、l分别控制光标左、下、上、右移一格。G移动到文章的最后。$移动到光标所在行的行尾。^移动到光标所在行的行首。w光标跳到下一个字的开头。e光标跳到下一个字的字尾。b光标回到上一个字的开头。#l光标移到该行的第#个位置例如5l、56l。gg进入文本开头。shift g进入文本末尾。ctrl b屏幕往后移动一页。ctrl f屏幕往前移动一页。ctrl u屏幕往后移动半页。ctrl d屏幕往前移动半页。
删除文字
x每按一次删除光标所在位置的一个字符。#x例如6x表示删除光标所在位置的后面包含自己在内6个字符。X每按一次删除光标所在位置的前一个字符。#X例如20X表示删除光标所在位置的前20个字符。dd删除光标所在行。#dd从光标所在行开始删除#行。
复制和粘贴
yw将光标所在处到字尾的字符复制到缓冲区中。#yw复制#个字到缓冲区。yy复制光标所在行到缓冲区。#yy例如6yy表示拷贝从光标所在的该行往下数6行文字。p将缓冲区内的字符贴到光标所在位置。注意所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
r替换光标所在处的字符。R替换光标所到之处的字符直到按下ESC键为止。
撤销操作
u撤销上一次操作。按多次u可以执行多次撤销。ctrl r恢复撤销的操作。
更改
cw更改光标所在处的字到字尾处。c#w例如c3w表示更改3个字。
跳至指定行
ctrl g列出光标所在行的行号。#G例如15G表示移动光标至文章的第15行行首。
VIM末行模式命令集
列出行号
set nu在文件中的每一行前面列出行号。
跳到文件中的某一行
#输入数字#再按回车键就会跳
到该行。例如输入数字15再回车就会跳到文章的第15行。
查找字符
/关键字按/键再输入想寻找的字符如果第一次找的关键字不是想要的可以一直按n会往后寻找。?关键字按?键再输入想寻找的字符如果第一次找的关键字不是想要的可以一直按n会往前寻找。
保存文件
w保存文件。
离开VIM
q退出如果无法离开VIM可以在q后跟一个!强制退出。wq保存并退出。
VIM操作总结
VIM有三种主要模式正常模式、插入模式和末行模式。我们可以使用各种命令进行文件的编辑、查看、查询、插入、删除、替换、撤销、复制等操作。此外VIM还有许多其他模式用户可以通过研究VIM的帮助文档来了解更多。
简单VIM配置
配置文件的位置
在目录/etc/下面有个名为vimrc的文件这是系统中公共的VIM配置文件对所有用户都有效。而在每个用户的主目录下可以自己建立私有的配置文件命名为.vimrc。例如/root目录下通常已经存在一个.vimrc文件如果不存在则可以创建一个。
切换用户到自己的工作目录
su
cd ~打开自己目录下的.vimrc文件
vim .vimrc常用配置选项
设置语法高亮syntax on显示行号set nu设置缩进的空格数为4set shiftwidth4
使用插件
要配置更强大的VIM原生的配置可能功能不全可以选择安装插件来完善配置。例如安装TagList插件和WinManager插件。
安装TagList插件
下载taglist_xx.zip解压完成后将解压出来的doc内容放到~/.vim/doc将解压出来的plugin内容拷贝到~/.vim/plugin。在~/.vimrc中添加let Tlist_Show_One_File1
let Tlist_Exit_OnlyWindow1
let Tlist_Use_Right_Window1安装文件浏览器和窗口管理器插件WinManager
下载winmanager.zip解压完成后将解压出来的doc内容放到~/.vim/doc将解压出来的plugin内容拷贝到~/.vim/plugin。在~/.vimrc中添加let g:winManagerWindowLayoutFileExplorer|TagList
nmap wm :WMTogglecr重启VIM打开文件在正常模式下输入wm。
Linux编译器GCC/G使用
背景知识
GCC是GNU Compiler Collection的缩写是Linux系统中的标准编译器。它支持多种编程语言如C、C、Objective-C、Fortran、Ada等。GCC编译器的工作过程分为四个阶段预处理、编译、汇编和连接。
预处理进行宏替换、文件包含、条件编译和去注释等操作。编译将预处理后的代码翻译成汇编语言。汇编将汇编代码转化为机器码。连接将目标文件与库文件链接生成可执行文件或库文件。
GCC如何完成
预处理
预处理主要包括宏定义、文件包含、条件编译、去注释等操作。预处理指令是以#号开头的代码行。用户可以使用-E选项进行预处理停止编译过程。例如
gcc -E hello.c -o hello.i其中-E选项的作用是让GCC在预处理结束后停止编译过程-o选项指定输出文件.i文件是已经过预处理的C源代码。
编译
编译阶段中GCC首先检查代码的规范性、是否有语法错误等在检查无误后将代码翻译成汇编语言。用户可以使用-S选项只进行编译而不进行汇编生成汇编代码。例如
gcc -S hello.i -o hello.s汇编
汇编阶段是将汇编代码转化为机器码。用户可以使用-c选项生成目标文件。例如
gcc -c hello.s -o hello.o连接
连接阶段是将目标文件与库文件链接生成可执行文件或库文件。例如
gcc hello.o -o hello函数库
在C程序中常用的库函数如printf的实现并不在源代码中定义而是在库文件中。系统将这些函数实现放在名为libc.so.6的库文件中GCC会在链接阶段将其链接到程序中。函数库分为静态库和动态库两种。
静态库在编译链接时将库文件的代码全部加入到可执行文件中生成的文件较大但运行时不需要库文件。静态库的后缀名一般为.a。动态库在编译链接时不将库文件的代码加入到可执行文件中而是在程序执行时由运行时链接器加载库文件节省系统开销。动态库的后缀名一般为.so。
GCC选项
GCC提供了许多选项用户可以根据需要进行配置。例如
-E只激活预处理不生成文件。-S只进行编译不进行汇编和链接。-c只进行编译不进行连接。-o指定输出文件。-static生成静态链接的文件。-g生成调试信息。-shared尽量使用动态库生成的文件较小但需要系统有动态库。-O0至-O3编译器优化选项的4个级别-O0表示没有优化-O1为默认值-O3优化级别最高。-w不生成任何警告信息。-Wall生成所有警告信息。
Linux调试器GDB使用
背景
程序发布方式有两种debug模式和release模式。Linux下GCC/G生成的二进制程序默认是release模式要使用GDB调试必须在源代码生成二进制程序时加上-g选项。
开始使用
GDB是GNU Debugger的缩写用于调试程序。用户可以通过以下命令启动GDB
gdb binFile调试过程中可以使用以下命令
list或l 行号显示源代码每次列10行。run或r运行程序。next或n单条执行。step或s进入函数调用。break或b 行号在某一行设置断点。info break查看断点信息。finish执行到当前函数返回。print或p 表达式打印表达式的值。set var修改变量的值。continue或c从当前位置开始连续执行程序。delete breakpoints删除所有断点。disable breakpoints禁用断点。enable breakpoints启用断点。display 变量名跟踪查看变量值。undisplay取消对变量的跟踪。until 行号跳至指定行。backtrace或bt查看函数调用及参数。info locals查看当前栈帧局部变量的值。quit退出GDB。
理解
通过实际操作理解GDB的使用方法可以帮助用户在调试过程中快速定位和解决问题。
Linux项目自动化构建工具Make/Makefile
背景
Makefile是一种自动化编译工具定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译等。Makefile极大地提高了软件开发的效率特别是在大型项目中。Make是一个命令工具用于解释Makefile中的指令。
理解
Makefile定义了一系列依赖关系和命令。例如
hello: hello.ogcc hello.o -o hellohello.o: hello.sgcc -c hello.s -o hello.ohello.s: hello.igcc -S hello.i -o hello.shello.i: hello.cgcc -E hello.c -o hello.iMakefile通过依赖关系定义了编译顺序Make会根据依赖关系自动进行编译。
项目清理
在Makefile中定义清理目标可以方便地清除所有生成的文件。例如
.PHONY: clean
clean:rm -f hello.i hello.s hello.o hello伪目标clean用于清除所有目标文件以便重编译。
Linux第一个小程序进度条
\r和\n
回车\r和换行\n的概念在进度条显示中非常重要。回车\r将光标移到行首换行\n将光标移到下一行。
行缓冲区概念
行缓冲区会导致输出无法立即显示可以通过fflush(stdout)刷新缓冲区。例如
#include stdio.h
#include unistd.hint main() {printf(hello Makefile!);fflush(stdout);sleep(3);return 0;
}进度条代码
下面是一个简单的进度条实现代码
#include stdio.h
#include unistd.h
#include string.hint main() {int i 0;char bar[102];memset(bar, 0, sizeof(bar));const char *lable |/-\\;while (i 100) {printf([%-100s][%d%%][%c]\r, bar, i, lable[i % 4]);fflush(stdout);bar[i] #;usleep(10000);}printf(\n);return 0;
}使用Git命令行
安装Git
可以通过以下命令安装Git
yum install git在GitHub创建项目
注册账号
在GitHub官网注册账号并进行邮箱校验。
创建项目
登录成功后进入个人主页点击左下方的New repository按钮新建项目。在新页面中输入项目名称点击Create repository按钮确认创建。在创建好的项目页面中复制项目的链接备用下载。
下载项目到本地
创建好一个放置代码的目录然后使用以下命令下载项目
git clone [url]Git操作三板斧
git add
将需要用Git管理的文件告知Git
git add [文件名]git commit
提交改动到本地
git commit -m 提交日志git push
同步到远端服务器上
git push需要输入用户名和密码提交成功后刷新GitHub页面就能看到代码改动了。
配置免密码提交
可以参考CSDN博客进行配置。
总结
从软件包管理器、编辑器、编译器、调试器、自动化构建工具到版本控制工具每个工具都有其独特的功能和用法。掌握这些工具可以帮助我们更高效地进行开发和管理项目。 嗯就是这样啦文章到这里就结束啦真心感谢你花时间来读。 觉得有点收获的话不妨给我点个赞吧 如果发现文章有啥漏洞或错误的地方欢迎私信我或者在评论里提醒一声~