概述
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:可选图形界面,需要有编程基础者使用,不使用文件拓展名,区分大小写
终端,命令驱动
命令组成:command【options】【parameter】
命令字 选项 参数
命令字:决定了主要操作是什么(命令名称)
参数:指命令的操作对象
选项: 指该操作的一些执行方式
打开终端:ctrl + alt + t或ctrl + alt + n(在已经打开一个终端的前提下)
关闭终端:exit或alt+F4
调整终端:
放大:Ctrl+shift+“+”
缩小:Ctrl+“-”
切换到根用户:su root
#root用户
$普通文件
sudo:临时权获取管理员权限,放在需要执行的命令之前
路径分类:
绝对路径 (路径字符串中含根目录的写法)
相对路径 (在一个参考目录位置(当前目录作为参考位置)基础上的一种写法)
看有没有“/”,有的话绝对路径
pwd :print work directory
作用:显示当前工作目录的绝对路径
man:manual
作用:可以查看命令或函数(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粘贴。
命令模式下:
- yy:复制一行
- nyy:复制n行(光标选中,往下n行)
- dd:删除(剪切)一行
- ndd:删除n行(光标选中,往下n行)
- p:粘贴
- u:撤销
- 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.标识符与关键字
代码中用到的单词:
- 关键字:C语言语法已经用掉的单词,这些单词都已经有了固定作用
- 标识符: 程序员自己可以命名的单词
- 不能是关键字
- 由大小写字母和0~9数字符号以及下划线构成
- 只能以字母或者下划线开头
- 区分大小写
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;
数据类型
- 基本类型
- 整型
短整型short
整型 int
长整型 long
- 浮点型 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--对应八进制
最后
以上就是调皮大船为你收集整理的第一周总结的全部内容,希望文章能够帮你解决第一周总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复