| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言学习笔记 -> 正文阅读 |
|
[C++知识库]C语言学习笔记 |
英文: read:读,r字母 write:写,w字母 execute:执行,运行,x字母 directory:目录,d字母 2.计算机组成部分:硬件和软件 2.1.硬件部分: 细分两类
核心的两大功能:
从外设拿到数据(读数据,read)或者向外设发送数据(写数据,write)
\3. 了解主流的cpu X86 : intel ,AMD PowerPC: 飞思卡尔,通信产品 EPGA:xilinux ,各行各业 DSP:TI(德州仪器) 各行各业 ARM: (华为海思,高通),手机行业
特点:数据可以进行无限的覆盖 缺点:掉电数据丢失(就是重启或者断电) 优点:数据的读或者写速度非常快(比CPU慢,比硬盘快) 问:何为cpu访问控制操作内存呢?到底啥意思呢? 答: 就是cpu从内存存读数据,例如:读取1,1 还有就是cpu向内存写入数据,例如:写入2
特点:数据也可进行无限的覆盖 缺点:数据的读或者写操作太慢了,所以数据操作一般都要先从硬盘拷贝到内存
优点:数据永久性不丢失,也就是掉电数据不丢失 2)其余可选外设 外设:外接的硬件设备 例如:鼠标,键盘,显示器,显卡, WIFI, 触摸屏,内存,U盘等 功能:1. 给cpu提供数据
注意: 哪些外设需要有,哪些外设不需要,都是根据用户的需求来定 2.2.软件:细分三大类 2)软件部分:细分三类 a)操作系统(类似大管家) 功能:操作硬件(由操作系统中的驱动程序这类软件完成),给程序(QQ, 360等)分配CPU资源和内存资源 明确:任何程序要想得到运行,必须先有CPU资源,只有CPU资源,才能数据运算,程序才算真正的运行明确:任何程序都是运行在内存中,所以后续计算机软件编程最终的目标就是怎么玩内存! b) shel1终端程序:(类似二管家,例如: windows下的黑窗口程序) 功能:接收用户从键盘上输入的各种命令,然后执行这些命令,完成一定的功能 例如:输入notepad命令,立马启动一个记事本程序 3)各种应用程序:QQ,吃鸡,抖音 ,百度浏览器等
windows:微软 linux:开源(免费和付费),推荐三大主流linux系统: ubuntu(推荐,64位,版本:18.04 ),fedora,kali(黑客最爱) 苹果:MAC IOS 安卓:本质就是linux 谷歌公司的 vxwork:付费(硬实时操作系统,以上linux,windows等都是软实时操作系统)
开源免费 1991年正式发布 linux内核之父:linus 推荐linux发展视频:<> 5.linux系统理念(信仰)[关键] 五个字:一切皆文件 含义:在linux系统中,所有的硬件外设(键盘,鼠标等)都是以文件的形式存在 所以在linux系统中,如果应用程序(例如QQ等)要想访问某个硬件外设 只需访闸这个硬件外设对应的文件即可,访问这个文件就是访问硬件外设本身! 例如: 硬件外设 对应的文件名 键盘 event0 鼠标 mouse0 显示器 fb0 触摸屏 event1 摄像头 video0 所以:QQ要从键盘读取数字:read(event0) 问:linux系统中文件如何管理呢? 答:靠文件系统(仅仅是一个名词)来管理文件 不同的文件系统管理文件的方式方法不一样 例如:硬盘一般用NTFS文件系统一(管理的文件大小无限制)
6.linux系统中跟文件和目录(也是一种特殊的文件,俗称文件夹)相关的概念 6.1.目录:能够包含其他目录和文件 6.2.根目录:文件系统中最上一层的目录,用"/"表示 也就是linux系统中所有的目录和文件他们都是位于"/"根目录下 例如:/home(语义:在根目录下有一个home目录或者一个home文件) 6.3.子目录:位于其他目录下的目录
6.4.父目录:子目录的上一层目录
6.5.当前目录(又称工作目录):当前正在使用或者所在的目录,用’.'表示
上一级目录:当前目录的父目录,用"…"表示 例如:…/…/:上一级的上一级目录 6.6.主目录:登录linux系统时,需要一个用户,linux系统给这个用户专门指定了一个专有的目录
例如:登录linux系统的用户名叫tarena,tarena用户的主目录:/home/tarena 登录linux系统的用户名叫zhangsan,zhangsan用户的主目录:/home/zhangsan 6.7.路径:目录和文件的位置,又分两种: 绝对路径:以"/"开头的路径表示形式
相对路径:不以"/"开头的路径表示形式 例如:home/tarena或者./home/tarena或者…/…/ 由衷建议:以后软件代码中最好写绝对路径 open(“my.txt”); //前提是程序运行之前必须先进入my.txt文件所在的目录下,否则打开open失败 或者 open("/dev/my.txt");//爱在哪个目录下就在哪个目录下 7.掌握linux系统必要命令: 建议:通过输入各种命令替代图形界面操作方式 命令格式:命令名 选项 7.1)pwd:获取当前所在路径 7.2)ls:获取目录和文件的信息 形式1: ls -lh //获取当前目录下所有的目录和文件的详细信息 形式2: ls -lh 文件名 //获取此文件的详细信息 例如: ls -lh /home/tarena/qw.c 得到以下信息:
说明: ‘-’:表示此文件就是一个普通的文件 ‘rwx’:表示当前登录linux的用户对此文件可以读(查看文件),可以写(向文件写入信息),可执行 ‘rw-’:表示当前登录linux的用户所在的组对此文件可以读,可以写,不可执行运行 ‘r–’:表示其他的linux用户对此文件可以读,不可写,不可执行 ‘1’:表示硬连接数(不关注) ‘tarena’:表示当前登录linux系统的用户名 ‘tarena’:表示tarena用户所在的组 ‘70’:表示此文件大小为70个字节 “Jun 25 16:36”:文件的创建日期 ‘qw.c’:文件名 7.3)clear:清屏命令 7.4)cd:切换路径:cd /home/tarena 7.5)mkdir:创建目录:mkdir -p /home/tarena/hello/hello1 7.6)touch:创建空文件:touch /home/tarena/hello.txt 7.7)rm:删除目录和文件: rm -fr /home/tarena/hello 7.8)cp:文件或者目录拷贝:cp -fr 源文件 新文件
注意:cp hello.txt hello/ 分3种:
切记:只要是目录操作,建议最后一定加分隔符’/’,来区分是目录还是文件 建议每次输入命令,用TAB键来补全,也会顺便给你添加’/’ 7.9)mv:移动,剪切 -------------------------------------------------------------------------------------------------------------- 7.10)cat 命令:快速查看文件的内容
7.11)echo命令:向显示器打印输出数据命令 例如:echo "我是大神"或者echo 我是大神 注意:此命令一般配合">“和”>>"(统称重定向符) 例如: cd /home/tarena/ touch hello.txt echo 我是大神 > hello.txt 意思是:先将hello.txt文件内容删除,然后将新内容写入到文件 cat hello.txt echo 我是小神 >> hello.txt 意思是:将新内容追加到文件的后面 cat hello.txt 7.12)find命令:到某个指定的路径下找文件或者目录 格式:find 路径 -name 要找的文件名 例如:find /usr/include -name stdio.h 语义:到/usr/include目录下找一个文件名为stdio.h这个文件 7.13)grep命令:到某个路径下的某个文件中搜索字符串 例如:grep “我是大神” * -Rn 语义:在当前目录下的所有文件中搜索我是大神字符串 “*”:表示全部文件 “-Rn”:到子目录下也同样搜索,并且打印字符串所在的行号 7.14)linux系统解压缩的三条终极命令: linux常用的两种压缩格式:bz2和gz 压缩命令: tar -jcvf 压缩包.tar.bz2 目录或者文件 tar -zcvf 压缩包.tar.gz 目录或者文件 解压缩: tar -xvf 压缩包.tar.bz2 / 压缩包.tar.gz 例如: cd /home/tarena/ mkdir hello touch hello.txt echo 我是大神 > hello.txt cat hello.txt echo 我是小神 >> hello.txt cat hello.txt mv hello.txt hello/ tar -jcvf hello.tar.bz2 hello/ //把hello目录压缩成hello.tar.bz2压缩包 tar -zcvf hello.tar.gz hello/ ///把hello目录压缩成hello.tar.gz压缩包 tar -xvf hello.tar.bz2 tar -xvf hello.tar.gz \8. 掌握大名鼎鼎的linux编辑器软件:vim 8.1.常用的开发编辑器软件:vim,vscode,sublime等 重点放在vim 8.2.vim命令格式:vim 文件名 //打开一个文件 8.3.vim三种模式:可视模式,编辑模式,命令行模式 可视模式:只能看不能编辑 编辑模式:可以输入各种文本信息 命令行模式:给vim输入各种控制命令 8.4.vim三种模式之间的转换: 明确:第一次刚执行vim命令之后,首先进入可视模式 可视模式-----按i键或者o键或者a键---->编辑模式 编辑模式-----按ESC键----------------->可视模式 可视模式-----按shift+:组合键--------->命令行模式 编辑模式-----先按ESC进入可视模式—>按shift+:组合键--------->命令行模式 8.5.vim命令行模式下相关的命令 w:保存文件 q:不保存并且退出vim wq:先保存后退出vim q!:强制直接退出,不保存文件 %s/原来内容/新内容/g:将文件中原来的内容全部替换成新内容 n1,n2s/old/new/g:将文件从n1行到n2行所有的old内容换成new内容
! linux命令,例如:! ls :在vim命令中来执行linux的其他命令,再例如:! cd /home/tarena 案例:练习vim,打开一个新文件,随意输入各种信息 8.6.vim快捷键(前提是先切换到可视模式下,然后再各种快捷键)
列选中:ctrl+v然后按hjkl方向键选中
先进入命令行模式执行: vs 文件名,实现左右分屏 目的:一个屏幕上可以同时编辑多个文件 屏幕切换快捷键:ctrl+ww
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 4:35:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |