项目开发日报表
项目名称 【苏嵌实训-嵌入式 linux C 第1天】 今日进度以及任务 嵌入式开发概述及嵌入式Linux C项目演示、嵌入式环境安装与使用 本日任务完成情况
①、Linux用户管理命令:su sudo useradd usermod passwd ②、Linux文件管理命令:ls chmod touch cat gedit gcc ③、Linux目录命令:mkdir rmdir cp mv rm ④、Linux一点哲学:“一切皆为文件”、linux文件分类、Linux属性 ⑤、文本编辑器:vim 三种模式:命令行模式---(按i/a)插入模式--(ESC)低行模式 ⑥、修改vimrc
⑦、linux下简单c程序(如helloworld、计算1+...+n )
⑧、linux下简单c程序 计算1-n中含9的数字个数、倒置字符串 (程序见附录)
本日开发中出现的问题汇总 1 嵌入式底层开发为什么选择c语言
答:
①C语言有出色的可移植性,能在多种不同体系结构的软/硬平台上运行。
②简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。
所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。
③C语言具有很高的运行效率。
④面向过程
2、什么是实时性,什么是硬实时,什么是软实时
答:
实时性指时钟信号能够准确的定时,各处的时钟能够达到一致。 硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。 软实时系统是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量 3、Linux和Unix之间的关系
答:
二者的关系,不是大哥和小弟,"UNIX 是 Linux 的父亲"这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。
二者也有两个大的区别:
UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上; UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。
这里有详细介绍
4、Linux主流发行版本有哪些及特点
答:
红帽企业系统(RedHat Enterprise Linux, RHEL) 全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件, 提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持。 社区企业操作系统(CentOS) 最初是将红帽企业系统“重新编译/发布”给用户免费使用而广泛使用, 当前已正式加入红帽公司并继续保持免费(随RHEL更新而更新)。 红帽用户桌面版(Fedora [Linux]) 最初由红帽公司发起的桌面版系统套件(目前已经不限于桌面版), 用户可免费体验到最新的技术或工具,而功能成熟后加入到RHEL中。
国际化组织的开源操作系统(Debian) 提供超过37500种不同的自由软件且拥有很高的认可度, 对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。
基于Debian的桌面版(Ubuntu) Ubuntu是一款基于Debian派生的产品,对新款硬件具有极强的兼容能力。 普遍认为Ubuntu与Fedora都是极其出色的LINUX桌面系统。
国产系统
国防科技大学发行麒麟kylin和中科院发行红旗RedFlag。
5、有哪些虚拟机软件 特点是什么
答:
Vmware Workstation,VMware公司的优秀虚拟机软件,VMware公司是全球桌面到数据中心虚拟化解决方案的领导厂商
Virtual Box,Virtual Box是Oracle公司旗下的免费开源虚拟机软件,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。
Windows Virtual PC,微软公司旗下产品,Windows Virtual PC 是最新的 Microsoft 虚拟化技术。您可以使用此技术在一台计算机上同时运行多个操作系统,并且只需单击一下,便可直接在运行 Windows 7 的计算机上的虚拟 Windows 环境中运行许多生产应用程序。
VMware Player,VMware推出的免费小巧的虚拟机软件,精简版VMware Workstation
6、如何解决userdel删除用户的问题
答:
1: 使用vipw删除创建的用户 使用vipw -s 删除创建的用户组 2: 1.vi /etc/passwd添加pipetest❌506:506::/home/pipetest:/bin/bash(不一定是506,而是在最好一个行数目上加1) 2.vi /etc/shadow添加pipetest:!!:15056:0:99999:7:::(不一定所15056,而是在最后一行数目上加3) 3.mkdir /home/pipetest/cp /etc/skel/.bash* /home/pipetest/ 4.userdel pipetest
7、罗列根目录中所以子目录的功能及存放的文件类型
答:
/bin 二进制可执行命令。 /dev 设备特殊文件 /etc 系统管理和配置文件 /home 用户目录的基点 /lib 标准程序设计库,又叫动态链接共享库 /sbin 系统管理命令,这里存放系统管理员使用的管理程序 /tmp 公用的临时文件存储点 /root 系统管理员的主目录 /mnt 系统提供这个目录就是让用户临时挂载其他的文件系统 /var 某些大文件的益出区 /usr 最庞大的目录,要用到的程序和文件几乎在这个目录 原文链接:https://blog.csdn.net/z1127805482/article/details/64922640 /bin:存放普通用户可执行的命令,系统中任何用户都可执行。 /boot:存放Linux内核文件以及开机菜单与开机所配置文件。 /dev:存放设备文件的存储目录,如硬盘、光驱等。 /etc:存放系统的配置文件,如用户账号密码、各种服务的起始文件等。只有root有权利修改。 /home:普通用户的主目录,每个用户在该目录下都有一个与用户同名的目录。 /lib:存放开机时用到的函数库,以及在/bin或/sbin下的命令会调用的函数库。 /media:存放可删除的设备,如软盘、光盘、DVD等设备都暂时挂载于此。 /mnt:暂时挂载某些额外的设备。 /opt:存放第三方软件。 /root:超级用户root的主目录。 /sbin:存放开机、修复、还原系统所需要的命令。 /srv:是一些网络服务启动之后,这些服务所需要取用的数据目录,如WWW服务。 /tmp:这是让一般用户或者正在执行的程序暂时放置文件的地方,任何人都能访问,需要定时清理。
8、自学20条linux命令
答:
shutdown -h now 关闭系统(1) date 显示系统日期 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限 find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 cat file1 从第一个字节开始正向查看文件的内容 tac file1 从最后一行开始反向查看一个文件的内容 more file1 查看一个长文件的内容 less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作 head -2 file1 查看一个文件的前两行 tail -2 file1 查看一个文件的最后两行 tail -f /var/log/messages 实时查看被添加到一个文件中的内容 tar -cvf archive.tar file1 创建一个非压缩的 tarball tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 tar -tf archive.tar 显示一个包中的内容 tar -xvf archive.tar 释放一个包 tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 zip file1.zip file1 创建一个zip格式的压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包
本日未解决的问题 暂无 本日开发收获 了解了行业目前状况;大致了解linux c开发流程 ;学会了简单的linux命令和操作 其他 无
附录:
//求1-n中含9的数的个数
1 #include<stdio.h>
2 int main()
3 {
4 int i,j,a,n;
5 int count=0;
6 printf("inout your number 'n':\n");
7 scanf("%d",&n);
8 for(i=1;i<=n;i++)
9 {
10 a=i;
11 while(a!=0)
12 {
13 j=a%10;
14 a=a/10;
15 if(j==9)
16 {
17 count++;
18 }
19 }
20 }
21 printf("9 have:%d\n",count);
22 return 0;
23 }
//倒置字符串
1 #include "stdio.h"
2 #include "string.h"
3 void main()
4 {
5 int i;
6 printf("input string: \n");
7 char str[20], c;
8 scanf("%s",str);
9
10 int n=strlen(str);
11
12 for(i=0;i<n/2;i++)
13 {
14 c=str[i];
15 str[i]=str[n-i-1];
16 str[n-i-1]=c;
17 }
18 printf("reverseString:\n");
19
20 puts(str);
21
22 }
~