一.vim编辑器

vim三种模式:

1.命令行模式

vim打开文件,就是命令行模式
命令行模式指令:
x:删除一个字符 nx:删除n个字符
dd:删除(剪切)一行 ndd:删除(剪切)n行
yy:复制一行 nyy:复制n行
p:粘贴
shift+g:跳到最后一行 gg:跳到第一行
*:查找光标所在的字符串 n:查找下一个
u:撤销
shift+zz:保存退出

2.底行模式

在命令行模式下,按:进入底行模式
底行模式指令:
w:保存 q:退出 wq:保存退出
w!、q!、wq!强制
sp+文件名:打开另一个文件 ctrl+ww:移动光标
/输入字符串进行查找 n:查找下一个 shift+n:查找上一个
:%s/原字符串/新字符串/g:替换全部zifuchuan
:set nonu:关闭行号 :set nu:打开行号

3.插入模式

在命令行模式下,按“a”或者“i”进入插入模式

二.gcc编译器

编译工作过程:

1.预处理

gcc -E hello.c -o hello.i
处理所有以“#”开头的文件,如:(1)头文件(展开)、(2)宏定义(替换)、(3)条件编译
hello.i 是文本文件
注:

#if  0
......
#endif    //注释中间内容

2.编译

gcc -S-hello.i -o hello.s
将C代码翻译成汇编代码

3.汇编

gcc -c hello.s -o hello.o
将汇编代码翻译成二进制

4.链接

gcc 所有.o文件 -o hello
链接程序需要用到的其他程序

其他工具

1.gcc -I : 指定头文件路径
例:gcc test.c -o test -I /home
2.gcc -static : 静态链接
例:gcc test.c -o test -static

三.make和Makefile

Makefile程序编写:

Target(目标):dependency(依赖)
1.

hello:hello.cgcc hello.c -o hello

2 .

Target=hello
Object=hello.o  print.o
$(Target):$(Object)gcc $(Object) -o $(Target).PHONY:clean
clean:rm *.o hello

:make:执行Makefilewenjian
make clean:清除中间文件

四.gdb调试工具

gcc test.c -o test -g
gdb test
(gdb): l(list)显示代码
l+数字:显示该行的上5行和下5行
r(run):运行程序
b(break)+数字:在该行插入断点
c(continue):继续运行
i(info):查看断点
d(delete) b +数字:删除第几个断点
n(next):执行下一步
s(step):执行下一步,遇到函数会进入
p(print)+变量:打印变量的值
q(quit):退出

五.shell脚本

shell脚本的后缀名为.sh

vim hello.sh

#!/bin/bash
echo "helloworld!"
echo "123456" > hello.txt
cat  /mnt/hgfs/share/hello.c  >>hello.txtTMP="helloworld!"
echo ${TMP}        //(echo $TMP)
echo "第一个参数是:$1"
echo "第二个参数是:$2"
echo $*
echo $#        //显示几个参数

运行脚本文件:./hello.c

脚本循环程序:

circle.sh
1.

#!/bin/bash
for((i=0;i<5;i++))
doecho "helloworld!"
down

2 .

for i  in  aaa  bbb  ccc  ddd
do echo $i
done

3 .

