用户管理:
添加用户:useradd 选项 用户名
设置密码:passwd 用户名
删除用户:userdel 选项 用户名
创建用户组:groupadd 选项 用户组名
磁盘操作:
df:查看磁盘的空间
df -h 表示以可读性较高的形式展示大小
du -sh:查看目录的真实大小
du -sh 目录路径
网络设置:
网卡配置文件位置:/etc/sysconfig/network-scripts
重启网卡:
service network restart
查看ip地址:ifconfig
开启某个网卡:ifup 网卡名
GDB
检查逻辑错误的,而不是语法错误(语法错误是可以通过GCC查看的)
使用步骤:
gcc -g -o 可执行文件 -c *.c
-g:使之可调试
1、gdb 可执行文件
基础指令:
l:显示代码
b 设置断点
b 52行号
b 函数名字:行号
b 函数名
r:执行程序
n:next下一步的意思
s:step单步执行,进入函数内部
quit:退出调试
bt:显示堆栈
p:查看变量
其他指令
-- 段错误
设置断点,调试程序时 r 之后 程序停止的位置就是段错误的位置
info b: 查看断点信息
Makefile
说明:
-- gcc --编译器
-- make-linux自带的构建器
-- 构建的规则在Makefile中
那么,如何制定规则呢?
1、makefile 文件的命名
-- makefile或者Makefile
2、规则
可以取代一系列的gcc 过程
如:gcc a.c b.c *.c -o main
语法:
目标,依赖,命令
目标:依赖
(tab缩进)命令
如:main:a.c b.c *.c
(tab键)gcc a.c b.c *.c -o main
- 可以有多条规则
版本一:
main:main.c add.c del.c modify.c
(tab缩进)gcc main.c add.c del.c modify.c -o main -I ../include/
make
以上的makefile文件效率低,只要有一个源文件修改都会被重新编写了。
so,-----------解决方式,先编写.o
版本二:
main:main.o add.o del.o modify.o
gcc main.o add.o del.o modify.o -o main
main.o:main.c
gcc -c main.c -o main.o -I ../include
add.o:add.c
gcc -c add.c -o add.o
del.o:del.c
gcc -c del.c -o del.o
modify.o:modify.c
gcc -c modify.c -o modify.o
还是有问题:冗余
解决办法:----自定义变量
自定义变量:
object = a.c b.c *.c
取值 $(object)
自带的变量:大写
如:CPPFLAGS
自动变量
$@:规则中的目标
$<:规则中的第一个依赖
$^:规则中所有的依赖
注意:自动变量只能在规则的命令中使用。
版本三:
obj = main.o add.o del.o modify.o
obj = 10
$(obj)取得obj的值
depand = main.o add.o del.o modify.o
com = main.c add.c del.c modify.c
main:$(depand)
gcc $(com) -o main -I ../include/
版本四
obj = main.o add.o del.o modify.o
main:$(obj)
gcc $^ -o $@
main.o:main.c
gcc -c $^ -o $@ -I ../include
add.o:add.c
gcc -c add.c -o add.o
del.o:del.c
gcc -c del.c -o del.o
modify.o:modify.c
gcc -c modify.c -o modify.o
问题:冗余代码多,因此按照如下方式解决。
版本五
obj = main.o add.o del.o modify.o
main:$(obj)
gcc $^ -o $@
%.o:%.c
gcc -c $< -o $@ -I ../include
为了编写的makefile文件可以通用在任何结构目录相同的工程中,可以利用makefile常用函数解决(.cpp文件也适应),如下:
makefile常用函数:
wildcard 找到指定路径下的所有的*.c
src = $(wildcard ./*.c)
匹配替换,将%.c---> %.o
最终版本
obj = $(patsubst %.c,%.o,$(src))
gcc -o main main.c a.c b.c
src = $(wildcard ./*.c)
obj = $(patsubst %.c,%.o,$(src))
main:$(obj)
gcc $^ -o $@
%.o:%.c
gcc -c $< -o $@ -I ../include
其余参照课件。