第一周总结

1.linux基础命令和简单C语言

一、嵌入式、Linux背景

嵌入式:硬件与软件相结合

定制、为硬件设计相关代码来进行操作,代码测试,烧进板子,通过语音、图像、按钮等操作方式来调用。

操作系统种类:

Dos、WindowsUnix、Mac、Chmod  os、Android->华为、小米、中兴等等、iOS

介绍一下Linux:

结构:一棵倒置的树

/bin         (binary)                                 可执行二进制或脚本

/boot        (boot)                                  引导程序文件

/dev         (devices)                               系统的设备文件

/etc         (etcetera)                               程序的配置文件

/home        (home)                                用户目录

/lib         (libraries)                                 函数库

/root       (root)                                 根用户(超级用户)的主目录

Linux的主要特点:

完全免费:用户可以通过网络或其他途径免费获得,并可以任意修改其源代码

安全性:Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。

多用户:可以被不同用户使用,每个用户对自己的资源有特定的权限,互不影响。

多任务:同时执行多个程序,而同时各个程序的运行互相独立。

独立性和可移植性都是说可以适应不同环境,内核都是一样的。

基本了解完Linux特点和背景,我们来安装一下虚拟机,安装下Linux系统。

Windows:必选图形界面,上手容易,有文件拓展名,不区分大小写

Linux:可选图形界面,需要有编程基础者使用,不使用文件拓展名,区分大小写

终端,命令驱动

命令组成:commandoptions】【parameter

命令字 选项 参数

命令字:决定了主要操作是什么(命令名称)

参数:指命令的操作对象

选项: 指该操作的一些执行方式

打开终端:ctrl + alt + t或ctrl + alt + n(在已经打开一个终端的前提下)

关闭终端:exit或alt+F4

调整终端:

放大:Ctrl+shift++

缩小:Ctrl+-

切换到根用户:su root

 #root用户

$普通文件

sudo:临时权获取管理员权限,放在需要执行的命令之前

路径分类:

绝对路径 (路径字符串中含根目录的写法)

相对路径 (在一个参考目录位置(当前目录作为参考位置)基础上的一种写法)

看有没有“/,有的话绝对路径

pwd print work directory

作用:显示当前工作目录的绝对路径

manmanual

作用:可以查看命令或函数(OS提供的函数和C库函数)的用法

q退出

创建一个lilei用户

切换到lilei

切换用户 :su 

临时获取管理员权限 : sudo

删除用户

 

查看命令

cd命令

change directory  切换目录

cd 路径 //绝对路径或者相对路径

几个特殊目录

.     当前工作目录 

..    上一级的工作目录

-    上一次的工作目录

~    当前系统登录的用户家目录

ls 命令  //查看当前工作目录里的内容

ls 可选参数 可选的文件

-a 显示所有的文件,包括隐藏

-l 详细输出文件夹中的内容

-h 人类可读方式输出

ls -lh    ls -hl

--full-time完整的时间格式输出

-t 根据最后修改时间排序

-r 逆转排序

ls -tr

-S(大写) 针对文件大小进行排序,默认从大到小

-F 特殊后缀输出

以/结尾的就是文件夹

*结尾的就是可执行文件

@结尾的就是软链接,就是快捷方式

普通文件类型结尾什么都没有

-d 显示文件夹本身内容,不输出其中内容

查看文件内容:

cat 文件名

修改密码

创建目录  mkdir 目录名   创建一个空目录 

mkdir -p 目录/子目录    先创建目录,在创建子目录

mkdir -v 目录名   创建目录之后显示信息

创建一个名为“file”的新的空白文件  touch file

删除指令

复制文件或目录  cp

语法格式:

cp 源文件  目标目录       复制源文件到目标目录下

cp -a 源目录 目标目录       复制整个目录到目标目录

cp -a 源目录/. (这里有一个空格)目标目录:复制整个目录的文件到目标目录

 

重命名: mv 源文件 目标文件

源文件移动到目标目录: mv 源文件 目标目录

chmod

作用:改变指定文件或目录的操作权限

用法:

用三位8进制数表示9个操作权限

chmod 三位8进制数 需要改变权限的带路径的文件或目录名

用特殊字母和符号表示相应权限操作

a:所有用户

u:主人

g:小组用户

o:其他用户

+:启用相应权限

-:去除相应权限

=:设置成指定权限

r:读权限

w:写权限

x:可执行权限

chmod a+x 需要改变权限的带路径的文件或目录名

chmod o-w 需要改变权限的带路径的文件或目录名

备注:加上-R选项,可以告诉chmod命令同时将指定目录下的所有内容以及后代子孙目录下的所有内容的权限都进行修改

如果发现没有权限执行相应命令,可以在命令前加上sudo,表示临时以超级用户的身份来执行该命令

例子见软件安装

查看权限命名:ll /etc/sudoers

clear

作用:清屏

强行终止:ctrl+c

vi/vim 文件名.c

编译:gcc 文件名.c  -o  文件名

打印输出:./文件名

esc,换成命令模式

命令模式换成插入模式  i

在命令模式下,同时按 shift和;换成底部命令

wq  保存退出

q!  不保存退出

tab:命令补齐键 可以补齐命令字或者文件名或者目录名

esc,命令模式下,光标放在想复制的那一行,按yy复制一行,按nyy复制从光标开始往下数n行,调到想要位置,按p粘贴。

命令模式下:

  1. yy:复制一行
  2. nyy:复制n行(光标选中,往下n行)
  3. dd:删除(剪切)一行
  4. ndd:删除n行(光标选中,往下n行)
  5. p:粘贴
  6. u:撤销
  7. Ctr+‘r’:反撤销