for  i  in  $1  $2  $3  $4
domkdir $icd  $iecho  >  $i.c "
#include <stdio.h>
int main()
{printf(\"helloworld!\\n\");return 0;
}"cd ..
done

判断数字大小

#!/bin/bash
if [ $1 -eq 0]; thenecho"第一个参数等于0"
fiif [ $2 -gt 0];thenecho"第二个参数大于0"
elif [ $2 -lt 0];thenecho"第二个参数小于0"
elseecho"第二个参数等于0"
fi

判断目录/文件

#!/bin/bash
if [ -d $3 ];thenecho"第三个参数是目录"
elif [ -f $3 ];thenecho"第三个参数是文件"
fi

Linux网络编程 -- Linux常用工具的使用(vim、gcc、gdb、makefile、shell)相关推荐

  1. Linux——(二)环境基础开发工具(yum,vim,gcc,gdb,makefile,git)

    本节目录 总述 1. yum:软件包管理工具 1.1 软件包是什么? 1.2 软件包的操作 1.2.1 查看 1.2.2 安装 1.2.3 卸载 2. vim:linux编辑器 2.1 vim基本概念 ...

  2. Linux~一些基本开发工具的使用(yum,vim,gcc,gdb,makefile)

    目录 一.yum--安装软件 二.Vim--文本编辑器 (1).命令模式 (2).底行模式 (3).插入模式 tips:给对应用户配置sudo命令 一些注意事项 三.gcc/g++--编译器 (1). ...

  3. Linux命令全家桶以及vim/gcc/gdb/makefile/yum

    基本指令 ls指令:对于目录,列出该目录下的所有子目录与文件:对于文件,列出文件名以及其他信息. ls -l //一行只输出一个文件 pwd指令:显示当前用户所在目录 cd指令:改变工作目录,将当前工 ...

  4. linux网络编程常用函数详解与实例(socket--bind--listen--accept)

    常用的网络命令: netstat 命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可 ...

  5. 常用Linux网络/内存/磁盘分析工具

    Centos查看网卡.CPU.内存等使用率 # watch more /proc/net/dev 性能分析和监控工具 uptime dmesg | tail vmstat 1 mpstat -P AL ...

  6. Linux网络编程——千峰物联网笔记

    B站视频:千峰物联网学科linux网络编程 网址:https://www.bilibili.com/video/BV1RJ411B761?p=1 目录 第一章:计算机网络概述 1.1计算机网络发展简史 ...

  7. 计算机网络(二)Linux网络编程

    layout: post title: 计算机网络(二)Linux网络编程 description: 计算机网络(二)Linux网络编程 tag: 计算机网络 文章目录 资源共享 Linux高性能服务 ...

  8. Linux网络编程基础知识

    Linux网络编程基础知识 1. 协议的概念 1.1 什么是协议 1.2 典型协议 2 网络应用程序设计模式 2.1 C/S模式 2.2 B/S模式 2.3 优缺点 3 分层模型 3.1 OSI七层模 ...

  9. 很全的linux网络编程技巧

    注:作者王晓,本人认为总结得很好,故记之,绝无侵权之意. 本文转自:https://www.cnblogs.com/jfyl1573/p/6476607.html 看到好文章想留做自己学习,如有侵权, ...

  10. Linux网络编程-很全面

    注:作者王晓,本人认为总结得很好,故记之,绝无侵权之意. 1. LINUX网络编程基础知识 1 1.1. TCP/IP协议概述 1 1.2. OSI参考模型及TCP/IP参考模型 1 1.3. TCP ...

最新文章

  1. Android之EventBus框架源码解析上(单例模式)
  2. ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用
  3. iOS8上本地通知接收不到的问题
  4. 网络智能和大数据公开课Homework3 Map-Reduce编程
  5. java网络通信:伪异步I/O编程(PIO)
  6. td设置自动隐藏,hover事件触发全部显示,table列表不用担心信息太长导致界面不美观
  7. 【2019/3/23】周进度报告
  8. 物流行业GPS定位应用解决方案
  9. 图解密码技术(一)密码
  10. oracle怎么开启安全审计,安全审计产品:一项一项教你测等保2.0——Oracle安全审计...
  11. 数学基础task04 一元函数微分学的几何应用
  12. Shell程序退出状态码的命令详解
  13. cgb2108-day02
  14. (附源码)Springboot 点餐系统 毕业设计 100908
  15. 小文聊天机器人(jquery.chatbot.js)使用指南
  16. 揭秘PLC(三)RTS之IO篇
  17. 【第三方API】顺丰电子面单SDK调用总结-java
  18. HM代码-码控(1)-乱七八糟的初始化
  19. JS之setInterval方法
  20. python中全组合函数(combinations)与全排列函数(permutations)

热门文章

  1. Saliency Detection: A Spectral Residual Approach 阅读笔记
  2. Tensorrt7踩坑记录
  3. Filter vs Listener
  4. echarts wordCloud画词云图(自定义背景)
  5. excel利用公式获取行或列中最后一个非空单元格数据
  6. 微信公众号,图文编辑超链接中,没有外部链接只能增加公众号链接是什么情况?
  7. 又见猛犸象:基因剪刀重新定制生命
  8. 20172328《程序设计与数据结构》第二周学习总结
  9. 计算机论文读书报告怎么写,论文读书报告范文(共6篇).doc
  10. JDK7官方下载地址