1、编程环境介绍
虚拟机:虚拟出来的一台PC机
为什么要使用LinuxOS系统?
1.开源,我想很多小公司用它的原因之一也是这个,不会涉及到专利和产权纠纷。
2.功能齐全,对于很多硬件设备都有丰富的驱动程序,只需要移植一下,不需要改动太多
3.稳定,这个用过Linux做服务器的人都知道,windows越来越慢,产生的垃圾会很多。
4.对于大多数芯片,都有裁剪的配置文件,在Linux内核源代码下,arch/arm/configs中有许多芯片的配置文件,比如笔者用的是at91的芯片,里面有个文件叫做 at91sam9260ek_defconfig,那我如果不想裁剪的话,就只要在内核源代码下执行 make at91sam9260ek_defconfig,就可以,然后编译出来的内核就可以直接用了。
5.Linux分而治之的思想,可以使得驱动和应用程序并行开发,加快开发速度
嵌入式:以计算机技术为基础,软硬件可裁剪(修改)-->通过软件控制硬件
为什么需要裁剪?
根据用户对产品的需求
软件裁剪:LinuxOS
ubuntu-18.04-64bit
系统名字-版本-位数(存储)
16.04之前都有32位
LinuxOS其中的一个发行版本:18.04,就像Windows一样,比如win7、win8、win10
市场一般以32bit为主,64bit会进行强调
2、linux常用命令
2.1 Linux目录结构
Windows目录结构犹如一片森林
Linux目录结构犹如一颗倒置的树
根目录(/):LinuxOS的顶层目录,所有的东西都在它之下,也从它开始
家目录(主目录 or 工作目录 or HOME or ~):用户工作目录
~ 代表的就是 /home/chen/
/home/用户名,假设是以linux用户登录,这个路径就是/home/linux
注意:HOME是家目录(HOME在home目录下),而home不是家目录(home在根目录下),但是我们的家目录是在home目录之下的,linux(HOME)才是家目录。
什么叫做工作目录:正常情况下我们只能在linux目录下进行操作(以上的目录不能操作,没有权限),可以通过管理员命令进行操作。
文件颜色:蓝色-文件夹(目录) 白色-文件 绿色-可执行文件
2.2 Linux常用命令
2.2.1 命令格式
命令 [选项] [参数]
注意:
(1)[]表示可以省略
选项:功能 参数:操作的对象
(2)以上三者之间必须有空格
在哪里输入命令-->终端(terminal)
终端:人机交互的界面
打开终端
(1)双击terminal
(2)ctrl alt + 't'(始终在家目录)
(3)ctrl shift + 'n'(当前路径下)
清屏
(1)ctrl + 'l'
(2)clear
Table键:自动补全键,两次tab,显示所有符合条件的选项
放大or缩小终端
放大终端:ctrl shift + '+'
缩小终端:ctrl + '-'
上下箭头:查看历史命令
su切换权限
su 后面不加用户是默认切到 root
su 是不改变当前变量
su - 是改变为切换到用户的变量
exit 命令退出
sudo:增加临时管理员的权限(当前命令以root用户的权限去执行)
也就是说su只能获得root的执行权限,不能获得环境变量
而su -是切换到root并获得root的环境变量及执行权限
命令提示行
linux@ubuntu:~$
用户名@主机名:当前路径$:普通用户 #:超级用户
绝对路径:从根目录开始的路径(/home/linux/23101)
相对路径:ls aa:从当前目录下查找一个叫做aa的目录,然后将该目录下的内容显示出来
pwd:显示当前目录的绝对路径
(1)ls:显示当前路径下的内容
蓝色:文件夹(目录) 白色:文件 绿色:可执行文件
ls 路径:显示该路径下的内容
注意:路径必须是存在的,可以是相对路径,也可以是绝对路径
(2)ls -l:显示当前目录下的详细属性
(3)ls -a:显示当前路径下的所有文件,包含隐藏文件(配置文件,防止修改,误删)
.:当前目录
..:上一级目录
man ls:可以查看ls英文文档
mkdir 文件夹名:新建文件夹,提示新建多个文件夹
mkdir -p d2/d22 级联创建,可以创建多层文件夹
rmdir 文件夹:删除文件夹,删除空文件夹
rm -r 文件夹:删除文件夹,空和非空文件夹都能删除
touch 文件名/文件路径:新建文件,可以同时新建多个
rm 文件名/文件路径:删除文件,可以同时删除多个文件,数据不可恢复(通过rm删除的文件不可恢复)
rm -r 删除空/非空文件夹
cd 路径:切换工作路径
cd:直接回到家目录
cd -:回到上次操作的目录
cp (源文件/-r 源文件夹) 目前路径;拷贝
mv 源文件/源文件夹 目前路径:移动
mv 原来的名字 现在的名字:改名字
sudo:增加临时的管理员权限(当前命令以root用户的权限去执行)
3、vim和gedit编辑器
vim:最经典的编辑器,没有菜单,只有命令
vim 文件名
如果文件存在,直接打开,进行编辑
如果文件不存在,则创建并打开,进行编辑
vim -p 1.c 2.c 同时打开两个文件
3.1 三种模式
命令行模式
(1)命令行模式(刚进入/初始状态)
(2)插入模式
(3)底行模式
底行模式下
w:保存
q:退出
wq(x):保存并退出
q!:强制退出
wq!:保存并强制退出
:vsp 2.c:打开在同一窗口上
命令行模式下
set nu(set number):显示行数
set nu!:取消显示
yy:复制光标所在那一行
nyy:复制光标所在行以下n列
p:粘贴
u:撤销
ctrl + r:反撤销
dd:剪贴光标所在行
:行数:跳转到指定行
从开头处开始搜索:/port
从结尾处开始搜索:?port
gg:跳转到第一行
shift + g:跳转到最后一行
shift + 4:跳转到最后一列
0:跳转到第一列
d+shift g:删除光标及其以下所有内容
:1,$d:清屏
:%d:清屏
替换
0:%s/string1/string2/g:
0:表示从第0行到最后一行搜索一个叫string1的字符串
%s : s表示切换到替换模式下去
string1/string2,即把string1替换成string2
g : 强制替换不用提示
gedit编辑器
操作类似windows。
4、gcc编译器
编辑器:vim
编译器:gcc
调试器:gdb
(1)
int main(void)
{
//函数体
return 0;
}
(2)
int main(int argc,char *argv[])
{
//函数体
return 0;
}
(3)
void main(void)
{
//函数体
}
(4)
main(void)//默认返回的是int
{
//函数体
return 0;
}
方式1:
编译:gcc hello.c,生成的可执行文件名叫做a.out
运行:./a.out
方式2:
编译:gcc hello.c -o hello,生成的可执行文件名叫做hello
运行:./hello
作业:
1、请在/tmp目录下新建一个名为vitest目录。
mkdir /tmp/vitest
2、进入vitest目录。
cd vitest
3、将/etc/manpath.config复制到本目录下。
cp /etc/manpath.config .
4、使用vim打开本目录下manpath.config文件。
vim manpath.config
5、在vim中设置行号。
:set nu
6、移动到第58行。
:58
7、移动到第一行,并向下查找一个“bzip2”这个字符串,请问它在第几行
:gg /bzip2
8、接下来,将50到100行之间的man改为MAN。
:50,100s/man/MAN/
9、修改完之后,突然反悔,要复原,该怎么办。
:u
10、复制65到73者9行内容并且粘贴在最后一行之后。
:65 9yy shift+g p
11、21行到42行之间数据不要了,应如何删除。
:21 22,42dd
12、将这个文件另存为一个man.test.config文件名
:w man.test.config
13、删除第27行。
:27 dd
14、在第一行新增一行,输入“I am a student”
gg O I am a student…
15、 保存后离开。
:wq