C/C++教程

C/C++ 学习笔记 2021年10月26日

本文主要是介绍C/C++ 学习笔记 2021年10月26日,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

学习工具、网站、方法
    分享代码的平台:GitHub、码云(每个大的项目)
     总结知识点平台:CSDN、博客园(写博客至少每周一篇)
     笔试面试题:牛客网【专项练习、剑指office】、力扣【算法】(刷题)、PAT考试

     问答网站:思否、知乎、抖音、今日头条
     思维导图:总结归纳知识点 (xmind)
     makedown: typora
     文本编辑器:VS code
     视频播放器:potplayer(倍速)

开发环境:
    virtualBox 虚拟工具 免费开源
    Ubuntu 20.04 LTS(长期支持有效)
    vim 代码编辑器
    gcc 编译器

linux系统介绍(UNIX)
    BCPL语言-> newB-> C语言-> UNIX-> Minix-> Linux
    Linux管理硬盘的能力强大,所以我们看到的只有一个分区
    / 根目录,所有文件都存储在它的下面
    ~ 用户主目录
    .       当前目录
    ..      上一级目录
    /bin    存储系统命令*
    /dev    存储设备文件(一切皆文件)
    /media  多媒体目录(U盘、光驱、挂的目录)
    /proc   记录了程序运行期间资源的使用情况
    /sbin   存储超级用户才能使用的系统命令
    /tmp    存储一些临时文件 
    /boot   存储系统启动相关文件
    /etc    存储的各种软件的配置文件
    /lib    存储一些普通的库文件(静态库.a、共享库.so)*
    /mnt    存储与其他系统进行映射的目录文件
    /root   超级用户的目录(需要权限)
    /srv    存储一些系统启动后需要提取的数据文件        
    /usr    存储头文件*
    /home   存储用户主目录*
    /opt    存储安装的应用软件
    /run    存储一些临时文件
    /sys    存储系统相关的文件

    注意:目录结构是倒树结构,目录的切换只能上下,不能左右

相对路径和绝对路径:
    绝对路径:    从跟目录开始描述一个位置 /user/include
    相对路径:    从当前位置(工作路径)描述另一个位置 ../include

Linux的系统命令:
    常用命令:
        ls     显示当前目录下有哪些文件
        -a     显示当前目录下所有文件,以.开头的都是隐藏文件
        -l     显示文件的详细信息
        cd     进入一个目录
        clear  清理屏幕(ctrl+l)
        pwd    显示当前路径
        whoami 显示当前用户名

    文件相关的命令:
        注意:不是所有的功能都有对应的命令
        touch filename  创建文件
        rm filename     删除文件(不经过回收站,要慎重)
        cat/more/head/tail      查看文件
            cat     会把文件的内容全部显示到终端上,适合内容较少的文件
            more    从文件的开头分页显示,回车显示下一行,空格显示下一页,q退出
            head    只显示开头10行
            tail    只显示末尾10行
        cp src(源头) dest(目标)     复制文件
        mv src dest     移动文件,具备重命名文件的功能

    目录相关的命令:
        mkdir dirname       创建目录
            -p      可以创建多层目录
        rmdir dirname       删除目录(只能删除空目录)
            rm -rf      删除非空目录
        cp -rf src dest     复制目录
        mv src dest     移动目录
    
    网络相关的命令:
        网络相关的系统命令:
            ifconfig    查看网络配置信息
                windows 中查看是ipconfig
                sudo ifconfig etch0 10.0.2.xxx netmask 255.255.255.xxx     修改ip地址、子网掩码
                sudo ifconfig eth0 down     禁用网卡    
                sudo ifconfig eth0 up       启用网卡
            ping ip地址     测试网络连通性
                可以测试ip,亦可以测试网址
                ping 127.0.0.1本机地址,可以用来测试网卡是否正常
                windows     只测试4次,-t或/t 连续测试,ctrl+c结束

        网络相关的非系统命令:
            ftp ip地址      输入用户名和密码    采用的是明码传输,不够安全,有可能被窃听,一般在公司内部使用
            telnet  ip地址  然后输入用户名和密码    采用的是明码传输,不够安全,有可能被窃听,一般在公司内部使用
                            用于远程登录一台服务器进行使用
            ssh 用户名@ip地址,然后输入密码     采用加密方式传输,因此比较安全


            exit    退出
    
    其他相关命令:
        tar     压缩、解压文件
                -zcvf 包名 要压缩的目录       创建压缩包
                    tar -zcvf dir.tar.gz dir1
                -zxvf 包名                   解压压缩包
        chmod   修改文件权限
            chmod mmm 文件名 m=r(4)+w(2)+x(1)   [mmm:自己、同组、其他]  注意:目录必须拥有执行权限才能进入访问
            chmod +/-rwx 文件名     所有用户权限一起增减
        find 位置 条件      查询文件
            find / -name stdio.h
        grep "关键词" 文件名    过滤内容
            grep "printf" /usr/include/stdio.h
    
    重启系统:sudo reboot
    关机: sudo init 0 
    安装软件: sudo apt-get install 软件名
    更新软件源:sudo apt-get update
    更新系统:sudo apt-get upgrade

    man key     查询帮助手册    
        分章节管理内容:
            1、系统命令
            2、系统函数
            3、C标准库函数

    Ubuntu使用小技巧:
        crtl+l  清理屏幕
        tab     自动补全文件名、目录名
        crtl+alt+t    快速打开终端
        crtl+shift+t    终端下新建标签页
        ctrl+tab+方向键     切换工作区
        alt+tab     切换程序

    重定向、管道、通配符:
        重定向: 把命令的执行结果写入文件中
            cmd > filename(ls > filename)     如果文件不存在则创建,如果文件存在则清空再写入
            cmd >> filename     如果文件不存在则创建,如果文件存在则追加写入
                gedit ls_ret.txt

        管道:  类似一根管子把两个命令连接起来,一个目录的执行结果作为另一个命令的数据源
            cmd1 | cmd2
            find / | grep " stdio"      查询所有文件名中包含stdio的文件
        通配符: 可以进行模糊执行命令
            ?   可以替代任意的一个字符
            *   可以替代任意的多个字符             

