Makefile(编译工程,要求读懂)
target : depengency
( Tab 字符) command
实例
1. vim Makefile
2.
hello : hello.o
(Tab 键 空4格) gcc hello.o -o hello
hello.o : hello,c
(Tab gcc -c hello.c -o hello.o) //可删,隐含规则
3.make
<=>
Target = hello
Object = hello.o, print.o
$(Target) :$(Object)
gcc $(Object) -o $(Target) //只有 command 需要缩进
$(Object) : hello.c
print.o : print.c
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 // 创建第一个参数的同名目录
./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’进行修改