2019.01.22 Linux基本命令、vim编辑器、gcc编辑器

一.Linux常用命令

1.man 适用于在Linux手册页上查找相应的指令用法

   例:man write 查找write命令的手册页

   man z write 查找系统调用write的手册页   

   man [n] item  其中,n表示节号,一般从1~8;1代表可执行程序,2代表系统调用,3表示C库函数

   查找时,字符n表示查找下一个,字符N表示查找上一个

2.find命令

    find + 路径 + 文件名(表示按照整个路径查找)

    例:find  /  -name hello*(表示在根目录下查找)

3.chgrp 改变文件的属性,改变文件所属群组

    chorp  新的组名  文件名/目录 

    chown 改变文件的拥有者

    chown (-R用于递归)+(xxx用户名)+(文件/目录) 注:把xxx文件/目录改到xxx用户下

4.chmod 改变权限

    一种是用数值表示,一种是用字符

    例:chmod  -R  650  temp(数字6表示用户可读可写,数字5表示的是可读可执行,数值0表示第三方无权限(可读用数字4表示,可写用2表示,可执行用1表示,无权限用0表示))

   chmod  u = rwx(用户自己可读可写)

   chmod og = rw (将第三方和群组的权限改为可读可执行)

   chmod  a - x(所有的取消执行权限)

5.cd ~ 当前用户的家目录

   cd -  前一个工作目录

6.mkdir只能创建一个空的目录子目录需要另行创建

   目录和子目录一起床的方法:一次创建abc三个目录:mkdir -p a/b/c

7.rmdir只能删除空目录,目录下不能有文件,用法和上面的mkdir相似

8.rm删除文件的命令

   rm  -r  文件名(删除制定的文件,会询问是否删除)

   rm  -f  文件名 (强制删除指定的文件)

   rm  -r 删除目录

9.PATH搜索路径,查环境变量

    echo $path 激昂搜索路径回显到屏幕

    PATH = "$PATH":/root(临时增加搜索路径)

10.ls -S按照文件大小排序
         -color -never/always/auto

         -t  按照时间排序

11.cp 复制命令 -i询问是否覆盖,-f强制覆盖 ,-r递归复制(一般是将文件和目录都复制过去)

         -d连文件属性一起复制

         -P功能同-d

         -r递归  连目录带文件一起复制

         -u 更新(根据时间戳自行比较)

         -a作用相同于-d和-P和-r的结合

12.mv 移动(相当于剪切);更名

     mv ____  __源__   __名字__

13.vim编辑器

      cat  从上往下查看
      tac  从下往上查看
      more(一页页显示) 只能往后翻
      less  (一页页显示) 能前后翻

      head 指定显示文件的几行例:head -n 20 hello(显示hello文件的前20行)

14.压缩文件 tar -cvzf
      解压缩文件 tar -xvzf

15.ifconfig 查看虚拟机的IP地址 eth0

16.d1G 删除光标所在行到开头的内容
     dG 删除光标所在行到行尾的内容
     u 撤销命令

     Ctrl+r重复之前的操作
    :/ 从光标开始往下 n 查找选定的字符往下跳
    :? 从光标开始往上 N查找选定的字符往上跳
    :! 调用外部命令 使用 Linux命令
     区块的选择:Ctrl+v 用鼠标选择想要的区域
     V 选定光标所在的整行

17.vim  文件名1   文件名2

     在进入文件名1的命令模式,输入:n往后翻,进入文件名2的命令模式

     :file 列出打开的所有文件的文件名
     :sp (xxx文件)在vim中分屏打开另一个xxx文件的窗口
     Ctrl+wj 往下一个窗口切换
     Ctrl+wk 往上一个窗口切换
     q 退出其中一个窗口


二.gcc编译器

18.gcc 编译器的使用
     gcc +options filename
     其中,options 参数设置
19. -o 指定输出文件(即可执行文件)的文件名, 例 gcc mian.c -o mian
     生成可执行文件 main
20. -E 生成预处理文件,例 gcc -E -mian.c >mian.i;生成预处理文件 main.i
21. -c 只编译,不生成可执行文件,只会产生目标文件
     例 gcc -c mian.c,会生成目标文件 mian.o

22.多文件编译,只有一个主函数

     例:gcc add.c  hello.c  -o  hello.out(hello.c文件中有需要用到add.c)
23. -W 把所有的错误进行报警
24.  -werror 把所有的程序警告当成错误
25. -w 忽略所有的警告
26.  -S 生成汇编程序
27.  -g 生成调试程序
28.  -O O0没有优化(最低)
        O1一级优化
        O2二级优化
        O3三级优化(最高)
29.D 宏定义
     例 gcc mian.c -DPI=3.14
     源程序里面没有用定义PI 在编译的时候直接进行宏定义

30.-U取消宏定义

31.-I ;例:  -Idirname  将dirname所指的目录加入到程序头文件目录列表中,到该目录下去搜

32. -L: 例: -Ldirname  将dirname 所指的目录加入到库文件中

      -l  -lname 指出具体的库

三.静态库(静态函数库是.a文件)

33.创建步骤:①gcc  -c  源文件.c

                       ②ar  rcs + 静态库名  +  目标文件名1  +  目标文件名2 

     其中;rcs是选项,rc指当静态库不存在时,就该库文件,s是更新库文件,静态库名(格式):libxxxxxx.a

34.使用方法:gcc  -o  file  file.c  -L. -lname

      其中,file是可执行文件,-L. 是当前目录,-lname 是库名

 35.ar -d  “库名” 目标文件1,目标文件2……( 删除相应的文件1,文件2…. )

      ar -dv  “库名” 目标文件1,目标文件2……( 删除相应的文件1,文件2….,但是删之前会询问 )
      ar -t “库名” 查看当前库当中的目标文件
      ar -x “库名” 文件1,文件2(提取库当中的 文件1,文件2……)

四.动态库(动态函数库是.so文件)


36.动态库的创建
     gcc -shared -fPIC -o “库名.so” 源文件.c
37.动态库的使用
     gcc 源文件.c ./“库名.so” -o 可执行文件名(.o文件)

五.gdb调试器

38.启动调试程序步骤:①gcc  -g  test.c  -o  test

                                     ②gdb  test

39.设置断点

     在main函数处设置断点:break(或b)    main

     运行程序:run

     单步运行:next(或n)

     继续运行:continue(或c)

40.l   列表查看代码,一般一次10行;

     l + 行号  (从当前行开始向下显示10行)

41.info  break (查看断点)

42.print(或p)   result    (查看循环中某次的result值,其中,这里的result是我的代码中的一个变量)

43.finish  结束当前函数的运行,返回到调用的位置

44.b + 文件名 + 行号 (在某文件的某行设置断点)

45.clear清楚所有的断点

46.q 退出调试模式


小知识点:

1.上节课的补充:

文件名.s .:s 结尾的文件是汇编文件

文件名.i:以.i结尾的文件是预处理之后的文件

ls -l:列出的是长格式的文件,

第一列是文件的属性,第2~4列是用户的权限,第5~7列是群组的权限,第8~10列是第三方权限

d目录文件,p管道文件,c字符文件,b块文件,l 快捷方式文件,s 套接字,- 是普通文件

2.快捷键:

Ctrl + C终止程序运行,Ctrl + d 退出终端,Ctrl + z结束当前进程,Ctrl + l 清屏,Tab快速填充

猜你喜欢

转载自blog.csdn.net/weixin_43809546/article/details/86603079