第一天:Linux命令 vim操作

第二天:数据类型 运算符 顺序语句
第三天:分支语句 循环语句
第四天:循环语句 数组
第五天:数组
第六天:指针
第七天:函数 数组与指针
第八天:数组指针
第九天:递归
第十天:结构体

嵌入式------->软件控制硬件

windows 闭源的
Linux 开源的

Linux的常用版本
ubuntu
centOS
redhat

VM:虚拟机 虚拟一台PC

Linux是一个开源的、多用户的、多任务的、要求必须要以用户名和密码去登录。

1.Linux常用命令(命令名称 选项 还有参数之间一定要有空格)

打开终端 : ctrl + alt + t

命令提示符:
linux@ubuntu:~$
用户名@计算机名:当前路径$
$ : 代表当前登录的用户是一个普通用户
# :当前登录用户为root用户(超级用户)

查看当前路径 pwd
用户的工作目录:(家目录 ~)
/home/用户名
这个用户的操作权限就在工作目录之下

ls : 查看内容
ls : 查看当前路径下的内容
ls 目录路径: 查看指定路径下的内容
ls -a : 查看当前路径下的所有内容(包含了隐藏文件 以.开头的文件)
ls -l : 查看当前路径下内容的详细属性

drwxrwxr-x 13 linux linux 4096 11月 10 17:16 class
第一个字符代表的是文件类型

Linux下一切皆文件,一共有7种文件类型
- 普通文件
d 文件夹
l 链接文件
c 字符设备文件
b 块设备文件
p 管道文件
s 套接字文件

rwxrwxrwx 可读可写可执行
第一组rwx代表用户自己对这个文件的操作权限
第二组rwx代表组里面的其他用户对文件的操作权限
第三组rwx代表其他组的其他用户对文件的操作权限

ls -R : 以递归的像是显示当前路径下的内容

相对路径:具体看参照物
绝对路径:从根目录开始的路径

cd : 切换路径
cd 目录路径: 切换到该目录下
cd .. : 退回上一级目录
cd . : 当前路径
cd ~ (cd) : 快速返回家目录
cd - : 返回上一次所在目录

touch 文件名 : 新建普通文件(可以多个文件一起新建 touch 1.c 2.c 3.c )
rm 文件名: 删除文件

mkdir 文件夹名: 新建文件夹
mkdir day1 day2 day3 //新建day1 day2 day3在同一级目录下,并列关系

mkdir -p 目录路径
mkdir -p day1/day2/day3 //新建day1/day2/day3在当前路径,当前路径只能看见day1文件夹,嵌套关系

rmdir 文件夹名: 只能删除空文件夹
rm -rf 文件夹名:删除文件夹
rm -rf *

cp : 复制
cp 源文件 目标路径 : 将源文件复制到目标路径下 (看现在我处于哪个位置,相对路径会跟着改变)
cp -r 源文件夹 目标路径:
cp 1.txt day1 : 将当前路径下的1.txt复制到当前路径下的day1下面
cp ../2.txt class/day2 : 将上一级目录下的2.txt复制到当前路径的class下的day2

mv : 移动 (改名)
mv 源文件(夹) 目标路径
mv aa bb : 如果bb存在就是将aa移动到bb 如果bb不存在就是将aa改名为bb
思考:如果两个参数都是普通文件?

ctrl+shift+'+' : 放大字体
ctrl+'-' : 缩小字体
clear(ctrl+l) : 清屏
sudo : 增加权限
向上的箭头 : 查看历史命令
Tab : 自动补全
(1)按一次自动补全
(2)按两次会将所有前缀相同的文件列举出来

2、vim编辑器

vim 文件名 : 打开一个文件,文件存在就直接打开,文件不存在会新建并打开

vim一共有三种模式 命令行模式 插入模式 底行模式

vim打开一个文件进去是命令行模式,编辑文本一定要在插入模式
命令行模式----->插入模式 按i o a
插入模式------->命令行模式 按esc
命令行模式----->底行模式 shift + ':'

保存文件是在底行模式下(以:开头)
:w 只保存
:q 只退出
:wq 保存并退出 :x ZZ(命令行模式下)
:w! 强制保存
:w filename 将文件保存在filename里面

命令行模式下:
nyy : 从光标所在行开始复制n行
p : 从光标所在的下一行开始复制
u : 撤销
ctrl+r : 反撤销

首先将光标放在要开始复制的行(具体哪个位置没有关系),然后按nyy复制n行
接下来将光标放在要开始粘贴的位置,按p,会从光标所在下一行开始粘贴

