Linux(三)C语言开发环境

一. 编辑器  vi

Linux中的一种文本编辑器,  相对来说较小 ,  vim是vi的高级版本 兼容vi  功能更强大

vim 文件名    进入            ~ 代表空的行

离开vim:       :q 退出     

                         :q! 不保存强制退出

                         :wq   保存并退出        =  :x

在插入模式和底行模式下 用  ESC  切换到 命令行模式       

 

1.     命令行模式    进入时  默认的模式

 编辑命令             i    在光标前输入文本

                             I     在当前行输入开始文本              shift  i = I

                             a   在光标后输入文本

                             A  在当前行末尾输入文本

                              o  在当前行后输入下一行

                              O  在当前行后输入下一行

 

   光标移动命令    b 移动到当前单词开始

                             e  移动到当前单词结尾           

                                        h j k l =上下左右  

 

    删除命令             x    删除光标所在字符 

                                nx  删除光标后n个字符

                               dw   删除光标所在单词

                                d$   删除光标至结尾的字符   =  D

                                 dd   删除当前行

                                  ndd 删除当前行后的n行

   

改变与替换指令    r      替换光标所在的字符
                             R      替换字符序列
                             cw    替换一个单词            =ce
                             c$    替换自光标位置至行尾的所有字符      =C
                             cc     替换当前行

 

拷贝和粘贴命令    yw     将光标所在单词复制到粘贴板   
                             y$     将光标至行尾的字符复制到粘贴板    =Y
                             yy      将当前行复制到粘贴板
                             nyy    将当前行后的n行复制到粘贴板
                             P       将粘贴板中的内容粘贴在光标前
                             p       将粘贴板中的内容粘贴在光标后

 

  其他命令             nG                跳到第n行  
                             u                  撤销
                             .                重做

                             ctrl + b              #向前移动一页 
                             ctrl + f               #向后移动一页
                             zz                     #将当前行置于屏幕中央
                             gg                     #移动到第一行行首
                             G                      #移动到最后一行行首

                             n+                    #向后跳转n行
                             n-                     #向前跳转n行
                             n↑↓←→         #向上下左右跳转n次

 

 

2.底行模式                    全局配置文件在/etc/vimrc  可自己设置

 设置vi                       :set number(nu)      显示行号
                                   : set nonumber(nonu)  隐藏行号
                                   :set autoindent             智能缩进
                                   :set mouse=a                开启鼠标

 

 

文件的保存和退出       :q                     不保存退出
                                    :q!                    不保存强制性退出
                                    :w                     保存编辑  
                                    :w filename        另存为文件 filename
                                     :wq                   保存退出     = :x  = :ZZ

 

查询命令                      /abc    向后查询abc
                                    ?abc    向前查询abc
                                     n         向后继续查询
                                     N         向前继续查询

 

替换查找                   :s/old/new                  替换该行第一个old为new
                                  :s/old/new/g               可以替换全行中所有的old为new
                                  :#,#s/old/new/g          替换两行之间出现的old为new,#,#为两行的行号
                                  :%s/old/new/g             替换全文的old为new
                                   :%s/old/new/gc           全文替换前需确认

 

 

 

二.  编译器  gcc      (GNU CCompiler)

       .c为后缀的文件,c语言源代码文件;
       .h为后缀的文件,是程序包含的头文件;
       .i为后缀的文件,是已经预处理过的c源代码文件;
        .s为后缀的文件,是汇编语言源代码文件
        .o为后缀的文件,是编译后的目标二进制文件;

 

过程:

1.预处理     根据以字符#开头的命令,修改原始c程序

                   gcc -E hello.c -o hello.i

2. 编译      将.i文件翻译成.文件   包含一个汇编语言程序

                     gcc -S hello.i -o hello.s

3. 汇编     将.s文件翻译成机器语言指令   生成.o文件   是二进制文件

                 gcc -c hello.s -o hello.o

