Linux与Shell编程复习笔记
Linux
Linux文件和目录结构
- / 根目录
- /etc 供系统维护管理用的命令和配置文件
- /tmp 存放临时文件
- /boot 存放系统引导文件
- /bin 系统常用命令,如ls, ln, cp, cat等
- /home 用户目录
- /root 超级管理员目录
- /dev 存放设备文件
- /usr
- /usr/include C语言头文件存放目录
- /usr/tmp 存放临时文件
- /usr/bin 存放常用命令,如echo, grep, kill
- /lib,/usr/lib 存放各种库文件,指C语言的链接库文件,以及terminfo终端库等等
文件通配符和文件类型
*可执行普通文件/目录@符号链接|FIFOs=套接字-普通文件p目录文件b/c设备文件l链接文件p管道文件
Command
cat
- -n 编号
- -b 空白行不编号
- -s 压缩连续空行
ls
- -a 全部信息
- -l 长信息
- -F 附加文件类型
more
- -d 提示
- -f 计算实际显示行数
- -s 合并显示空行
- +/pattern 搜索字串并在此之后开始显示
- -num 每行显示的行数
- +num 从num行开始显示
- space/n 下一屏
- b 上一屏
- enter 下一行
- /pattern 搜索
less
- -a 最后一页
- -m 百分比
- -M 百分比 行号 总行数
- -N 行号
- -p test 搜索
test - -s 合并显示空行
head
- -num
tail
- -num
cp
- -a = cp -drp
- -d 保留文件链接
- -f 强制执行
- -i 交互提醒
- -p 更新修改日期与访问权限
- -r 递归复制文件树
- -v 可视化操作
- -l 不复制而只产生硬链接
- -s 不复制而只产生软链接
mv
- mv -i 交互提醒
- -f 强制执行
rm
- -r 递归删除文件夹
- -f 强制执行
- -i 交互提醒
sort
- -m 合并排序
- -n 以数值形式排序
- -d 字典序(default)
- -r 逆序
- -t 'char' 选定分割字符
- -u 保留唯一键值(去重)
- -k 选定排序键值(1.1,2/1.1,1.1)
- -o 输出到文件
- 多指令可合并执行
diff
- -b 忽略空格
- -c 上下文格式显示
- -C
num显示num行上下文
<为删除>为新增
touch
mkdir
- -p 帮助确保目录全部存在,如果不存在就新建
rmdir
tar
- -c 打包
- -x 解包
- -v 可视化
- -f 不交互
- -z 对文件进行压缩
- -czvf 压缩
- -tzvf 列出压缩内容
- -xzvf 解压
ln
- ln 硬链接
- -s 软链接
VIM


CMake
makefile示例
build: clean main
mymath.o: include/mymath.h src/mymath.c
gcc -fPIC src/mymath.c -I./include -c -o src/mymath.o
welcome.o: include/welcome.h src/welcome.c
gcc -fPIC src/welcome.c -I./include -c -o src/welcome.o
libtest.so: mymath.o welcome.o lib
gcc -shared -o lib/libtest.so src/*.o
lib:
mkdir -p ./lib
main: libtest.so main.c
gcc main.c -o main -I./include lib/libtest.so
clean:
rm -f src/*.o
rm -rf lib
rm -f main
.PHONY: clean build

浙公网安备 33010602011771号