admin管理员组

文章数量:1604900

目录

一、Linux 系统

1.1.Linux服务器

1.2.Linux嵌入式

1.3.Linux系统上的软件开发

        1.操作系统

        2.Linux内核

        3.man手册

 1.4.shell命令 

        1.基本命令

         2.文件查看命令

        3.文件查找命令

         4.压缩解压文件

        5.其他命令

        6.通配符

        7.管道

        8.重定向

1.5.虚拟机上网

        1.NAT模式

        2.桥接模式 

1.6.配置软件源

        ​编辑 ​编辑

 1.7.安装sougou输入法

1.8.安装vscode

1.9.安装命令

二、Linux系统文件 

三、I/O流

3.1.标注I/O流

3.2.特殊流

3.3.缓存

2.4.函数接口

        1.fopen(打开文件流)

         2.fclose(关闭文件流)

        3.setvbuf  (修改流的缓存类型)

        4.fgetc、fputc

四、总结


一、Linux 系统

1.1.Linux服务器

        开源、免费、运行速度快

1.2.Linux嵌入式

        Linux系统可裁剪

1.3.Linux系统上的软件开发

        1.操作系统

                屏蔽底层不同的硬件平台

        2.Linux内核

                Linux操作系统的核心代码,包括对CPU管理、硬件设备管理、内存管理、文件系统管理、进程调度管理;

                 Shell作用:
                       保护内核 
                       命令解释器

                用户直接操作内核:
                        不安全
                        接口功能复杂

        3.man手册

    1.标准命令
    2.系统调用
    3.库函数
    4.设备说明
    5.文件格式
    6.娱乐
    7.杂项
    8.管理员命令

 1.4.shell命令 

        1.基本命令

        1.ls
            ls -a 
            ls -l  
        2.mkdir 
        3.rmdir 
        4.touch 
        5.rm -rf 
        6.pwd 
        7.cp 
        8.mv 

         2.文件查看命令

        1.cat 文件名 
            查看文件中的内容
        2.grep 字符串 文件名
            在文件名对应的文件中查找字符串相关的行
        3.head -n 文件名
            查看文件中的前n行
        4.tail -n 文件名
            查看文件中的最后n行

        3.文件查找命令

        1.find 路径 -name 文件名 
            在路径下查找文件名对应的文件
        2.locate 文件名
            查找文件名对应的文件所在的路径 
        3.whereis 文件名
            查找已经安装的二进制文件所在路径

         4.压缩解压文件

                .tar.gz 
                .tar.bz2 

    压缩:
        tar -zcvf 文件名.tar.gz 文件名/*
        tar -jcvf 文件名.tar.bz2 文件名/*
    解压:
        tar -zxvf 文件名.tar.gz
        tar -jxvf 文件名.tar.bz2

        5.其他命令

        du -m/k 文件名          查看文件占用的空间大小(Mb/Kb)          
        echo 

        6.通配符

        *:匹配任意长度任意字符的文件名
        ?:匹配一位长度任意字符的文件名 
        [a-z]:匹配a-z之间的任意字符
        [1-9]:匹配1-9之间的任意字符

        7.管道

         ps -ef | grep bash 

        查看进程中与bash相关的进程

        8.重定向

        >  覆盖重定向
        >> 追加重定向

1.5.虚拟机上网

        1.NAT模式

                将虚拟机网络模式设置为NAT模式:

                点击虚拟机,然后点击设置

         

                找到网络设配器,切换位NAT

        配置ubantu网卡位自动获取IP地址

        打开网卡配置文件

                sudo vim /etc/network/interfaces

        将文件内容修改为如下形式
                auto lo 
               iface lo inet loopback 

              auto ens33 
              iface ens33 inet dhcp 
 

         重启网络服务

         sudo /etc/init.d/networking restart 

        使用ifconfig查看IP地址

 

        .测试与百度是否能够连通 

                ping www.baidu

                           
 

        2.桥接模式 

                需要手动配置网络IP

1.6.配置软件源

           1.点击"Ubuntu Software"
           2.对左上角图标右键"Software & Updates"
           3.DownLoads From选择 Other中的 China ali源
           4.点击close 

         

 

输入以下命令
        sudo apt-get autoclean
        清除旧源 

        sudo apt-get update 
        更新新源

        sudo apt-get install -f 
        重建软件源依赖关系 

 1.7.安装sougou输入法

    1.能够上网
    2.apt-get的源已经配置成功
    3.下载fcitx框架
        sudo apt-get install fcitx
    4.在sougou官网下载 x86版本Linux平台deb安装包软件
    5.将其下载后拷贝到Ubuntu系统中
    6.安装软件
        sudo dpkg -i sougoupinyin*.deb
    7.配置搜狗输入法
    8.缺少qt的库:
      sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
      sudo apt install libgsettings-qt1
    9.重启系统 

1.8.安装vscode

    1.能够上网
    2.apt-get的源已经配置成功
    3.在vscode官网下载 x86版本Linux平台deb安装包软件
    4.将其下载后拷贝到Ubuntu系统中
    5.安装软件
        sudo dpkg -i code*.deb
    6.配置vscode 
        可以安装C开发相关插件

1.9.安装命令

二、Linux系统文件 

文件分类:
    1.block     b     块设备文件        按块扫描设备信息的文件
    2.char      c     字符设备文件      按字符扫描设备信息的文件 
    3.directory d     目录文件          保存或管理文件
    4.          -     普通文件          保存数据信息的文件(代码、图片、音视频、压缩包等)
    5.link      l     链接文件          指向其他文件的文件 
    6.socket    s     套接字文件        用于进程间通信 
    7.pipe      p     管道文件          用于进程间通信

三、I/O流

3.1.标注I/O流

stdio.h  
    主要操作普通文件 
    1.打开文件 
    2.读写文件 
    3.关闭文件 

3.2.特殊流

    stdin       标准输入流          行缓存
    stdout      标准输出流          行缓存
    stderr      标准错误流          不缓存

    gets、getchar、scanf是基于stdin实现的
    puts、putchar、printf是基于stdout实现的 
    perror是基于stderr

3.3.缓存

    1.全缓存    4096  4k 
        缓存区满刷新
        
        与文件建立的缓存一般为全缓存

        刷新条件:
            1.缓存区存满了刷新
            2.fflush函数接口刷新
            3.关闭流时会刷新
-----------------------------------------------------------------

    2.行缓存    1024  1k
        遇到\n刷新 

        与终端建立的缓存都是行缓存

        刷新条件: 
            1.缓存区满刷新 
            2.遇到\n刷新 
            3.fflush函数刷新 
            4.关闭流时会刷新

-----------------------------------------------------------------
    3.不缓存    0  0k
        立即刷新 

        刷新条件:
            1.立即刷新

            1.对设备的操作不允许缓存
            2.通信不允许缓存
            3.出错处理不缓存 

2.4.函数接口

        1.fopen(打开文件流)

FILE *fopen(const char *pathname, const char *mode);
      功能:
        打开pathname对应的文件并建立一个文件流
      参数:
        pathname:文件路径
        mode:打开方式
            r      只读             如果文件存在则只读打开
                                    如果文件不存在报错
            r+     读写             如果文件存在则读写打开
                                    如果文件不存在报错
            w      只写             如果文件存在则清0,只写打开 
                                    如果文件不存在则创建
            w+     写读             如果文件存在则清0,读写打开 
                                    如果文件不存在则创建
            a      追加只写         如果文件存在则追加只写打开 
                                    如果文件不存在则创建
            a+     追加读写         如果文件存在则追加读写打开 
                                    如果文件不存在则创建
            "t"	文本文件。如果不写,默认为"t"。
            "b"	二进制文件。
      返回值:
        成功返回FILE*的指针
        失败返回NULL并且将错误码置位 

         2.fclose(关闭文件流)

int fclose(FILE *stream);
      功能:   
        关闭流 
      参数: 
        stream:文件流
      返回值:
        成功返回0 
        失败返回EOF(-1)

        3.setvbuf  (修改流的缓存类型)

 int setvbuf(FILE *stream, char *buf, int mode, size_t size);
      功能:
        改变流的缓存类型
      参数:
        stream:文件流
        buf:缓存区的首地址 
        mode:   
            _IOFBF  全缓存
            _IOLBF  行缓存
            _IONBF  不缓存
        size:缓存区大小
      返回值:
        成功返回0 
        失败返回非0 

        4.fgetc、fputc

int fgetc(FILE *stream);
    功能:
      从流中取出一个字符
    参数:
      strean:文件流指针
    返回值:
       成功返回该字符的ASCII
       失败或者读到文件末尾返回EOF(-1)

----------------------------------------------------------------

int fputc(int c, FILE *stream);
      功能:
        向流中写入一个字符 
      参数:
        c:写入的字符
        stream:文件流指针
      返回值:
        成功返回写入字符的ASCII码值
        失败返回EOF(-1) 

四、总结

        首先,要了解Linux的基础shell命令,下来就是Linux中的文件类型,其中管道和套接字均是用来进程通信的。Linux系统中标准I/O中有三种特殊的I/O,分别是stdin、stdout、stderr,需要了解他们的缓存类型,有助于我们理解C语言程序中使用的printf()和scanf()以及perror()函数;下来就是了解,标准IO的函数接口,其中fopen()打开文件流,fclose()关闭文件流,setvbuf()修改缓存类型。

本文标签: 函数接口常用基础标准