4.链接      生成可执行文件 
                 gcc hello.o -o hello 

 

其他注意事项                                          

(1)gcc example.c -o example      #直接生成可执行文件
(2)./example                             #运行可执行文件
(3)若不使用 -o 则生成可执行文件 a.out
(4)Linux头文件默认放在/usr/include中

 

 

三.  调试器  Gdb      GNU计划   程序调试工具  

         gcc -g fun.c -o test                      加上-g 才有 -g调试信息      gdb  test  进入   

常用命令

1、   l(list)                 #一次列出10行代码(list n,m   #列出n~m行)
2、   r(run)                #执行程序(未设置断点,将程序执行完毕)
3、   b(break)             #b+行号,在该行设置断点
4、   c(continue)         #当程序运行时,继续运行程序,直到遇到断点
5、   i b(info break)     #查看断点信息
6、   d+编号               #(delete)删除该断点(d删除所有断点)
7、   clear+行号          #删除指定行断点(不加行报错)
8、   p(print)              #p+变量名,显示变量的值
9、   s(step)               #单步执行(进入调用函数)
10、 n(next)               #不进入调用的函数,只在主函数中运行
11、 return/finish        #退出step进入的调用函数
12、 q(quit)               #退出gdb调试

 

四. makefile           工程管理器    自动编译管理器

                               根据文件时间戳 发现更新的文件 

    缺点: 每次要重新编译

                重复输入大量文件名

                都写在一个文件里

makefile 是 make 读入的唯一配置文件

1.makefile 基本格式  :target:dependency
                                       (Tab字符)command

                     make clean

2、makefile中变量的使用
     OBJECTS = sum.o sub.o operator.o             #定义变量
     $(OBJECTS)                                             #使用变量

3、makefile的自动推导(隐晦规则)

可以自动推导文件以及文件依赖关系后面的命令

只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中

 

五. Shell

Linux中Shell种类众多,  常用bash。 Shell可以事先写在一个文件中,使用时Shlle 读取文件中的命令逐条翻译,这种文件是脚本。

创建  vim 1.sh    不用编译 直接运行 要赋予可执行权限  chmod +x 1.sh    执行   ./1.sh

 echo “xx”  显示xx     

Shell 就是将一系列Linux命令放在一个文件中执行的应用程序。

格式:

#!/bin/bash

#注释

命令

 

在“ ”中的字符出$ 反引号 \   外是普通字符。

变量:   定义   str=“Hello World”

              应用  echo $str 或 echo ${str}

              消除  unset  str    

 

echo “现在的地址是‘pwd’ ”  输出 现在的地址是/root    (‘pwd’被解释为命令)

\  转义字符  用 -e 进行解析   echo -e “a\nd”     //  \n 自动换行 

在字符前利用 /  能阻止 后面的字符解释为特殊字符

单引号内 都是普通字符

 

常用命令:

echo ${#str}     计算长度

echo ${STR:1:3}                                 #显示第2,3,4个字符

echo “`expr index “$STR” 23`”       #在变量STR中23 谁先出现 显示谁位置
 
数组:
array1=(0 1 2 3 4)                                     #3种定义赋值数组(圆括号)
echo ${array1[0]}                                     #显示数组值
echo ${#array1[@]}或echo ${#array1[*]} #计算数组长度
 
算数运算:
c=`expr $a + $b`                           #.sh中的加减乘除
c=`expr $a \* $b`                          #.sh中的乘法

 

数值测试可用的操作符包括:
-eq:两个数相等;(=)
-ne:两个数不相等;(!=)
-gt:第一个数大于第二个数;(>)
-lt:第一个数小于第二个数;(<)
-le:第一个数小于等于第二个数;(<=)
-ge:第一个数大于等于第二个数。(>=)

 

字符串测试的主要操作符包括:
==:两个字符串相等;
!=:两个字符串不等;
-z:字符串为空;
-n:字符串不为空。

你可能感兴趣的:(Linux(三)C语言开发环境)