2

Linux基础

操作系统的基本概念

  • 主流操作系统:Windows、Linux、Android、iOS等
  • Windows:操作简单,性能较低
  • Linux:操作麻烦,学习较为困难,性能好,可移植性强。
  • Android:移动操作系统,是基于Linux开发的(使用的是Linux的内核)
  • 多机开发:开发嵌入式程序需要Linux环境,同时也需要一些Windows环境,主要是因为Windows环境中有一些很好用的软件。但是同时使用两台电脑是不太可能的,所以这里就需要用到虚拟机软件了(在虚拟机中装另外一个系统)
  • 虚拟机软件VMware在Windows系统中运行,运行后它会模拟一台电脑出来,我们可以在这台电脑上安装其他操作系统,所以叫虚拟机。

Linux常用命令及操作

  • 隐藏文件:Linux中隐藏文件是以.开头的,跟文件属性无关。
  1. man :用来查询man手册,获取对应命令的帮助信息

    • man 1 ls :1表示查询的是Linux命令(查询ls的使用方法)
    • man 2 xx :2表示查询的是Linux的api
    • man 3 xx :3表示查询的是C库函数
  2. ls :显示当前文件夹下所有普通文件(不包含隐藏文件)

    • ls -a :显示当前文件下所有文件(包含隐藏文件)
    • ls -l :以详细信息显示当前文件夹下所有普通文件和文件夹
    • ls -al/ls -la/ls -l -a/ls - a -l :四种方法都是以详细信息显示所有文件(包含隐藏文件)
  3. 显示详细信息后,显示出的文件类型:

    • 以 - 开头的:普通文件(二进制文件和文本文件)
    • 以 d 开头的:文件夹
    • 以 l 开头的:符号连接文件(软连接)
    • 以 s 开头的:socket文件
    • 以 p 开头的:管道文件pipe
  4. cd :用来切换目录

    • cd .. :进入上层目录
    • cd ../../ :进入上上层目录
    • cd test/ :进入当前目录下的test文件。
  5. pwd :显示当前目录的全路径(绝对路径)
  6. mkdir :创建文件夹

    • mkdir -p abc/DEF :级联创建文件夹(在当前文件夹下创建abc文件夹,再在abc文件夹下创建DEF文件夹)
  7. mv(move) :移动文件/修改文件名

    • 用法:mv 原文件夹pathname 目的文件夹pathname
    • 例如:mv def/abc ./edg (将当前文件夹下的def文件夹中的abc文件夹的内容移动到当前文件夹中的edg文件夹中,即实现了移动,又实现了改名)
  8. touch :创建空文件(注意与mv创建空文件夹区分)
  9. cp(copy) :复制文件或文件夹(与mv有点像)

    • 用法:cp 源文件pathname 目标文件pathname
    • cp :复制文件
    • cp -f :强制复制文件
    • cp -rf :复制文件夹
  10. rm :删除(remove)

    • rm 文件pathname :删除文件
    • rm -f 文件pathname :强制删除文件
    • rm -r 文件夹pathname :删除文件夹
    • rm -rf 文件夹pathname :强制删除文件夹
  11. rmdir :删除文件夹(只能删除空文件夹)
  12. cat :直接在命令行下显示文件内容
  13. ln :连接文件

    • 连接文件:在Windows中,某个文件的快捷方式与这个文件就是连接文件关系,他们是两个文件,但是有某种关联。
    • 软连接(符号连接):效果相当于Windows中的快捷方式(源文件删除后,连接文件也无效,有主从关系)
    • 硬连接 :源文件删除后,连接文件任然有效,任然能打开源文件中的内容,但是源文件是已经删除了的(没有主从关系,地位平等,删除哪一个对另一个都没影响)
    • 创建软连接文件方法: ln -s 源文件名 连接文件名
    • 创建硬连接文件方法: ln 源文件名 连接文件名
  14. apt-get :用于在Ubuntu中在线安装/卸载软件(必须联网)

    • apt-get install vim :在线安装vim
    • apt-get remove vim :在线卸载vim
    • 在Ubuntu中安装软件其实是非常困难的,很容易就会安装到不适合该版本的软件,但是使用apt-get安装软件,系统会自动在网络中搜索匹配的软件,不会安装不合适的版本。
  15. gcc 文件名 -o 可执行程序名 :编译文件(编译后会得到一个可执行程序,此时输入./可执行程序名,即可运行程序)

Linux高级命令

  1. find:find -name “abc” 在文件夹a目录下查找名字为abc的文件(查找文件名)
  2. grep:在文本文件中查找某个词(用于查找某个字符在哪些地方出现过)具体用法在man手册中去查。
  3. uname:显示系统信息(uname -a显示所有系统信息)
  4. shutdowm -h now :立即关机
  5. init 0 :关机
  6. shutdown -r now :立即重启
  7. reboot :重启
  8. tree :从根目录开始用树形结构的方式显示文件和目录。
  9. mount/umount :用来挂载/卸载磁盘到文件系统中去。
  10. df -h :显示所有已挂载的分区列表
  11. du -h 文件名 :列出文件或文件夹的大小
  12. 用户管理:

  13. 权限管理:用来管理系统中文件的权限

  14. 打包文件与解压缩

vim编辑器的使用

vim基本应用

vim高级应用

  1. 查找功能:在命令模式下输入 /xxx,光标会跳转到xxx位置去。
  2. 快速切换行:在命令模式下输入 :行号,就可以快速定位到该行。
  3. 设置显示行号:在命令模式下输入 :set nu,就会显示行号了(:set nonu 取消行号)
  4. 显示行号只会在这次打开的文件中显示,当关闭文件再次打开时,行号仍然没有显示。
  5. 永久显示行号方法:vim ~/.vimrc 进入配置文件,再进入输入模式,输入set nu,然后保存并退出即可。
  6. 行删除:将光标移动到要删除的那一行,在命令模式下按dd即可(结合快速切换行 :4 回车,切换到第四行,然后dd删除)
  7. 连续删除多行:在命令模式下按4dd,即可删除光标之后的连续4行(行数+dd)
  8. 行复制: nyy(n是行数,yy是复制命令)
  9. 行粘贴:p (p是命令,粘贴是粘贴到光标所在行的下一行)

Linux中特殊符号的含义

普通用户与特权用户

VMware共享文件夹

Linux编程C语言基础补充

指针

int mian()
{
    int a = 10;
    int *p;       //定义一个指针
    p = &a;    //这个指针指向变量a所在的地址。
    *p = 111;  //改变指针所指地址的值,*p代表指针所指向的变量
   printf("a = %d",a);  //输入a = 111
   return 0;
}

指针与数组

int main()
{
    int a[5] = {1,2,3,4,5};
    int *p;
    p = &a;            //编译后会出现警告,因为&a是数组的首地址,应该赋给一个数组指针。
    p = &a[0];
    p = a;       //数组名a作右值时代表数组的首元素地址,即a[0]的地址。
    

}

结构体与共用体

//结构体定义
struct jiegouti
{
   int a;
   char b;
   float c;
};

//共用体定义
union gongyongti
{
    int a;
    char b;
    float c;
};

宏定义与枚举

变量

常量

跨文件调用

头文件引用


夜枫微凉
24 声望4 粉丝