Linux环境 基础开发工具使用

Posted 在下赵某人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境 基础开发工具使用相关的知识,希望对你有一定的参考价值。

Linux 软件包管理器 yum

什么是软件包

  1. 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  2. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解为软件安装程序)放在一个服务器上,
    通过包管理器(可以理解为软件商店)可以很方便的获取到这个编译好的软件包, 直接进行安装.
  3. 软件包和软件包管理器, 就好比 “安装包” 和 “应用商店” 这样的关系.
  4. yum是Linux下非常常用的一种包管理器. 主要应用在Fedora,RedHat, Centos等发行版上.

关于 rz、sz

rz,sz是 windows机器 和 远端的Linux机器 通过 XShell 传输文件的命令行工具。

安装:

  • yum install lrzsz

用法:

  • sz:将选定的文件发送到本地机器
  • rz:运行该命令会弹出一个文件选择窗口,可以通过拖拽的方式将文件从本地上传到Linux服务器。

查看软件包

yum list 命令可以罗列出当前一共有哪些软件包. 包的数目可能非常多,我们需要使用 grep 命令筛选出我们需要的包。例如:

yum list | grep lrzsz

结果如下:

注意事项:

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • "x86_64" 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • "el7" 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示centos6/redhat6.
  • base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

如何安装软件

用install命令,例如 lrzsz 的安装:

sudo yum install lrzsz

yum 会自动下载对应的软件包,最后会进行询问,这时候敲 “y” 确认安装。最后会出现 “complete” 字样, 说明安装完成。

注意事项:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.

如何卸载软件

用remove命令,例如 lrzsz 的卸载:

sudo yum remove lrzsz

总结:

  1. 搜索: sudo yum list |grep xxx
  2. 安装: sudo yum install [-y] xxx
  3. 卸载: sudo yum remove [-y] xxx

Linux开发工具 — 编辑器vim使用

vi/vim都是多模式编辑器,但vim是vi的升级版本,vim兼容vi的所有指令。

安装vim:

sudo yum install [-y] vim

1. vim的基本概念

vim的三种常用模式:1.命令模式、2.插入模式、3.底行模式

各模式的功能区分如下:

  1. 正常/普通/命令模式
  • 控制屏幕光标的移动。
  • 字符、字或行的复制、剪切、粘贴、删除。
  • 进入 插入模式 下,或者到 底行模式
  1. 插入模式
  • 只有在插入模式下,才可以做文字输入。
  • 命令模式下,输入aio即可进入该模式。按「ESC」键可回到命令行模式。
  1. 底行/末行模式
  • 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
  • 命令模式下,shift+: 即可进入该模式。按「ESC」键可回到命令行模式。

2. vim的基本操作

  1. 进入vim,输入:vim+文件名称,就进入vim编辑界面:

  • 注意,进入vim之后,默认是处于[正常模式],要切换到[插入模式]才能够输入文字。
  1. [正常模式]切换至[插入模式]
  • 输入a
  • 输入i
  • 输入o
  1. [插入模式]切换至[正常模式]
  • 处于[插入模式],只能输入、删除文字。按「ESC」键可转到 [正常模式] 。
  1. [正常模式]切换至[末行模式]
  • 「shift + ;」
  1. 退出vim及保存文件:在[正常模式]下,输入「shift+;」进入「末行模式」
  • : w (保存当前文件)
  • : wq (输入「wq」,存盘并退出vim)
  • : q! (输入q!,不存盘强制退出vim)

3. vim正常模式命令集

  • 进入、退出插入模式
  1. 按「 i 」进入插入模式后,从光标当前位置开始输入文件;
  2. 按「a」进入插入模式后,从目前光标所在位置的下一个位置开始输入文字;
  3. 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
  4. 从插入模式切换为命令模式按「ESC」键。
  • 移动光标
  1. 「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移动
  2. 按「b」:光标回到上个字的开头
  3. 按「w」:光标跳到下个字的开头
  4. 按「 $ 」:移动到光标所在行的“行尾”
  5. 按「^」:移动到光标所在行的“行首”
  6. 按[gg]:进入到文本开始
  7. 按「G」:移动到文章的最后
  8. 按[num+shift+g]:光标定位到num行
  • 复制、剪切(删除)、粘贴
  1. 「yy」:复制光标所在行到缓冲区。
  2. 「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  3. 「dd」:删除光标所在行
  4. 「#dd」:从光标所在行开始删除#行
  5. 「p」:将缓冲区的内容粘贴到光标所在位置的下一行。
  6. 「#p」:将缓冲区的内容粘贴#次到光标所在位置的下一行。
  • 文本修改
  1. 「r」:替换光标所在处的字符。
  2. 「#r」:批量替换光标所处字符开始往后的#个字符。
  3. 「R」:进入替换模式,替换光标所到之处的字符,直到按下「ESC」键为止。
  4. 「x」:剪切(删除)光标所在处的字符,多次按x会不断往后替删。
  5. 「#x」:批量剪切(删除)光标所处字符开始往后的#个字符。
  6. 「X」:剪切(删除)光标所在处前面的字符,多次按x会不断往前替删。
  7. 「#X」:批量剪切(删除)光标所在处的前面#个字符。
  8. 「 ~ 」:将光标所在处字符进行大小写替换。按多次 ~ 会不断往后替换。
  • 撤销与重做
  1. 「u」:如果误执行一个命令,可以按下 u ,回到上一个操作。
  2. 「ctrl + r」: 撤销的恢复

4. vim末行模式命令集

