LINUX常用工具

Linux常用工具
编辑器种类与横向比较
Emacs:
著名的集成开发环境和文本编辑器。其特点是 :

  1. 交互式编辑器
    2.实时编辑器
    3.高级编辑器
    4.自文档化
    5.可定制性
    6.可扩展性(集成Lisp语言)
    Vim :
    与其它编辑器一个很大的区别在于, 它可以完成复杂的编辑与格式化功能
    有12种操作模式,最常用模式 3 种
    普通模式: 完成普通的基本命令
    h\j\k\l : 左下上右
    w\b : 向左/右按单词移动光标
    复制:
    yy 复制光标所在行数据
    nyy 从光标所在行开始向下复制n行数据
    粘贴:
    p 向光标所在行向下复制新行
    P 向光标所在行向上复制新行
    删除/剪切:
    X :删除光标所在字符
    dw : 删除光标位置往后的单词
    dd : 删除光标所在行
    剪切 u
    回退 Ctrl + r
    Shift + G 文档末行 GG 文档首行
    Ts=4 将tab设置为4个字符
    Sts=4 回退设为4字符
    Sw=4 自动缩进4字符
    Autoindent 开启自动缩进

底行模式:
退出/保存编辑 VIM设置
Q :退出 w : 保存 wq : 保存并推出 q! : 强制退出

