Linux常用工具

常用工具:
        1. yum 软件包管理器
        2. vim 文本编辑器
        3. gcc 编译器
        4. makefile 项目编译工具
        5. gdb 调试器
        6. git 


1. yum 软件包管理器

 1.1查看可安装的软件包
            安装软件包
            移除软件包
            su  root          转到root
            yum list | grep**  yum instal            yum remove
            yum instal gcc        yum instal gcc_c++   
            yum instal gdb       yum  instal  lrzsz

2. vim 编辑器
       对文本的操作:插入数据  保存 删除  复制 粘贴 剪切  滚动输入位置  
       vim 为了能够实现所有的操作,因此有很多的模式,每个模式下所完成的功能各不相同
       vim共有12种模,6种基本,6中常见,最常用的:插入模式,普通模式, 底行模式
       模式切换:
              普通模式切换插入模式:
                   i      从光标所在位置开始插入
                   a     光标向后移动一个字符,开始插入
                   o    光标所在行下方添加新行,开始插入
                   I     光标移动到行首,开始插入
                   A    光标移动到行尾,开始插入
                   O   光标所在行上方添加新行,开始插入
              插入模式切换普通模式:
                     esc    
              普通模式切换底行操作
                     :
              底行模式的操作
                     :w       保存
                     :q        退出
                     :q!     强退(不保存)
                     :wq      保存并退出
                     :p!wq   临时执行命令,回车返回
            普通模式下的操作:
                    移动光标 
                           kjhl                       上下左右
                           w   b                     光标按单词左右移动
                           gg=G                    全文缩进对齐
                           ctrl   +f  /ctrl +b   上下翻页 
                           G  gg                     移动光标到文档尾行/首行
                    复制
                          yy                           复制光标所在行
                          nyy                         从光标所在行开始复制n行数据
                          复制一个单词的步骤
                                  1.按v进入选中模式
                                  2.移动光标选中文本
                                  3.按y复制选中内容
                                  4.按p粘贴到制定位置
                    粘贴
                          p                             向光标所在行的下一行粘贴新行
                          P(大写)                    向光标所在行上方粘贴新行 
                    剪切
                         dd         剪切光标所在行
                         ndd        剪切光标所在行向下n行数据
                         dw          剪切光标所在位置的单词
                         x             剪切光标所在位置的字符
                         s             删除光标所在字符,进入插入模式
                    其他操作
                         u            撤销上一次操作
                         ctrl+r     还原撤销的操作
                         
                         v            进入视图选中模式(行选中)
                         ctrl +v   列选中
3.gcc编译器:将高级语言代码编译成为机器可识别的指令代码(编译C语言)
         编译步骤
                1.预处理:展开所有代码
                2.编译:纠错,没有错误则将C语言代码编译成汇编代码
                3.汇编:将汇编代码编译成为机器指令代码
                             走完汇编只是将当前的.c文件编译成了机器指令代码
                             其他函数还没有拿过来,这个文件虽然是机器指令代码
                             但是不能执行
                4.链接:将所有调用的代码实现拿过来生成可执行程序
                             将其他文件中调用的函数拿过来,跟自己的程序合起来生成
                             可执行文件
                库:存放函数实现的代码 (ls )
                动态库:
                          生成可执行程序,链接动态库成为动态链接
                          lib***.so
                动态链接:链接动态库,只会记录动态库位置符号信息
                                 代码冗余小,占用资源少,但是对库的依赖性高
                静态库:
                          生成可执行程序,链接静态库成为静态链接
                          lib***.a
                静态链接:链接静态库,直接将库文件中的代码拷贝到可执行程序中
                                代码冗余量高,占用资源多,但是对库的依赖程度低
                gcc编译器默认连接方式是动态链接
        gcc常用选项:
               -E          仅预处理
               -S          仅编译
               -C          仅汇编
               -O         指定生成的文件名称  
               -static    链接方式指定为静态链接
