Linux⭐

121 阅读2分钟

vi命令模式

  1. 复制文本
  • yy yank(拉拽)复制光标所在的行
  • yw复制光标所在的位置到单词的结尾
  • p粘贴内容到光标的后一个位置
  • P粘贴到当前行
  1. 删除文本
  • dd 删除光标所在的行
  • dw删除光标所在的单词
  • d0删除光标左边的内容(不包括本光标)
  • d$删除光标右边的文本(包括本光标)
  • dgg删除光标所在行之前的所有行(包括本行)
  • dG删除光标之后的所有行 (包括本行)
  • x删除光标所在位置的字符(可用del键)
  1. 修改文本
  • cc修改光标所在的文本
  • r修改光标所在的字符
  • R进入替换模式
  • uundo撤销前一条命令
  1. 搜索字符串
  • /从上往下
  • ?向前搜索

vi末行模式

  1. 字符串的替换
  • :s/str1/str2用str2替换首次出现的str1
  • :s/str1/str2/g替换行所有出现的str1
  • :3,7 s/str1/str2/g替换3-7行所有的字符串,当前行可以用.最后行可以用$
  1. 文本内容的移动
  • :1,5 m 8把1到5行内容移动到第8行
  • :3,4 co $把3-4行复制到最后一行 3.其他功能
  • :80光标移动到80行
  • :$-1光标移动到倒数第2行
  • :w filename另存为
  • :set 设置(set number显示行号)(set nonumber不显示行号)

GCC基础

  1. 预处理 -E 生成.i
  2. 编译 -S生成.s
  3. 汇编 -c生成.o
  4. 链接 gcc hello.o -o hello生成可执行文件

命令格式gcc [选项] 要编译的文件 [选项] [-o文件名]

  • 默认生成a.out

GCC选项

  • -I可以向gcc的头文件搜索路径中添加到新目录
  • -L指定库文件的搜索路径
  • l链接特定的库文件
  • -w关闭所有的告警
  • Wall发出所有告警
  • Werror把所有的告警转化为错误信息,并在告警发送时终止编译
  • -ansi支持符合ANSI标准的C语言

GDB调试器

准备工作: -g加上-g才可以将调试信息加入到gcc输出的可执行程序中,否则不能正常调试

  • break(b)设置断点
  • step(s)单步调试,且进入函数
  • next(n)单步调试,不进入函数
  • delete[断点号]删除断点
  • c继续执行,直到下个断点
  • r运行

make工程管理器

makefile eg1:

 hello:hello.c
     gcc hello.c -o hello#必须是Tap键

eg2:

program:main.o add.o dec.o mul.o div.o
    gcc main.o add.o dec.o mul.o div.o -o program
main.o:main.c main.h
    gcc -c main.c -o main.o
add.o:add.c
    gcc -c add.c -o add.o
dec.o:dec.c
    gcc -c dec -o dec.o
mul.o:mul.c
   gcc -c mul.c -o mul.o
div.o:div.c
   gcc -c div -o div.o
clean:#伪目标
   rm *.o program

startx启动图形化界面

退出pkill xinit