一、软件准备
   
    
     1.树莓派镜像
    
   
    官网:
    
     Raspberry Pi OS – Raspberry Pi
    
    
    
     2.SDCardFormatterv5
    
    
    
     SD Memory Card Formatter | SD Association (sdcard.org)
    
    
    
     3.烧录工具Raspberry Pi
    
    
    
     Raspberry Pi
    
    
    
     4.putty
    
    
    
     Download PuTTY: latest release (0.77) (greenend.org.uk)
    
   
    
    
    二、操作
   
    
     SD卡格式化
    
   
    打开下载好的SDCardFormatter将我们的SD卡进行格式化
    
    
    
    格式化成功
    
    
    
    
    
    
     烧录
    
   
    打开我们的烧录工具,依次选择我们要烧录的镜像和烧录的SD卡点击烧录就可以了
    
    
    
    等待了一段时间之后烧录成功
    
    
    
    
     网络配置
    
   
打开SD卡,在boot目录建立一个SSH文件
建立一个空文本文件wpa_supplicant.conf
在文本中输入
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
	ssid="你的无线网名称"
	psk="你的无线网密码"
	key_mgmt=WPA-PSK
	priority=1
}
    
    
    将SD卡拔出插入树莓派并给树莓派接上电源,可以在手机上看到树莓派已经连入,查看树莓派的ip地址,可以下载一个Advanced IP Scanner,打开终端输入ipconfig,查看无线热点的IP地址,然后在IP Scanner中搜索
    
    
    
    
    
    确保我们电脑连接的也是手机热点,看到ip地址是192.168.79.57,在搜索时搜索192.168.79.1-255
   
    这样就找到我们树莓派的IP地址了
    
    
    
    
     putty远程连接
    
   
打开putty,在putty中输入刚才的ip,然后建立连接,输入默认的用户密码
    默认的用户:pi
    
    默认的密码:raspberry
   
如果默认的账号密码不对,可以在boot中建立一个userconf.txt文件,此文件是单行文本,由 username:用户名内容-password:密码 组成——即想要的用户名,紧跟一个冒号,紧跟一个要使用的密码的加密表示。
    或者在开始写入镜像的时候配置账号和密码
    
    
    
    然后再次输入我们的账号密码就进入系统了
    
    
    
    进行树莓派配置sudo raspi-config
    
     
   
    然后选择interface options
    
    
    
    打开VNC服务
    
    
    
    然后打开VNC Viewer
   
    输入树莓派的ip,然后输入账户和密码
    
     
   
这样就成功了。
    
    
    三、创建账号并在个人文件夹中创建assert断言c程序
   
创建用户
打开终端输入命令
su -
useradd -m -s /bin/bash 用户名
 
//密码设置
passwd 用户名
     
   
权限不够的时候在 su前面加上sudo即可
然后进入创建的文件夹/home/用户名/中
创建文件assert.c,在文件中输入
#include <assert.h>
#include <stdio.h>
 
int main()
{
   int a;
   char str[50];
     
   printf("请输入一个整数值: ");
   scanf("%d", &a);
   assert(a >= 10);
 
   printf("输入的整数是: %d\n", a);
    
   printf("请输入字符串: ");
   scanf("%s", str);
   assert(str != NULL);
 
   printf("输入的字符串是: %s\n", str);
    
   return(0);
}
如果无法创建文件可以使用命令
sudo chmod -R 777 /工作目录
touch assert.c
vim asssert.c
    
    
    然后就可以编辑了
    
    
    
    然后就是使用gcc编译了
    
     
   
    
    
    四、使用scp命令在两台Linux系统之间传输数据
   
scp
scp是secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
因为scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
    
     基本语法shi
    
   
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l
limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1
[…] [[user@]host2:]file2
//参数说明
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p: 保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v: 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port: 注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
    实例
    
    分别在虚拟机和树莓派上下载ssh
    
    
    
    
    
    把树莓派上之前练习的assert.c文件上传到虚拟机中
   
scp -r pi@192.168.141.103:/home/lm/assert.c ./
    
    
    完成
    
     
   
    
    
    五、参考
   
 
