Linux 常用工具

Linux下软件的安装分为源码安装和工具安装

        源码安装:需要手动依赖关系库

        工具安装:自动解决依赖关系库

    IDE  =  vim + gcc + gdb

  • vim:编辑器(有12种模式,常用的有三种:普通、插入、底行)     

            普通模式:    i--光标所在位置插入        I--光标所在行首插入

                                 a--光标所在位置后插入    A--光标所在行尾插入

                                 o--光标所在行下行插入    O--光标所在行下行插入

                                 gg:光标移动到文本开头    G:光标移动到文本末尾

                                n+方向键:向左、右移动多少个字符 | 向上、下移动多少行

                                n+G 或者直接n+[Enter]:移动光标至第n行

  • 常用命令:复制yy、粘贴p/P、

                                删除字符x、删除单词dw、删除所在行dd

                                撤销u、恢复撤销ctrl+r

                                nG第几行、    H(左)、J(下)、K(右)、L(上)一个字符 

                                w(上)、b(下)一个单词 | ctrl b(上)/f(下)页

            底行模式:    (以:或者 / 开头)

                                 退出[:q]、保存[:w]、保存退出[:wq]、退出不保存[:q!]

                                 [:set nu/nonu]:一些配置    临时执行一些命令:[:!指令]

                                 向下匹配字符串:[/string]、 向上匹配字符串:[?string]

                                 字符串替换:[:1,$s/str1/str2/gc] ($为最后一行)

                                 匹配光标所在单词:[/shift '#'/'*']、    

                                 匹配‘}:’[/shift %]

                                 新建一个文件[:vnew filename]、[gg=G]:全文对齐

                     块选择:[v]/[ctrl v]-------y复制、d删除、p粘贴

批量注释:

Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。

取消注释:

Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。
  • gcc:编译器(脚本程序:效率低、高级编译程序:性能高)

            将高级语言识别为机器指令

            预处理: gcc -E main.c -o main.i

            编译:    gcc -S main.i -o mian.s

            汇编:    gcc -c main.s -o main.o

            链接:    gcc mian.c -o main -L -l库名称

        gcc的链接方式默认使用动态库、默认生成Release版本文件

            静态链接:静态库在编译时会连接到目标代码,程序运行时不再需要静态库

            动态链接:在编译期不会连接到目标代码,运行时载入,程序运行时需要动态库存在

