Linux下服务器端开发流程是什么

发布时间:2021-11-24 16:35:07 作者:iii
来源:亿速云 阅读:143

这篇文章主要介绍“Linux下服务器端开发流程是什么”,在日常操作中,相信很多人在Linux下服务器端开发流程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下服务器端开发流程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

熟悉Linux操作

任务管理

有时候你在命令行里执行拷贝大文件的命令,这个命令很耗时,会独占终端,此时可以先使用 Ctrl+z  命令让当前任务(job)挂起,此时可以输入命令了,然后使用 bg 命令让当前挂起的任务去后台(background)运行。

利用 jobs 命令可以查看当前在后台运行的程序及job-id,然后想让它到前台来运行,可以执行 fg [%job-id] 来让它恢复到前台执行

如果想kill掉当前在后台运行的某个任务怎么办?使用 kill %job-id

开发环境搭建

我们这边操作系统都是Red Hat Enterprise Linux 5,机器都是X86架构,64位机器。这边代码文件默认都用GBK的编码

  1. 登录机器的配置集团的跳板机,ssh的配置是会在一段时间不操作之后自动断掉的,而且每次登录上去都需要输入密码+token,利用ssh的ControlMaster,就可以解决,方法见我的ssh配置在linux下,有很多窗口管理器,可以在一个窗口里进行多个独立的会话[不需要开多个终端],进行会话恢复[即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制],推荐screen默认的screen配置有些蹩脚,而且跟shell快捷键有些冲突。配置好了之后界面显示就很强大了,可以参考我的screen配置对应上述配置的screen快捷键:  Ctrl+j,c 创建新会话Ctrl+j,d detach

  2. GNU工具链在刻的操作系统里已经有了,常用的是:* GNU make: 编译(compile)和构建(build)的自动化工具* GNU  编译器集合:GCC* GNU 二进制工具:包含链接器(linker),汇编器(assembler)和其他工具

  3. 代码编辑我一开始使用的vim,基本不安装什么插件,后来投入了emacs的怀抱,主要是emacs,eshell和gdb搭配起来,不仅能够满足我的日常需求,而且让我感觉效率大大提升,而且emacs环境安装也比较简单。但是在咋们公司的服务器上,vim是标配,emacs需要自己装。用习惯了emacs,再切回到vim时,好多快捷键都忘了,十分痛苦!Vim新手入门资料和一些Vim实用小技巧Linux环境下shell和vim中乱码原因及消除办法  新手经常被乱码问题困扰,这篇文章探究了一下shell和vim中乱码原因及解决办法emacs安装及使用  ,现在这里挖个坑吧,后续有时间再写如果在Windows下看代码,推荐Source Insight,非常好用,谁用谁知道。

代码版本管理

目前直通车这边代码版本管理使用svn常用命令:

在Mac下,推荐使用图形界面的Meld来作为svn的merge工具,可以很方便的处理冲突,减少合错代码的可能性

开发[被测试戏谑为写bug的阶段]

开发之前,最好了解如下这些东东:

以上问题都可以在LibraryArchives-StaticAndDynamic,shared libraries里得到解答

参考资料:

  1. 菜鸟在C语言编译,链接时可能遇到的两个问题

  2. 编程大牛云风推荐的书 <<程序员的自我修养--链接、装载与库>>

  3. 编程大牛老赵推荐的书 <<深入理解计算机系统>>书很厚,可以挑着看自己关心的章节

多线程支持

目前直通车这边多线程机制使用的都是POSIX Theads

对于POSIX Theads,需要了解:

  1. What:什么是thread,pthread

  2. How:  如何使用pthread如何编译多线程程序如何创建/结束线程如何等待子线程返回(join/detach)多线程之间如何使用互斥锁(Mutex)来同步、加锁、避免竞争条件的出现?

  3. Why: 为什么使用pthread,而不是其他

以上问题,都可以在这个美国劳伦斯利弗莫尔国家实验室的pthead教程里面找到答案

查找/替换字符串/查找文件/文本处理

进阶读物:

  1. 应该知道的Linux技巧

  2. 28个Unix/Linux的命令行神器

关于单测(unit test)

单测十分重要,它能够让你对你的代码更加有底气和信心,而且能够帮助你更早的发现问题,解决问题。在开发的各个阶段,问题发现的越晚,解决问题的成本就越大。这边C++的单测都用的Google的gtest框架,即使之前不了解gtest框架,看着别人的代码照猫画虎也可以写出单测来,但是最好去看一下gtest官方文档,去全面了解一下gtest,去拓展一下自己的思维。

写着写着代码,就发现自己的代码越来越复杂,不容易阅读,设计混乱怎么办?可以后台私信【学习资料】 获取资料

编译(compile),构建(build)

  1. 编译之前的准备工作需要把编译依赖环境搞定,基本就是装好编译依赖的包就可以了。可以在rpm目录下找到对应的spec文件,然后使用 t-abs  命令[用于本地调试spec文件和自动部署编译环境],来帮助我们装好编译依赖的包,即spec文件中的 BuildRequire  部分指定的包关于rpm和spec文件,可以通过阅读这篇来了解:How to create an RPM package

  2. 编译找到对应工程的Makefile,然后执行make命令,就可以编译构建工程了由于make本身的灵活性,而Makefile的可读性又不强,是以文件为单元,抽象层次不够,Google开发了分布式的构建系统Bazel,能够把程序员从make的语法和文件级别的构建上解放出来。Bazel相关资料有:Google  Blaze原理及 Bazel的使用方法介绍

目前我们这边目前还在用RPM来进行包的管理

平常需要用到的rpm命令有:rpm -qf file-name 来查看某个文件到底是哪个rpm包里面的rpm -qi package-name  来查看这个rpm包相关的信息,比如打包时间,svn地址等rpm -ql package-name 来查看这个rpm包中到底有哪些文件rpm -qV  package-name 来验证这个rpm包安装后的文件有没有被修改过, 在怀疑rpm包的配置/脚本被人修改过的时候非常有用

代码review

UI界面:reviewboard,提交的时候使用 rbt命令:rbt post r1 r2 来提交r1和r2这两个版本之间的diff作为code  review提交之后可以得到一个reviewboard地址,然后需要在这个地址里填上codereview的人员和相关的描述等

持续集成CISE

CISE为用户提供自动化的环境部署和测试服务这块儿每个公司使用的都是不同各的

安装包

对于构建出来的rpm包,使用yum来安装。

淘宝rpm包查询UI 这里可以查看到淘宝yum源里面现存的各个包版本 可以从里面看到对应包的abs地址

使用如下命令安装:

__sudo yum install -b test t-imatch-kgb-updated __

-b 参数用来指定当前安装包t-imatch-kgb-updated在test分支还是current分支里面上线时候的包必须转成current

到此,关于“Linux下服务器端开发流程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 网站开发流程是什么
  2. 小程序开发流程是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:如何理解服务器单I/O线程+工作者线程池模型架构及实现要点

下一篇:如何理解Deployment

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》