:set nu 显示行号
:set mouse=a 鼠标控制光标
:set tabstop=4 设置tab键的空格数

gedit 文件名

3、gcc编译

编辑---->编译---->运行

编译:
gcc test.c //如果文件没有错误,会默认生成可执行文件叫a.out
运行:
./a.out

gcc test.c -o test //将默认生成的a.out改名叫test
./test

C程序的入口 main
main函数格式:
int main(int argc, char *argv[])
{
//代码块
return 0;
}

int main()
{
//代码块
return 0;
}

main() -----> 默认返回值就是Int
{
}

void main()
{
//return ;
}

4、计算机的组成

硬件:
CPU:
控制器 运算器 寄存器
存储器
内存: RAM(随机存储器 断电会丢失) ROM(只读存储器)
输入设备
键盘
输出设备
显示屏
软件:
系统软件(windows linux)
应用软件

一台没有任何软件的计算机叫“裸机”。

存储器的分类:
内存 : 容量一般 读写速度比较快
外存 : 容量大 读写速度慢
寄存器 : 容量小 读写速度非常快

HQYJ嵌入式学习笔记——C语言复习day1的更多相关文章

  1. HQYJ嵌入式学习笔记——C语言复习day2

    1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7   (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...

  2. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  3. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  4. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  5. ARM9嵌入式学习笔记(1)-Linux命令

    ARM9嵌入式学习笔记(1)-Linux命令 实验1-1-2 Linux常见命令使用 添加用户useradd smb; 设置账户密码passwd smb; 切换用户su - root 关机命令shut ...

  6. ARM9嵌入式学习笔记(2)-Vi使用

    ARM9嵌入式学习笔记(2) 实验1-1-3 Vi使用 vi创建文件vi hello.c:vi smb.conf-打开文件smb.conf i键-插入模式:esc键-命令行模式::-底行模式: 底行模 ...

  7. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  8. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  9. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

随机推荐

  1. SSH入门开发(实现一个简单的登录功能)详解

    开头,首先想记录下一首诗,是今天拇指阅读看到的:很有感触,所以乐于分享: 那么,下面正式开始进入正题,搭建一个 SSH完整的项目: 首先,我们需要在WEB-ROOT下创建一个login.jsp(登录) ...

  2. Tomcat 核心组件 Connector

    Connector是Tomcat的连接器,其主要任务是负责处理浏览器发送过来的请求,并创建一个Request和Response的对象用于和浏览器交换数据,然后产生一个线程用于处理请求,Connecto ...

  3. SpringApplication.run

    SpringApplication.run一共做了两件事,分别是 创建SpringApplication对象 利用创建好的SpringApplication对象,调用run方法 1.创建SpringA ...

  4. cloudera manager server迁移

    一.迁移背景 服务器出了问题,导致整个cm server界面呈现出不可用的状态,也就是获取不到各个大数据组件以及主机相关的状态的信息,整个cm server的前端界面处于瘫痪的状态,不可用,刚开始怀疑 ...

  5. Pytest(3)fixture的使用

    fixture的优势 Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进: 命名方式灵活,不局限于 setup 和teardown 这几个命名 conf ...

  6. SOLID:面向对象设计的五个基本原则

    在程序设计领域,SOLID 是由罗伯特·C·马丁在 21 世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则.当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软 ...

  7. unix环境高级编程第三章笔记

    文件描述符 1.文件描述符的概念 对于内核而言,所有打开的文件都会用一个文件描述符来引用,打开或和创建一个新文件的时候,内核会给进程返回一个文件描述符,而当使用read write时,可以使用这个文件 ...

  8. HDU-4773 Problem of Apollonius (圆的反演)

    参考: https://oi-wiki.org/geometry/inverse/ https://blog.csdn.net/acdreamers/article/details/16966369 ...

  9. Educational Codeforces Round 2 E. Lomsat gelral(dsu)

    题目链接 题意:给你一棵以1为根n个点的树,问你以i为根的子树的众数和是多少 思路:dsu是一种优化暴力的手段 首先进行轻重链剖分 然后只记录重链的信息 轻链的信息就直接暴力查找 经过证明这样复杂度可 ...

  10. HDU5407 CRB and Candies 【LCM递推】

    HDU5407 CRB and Candies 题意: 计算\(LCM(C(n,0),C(n,1),C(n,2),\cdots,C(n,n-1),C(n,n))\) \(n\le 10^6\) 题解: ...