简单的动态链接和静态链接:https://blog.csdn.net/Q_feifeiyu/article/details/90273691

  • gdb:调试器(Linux下gcc默认生成Release版本,而Debug版本才存在调试信息)

            gcc -g mian.c -o main   添加符号调试信息,生成Debug版本程序

            加载调试程序:gdb ./main 不接收任何参数

            获取运行参数:gdb [enter]    ->file ./main    ->r [参数列表]

            打印变量内容:p 变量名、watch 变量

            单步调试:start开始    ->s--F11 | n--F10    ->l / until 行号    ->q

            打断点:b 文件名:行号、break 函数名、

                         ib查看断电信息、d 序号删除断点

            执行到当前函数返回:finish

            查看调用栈信息:bt(快速定位程序崩溃位置)

            readelf命令,一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a) 等包含ELF格式的文件

            <-s> :symbols 显示符号表段中的项                  <-a>:显示全部信息

  • Makefile:项目自动化构建工具(寻找makefile文件并执行)

            预定义变量:$@--目标对象、$^所有依赖对象、

                                $<第一个依赖对象

            Makefile编写规则: 

                    -》src=$(wildcard    ./*.c)---获取.c结尾的所有文件

                         obj=$(patsubst    %.c,%.o,$(src))----字符串替换

                    -》all:mubiaoduixiang

                    -》目标对象:依赖对象

                    -》[tab]    命令操作...

                    -》%.o:%.c

                        [tab]     gcc -c $< -o $@

                    -》.PHONY(声明伪对象)    :clean------用于清理文件

                            rm $(obj) [目标对象列表]

            Makefile执行规则:只生成1个目标对象,在makefile中寻找,

                                            执行响应的命令操作

            make执行,智能化:如果两次生成没有变化,不会重新进行编译

  • git:项目版本控制工具(.git/config配置git信息免密提交)

            下载:git clone http:...

            提交:git add 文件列表

                      git commit -m “备注信息”

            上传:git push origin master 

            查看分支信息:git branch

  • yum:软件包管理工具(更改yum源:/etc/yum.repo配置文件里)

            查看:yum list | grep 包名

                      yum list installed | grep 包名

            安装:yum install 包名

            移除:yum remove 包名

  • rpm安装:Redhat Package Manager ,用于管理Linux 下软件包的软件

            安装:rpm -ivh 包名   显示正在安装的文件信息和安装进度

                   FTP来安装软件包:rpm + url地址

            卸载:rpm -e 包名

            升级:rpm -Uvh,会自动卸载相应软件包的老版本

            查询:rpm -q 包名  查询

         -a   :查询目前系统安装的所有软件包。
         -f 文件名   :查询包括该文件的软件包。
         -F   :同-f参数,只是输入是标准输入(例如 find /usr/bin | rpm -qF)
          -q 软件包名   : 查询该软件包

            验证: rpm -vf

prm和yum的区别:
输入rpm -i +软件包确实可以下载,但是前提有个叫源的东西也就是软件仓库,所以yum有对应的源,但是rpm却没有所以才下载不了。rpm最大的功能是安装软件包并非下载,当然下载也可以(一般不用rpm下载),rpm具有严重包依赖关系,不推荐

             rpm的缺陷:

  1. 安装环境必须与打包环境一致
  2. 需要满足套件的相依属性需求
  3. 反安装需要小心,最底层套件不可移除

            rpm命名规则

  1. name -version -arch.rpm
  2. name -version -arch.src.rpm

el* 软件包

devel开发包

noarch可以应用任一平台

  • lrzsz:文件传输工具

            传至虚拟机:rz

            传至主机:sz filename

  • wget:文件下载工具

            wget+链接

  • 缓冲区对文件读写的影响:数据先被写入到buf中,等buf写满或者手动刷新缓冲区时,数据才真正被写入文件printf(“hello\n”)---->【缓冲区】----->显示器[stdout]

               ‘\n’对于显示器文件,具有刷新缓冲区的作用;     ‘\r’回车符--将输入/输出位置移动到行首


更改yum源

ps:CentOS默认yum是国外服务器,国内进行访问或者下载一些东西的时候稍微有些卡顿,但是可以通过更改yum源修改为国内的163或者aliyun来提高下载速度(虚拟机需要联网进行)

注意! 1.将之前的repo文件备份一下,以防万一

            2.要通过yum下载上面的文件下载工具   ----wget yum install wget -y

       下面是一个更改为163,在第3步下载网易163源时候把wget http://mirrors.163.com/.help/CentOS7-Base-163.repo,更改为aliyun源wget http://mirrors.aliyun.com/repo/Centos-7.repo即可,然后将aliyun.repo设置改为默认的配置文件 mv CentOS7-Base-aliyun.repo CentOS-Base.repo(或者直接通过wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 一键完成下载和设置为默认配置

https://blog.csdn.net/qq_18831583/article/details/79146759

配置git

        只是一些简单的用户配置,在push到服务器的时候可以不用输入账号密码

// 1.配置账户、邮箱
git config --global user.name "username"
git config --global user.email "email"

// 2.在家目录下执行下面这条指令,然后vim ~/.gitconfig查看到多出来
// [credential]
//        helper = store
git config --global credential.helper store    

// 3.最后在仓库文件下面执行 git pull,输入账户和密码。然后在家目录下出现.git-credentials文件表示成// 功以后就可以免密push和clone了

番外篇---强大的编辑器

       Geany是一个伟大的文本编辑器,它集成了GTK+工具包,以提供一个优秀的开发环境。如果你正在寻找一个类似IDE的文本编辑器,Geany可能是一个不错的选择。这个轻量级IDE支持所有主要的编程语言,并且只有一些来自其他包的依赖项。Geany的显著特征是可插入接口、语法高亮显示、行号等,它有一个简洁的接口和大量可定制的选项,是用C和c++写的。

      下载链接:https://www.geany.org/

      JED是一个流行的Linux文本编辑器,它使用S-Lang库。这个跨平台的工具也适用于各种其他平台,包括Unix、VMS、OS/2、BeOS、Windows、OpenVMS等。如果你运行DOS,可以运行JED的旧版本。使用JED Linux编辑器的主要优点是轻量级,可以轻松地在有限资源的硬件上使用它。

  JED编辑器的流行特性是颜色语法高亮、代码折叠、编辑器的仿真,如Emacs、不同的编程模式、编辑TeX文件、矩形剪切/粘贴等等。

  下载链接:http://www.jedsoft.org/jed/download.html

       Brackets是一个流行的文本编辑器,由Adobe在2014年推出。这个免费的文本编辑器附带实时预览、内联编辑、聚焦可视化工具的预处理器支持和其他令人兴奋的特性。它是为web设计人员和前端开发人员开发的。尽管是轻量级的,但是这个开源的文本编辑器包含了现代文本编辑器的所有特性,是用HTML、CSS和JavaScript编写的。

    下载链接:http://brackets.io/

        KWrite是KDE开发的轻量级文本编辑器,其首次公开发行是在2000年。它基于KATE文本编辑器和KDE KParts技术。这个流行的文本编辑器的主要功能包括word完成、自动缩进、语法、根据文件类型、Vi输入模式和支持插件。KWrite的其他令人兴奋的特性是可扩展性、编码支持、远程文件编辑等,它是用c++编写的。

  下载链接:https://www.kde.org/applications/utilities/kwrite/

        nano是一个用户友好的文本编辑器,广泛应用于unix操作系统。nano在2000年6月首次发布,它模仿了Pico文本编辑器,并附带了额外的功能,运行在一个熟悉的命令行界面中。如果你习惯在终端上摆弄配置文件,nano则可以满足你的需求。它的主要亮点包括autoconf支持、区分大小写搜索功能、自动缩进、交互式搜索和替换、tab补全、软文本包装等,用C语言编写。

  下载链接:https://www.nano-editor.org/

        Emacs由GNU项目创始人Richard Stallman创建,被全世界的开发者和Linux爱好者所使用。这个免费软件是用Lisp和C语言编写的,使用图灵完整的编程语言进行扩展。GNU Emacs也有广泛的文档和教程支持,还有一些扩展,比如调试器界面、邮件和新闻。

  下载链接:https://www.gnu.org/software/emacs/

    Gedit是作为GNOME桌面环境的默认文本编辑器加载的。这个通用文本编辑器的目的是简单易用,Gedit提供了一个干净和直接的GUI。Gedit以C语言编写,于2000年首次公开发行。这个开源和免费软件充分支持国际化文本。在Gedit中,你可以为各种编程语言(如c++、C、HTML、Java、XML、Python、Perl等)提供可配置的语法高亮显示。

  下载地址:https://wiki.gnome.org/Apps/Gedit

       Vim或Vi IMproved,是一个高级文本编辑器,旨在提供更强大的性能,并扩展de-factor Unix editor Vi的功能。它是一个高度可配置的文本编辑器,是为了满足开发人员的需要而构建的,也被大家戏称为"程序员的编辑器",它的设计既可以作为命令行接口,也可以作为GUI中的独立应用程序。虽然初学者抱怨说它很难使用,但他们也知道它是最强大的文本编辑器之一。它的主要亮点是自动命令、digraph输入、拆分屏幕、会话屏幕、标签扩展、语法着色和标记系统。Vim是用C和Vim script编写的。

  下载链接:http://www.vim.org/download.php

       Atom是由GitHub开发的免费开源文本编辑器。基于Electron (CoffeeScript, JS, Less, HTML),它是一个使用web技术构建的桌面应用程序,经常被称为21世纪的文本编辑器,核心是可编程的。Atom的主要特性是跨平台编辑、内置包管理器、文件系统浏览器、多个窗格支持、查找和替换功能,以及智能自动完成。

  下载链接:https://atom.io/

        在文本编辑器的民意调查中,Sublime Text成为了最受欢迎的代码编辑器,紧随其后的是,Atom和Vim。这个功能丰富的文本编辑器是为"code、 markup 和prose"而构建的。它自然地支持大量的编程语言和标记语言。 "Goto Anything"是一种很受欢迎的特性,它可以让你快速浏览到文件、线条或符号。Sublime Text的其它主要特点包括命令面板、基于python的插件API、同时编辑、项目特定的首选项等等。

    下载链接:http://www.sublimetext.com/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值