Linux C 开发工具

vim基本模式

第一次使用vim之前,先输入vim /etc/vimrc查看配置信息

若无以下几项需手动加上

set autoindent 自动缩进

set shiftwidth=4 用于程序中自动缩进所使用的空白长度指示

set tabstop=4 定义tab所等同的空格长度

set number 显示行号

syntax on 设置关键字高亮


1.命令行模式:控制屏幕光标的移动,字符、字或行的删除、复制和粘贴,可进入插入模式和底行模式。

x 每按一次,删除光标所在位置的”后面“一个字符。

#x 删除光标所在位置的”后面“#个字符。

dd 删除(剪切)光标所在行。

#dd 从光标所在行开始删除#行。

yw 将光标所在之处到字尾的字符复制到缓冲区。

#yw 复制#个字到缓冲区。

yy 复制光标所在行到缓冲区。

p 粘贴。

u 撤销。

gg 光标移动到第一行

[shift]+[G] 光标移动到最后一行


2.插入模式:只有在插入模式下,才可以输入文字。

按a/i,然后回车进入插入模式。

按[esc]键可返回命令行模式。


3.底行模式:将文件保存或退出,也可以设置编辑环境,如寻找字符串、列出行号等。

[shift]+[;] 即按“:”进入底行模式。

:行数 然后回车就会跳到该行。

/关键字 查找你想要寻找的字符,按[n]往后寻找,[shifit]+[n]或[N]往前寻找。

%s/想替换的字符/新字符/g 字符替换。

wq 保存并退出。

q! 强制退出。

gcc编译

gcc test.c -o test 将test.c编译并命名为test

编译过程:

1.预处理:头文件展开(所有以#开头的文件展开)。 如:gcc -E test.c -o test.i

2.编译:语法检查,c语言转化为汇编语言。如:gcc -S test.i -o test.s

3.汇编:汇编语言转化为二进制文件。如:gcc -c(小写) test.s -o test.o


4.链接:生成可执行文件。如gcc test.o -o test


make和Makefile  
make命令运行时,须要一个 Makefile 文件,以告诉 make命令须要怎么样的去编译和链接程序。
一个Makefile文件包含五个方面的内容:
具体规则
隐含规则
定义变量
指令  
注释      

1.使用规则
Makefile内容的核心是一系列的规则,这些规则告诉make程序要 做的事以及做这件事所依赖的条件。

规则的基本格式是:
target: dependency
(Tab字符)command

target(目标): 通常是要产生的文件的名称,顶格。
dependency(依赖): 指用来输入从而产生目标的文件。
command(命令): 是make执行的动作,一个规则可以有多条命 令,每个命令占一行。命令行的第一个字符是Tab。

例:编写一个Makefile文件  vim Makefile
Target=hello   #定义变量Target
Object=hello.o print.o #定义变量Object

$(Target):$(Object)      # 定义Target的生成规则
 gcc $(Object) -o $(Target)

.PHONY:clean   # 定义clean的规则,删除所有.o文件及hello文件
clean:
        rm *.o hello





gdb调试工具 

GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点 、单步执行等操作。当程序暂停执行时,可以使用命令查看程序 中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。     
被调试的应用程序在编译时最好使用-g参数将调试信息编入 目标文件中:
gcc test.c -o test -g

启动后进入GDB交互界面,可以输入GDB的命令开始调试,常用命令如下,通常直接回车就是重复上一条命令
list(简写l): 列出程序的源代码,默认每次显示10行。
run(简写r): 运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。 
continue(简写c): 继续执行,到下一个断点处(或运行结束) 。
next(简写n): 单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体。
step(简写s): 单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的 。
return(简写 ret):从当前函数返回。
break n(简写b n): 在第n行处设置断点  。
print 表达式(简记为 p) ,其中“表达式”可以是任何当前正在被测试程序的有效表达式,比如当前正在调    试C语言的程序,那么“表达式”可以是任何C语言的有效表达式,包括数字,变量甚至是函    数调用。
info program: 来查看程序的是否在运行,进程号,被暂停的原因。
quit:(简记为 q)  退出gdb。



Shell使用基础 
Shell是命令解析器,将用户的输入的指令转化为机器可以运行的程序。

1.格式
Shell 脚本的格式是固定的,如下:
#!/ bin/bash

首行中的符号#!告诉系统其后路径所指定的程序即是 解释此脚本文件的Shell程序。
编辑完毕,将脚本存盘为filename.sh,文件名后 缀sh表明这是一个Bash脚本文件。执行脚本的时候, 要先将脚本文件的属性改为可执行的:
chmod a+x filename.sh
执行脚本的方法是:
./filename.sh


2.变量
$#:传入脚本的命令行参数个数
$*:所有命令行的参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数

示例S2:
#!/bin/sh
echo $#
echo $*
echo $1
echo $2
echo $3
echo $4


运行./s2 1 2 3 4  结果是

4
1 2 3 4
2
3
4


3.for循环
格式:
for 变量名 in 参数
do
 程序代码
done

示例:
#!/bin/bash

for dir in $1 $2 $3
do
        mkdir $dir
        cd $dir
        touch $dir
        echo "hello  $dir" > $dir
        cd ..
done

运行
 chmod a+x cir.sh
./cir.sh a b c

结果是创建了 a b c三个文件夹,每个文件夹里都创建了一个同名的文件,文件内容是:hello 文件名(a/b/c)


4.if判断语句

#!/bin/bash

path=$1

if [ -z $path ];       判断路径是否为空
then
        echo "ERROR"
        exit
fi

if [ -d $path ];      判断是否是目录
then
        echo "DIR"
elif [ -f $path ];     判断是否是文件
then
        echo "FILE"
fi


注:if [空格  空格]  中括号前后要有空格


5.case语句
#!/bin/bash

read key      从键盘输入一个字符

case "${key}" in
        [A-Z] ) echo "UpperLetter";;  大写字母
        [a-z] ) echo "LowerLetter";;   小写字母
        [0-9] ) echo "Number";;    数字
        * ) echo "ERROR";;      错误
esac
S
若发现输入小写字母输出为UpperLetter(大写字母),做以下修改:
export LANG = C


6.其它
利用shell将代码快速写入file文件中:
cat > $file << EOF
 
代码

EOF







gdb 调试工具  
困是
gdb 调试工具  

make
make Makefile  
Makefile  









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值