-
例如 UCOS、 FreeRTOS 等等,这些操作系统都是一个 kernel,如果需要网络、文件系统、 GUI 等这些就需要开发者自行移植。这个时候一个功能完善的操作系统显得尤为重要:具有统一的标准;提供完善的多任务管理、存储管理、设备管理、文件管理和网络等。 Linux 就是这样一个系统。
-
要想进行 Linux 驱动开发,必须要先移植Uboot、然后移植 Linux 系统和根文件系统到你的开发平台上
-
Linux 驱动有三大类字符设备驱动、块设备驱动和网络设备驱动
-
如果想详细的学习 Ubuntu 系统的话可以参考其他的书籍,比如经典的《鸟哥的 linux 私房菜》
-
虚拟机的实现我们可以借助 Vmware Workstation软件,然后在虚拟机上安装Ubuntu系统
-
最后面的符号"$”表示当前用户是普通用户
-
“#”表示root用户。
-
在 Linux 下通过命令行输入命令俗称敲命令,也就是通常说的“Shell”。因此看到 Shell 这个词语第一反应就是在终端中敲命令。将多个Shell 命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本。
-
常用 Shell 命令:
1、目录信息查看命令 ls
-a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
-l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
2、目录切换命令 cd
cd … //进入到上一级目录。
cd ~ //切换到当前用户主目录
cd- //切换到上次所在的目录
3、当前路径显示命令 pwd
4、系统信息查看命令 uname
uname -a 显示系统的所有信息
5、清屏命令 clear
6、切换用户命令 su
命令“su”可以直接将当前用户切换为 root 用户 sudo su 或者 sudo su root
su 命令不写明用户名的话默认切换到 root 用户 写用户名的话 sudo su glj
7、显示文件内容命令 cat
cat [选项] [文件] -n选项 由 1 开始对所有输出的行进行编号。
8、显示和配置网络属性命令 ifconfig
ifconfig interface options | address
interface 网络接口名称,比如 eth0 等。
up 开启网络设备。
down 关闭网络设备。sudo ifconfig ens33 192.168.1.2 更改网络ip地址 sudo ifconfig ens33 down 执行命令前必须要有一个接口号
9、 系统重启命令 reboot
10、系统关闭命令 poweroff , 使用命令“poweroff”就可以关闭系统
11、创建新文件命令—touch
12、文件夹创建命令—mkdir
13 文件及目录删除命令—rm ; 一般都是 rm -rf 一起用
14、文件复制命令—cp
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
-r 或-R 递归处理,将指定目录下的文件及子目录一并处理
15、文件移动命令—mv (也是重命名命令,在同一文件夹下操作)
mv命令移动文件夹时,不需要加-r命令递归,直接移动就行
16、压缩命令tar
-c 创建新的压缩文件。
-f<备份文件> 指定压缩文件。-f这个选项一定要放在所有参数后面,后面一定要跟压缩文件名
-j 用 tar 生成压缩文件,然后用 bzip2 进行压缩。
-v 显示指令执行过程。
-x 解压缩文件。
-z 用 tar 生成压缩文件,用 gzip 压缩。
例子:将 test1 文件夹压缩为.bz2 和.gz 这两个格式:tar -vcjf test1.tar.bz2 test1 tar -vczf test1.tar.gz test1
例子:完成.bz2 和.gz 格式文件的解压缩:
tar -vxjf test1.tar.bz2 tar -vxzf test2.tar.gz
16、文件查询和搜索命令: find 和 grep。
find 命令用于查找文件
find [路径] [参数] [关键字]-name<filename> 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。 find /etc/ -name vim* 可以使用*号代替 如果没有指明路径,就在当前目录和子目录下搜索
grep命令用于在文件中搜索一串关键字,如果发现某个文件的内容包含所指定的关键字, grep 命令就会把包含指定关键字的这一行标记出来
grep [参数] [关键字] [文件列表] grep -ir 关键字 目录 参数i是忽略大小写,参数r是递归 如果没有指明路径,就在当前目录和子目录下搜索
17、权限修改命令 chmod 一个文件可读 可写 可执行权限
chmod [参数] [文件名/目录名]
-R 递归处理,指定目录下的所有文件及其子文件目录一起处理。
18、文件归属者修改命令 chown 一个文件归属于root、普通用户、其他用户
chown [参数] [用户.<用户组>] [文件名/目录]
-R 递归处理,将指定的目录下的所有文件和子目录一起处理。
chown命令修改某个文件属于哪个用户或者用户组
例如:
sudo chown root hello 将hello文件的用户改为root
sudo chown .root hello 将hello文件的用户组改为root (.root)
sudo chown root.root hello 将hello文件的用户和用户组改为root (必须先是用户后是用户组)
19、挂载分区命令 mount
U盘分区完成后,我们需要将/dev/sdb1 这个分区挂载到一个文件夹中
sudo mount /dev/sbd1 /media/glj/udisk
挂载 其中udisk文件夹是自己建的, 如果出现中文乱码,加上 -o iocharset=utf8
20、卸载命令unmount
sudo umount /media/glj/磁盘名
sudo umount /dev/sdb1
这两种都可以卸载: 一种是直接卸载分区,一种是卸载分区的挂载点 -
、APT 下载工具**
更新本地数据库:若想查看本地哪些软件可以更新的话可以使用如下命令: sudo apt-get update 软件安装 sudo apt-get install package-name 软件更新 sudo apt-get upgrade package-name 卸载软件 sudo apt-get remove package-name
-
VI/VIM 编辑器
我们需要先安装 VIM 编辑器:
sudo apt-get install vim
使用 VI 编辑器之前我们先做如下设置:
VI 编辑器默认 TAB 键为 8 空格,我们改成 4 空格,用 vi 打开文件/etc/vim/vimrc,在此文件最后面输入如下代码:set ts=4 set nu(显示行号)VIM 编辑器有 3 种工作模式:输入模式、指令模式、底行模式
按快捷键a,转为输入模式;按esc转为指令模式;先进入指令模式下,然后在 指令模式下输入“:”进入底行模式
1、移动光标指令:
nG 光标移动到第 n 行首。
n+ 光标下移 n 行。
n- 光标上移 n 行。
2、复制、删除和粘贴指令
dd 删除该行,不提供修改功能。
ndd 删除当前行向下 n 行。
nyy 复制当前行及其下面 n 行。
p 粘贴最近复制的内容。
u撤销刚刚的操作
. 重复刚才的操作 (点号)
底行模式下 一般按
:wq
:x
:q!
/
前两个是保存并退出 第三个是不保存退出 第四个是查找:/xxx,表示在文件中查找xxx找到搜索字之后,按n是向下继续搜 按N是向上搜 -
在 Linux 下创建一个分区并且格式化好以后我们要将其“挂载”到一个目录下才能访问这个分区。 Windows 的文件系统挂载过程是其内部完成的,用户是看不到的(磁盘需要挂载到文件夹下才能用)
-
以我的“glj”这个用户为例,其用户根目录就是: /home/glj。
只要你创建了一个用户,那么系统就会在/home 这个目录下创建一个以这个用户名命名的文件夹,这个文件夹就是这个用户的根目录。 -
我们来看一下根目录“/”中的一些重要的文件夹:
/bin 存储一些二进制可执行命令文件
/root 超级用户 root 的根目录文件
/home 普通用户默认目录
/boot 存放 Ubuntu 系统内核和系统启动文件。
/mnt 用户可使用的挂载点,如果要挂载一些额外的设备,那么就可以挂载到此处。
/dev 存放设备驱动文件
/etc 保存系统所需的配置文件和目录,例如用户账号和密码,各种服务的起始地址等
/lib 保存系统程序运行所需的库文件
/media 存放 Ubuntu 系统自动挂载的设备文件,例如可插拔设备sd卡,U盘。
/proc 虚拟目录,通常用来保存系统信息和进程信息。例如cpu频率,型号等等 -
linux下运行可执行文件的逻辑是直接只在环境变量中寻找。要执行一个可执行文件要么其在PATH路径中,这种情况可以直接写文件名;要么指明完整路径。因此我们执行imxdownload时,需要加上路径