Linux常用工具
1. vim编辑器:
(1) 插入模式:在此模式下可以输入字符,按ESC将回到命令模式。a或i进入插入模式,按esc回到命令模式。
(2) 命令模式:可以移动光标、删除字符等。vim打开就是命令模式,x删除一个字符,nx删除n个字符。dd删除一行,ndd删除n行。nyy复制n行。p粘贴。shift+g跳到最后一行。gg回到第一行。u撤销。shift zz保存退出。n查找下一个。
(3)低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的。进入低行模式,wq保存退出。w保存。q退出。按数字,直接跳到对应行。sp +文件名,可以打开另一个文件。Ctrl + ww 可以上下移动光标。/ 进入底行模式,输入字符串查找,n 查找下一个,shift + n 查找上一个。%s/old/new/g 替换操作,g 表示全部,不加g只替换每一行第一个。set nonu 关闭行号 ,set nu 打开行号。
2、gcc工具链:
指令 vim hello.c
gcc hello.c (编译)
生成 a.out 文件
gcc hello.c -o hello
./hello (运行)
(1)预处理
gcc -E hello.c -o hello.i 处理所有以“#”开头的代码。
a.头文件(展开)b.宏定义(替换)c.条件编译
生成的hello.i是文本文件
(2)编译
gcc -S hello.i -o hello.s
把C代码翻译成汇编代码
(3)汇编
gcc -c hello.s -o hello.o
把汇编代码翻译成二进制文件
(4)链接
gcc 所有.o文件 -o hello
链接程序需要用到的其他文件
gcc -I(大写的i)指定头文件路径
gcc -static 静态链接(以上都是加在hello后面)
-
make和makefile:
make命令运行时,须要一个 Makefile 文件,以告诉make命令须要怎么样的去编译和链接程序。
一个Makefile文件包含五个方面的内容:
具体规则
隐含规则
定义变量
指令
注释 -
gdb调试工具:
GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点、单步执行等操作。当程序暂停执行时, 可以使用命令查看程序中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。
被调试的应用程序在编译时最好使用-g参数将调试信息编入目标文件中:
gcc -g app.c -o app
用以下命令启动对程序app的调试:
gdb app
如果程序app运行时需要参数,则用以下命令:
gdb --args app arg1 arg2 # arg1和arg2被视为app的参数,而不是gdb的参数。 -
shell使用基础:
shell脚本的后缀名为.sh
vim hello.sh
#!/bin/bash
echo "helloworld!"
echo "123456" > hello.txt
cat /mnt/hgfs/share/hello.c >>hello.txt
TMP=”helloworld!“
echo ${TMP} //(echo $TMP)
echo "第一个参数是:$1"
echo"第二个参数是:$2"
echo $*
echo $# (显示几个参数)
运行脚本文件:./hello.c
脚本循环程序:
circle.sh
1.
#!/bin/bash
for((i=0;i<5;i++))
do
echo "helloworld!"
down
2.
for i in aaa bbb ccc ddd
do
echo $i
done
3.
for i in $1 $2 $3 $4
do
mkdir $i
cd $i
echo > $i.c "
#include <stdio.h>
int main()
{
printf(\"helloworld!\\n\");
return 0;
}"
cd ..
done
`判断数字大小
#!/bin/bash
if[ $1 -eq 0]; then
echo"第一个参数等于0"
fi
if[ $2 -gt 0];then
echo"第二个参数大于0"
elif[ $2 -lt 0];then
echo"第二个参数小于0"
else
echo"第二个参数等于0"
fi
判断目录/文件
#!/bin/bash
if[ -d $3 ];then
echo"第三个参数是目录"
elif[ -f $3 ];then
echo"第三个参数是文件"
fi