Linux网络编程 -- Linux常用工具的使用(vim、gcc、gdb、makefile、shell)
一.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)相关推荐
- 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基本概念 ...
- Linux~一些基本开发工具的使用(yum,vim,gcc,gdb,makefile)
目录 一.yum--安装软件 二.Vim--文本编辑器 (1).命令模式 (2).底行模式 (3).插入模式 tips:给对应用户配置sudo命令 一些注意事项 三.gcc/g++--编译器 (1). ...
- Linux命令全家桶以及vim/gcc/gdb/makefile/yum
基本指令 ls指令:对于目录,列出该目录下的所有子目录与文件:对于文件,列出文件名以及其他信息. ls -l //一行只输出一个文件 pwd指令:显示当前用户所在目录 cd指令:改变工作目录,将当前工 ...
- linux网络编程常用函数详解与实例(socket--bind--listen--accept)
常用的网络命令: netstat 命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可 ...
- 常用Linux网络/内存/磁盘分析工具
Centos查看网卡.CPU.内存等使用率 # watch more /proc/net/dev 性能分析和监控工具 uptime dmesg | tail vmstat 1 mpstat -P AL ...
- Linux网络编程——千峰物联网笔记
B站视频:千峰物联网学科linux网络编程 网址:https://www.bilibili.com/video/BV1RJ411B761?p=1 目录 第一章:计算机网络概述 1.1计算机网络发展简史 ...
- 计算机网络(二)Linux网络编程
layout: post title: 计算机网络(二)Linux网络编程 description: 计算机网络(二)Linux网络编程 tag: 计算机网络 文章目录 资源共享 Linux高性能服务 ...
- Linux网络编程基础知识
Linux网络编程基础知识 1. 协议的概念 1.1 什么是协议 1.2 典型协议 2 网络应用程序设计模式 2.1 C/S模式 2.2 B/S模式 2.3 优缺点 3 分层模型 3.1 OSI七层模 ...
- 很全的linux网络编程技巧
注:作者王晓,本人认为总结得很好,故记之,绝无侵权之意. 本文转自:https://www.cnblogs.com/jfyl1573/p/6476607.html 看到好文章想留做自己学习,如有侵权, ...
- Linux网络编程-很全面
注:作者王晓,本人认为总结得很好,故记之,绝无侵权之意. 1. LINUX网络编程基础知识 1 1.1. TCP/IP协议概述 1 1.2. OSI参考模型及TCP/IP参考模型 1 1.3. TCP ...
最新文章
- Android之EventBus框架源码解析上(单例模式)
- ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用
- iOS8上本地通知接收不到的问题
- 网络智能和大数据公开课Homework3 Map-Reduce编程
- java网络通信:伪异步I/O编程(PIO)
- td设置自动隐藏,hover事件触发全部显示,table列表不用担心信息太长导致界面不美观
- 【2019/3/23】周进度报告
- 物流行业GPS定位应用解决方案
- 图解密码技术(一)密码
- oracle怎么开启安全审计,安全审计产品:一项一项教你测等保2.0——Oracle安全审计...
- 数学基础task04 一元函数微分学的几何应用
- Shell程序退出状态码的命令详解
- cgb2108-day02
- (附源码)Springboot 点餐系统 毕业设计 100908
- 小文聊天机器人(jquery.chatbot.js)使用指南
- 揭秘PLC(三)RTS之IO篇
- 【第三方API】顺丰电子面单SDK调用总结-java
- HM代码-码控(1)-乱七八糟的初始化
- JS之setInterval方法
- python中全组合函数(combinations)与全排列函数(permutations)