C语言代码的编译全过程

?      预处理    编译      汇编      链接

f1.c  f1.i         f1.S        f1.o

f2.c  f2.i         f2.S        f2.o

.....

fn.c  fn.i       fn.S                  fn.o

预处理:处理.c文件中#开头的语句

编译:将C语言语句翻译成同功能的汇编指令

汇编:将汇编指令翻译成CPU的二进制指令

链接: 按特定规则将所有目标文件打包成与操作系统相匹配的可执行文件

//注释一行

/*  */注释多行

/**/不能嵌套使用

2.标识符与关键字

代码中用到的单词:

  1. 关键字:C语言语法已经用掉的单词,这些单词都已经有了固定作用
  2. 标识符: 程序员自己可以命名的单词
  1. 不能是关键字
  2. 由大小写字母和0~9数字符号以及下划线构成
  3. 只能以字母或者下划线开头
  4. 区分大小写

main函数名不是关键字,是操作系统要求的多个函数的函数名不能重名

注:x%y:求x除以y的余数,%参与运算的对象必须是整数

   自增    i++    i=i+1; 先使用i,再++

              ++i    i=i+1; 先++,再使用i

   自减    i--      i=i-1; 先使用i,再--

              --i      i=i-1; 先--,再使用i

 

 

 

 

小驼峰法

变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如

int myStudentCount;

变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。

常用于函数名。

大驼峰法

相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。譬如

public class DataBaseUser;

数据类型

  1. 基本类型  
  1. 整型

         短整型short

         整型 int

         长整型 long

  1. 浮点型 float

       双精度型 double

       32位机

 

 

%f是格式化字符,用于格式化输入输出函数族,作为float(单精度浮点型)的输入输出。

规定数据输出方式的,

1.%d有符号10进制整数。

2.%i有符号10进制整数。

3.%o有符号8进制整数。

4.%u无符号10进制整数。

5.%x无符号的16进制数字,并以小写abcdef表示。

6.%X无符号的16进制数字,并以大写ABCDEF表示。

7.%F/%f浮点数。

8.%E/%e用科学表示格式的浮点数。

9.%g使用%f和%e表示中的总的位数表示最短的来表示浮点数G同g格式,但表示为指数。

10.%c单个字符。

11.%s字符串。

12.%%显示百分号本身。

 注:0是数字0,不是字母O

void  和int   在于有没有返回值

变量声明

类型 变量名;

强制转换

(int)变量名

  sizeof(类型)

ASCLL   A  65   a  97

例题:大小写切换

逻辑:差32

 

 

 例题:

   输出float

   算出存放油总质量   *

   求出耕地亩数    /

    %.2f  ---->保留两位小数

 

 float类型保留两位小数:%.2f

3.位运算

单位的换算:

         bit

         Byte                  --- 8bit

         kb                      --- 1024byte

         M                       --- 1024k

         G                        --- 1024M

         T                        --- 1024G

& -- 位与

| -- 位或

~--取反

^ 异或

<< 左移

>> 右移

位操作符

& 与运算 如果两位都是1,结果才为1,否则为0

10011

&   11001

10001

| 或运算 两个位都是0时,结果才为0,否则为1

10011

|   11001

11011

^ 异或运算 两个位相同则为0,不同则为1

10011

^   11001

01010

~ 取反运算 0则为1,1则为0

~10011

 0 1100

<<左移

左移一位相当*2

0000 0001

0000 0010   //<<1位

0000 0100   //<< 2位

(高位丢弃,低位补0)

int a=8(32位)

a<<3

移动前:0000 0000 0000 0000 0000 0000 0000 1000

移动后:0000 0000 0000 0000 0000 0000 0100 0000

>>右移

右移一位相当/2

int a=8(32位)

a>>3

移动前:0000 0000 0000 0000 0000 0000 0000 1000

移动后:0000 0000 0000 0000 0000 0000 0000 0001

判断奇偶数

核心:判断二进制最后一位是否为1

交换两个数

a  b数值交换

两个相同的数异或等于0,任何数和0异或等于本身

异或运算满足交换律和结合律

a=5=0101  b=8=1000

二进制:0、1

八进制:0-7    ---1位转3位

十进制:0-9

十六进制:0-9 a-f      ----1位转4位

2^3=8  2^2=4  2^1=2  2^0=1

8421

十六进制和二进制转换  0x12345678 --》0001 0010 0011 0100 0101 0110 0111 1000

八进制和二进制转换   456--》100 101 110

十进制和二进制转换  10--》1010

将第七位置0

Unsigned int x=1111 1111 1111 1111 1111 1111 1111 1111

方法一:

1111 1111 1111 1111 1111 1111 1111 1111

& 1111 1111 1111 1111 1111 1111 0111 1111

  1111 1111 1111 1111 1111 1111 0111 1111

方法二:

1111 1111 1111 1111 1111 1111 1111 1111

^ 0000 0000 0000 0000 0000 0000 1000 0000

1111 1111 1111 1111 1111 1111 0111 1111

方法三:

x&~(1<<7)

0000 0000 0000 0000 0000 0000 1000 0000

1111 1111 1111 1111 1111 1111 0111 1111

取32bit无符号整数0x12345678的高16bit和低16bit,分别保存在两个16bit的无符号整数并显示出来

0xffff---->1111 1111 1111 1111

8421从右往左1248  

文件权限

读     r   4

写     w  2

可执行 x   1

属主:所属的用户,文档所有者,这是一个账户,这是一个人,属组:所属的用户组,这是一个组。

例题:文件权限 r-x-wxr--对应八进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值