Makefile
          就是一个文件,但是有一个make命令,逐步
          执行makefile中记录的编译规则

          Makefile就是用于记录项目编译规则的,辅助项目的自动化编译
          命名:Makefile  makefile 
          注释以#开头
          编写规则:
                 预定义变量
                $@     指目标对象
                $^      指所有依赖对象
                $<       所有依赖对象的第一个
                wildcard     获取文件名
                $()              将命令的执行结果赋值给别的变量
                目标对象:不一定要生成,而是为了让make能够找到依赖关系
                依赖对象:主要是判断目标对象是否是最新的
                .PHONY     声明伪对象
                伪对象:不管是不是最新的,每次都要重新生成
                目标对象:依赖对象
                        [tab]为了生成目标对象所执行的命令
                main:main.c  child.c 
                           gcc  main.c  child.c  -o  main
         例一 SRC=$(wildcard ./*.c)
                main:$(SRC)
                           gcc  -o  $@ $^
        例二  SRC=$(wildcard ./*.c)
                ALL: main  main1
                main:$(SRC)
                           gcc  -o  $@ $^
                main1:$(SRC)
                           gcc -static -o $@ $^
                .PHONY:clean          //防止当前目录下有和clean文件名称一样的文件
                clean:
                       main   main1
          执行规则:make程序到当前目录下
                       makefile只为了生成第一个目标对象而存在,假如目标对象已经存在,
                       make会判断依赖对象和目标对象的时间,判断目标对象是否是最新的,
                       如果是最新的,则不需编译,直接退出,不是最新的则重新生成

                       makefile这个特性导致只生成第一个程序,因此后边如果还有目标对象
                       是不会生成的;
                 **   但是makefile有个其他特性,如果依赖对象不存在,则会在makefile
                       中查找依赖关系,看能不能生成这个依赖对象,如果有则生成,
                       没有就报错退出    
          1.到当前目录下查找makefile文件,找不到报错
          2.在文件中找到第一个目标对象,并把这个对象当作终极目标
          3.检测这个目标对象和依赖对象的最后一次修改时间,判断是否需
             要重新编译,如果修改时间一样,则不需要重新编译,退出
          4.如果目标对象不存在则直接生成,但是依赖对象有可能不存在
          5.为了生成终极目标,首先要保证依赖对象都存在,所以会去先生成
             所有的依赖对象(依赖对象生成的依赖关系夜市用户在下边定义的)
 
           声明伪对象: .PHONY (生成什么文件后面就写什么文件)
                  伪对象:每次都要重新生成
           假如当前目录下有多个makefile的时候(makefile/Makefile),优先是makefile
           但是make
 ******************           makefile中  =   :=     ?=  |=的区别?********************
           src=$(wildcard ./*.c)
           obj=$(patsubst %.c,%.o,$(src))
 
           main:$(obj)
                    gcc   $^  -o  $@
           %.o:%.c
                  gcc -c  $<  -o    $@
           clean:
          rm   -f   $(obj)  main
4.gdb调试工具:
          1.在编译程序的时候,向可执行程序中添加调试符号信息(-g选项功能)
               gcc -g
          2.运行gdb加载程序
               gdb   ./main 
          3.调试操作:
               run :直接运行代码;并且程序的命令行参数在这里赋值
               start:逐步调试
               list:查看代码
               step:下一步  跟踪进入函数
               next:下一步  不跟踪进入函数
               until:直接运行到指定行
               p:   打印变量内容
               bt:  查看函数调用栈信息
               b:   打断点
                      line            向当前调试文件指定行打断点
                      file:line    向指定文件的指定行打断点
                      func           给函数打断点
                info:查看信息
                       info  break    查看断点信息
               watch    变量监控(变量内容发生改变就停下来)
                      watch  var     watch+变量名
               delete   删除断点
                     b     删除所有断点
                     b n  删除序号为n的断点
               disable  b     禁用断点      
               continue    继续运行
5.git项目版本控制工具:分布式管理
   svn项目版本控制工具:集中式管理
linux下git使用:
     git  clone  https 从github上克隆代码到当前路径
     git  add  file       添加要提交的文件
     git   commit  -m  “desc”本地提交
     git   push           上传代码
            了解git的分支管理(git精华)
     git使用ssh
     生成ssh密钥
            ssh-keygen           提示信息直接回车即可
            家目录下 .ssh 目录下id_rsa.pub文件中的内容就是公钥信息
            复制公钥信息,到git个人设置的sshkey中   
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值