插入模式:
向文件中插入数据
i:普通 -> 插入;进入插入模式
a:普通 -> 插入;光标后移插入
o:普通 -> 插入;向光标所在行添加新行
I :普通 -> 插入;光标移动到行首
A:普通 -> 插入;光标移动到行位
O:普通 -> 插入;向光标所在行上方添加新行
leafpad :
Leafpad是一款linux下的轻量级编辑器。类似于windows下的notepad.
gedit :
gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它使用GTK+编写而成,因此它十分的简单易用,有良好的语法高亮,对中文支持很好,支持包括gb2312、gbk在内的多种字符编码。gedit是一个自由软件.
这是 Linux 下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境 (IDE), 它会根据不同的语言高亮显现关键字和标识符.
Gnome:
GNOME是一种GNU网络对象模型
GNU计划的一部分,开放源码运动的一个重要组成部分,是一种让使用者容易操作和设定电脑环境的工具,目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,是GNU计划的正式桌面
GTK+:
GTk(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的,但早已发展为一个功能强大、设计灵活的通用图形库。特别是被GNOME选中使得GTK+广为流传,成为Linux下开发图形界面的应用程序的主流开发工具之一,当然GTK+并不要求必须在Linux上,事实上,目前GTK+已经有了成功的windows版本.
字符编码:
UTF-8:为了提高Unicode的编码效率,于是就出现了UTF-8编码。UTF-8可以根据不同的符号自动选择编码的长短.
编译器种类
(1)GCC编译器
其供应商是GNU,开源项目。
是在Linux设备生,或者大多数的Unix-like系统。包括SunOS
(2)msvc编译器
(3)Intel C++ 编译
  对于Window系统,有intel-win编译器
  对于Linux系统,有intel-linux编译器
(4)HP aC++ 编译器
  对于HP-UX系统, 采用acc编译器
(5)Borland C++ 编译器
(6)Comeau C/C++编译器
  对于Window系统,有come-win编译器
  对于Linux系统,有come-linux编译器
(7)Code Warrior 编译器
  编译器:CW
(8)Digital Mars C/C++ Compiler
  编译器:DMC
(9)HP C++ Compiler
  对于Tru64 Unix系统,采用hp_cxx模块
(10)Sun Studio C++编译器
  对于SolarisOS 操作系统,采用sun编译器
(11)IBM VisualAge C++ Compiler
对于AIX operating system系统,采用vacpp
摘自于:https://www.cnblogs.com/icmzn/p/5911661.html
为什么调试的时候需要编译选项中添加 -g.
首先在编译时加入-g选项,编译器会做额外如下操作:

  1. 创建符号表,符号表包含了程序中使用的变量名称的列表。
  2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行
    默认生成的可执行文件是无法使用gdb来跟踪或调试的,因为可执行程序中没有可供gdb调试使用的特殊信息,为了将必要的调试信息整合到可执行文件中,-g选项可以方便使用GBD调试。
    程序调试gbd
    Gdb调试的前提是可执行程序中需要有调试符号信息. Gcc -g,生成debug版本程序
    加载程序 gdb./main gdb进入之后file./main
    调用程序:
    单步调试
    打断点
    快速定位程序崩溃位置 – 调用栈信息
    r : 接受参数 运行程序 Start :开始单步调试
    eg: r-a-l
    l: 查看指定行附近代码 ( l 5 ) l file:line 指定文件指定行
    until 直接运行到指定行 until file:line
    n 下一步,但是不进入函数 s 下一步,追踪进入函数
    b 打断点 查看调试信息 i b 查看断点信息
    b file:line b funcname(给函数打断点)
    d 默认删除所有断点 p 查看变量内容 p ptr
    d b_id 删除指定断点 d 4
    c continue从停止处继续运行
    watch 变量监控 watch var
    bt 查看函数调用栈信息
    make /Makefile : 项目的自动化辅助构建工具
    makefile — 普通文件 — 可以定义项目整体的构建编译规则
    make程序是一个解释器,到当前目录下寻找Makefile文件,对makefile 中记录的项目构建规则
    makefile的编写规则:
    目标对象 : 依赖对象
    [tab] 要执行的命令

Make的执行规则
到makefile当中寻找目标对象,然后生成目标对象,执行要执行的命令

  1. 到makefile中寻找目标对象,判断目标对象是否已经存在,如果已经存在, 对目标对象进行最后一次修改时间对比,如果目标对象时间 > 依赖对象时间,则认为项目构建后源码没有修改过, 不需要重新编译,否则重新编译, 如果不存在: 直接执行构建规则, 生成目标对象
  2. 到makefile中寻找, 判断依赖对象是否存在
    依赖对象的作用: 可有可无,存在的目的主要就是为了判断项目是否需要重新构建.
    如果依赖对象存在: 则通过依赖对象最后一次修改时间判断项目是否需要重新构建
    如果依赖对象不存在: 继续在makefile 中下边所定义的规则中找寻,是否生成依赖对象的构建规则
    预定义变量:
    $@ : 目标对象
    $^ : 所有的依赖对象
    $< : 以来对象中的第一个
    Make可以在执行命令的时候指定查找的目标对象名称
    Makeclean
    Linux下软件安装(rpm安装,yum安装)
    rpm安装(redhat package manager)
    用于生成, 安装, 查询, 核实, 更新以及卸载单个软件包. 一个包通常包括一个文件档以及关于包 的信息, 比如名字, 版本, 描述等.
    必须选取下列基本模式中一个: 初始化数据库, 重新生成数据库, 生成包, 重新编译包, 从Tar包生成RPM包, 查询, 显示查询标签, 安装, 更新, 卸载, 核实, 签名检查, 再签名,
    添加签名, 设置所有者和组 以及 显示配置
    rpm –help
    RPM常用命令:
    -i 安装软件包
    –nodeps 不验证软件包的依赖
      -v 可视化,提供更多的详细信息的输出
      -h 显示安装进度
      另外的常用的附带参数为:
       --force 强制安装,即使覆盖其他包的文件也要安装
    -a 查询所有已经安装的软件包
    -f 查询 文件所属于的软件包
    -q 查询软件包(通常用来看下还未安装的软件包)
    -l 显示软件包的文件列表
    -d 显示被标注为文档的文件列表
    -c 显示被标注为配置文件的文件列表
    yum安装
    软件包管理工具: yum (红帽子系列下程序管理工具)
    查看软件包 :
    yum list
    查看以安装文件包
    yum list installed (查看已安装软件包)
    删除以安装文件包
    yum remove packet-name
    -h, --help 显示此帮助消息并退出
    -t, --tolerant 忽略错误
    -C, --cacheonly 完全从系统缓存运行,不升级缓存
    -c [config file], --config=[config file] 配置文件路径
    -R [minutes], --randomwait=[minutes] 命令最长等待时间
    -d [debug level], --debuglevel=[debug level] 调试输出级别
    –showduplicates 在 list/search 命令下,显示源里重复的条目
    -e [error level], --errorlevel=[error level] 错误输出级别
    –rpmverbosity=[debug level name] RPM 调试输出级别
    -q, --quiet 静默执行
    -v, --verbose 详尽的操作过程
    -y, --assumeyes 回答全部问题为是
    –assumeno 回答全部问题为否
    –version 显示 Yum 版本然后退出
    –installroot=[path] 设置安装根目录
    –enablerepo=[repo] 启用一个或多个软件源(支持通配符)
    –disablerepo=[repo] 禁用一个或多个软件源(支持通配符)
    rpm安装与yum安装区别
    1,yum 安装是从网络在线安装的一种方式,只需要yum install 软件名,系统就自动根据yum源配置文件中的镜像位置去下载安装包了,并可以自动分析所需的软件依赖关系,自动安装所需的依赖软件包,简单方便,不用考虑依赖关系。缺点是软件并不能通过yum来安装。
    2,rpm是安装本地存在的rpm包。。此方式可以指定配置参数,更加灵活方便,兼容性更强。 rpm 只能安装已经下载到本地机器上的rpm 包。

本文部分通过网络搜索整理得。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值