终端的配置文件:
    打开 gedit ~/.bashrc 文件,在文件末尾添加
        # 精简命令提示符
        PS1="\u@\w$ "
        #新建目录并进入
        mk()
        {
            mkdir $1 && cd $1
        }
    保存退出,source ~/.bashrc 重新加载配置文件,使修改生效
    打字练习软件:typespeed
    sudo apt-get install typespeed
    注意:终端窗口至少 80*24 

vim文本编辑器:(不是系统命令)
    可以在终端下采用纯键盘操作的一文本编辑器,号称”编辑器之神“,可以升级(二次开发)、可以扩展(安装插件)
    基本用法:
        进入vim:vim filename.c     如果文件不存在则创建,文件存在则打开
        输入 i:进入编辑模式,编写代码
        保存退出:按Esc键退出编辑模式,输入ZZ保存并退出
    三大模式:
        正常模式:一般用于阅读文件,或者使用快捷键快速地修改文件
        编辑模式:一般用于编辑文件,输入内容
        行底模式:一般用于对vim进行配置,或者执行一些高级操作
    模式切换:
        正常    输入 i  ->插入
        插入    Esc     ->正常
        正常    输入 : ->行底
        行底    Esc     ->正常

    正常模式的常用操作:
        光标移动:
            h(左) j(下) k(上) l(右)
            gg 光标跳转到第一行
            G  光标跳转到最后一行
            n回车   光标向下跳转n行
            n-      光标向上跳转n行
            nG      光标跳转到第n行
            vim filename +n 进入文件后光标跳转到第n行
            home    光标跳转到行首
            end     光标跳转到行尾
            PgUp    向上翻页
            PgDn    向下翻页
        删除代码:
            x   删除一个字符
            nx  删除n个字符
            dw/de  删除一个连续的字符串(区别在于删不删空格)
            d$  从光标处删除到行尾
            d^  从光标处删除到行首
            dG  从光标处删除到文件末尾
            dgg 从光标处删除到文件的开头
            dd  删除当前一行
            ndd 删除n行(往下)
            u   撤回
        复制代码:
            yy  复制当前一行代码
            nyy 复制n行
            p(小)   粘贴当前光标的下一行
            P(大)   粘贴当前光标的上一行
        移动代码:
            删除的内容会存储在缓冲区,可以使用p\P进行粘贴,从而达到移动代码的效果
        替换代码:
            r   替换一个字符
            cw  替换一个单词
            R   进入替换模式 ins键
        撤销操作:
            u(小)   撤销上次操作
            U(大)   撤销该行的操作
            ctrl+r  取消撤销操作

    进入插入模式的方法:
        i   在当前光标前进入插入模式
        I   光标跳转到行首,进入插入模式
        a   在当前光标后进入插入模式  
        A   光标跳转到行尾,进入插入模式
        o(小)   光标在当前行下面插入一行空白行,进入插入模式
        O(大)   光标在当前行上面插入一行空白行,进入插入模式 

    插入模式下的操作:
        ctrl+p  自动补全,变量、函数名
        ctrl+c  相当于Esc键
        ctrl+j/m    相当于回车键
        自定义功能:
            ctrl+z 保存退出
            (gcc hello.c  ./a.out)
            ctrl+x 保存编译运行
            ctrl+p 导入头文件、main

    行底模式下的操作:
        w   写入
        q   退出
        q! 强制退出
        wq  保存退出
        x(小)   保存退出
        X(大)   加密,注意wq保存退出才生效,ZZ只保存内容不保存属性
        set key=空格    去掉密码
        !cmd    执行系统命令    例如:!ls
        /key    查询,n向下查询,N向上查询
        %s/old/new      全部替换,注意如果同一行有多个old,只会修改第一个
        set nu      设置行号
        set nonu    取消行号
        >n      光标处n行代码向右缩进一次
        <n      光标处n行代码向左缩进一次
        注意:在行底模式下的对vim的配置的设置都只是临时的,如果想长期有效需要把设置语句写入到vim的配置文件中(vim ~/.vimrc)

    对于vim的学习:
        1、适可而止
        2、需要一段时间适应,大概两周
        3、Ubuntu自带的vim教程文档  vimtutor
 

这篇关于C/C++ 学习笔记 2021年10月26日的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!