目录
常见指令和权限理解
1 xshell 下的复制跟粘贴 ctrl+insert shift+insert
1 mkdir 创建一个目录
2 rmdir rm 如果是空目录可以用rmdir 来删除 如果不是空目录 用 rm-rf 来删除
3 man man1 普通调用 man 2 系统调用如 open write man 3 库函数
Linux 权限的概念
文件类型::d 文件夹 - 普通文件 l 软文件 b块设备文件 p 管道文件 c 字符设备文件 s 套接口文件
改动权限的方法 chmod u+rwx 路径 chmod g-rwx 路径 chmod o-rw 路径 chmod a+rwx 路径 a是所有的 u 拥有者 g 所属组 o 是其他
粘滞位的概念 chmod + t 加入粘滞位后 只有 文件或者目录的拥有者可以删除
vim 常用命令
gg 文本开始 G 文末 nyy 复制n行 ndd删除n行 接着输入p 可以粘贴
u 输入错误 可以取消这一次操作 多次u多次操作可以取消 如果取消后发现取消错了 可以 ctrl+r 恢复
x 删除这个字符
linux 编译器 gcc—g++的如何编译完成的
1 背景(预处理、编译 汇编、链接)
预处理 gcc -E hello.c -o hello.i 条件编译 宏替换 去除注释 头文件展开
编译 gcc -S hello.i -o hello.s 生成汇编代码 语法检查语义检查 词法分析
汇编 gcc -c hello.s -0 hello.o 将汇编代码生成机器可识别的二进制代码
链接 gcc hello.o -o hello 生成可执行文件或者是库文件
静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”
动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。
linux 下的gdb的调试
gcc hello.c -o hello -std=c99 -g (gdp 调试 必须加上-g 选项)
1. l 加行数 显示 再加 l 继续跟着显示 r : run 运行
2 b 打断点 b+行数 就是在哪一行打上一个断点
3 info b 显示断点的信息 n 单条执行 s进入函数调用 finish 执行到当前函数的返回
4 continue /c 从当前位置开始连续 而非单步的执行程序
5 delete breakpoints 删除所有断点 delete breakpoints n 删除序号为n 的断点
6 disable breakpoints 禁用断电 enable breakpoints 启用断点
7 display 变量名:: 跟踪查看一个变量 每次停下来都显示它的值
8 undisplay 取消对先前设置的那些变量的跟踪
9 until x 跳转到第x 行 quit 退出gdb