Makefile & GDB & Shell
2018-01-25 20:16
961 查看
Makefile(编译工程)
target : depengency
( Tab 字符) command
实例
第一步.
vim Makefile
第二步.
hello : hello.o
(Tab 键 空4格) gcc hello.o -o
hello
hello.o : hello,c
(Tab gcc -c hello.c -o hello.o) //可删,隐含规则
<=>
Target = hello
Object = hello.o, print.o
$(Target) :$(Object)
(Tab) gcc
$(Object) -o
$(Target) //只有 command 需要缩进
$(Object) : hello.c
print.o : print.c
第三步.make
print.c
#include <stdio.h>
void print(char *s)
{
printf("%s", s);
}
make clean //清除文件
实例
clean :
(Tab) rm *.o hello //清除 所有 .o 文件
以及hello文件
.PHONY :clean //防止存在同名 clean 文件
GDB
gcc test.c -o test -g //加上 -g 可使用调试工具
gdb test // gdb + 文件名
l // list 列出10行 // 一次显示10行 ,l + n 从 n 行显示
b // break b 17 //17 行设置断点 b main // 在main 处设置断点
info b // 查找断点
delete n // 删除第 n 个断点
r // run 运行
n // next 下一行 // 不进入函数
s // step 下一步 // 可进入函数运行
c // continue 继续
return // 返回 在函数中可使用,从当前函数返回
q // 退出
Shell // 命令解析器 .sh // 脚本
#!/bin/sh //命令的集合
Tmp = "hello"
echo (输出) echo "hello" > a // 覆盖 >> //追加
echo ${Tmp}
mkdir $1 // 创建第一个参数的
bb5e
同名目录
./shell.sh 1 2 3 //追加参数1 2 3(命令行参数)
#在脚本内为注释符号 cat + 文件 // 显示
for dir(变量) in $1 $2 $3 $4 $5 // 命令后+ 空格
do
mkdir $dir
cd
$dir
touch $dir
echo "hello $dir" > $dir
cd ..
done
注意: 赋值‘=’,两边都不能空格,否则不变色,会有报错
Path.sh //判断所给 是文件还是目录
#! /bin/bash
PATH = "/home/155/Shell/test.sh" || 空格 一定要空
if [ || -d $PATH || ]; || then
echo "DIR"
elif [ || -f $PATH || ]; || then
echo "FILE"
fi
if [ || -z
$PATH || ]; || then
echo "ERROR"
exit
fi
#! /bin/sh
read key (C 内的scanf,从键盘输入)
case "${key}" in
[
A - Z ] ) echo "UpperLetter" ;;
[
a - z ] ) echo "LowerLetter" ;;
[
0 - 9 ] ) echo "Number" ;;
* ) echo "ERROR"
;;
esac
注意 : Shell 与 C有差别 可用 ‘ecxport LANG C’进行修改
target : depengency
( Tab 字符) command
实例
第一步.
vim Makefile
第二步.
hello : hello.o
(Tab 键 空4格) gcc hello.o -o
hello
hello.o : hello,c
(Tab gcc -c hello.c -o hello.o) //可删,隐含规则
<=>
Target = hello
Object = hello.o, print.o
$(Target) :$(Object)
(Tab) gcc
$(Object) -o
$(Target) //只有 command 需要缩进
$(Object) : hello.c
print.o : print.c
第三步.make
print.c
#include <stdio.h>
void print(char *s)
{
printf("%s", s);
}
make clean //清除文件
实例
clean :
(Tab) rm *.o hello //清除 所有 .o 文件
以及hello文件
.PHONY :clean //防止存在同名 clean 文件
GDB
gcc test.c -o test -g //加上 -g 可使用调试工具
gdb test // gdb + 文件名
l // list 列出10行 // 一次显示10行 ,l + n 从 n 行显示
b // break b 17 //17 行设置断点 b main // 在main 处设置断点
info b // 查找断点
delete n // 删除第 n 个断点
r // run 运行
n // next 下一行 // 不进入函数
s // step 下一步 // 可进入函数运行
c // continue 继续
return // 返回 在函数中可使用,从当前函数返回
q // 退出
Shell // 命令解析器 .sh // 脚本
#!/bin/sh //命令的集合
Tmp = "hello"
echo (输出) echo "hello" > a // 覆盖 >> //追加
echo ${Tmp}
mkdir $1 // 创建第一个参数的
bb5e
同名目录
./shell.sh 1 2 3 //追加参数1 2 3(命令行参数)
#在脚本内为注释符号 cat + 文件 // 显示
for dir(变量) in $1 $2 $3 $4 $5 // 命令后+ 空格
do
mkdir $dir
cd
$dir
touch $dir
echo "hello $dir" > $dir
cd ..
done
注意: 赋值‘=’,两边都不能空格,否则不变色,会有报错
Path.sh //判断所给 是文件还是目录
#! /bin/bash
PATH = "/home/155/Shell/test.sh" || 空格 一定要空
if [ || -d $PATH || ]; || then
echo "DIR"
elif [ || -f $PATH || ]; || then
echo "FILE"
fi
if [ || -z
$PATH || ]; || then
echo "ERROR"
exit
fi
#! /bin/sh
read key (C 内的scanf,从键盘输入)
case "${key}" in
[
A - Z ] ) echo "UpperLetter" ;;
[
a - z ] ) echo "LowerLetter" ;;
[
0 - 9 ] ) echo "Number" ;;
* ) echo "ERROR"
;;
esac
注意 : Shell 与 C有差别 可用 ‘ecxport LANG C’进行修改
相关文章推荐
- Makefile&shell
- 菜鸟学习历程【2】vim的简单操作、GCC工具链、make和Makefile、GDB调试工具、Shell使用基础
- makefile&gdb
- Linux学习之GCC&GDB,Makefile
- 【课堂笔记】Linux中的MakefileShellGDB工具
- linux shell & makefile & other
- Makefile && shell
- shell 变量的条件赋值
- shell进阶之路的基本用法知识和问题解决(基本语法、正则、日期转化、&符号)
- shell程序设计的语法--lt;条件测试&gt;
- shell小技巧--用“$$”和"$0"防止同一个脚本启动多次
- Shell标准输出、标准错误 >/dev/null 2>&1
- shell脚本中的“2< " ">&2" "&>”
- [转]linux&nbsp;shell&nbsp;if&nbsp;参数
- 【转】linux shell awk获得外部变…
- Linux&nbsp;Shell常用技巧(目录)
- adb&nbsp;shell&nbsp;input&nbsp;命令
- Makefile与shell脚本区别
- 40岁开始学Linux(2)_Module&Makefile
- system build folder Makefile & config