附:正常模式按「:」即可进入末行模式。

  • 保存、离开文件
  1. 「w」: 保存。
  2. 「w!」: 强制保存。
  3. 「q」: 退出。
  4. 「q!」: 强制退出。
  5. 「wq」: 保存并退出。
  6. 「wq!」: 强效保存并退出。
  • 批量化替换
  1. %s/test/TEST/g: 进行批量化替换,(后者替换前者)。即:TEST 替换 test
  • 感叹号+指令
  1. 在底行,感叹号!后面可以跟任何命令。
  2. eg:
    !gcc filename.c —> 在底行直接对filename.c进行编译。
    !./a.out —> 不退出vim,在底行直接将编译结果运行
  • 列出行号 + 跳到文件中的某一行
  1. 「set nu」: 会在文件中的每一行前面列出行号。
  2. 「num」: 冒号后输入一个数字 num ,回车就会跳到该行。
  • 查找字符
  1. 「 /关键字」: 回车会将所有关键词高亮出来,按「n」会向查找。
  2. 「?关键字」: 回车会将所有关键词高亮出来,按「n」会向查找。
  • 多窗口
  1. 「vs」: vs + filename,左右filename的分屏。
  2. 「ctrl + 双击w」: 分屏窗口的切换。

5. vim操作总结

6. 简单vim配置

vim配置极其麻烦,接下来是一些原理。最后会引用一个大佬的自动配置方法。(推荐使用,也可以自己配置)

  • 配置文件的位置
  1. 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  2. 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
  3. 切换用户成为自己执行 su ,进入自己的主工作目录。
  4. 打开自己目录下的.vimrc文件,自己写入配置。(自己写入配置)
  • 常用配置选项
  1. 设置行号 — set nu
  2. 设置下划线 — set cursorline
  3. 设置自动锁紧 — set autoindent
  4. 设置缩进的空格数为4: set shiftwidth=4
  5. 设置c 风格缩进 — set cindent
  6. 自动补全括号:
    inoremap ( ()i
    inoremap [ []i
    inoremap i
    inoremap < <>i
  7. 高亮匹配括号 — hi MatchParen ctermbg=blue ctermfg=white
  8. 高亮匹配括号 — :NoMatchParen
  9. 如果要再开启,可以用 — :DoMatchParen
  10. 如果要更改颜色,可以用hi,例如: — :hi MatchParen ctermbg=blue ctermfg=white
  • 使用插件
  1. 安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
  2. 在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1
  3. 安装文件浏览器和窗口管理器插件: WinManager
  4. 下载winmanager.zip,2.X版本以上的
  5. 解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
  6. 在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle
  7. 然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你将看到上图的效果。更具体移步:点我, 其他手册,请执行vimtutor命令。
  • 安装方法:(大佬的)

支持环境
目前只支持 Centos7 x86_64. 后面会考虑 Ubuntu 等发行版的支持.
安装方法
在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
注:
引用自:https://gitee.com/HGtz2222/VimForCpp?_from=gitee_search#%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95

7. 更深入可以去参考

vim从入门到精通


Linux开发工具 — 编译器-gcc/g++使用

1. 背景知识

2. gcc如何完成

格式: gcc [选项] 要编译的文件【选项】[目标文件]

  1. 预处理(进行宏替换等)
  • 预处理功能主要包括:宏定义,文件包含,条件编译,去注释等
  • 预处理指令是以#号开头的代码行 (头文件、宏等)。
  • 实例: gcc –E hello.c –o hello.i
  • 选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
  • 选项“-o”是指目标文件, “.i”文件为已经过预处理的C原始程序。
  1. 编译(生成汇编)
  • 编译功能主要包括:检查代码的规范性、检查是否有语法错误等,检查无误后 gcc 会把代码翻译成汇编语言 (.s文件)。
  • 选项“-S”,该选项的作用是让 gcc 只进行编译而不进行汇编。编译结束会生成汇编代码。
  • 实例: gcc –S hello.i –o hello.s
  1. 汇编(生成机器可识别的代码)
  • 汇编阶段是把编译阶段生成的 .s文件转成 .o文件
  • .o文件即:目标文件 也叫 目标二进制
  • 选项“-c”,该选项的作用是让 gcc 汇编结束后停止编译过程。代码已转化为“.o”的二进制目标代码了。
  • 实例: gcc –c hello.s –o hello.o
  1. 连接(生成可执行文件或库文件)
  • 在成功编译之后,就进入了链接阶段。
  • 完成链接后会生成可执行文件.out 。
  • 实例: gcc hello.o –o hello
  1. 函数库的概念:
  • 我们的C程序中,并没有定义“printf”的函数实现,且“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么是在哪里实“printf”函数的呢?
  • 答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数“printf”了,而这也就是链接的作用
  1. 函数库一般分为静态库和动态库两种。
  • 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。静态库后缀名一般为“.a”
  • 动态库在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样就节省了系统的开销,因此生成的文件比较小。动态库一般后缀名为“.so”。
  • gcc 在编译时默认使用动态库。如前面所述的 libc.so.6 就是动态库。
  1. gcc选项
  • -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
  • -S 编译到汇编语言不进行汇编和链接
  • -c 编译到目标代码
  • -o 文件输出到文件
  • -static 此选项对生成的文件采用静态链接

Linux开发工具 — 调试器-gdb使用

Linux开发工具 — 项目自动化构建工具-make/Makefile使用

以上是关于Linux环境 基础开发工具使用的主要内容,如果未能解决你的问题,请参考以下文章

linux基础命令

Linux下环境基础开发

环境变量

基础linux命令讲解

如何零基础搭建自己的运维监控平台(Linux版)——WGCLOUD

Android学习之基础知识十四 — Android特色开发之基于位置的服务