嵌入式linux 国嵌,[嵌入式Linux学习]国嵌嵌入式视频1

1、目录结构

/bin:存放常用命令

/boot:存放启动程序

/dev:存放设备文件

/etc:存放启动、关闭、配置程序与文件

/home:用户工作根目录

/lib:存放共享链接库

/lost_found:系统出现异常时,用于保存部分资料

/media:光驱的自动挂载点

/misc:一些实用工具

/mnt:光驱、硬盘等的挂载点

/proc:操作系统的实时信息

/root:超级用户的工作目录

/sbin:系统管理员的常用管理程序

/selinux:redhat提供的selinux安全程序

/srv:服务启动后需要提取的信息

/sys:系统中的硬件设备信息

/tmp:存放临时文件

/usr:存放用户程序

/var:主要存放系统日志

/tftpboot:tftp服务器的服务目录

2、Liunx命令

2.1 添加用户

useradd

格式:useradd [选项] 用户名

2.2 修改密码

passwd

格式:passwd [选项] [用户名]

2.3 切换用户

su

格式:su [选项] [用户名]

2.4 关机

shutdown

格式:shutdown [-t seconds] [-rkhncfF] time [message]

2.5 拷贝

cp

格式:cp [选项] 源文件或目录 目标文件或目录

说明:拷贝文件选项可以为空,拷贝目录时,选项为-r

2.6 移动或更名

mv

格式:mv [选项] 源文件或目录 目标文件或目录

2.7 删除

rm

格式:rm [选项] 文件或目录

说明:删除文件时选项可以为空,删除目录时选项为-r。

2.8 创建目录

mkdir

格式:mkdir [选项] 目录名

说明:-p选项:创建目录是,如果父目录不存在,则一同创建。

2.9 改变工作目录

cd

格式:cd 目录名

2.10 查看当前路径

pwd

格式:pwd

说明:显示当前工作目录的绝对路径

2.11 查看目录

ls

格式:ls [选项] [目录或文件]

说明:-a选项:查看所有文件与目录,包含隐藏文件

2.12 打包与压缩

tar

格式:tar [选项] 目录或文件

范例:tar cvf tmp.tar /home/tmp

将/home/tmp目录下的所有文件和目录打包成一个tmp.tar文件。

tar xvf tmp.tar 将打包文件tmp.tar在当前目录下解开。

2.13 解压缩

unzip

格式:unzip [选项] 压缩文件名.zip

2.14 查看磁盘使用情况

df

格式:df [选项]

2.15 查看目录大小

du

格式 du [选项] 目录

2.16 网络配置

ifconfig

格式:ifconfig [选项] [网络接口]

范例:ifconfig eth0 192.168.0.1 配置eth0网卡的IP地址

ifconfig eth0 down 暂停eth0网卡的使用

ifconfig eth0 up 恢复eth0网卡的使用

2.17 查看网络状态

netstat

格式:netstat [选项]

说明:-a 所有的网络监听端口

2.18 软件安装

rpm

格式:rpm [选项] [安装文件]

范例:rpm -ivh tftp.rpm 安装名字为tftp的文件

rpm -qa 列出所有已安装的rpm包

rpm -e name 卸载名字为name的rpm包

2.19 挂载

mount

格式:mount [选项] 设备源 目标目录

umount

格式:umount 目标目录

2.20 查找文件

find

格式:find 路径 -name '文件名'

范例:find ./ -name 'co*' 在当前目录及其子目录中寻找名为co开头的文件

find ./ -name 'test' 在当前目录极其子目录中寻找名为test的文件

2.21 查找字符串

grep

格式:grep [选项] 字符串

范例:grep "file" ./ -rn 在当前目录及其子目录中,查找包含file字符串的文件

netstat -a | grep tftp 查看所有端口中用于tftp的端口

2.22 动态查看cpu使用

top

格式:top

2.23 查看进程

ps

格式:ps [选项]

说明:aux 查看系统中所有进程

2.24 杀死进程

kill

格式:kill [选项] 进程号

2.25 帮助

man

格式:man 命令名

3、访问权限

3.1 对文件或目录的访问权限分为三种:只读、只写和可执行。

3.2 有三种不同类型的用户可对文件或目录进行访问:文件所有者、与所有者同组的用户、其他用户。

3.3

每一个文件或目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。

3.4 用”ls

-l“命令显示文件或目录的详细信息,最左边一列为文件的访问权限。其中共有10个字符,第一个字符指定了文件类型,如果为横线,表示是一个非目录的普通文件;如果是d,表示是一个目录。随后的9个字符代表权限,其中r代表只读,w代表写,x代表可执行,横线代表无该项权限。

3.5 改变访问权限

chmod

格式:chmod [who][+|-|=][mode] 文件名

参数:who:u:表示文件的所有者

g:表示与文件所有者同组的用户

o:表示”其他用户“

a:表示“所有用户”,是系统默认值

+:添加某个权限

-:取消某个权限

=:赋予给定权限

mode:r/w/x

说明:mode所表示的权限可使用下述字母(数字)的任意组合:r(4) w(2) x(1) 例:chmod 761

hello.c

4、文本编辑器

4.1 Vi有三种工作模式:命令行模式、插入模式、底行模式。

4.2 命令行模式:最初进入的一般浏览模式,可以移动光标进行浏览,整行删除,但无法编辑文字。

插入模式:可以进行文字的编辑输入,通过ESC回到命令行模式。

底行模式:光标位于屏幕狄航,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号等。

4.3 键入i进入插入模式

键入ESC退入到命令行模式

键入:wq保存退出

4.4 命令行模式功能键

yy:复制当前光标所在行

[n]yy:n为数字,复制当前光标开始的n行

p:粘贴复制的内容到光标所在行

dd:删除当前光标所在行

[n]dd:删除当前光标所在行开始的n行

/name:查找光标之后的名为“name”的字符串

G:光标移动到文件尾

U:取消前一个动作

4.5 底行模式功能键

:w 保存

:q 退出vi,系统会提示保存修改

:q! 强行退出,对修改不做保存

:wq 保存后退出

:w [filename] 另存为filename的文件

:set nu 显示行号

:set nonu 取消行号

5、Tftp服务器

5.1 宿主机和目标机

宿主机:执行编译、链接嵌入式软件的计算机。

目标机:运行嵌入式软件的硬件平台。

5.2 Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。

5.3 Tftp服务相关操作

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

6 NFS-网络文件系统

6.1 NFS:网络文件系统,Network File

System,一种将远程主机上的分区(目录)经网络挂载到本地的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。类似于Windows的共享目录。

6.2 安装NFS服务器

a4c26d1e5885305701be709a3d33442f.png

6.3 NFS配置

a4c26d1e5885305701be709a3d33442f.png

6.4 NFS服务器启动/重启

/etc/init.d/nfs start

/etc/init.d/nfs restart

6.5 NFS服务器使用

使用mount命令来挂载NFS服务器上的共享目录

mount -t nfs servername:/shared_dir /localdir

例: mount -t nfs 10.168.1.100:/home /mnt/nfs

7 Samba

7.1 Samba:Linux与Windows之间实现共享的服务

7.2 Samba配置

a4c26d1e5885305701be709a3d33442f.png

7.3 Samba添加用户

Useradd smb 添加smb系统用户

Smbpasswd -a smb 修改密码

8 Wireshark(ethereal)

8.1

在Linux和Windows上使用的开源网络协议分析器。可以实时检测网络通讯数据,也可以抓取网络通讯数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。

8.2 Wireshark安装的内容

rpm -ivh lm_sensors-2.10.0-3.1.i386.rpm

rpm -ivh net-snmp-5.3.1-9.el5.i386.rpm

rpm -ivh wireshark-0.99.6-1.el5.i386.rpm

rpm -ivh wireshark-gnome-0.99.6-1.el5.i386.rpm

9 Shell编程

9.1 Shell

Shell简单来讲就是命令解析器。将用户输入的指令转换为相应的机器能够运行的程序。

9.2 Sehll脚本

包含一系列命令序列的文本文件。

9.3 Shell语法

9.3.1 Shell脚本的第一行必须是如下格式:

#!/bin/sh

符号#!用来指定该脚本文件的解析程序(工具

)。在上面的例子中使用/bin/sh来解析该脚本。当编辑好脚本后,如果要执行该脚本,还必须使其具有可执行属性。

chmod +x filename

9.3.2 注释

以#开头的句子表示注释,直到这一行的结束。

9.3.3 变量

所有的变量没有类型,都由字符串组成,并且不需要预先对变量进行声明。

例:#!/bin/sh

#set variable a

a="Hello word"

# print a

echo "A is:"

echo $a

有时候变量名很容易与其他文字混淆。

例:num=2

echo "this is the $numnd"

说明:shell会去搜索变量numnd的值。可以使用花括号来告诉shell要打印的是num变量。

例:num=2

echo "this is the ${num}nd"

默认变量

$#:传入脚本命令行参数个数

$*:所有命令行参数值,在各个参数值之间留有空格

$0:命令本身(shell文件名)

$1:第一个命令行参数

$2:第二个命令行参数

9.3.4 局部变量

在变量首次被赋值时加上local关键字可以声明一个局部变量。

例:#!/bin/sh

hello="var1"

echo $hello

function func1 {

local hello="var2"

echo $hello

}

func1

echo $hello

9.3.5 变量注意:

变量赋值时,“=”左右两边都不能有空格

语句结尾不需要分号

9.3.6 If语句

if [ expression ]

then

#code block

fi

if [ expression ]

then

#code block

else

#code block

fi

if [ expression ]

then

#code block

else if [expression]

then

#code block

else

#code block

fi

比较

比较操作 整数操作 字符串操作

相同 -eq =

不同 -ne !=

大于 -gt >

小于 -lt <

大于或等于 -ge

小于或等于 -le

为空 -z

不为空 -n

注意:在“[”和“]”符号的左右都留有空格

“=”左右都有空格

例:

比较整数a和b是否相等:if [ $a = $b ] (也可以用 -eq)

判断整数a是否大于整数b:if [ $a -gt $b ]

比较字符串a和b是否相等:if [ $a = $b ]

判断字符串a是否为空:if [ -z $a ]

判断整数变量a是否大于b:if [ $a -gt $b ]

判断

-e:文件已经存在

-f:文件是普通文件

-s:文件大小不为零

-d:文件是一个目录

-r:文件对当前用户可以读取

-w:文件对当前用户可以写入

-x:文件对当前用户可以执行

例子:

#!/bin/sh

folder=/home

[ -r "$folder" ] && echo "Can read $folder"

[ -f "$folder" ] || echo "this is not file"

&&表示前面判断结果为真时,执行后面的语句

||表示前面判断结果为假时,执行后面的语句

9.3.7 for循环

for var in [list]

do

#code block

done

var是循环控制变量,[list]是var需要遍历的一个集合,如果list被包含在一对双引号中,则被认为是一个元素。如果do和for写在同一行,必须在do前面加上";"

注意:在for所在那行,变量day是没有加“$”符号的,而在循环体内,echo所在行变量是必须加上"$"符号的。

9.3.8 while循环/until循环

while [ condition ]

do

#code block

done

until [ condition ]

do

#code block

done

while和until的区别在于while是为真时执行,until是为假时执行。

9.3.9 case语句

case "$var" in

condition1 )

;;

condition2 )

;;

*)

default statments;;

esac

例:

#!/bin/sh

echo "Hit a key, then hit return."

read Keypress

case "$Keypress" in

[A-Z]

) echo "Uppercase letter";;

[a-z] ) echo "Lowercase letter";;

[0-9]

) echo "Digit";

*) echo "Punctuation,whitespca,or other";;

esac

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国嵌嵌入式Linux视频教程全套2011新版,强烈推荐!!! 国嵌视频1.iso -学习方法与课程体系介绍(学前必看) -学习方法介绍.avi -国嵌嵌入式课程体系.pdf -嵌入式Linux学习方法.pdf -国嵌课程1-嵌入式入门体验班(上) -第1天(嵌入式系统概述) -国嵌体验入门班-1-1(嵌入式系统概述).avi -国嵌体验入门班-1-2(ARM概述).avi -国嵌体验入门班-1-3(嵌入式Linux概述).avi -国嵌体验入门班-1-4(2440开发板介绍).avi -国嵌体验入门班-1-5(软硬件环境搭建).avi -第2天(开发板快乐体验) -国嵌体验入门班-2-1(开发板系统安装).avi -国嵌体验入门班-2-1(开发板系统安装-Jlink方式).avi -国嵌体验入门班-2-1(开发板系统安装-并口方式).avi -国嵌体验入门班-2-2(裸机程序体验).avi -国嵌体验入门班-2-3(QT系统体验).avi -国嵌体验入门班-2-4(Android系统体验).avi 国嵌视频2.iso -国嵌课程1-嵌入式入门体验班(下) -第3天(Linux系统体验) -国嵌体验入门班-3-1(Linux定制安装).avi -国嵌体验入门班-3-2(Linux命令).avi -国嵌体验入门班-3-3(VI使用).avi -国嵌体验入门班-3-4(Linux系统管理).avi -国嵌体验入门班-3-5(Shell编程).avi -国嵌体验入门班-3-6(Qcd功能演示).avi -国嵌体验入门班-3-7(必修实验).avi -国嵌课程2-嵌入式Linux应用开发班 -第1天(编程基础) -国嵌应用班-1-1(GCC程序编译).avi -国嵌应用班-1-2(GDB程序调试).avi -国嵌应用班-1-3(makefile工程管理).avi -国嵌应用班-1-4(必修实验).avi -第2天(文件时间编程) -国嵌应用班-2-1(系统调用方式访问文件).avi -国嵌应用班-2-2(库函数访问文件).avi -国嵌应用班-2-3(时间编程).avi -国嵌应用班-2-4(必修实验).avi -第3天(多进程程序设计) -国嵌应用班-3-1(进程控制原理).avi -国嵌应用班-3-2(进程控制程序设计).avi -国嵌应用班-3-3(必修实验).avi -第4天(进程间通讯) -国嵌应用班-4-1(进程间通讯概述).avi -国嵌应用班-4-2(管道通讯).avi -国嵌应用班-4-3(信号通讯).avi -国嵌应用班-4-4(共享内存通讯).avi -国嵌应用班-4-5(必修实验).avi -第5天(进程间通讯) -国嵌应用班-5-1(消息队列).avi -国嵌应用班-5-2(信号量).avi -国嵌应用班-5-3(必修实验).avi -第6天(进程间通讯) -国嵌应用班-6-1(线程基础).avi -国嵌应用班-6-2(多线程程序设计).avi -国嵌应用班-6-3(必修实验).avi -第7天(网络编程) -国嵌应用班-7-1(Linux网络概述).avi -国嵌应用班-7-2(Linux网络编程基础).avi -国嵌应用班-7-3(TCP程序设计).avi -国嵌应用班-7-4(UDP网络程序设计).avi -国嵌应用班-7-5(并发服务器).avi -国嵌应用班-7-6(必修实验).avi 国嵌视频3.iso -国嵌课程3-ARM系统进阶班 -第1天(ARM系统开发基础) -ARM系统精讲班-1-1(ADS集成开发环境).avi -ARM系统精讲班-1-2(ARM工作模式).avi -ARM系统精讲班-1-3(ARM寄存器).avi -ARM系统精讲班-1-4(ARM寻址方式).avi -ARM系统精讲班-1-5(ARM汇编指令详解).avi -第2天(ARM系统开发基础) -ARM系统精讲班-2-1(ARM汇编指令详解).avi -ARM系统精讲班-2-2(ARM伪指令).avi -ARM系统精讲班-2-3((混合编程).avi -ARM系统精讲班-1-8(必修实验).avi -第3天(LED驱动程序设计) -ARM系统精讲班-2-1(GPIO).avi -ARM系统精讲班-2-2(LED控制程序设计).avi -ARM系统精讲班-2-3((LED闪烁).avi -第4天(LED与按键驱动程序设计) -ARM系统精讲班-4-1(ARM中断控制系统).avi -ARM系统精讲班-4-2(按键控制程序设计).avi -ARM系统精讲班-2-6(必修实验).avi -第5天(定时器与时钟驱动程序设计) -ARM系统精讲班-5-1(ARM时钟体系).avi -ARM系统精讲班-5-2(定时器驱动程序设计).avi -国嵌课程4(嵌入式LINUX内核驱动进阶班-上) -第1天(内核开发基础) -国嵌内核驱动进阶班-1-1(Linux内核简介).avi -国嵌内核驱动进阶班-1-2(Linux内核源代码).avi -国嵌内核驱动进阶班-1-3(Linux内核配置与编译).avi -国嵌内核驱动进阶班-1-4(Linux内核模块开发).avi -国嵌内核驱动进阶班-1-5(必修实验).avi -第2天(U-Boot移植) -国嵌内核驱动进阶班-2-1(嵌入式linux系统架构).avi -国嵌内核驱动进阶班-2-2(交叉工具链).avi -国嵌内核驱动进阶班-2-3(Bootloader介绍).avi -国嵌内核驱动进阶班-2-4(U-Boot介绍).avi -国嵌内核驱动进阶班-2-5(U-Boot命令).avi -国嵌内核驱动进阶班-2-6(U-Boot启动流程).avi -国嵌内核驱动进阶班-2-7(Uboot移植).avi -国嵌内核驱动进阶班-2-8(必修实验).avi 国嵌视频4.iso -国嵌课程4(嵌入式LINUX内核驱动进阶班-下) -第3天(内核开发基础) -国嵌内核驱动进阶班-3-1(嵌入式linux内核制作).avi -国嵌内核驱动进阶班-3-2(根文件系统制作).avi -国嵌内核驱动进阶班-3-3(内核启动流程).avi -国嵌内核驱动进阶班-3-4(嵌入式文件系统).avi -国嵌内核驱动进阶班-3-5(必修实验).avi -第4天(内存管理子系统) -国嵌内核驱动进阶班-4-1(Linux内存管理).avi -国嵌内核驱动进阶班-4-2(进程地址空间).avi -国嵌内核驱动进阶班-4-3(内核地址空间).avi -国嵌内核驱动进阶班-4-4(Linux内核链表).avi -国嵌内核驱动进阶班-4-5(Linux内核定时器).avi -国嵌内核驱动进阶班-2-7(Uboot移植).avi -国嵌内核驱动进阶班-2-8(必修实验).avi -第5天(进程管理子系统) -国嵌内核驱动进阶班-5-1(LINUX进程控制).avi -国嵌内核驱动进阶班-5-2(LINUX进程调度).avi -国嵌内核驱动进阶班-5-3(Linux系统调用).avi -国嵌内核驱动进阶班-5-4(Proc文件系统).avi -国嵌内核驱动进阶班-5-5(内核异常分析).avi -国嵌内核驱动进阶班-5-6(必修实验).avi -第6天(简单字符设备驱动程序设计) -国嵌内核驱动进阶班-6-1(LINUX驱动程序介绍).avi -国嵌内核驱动进阶班-6-2(字符设备驱动程序设计).avi -国嵌内核驱动进阶班-6-3(字符设备驱动程序实例分析).avi -国嵌内核驱动进阶班-6-4(竞争与互斥).avi -国嵌内核驱动进阶班-6-5(必修实验).avi -第7天(高级字符设备驱动程序设计) -国嵌内核驱动进阶班-7-1(Ioctl设备控制).avi -国嵌内核驱动进阶班-7-2(内核等待队列).avi -国嵌内核驱动进阶班-7-3(阻塞型字符设备驱动).avi -国嵌内核驱动进阶班-7-4(Poll设备方法).avi -国嵌内核驱动进阶班-7-5(自动创建设备文件).avi -国嵌内核驱动进阶班-7-6(必修实验).avi
嵌入式 Linux 是一种在嵌入式系统中运行的 Linux 操作系统。学习嵌入式 Linux 可以让你了解如何在资源有限的环境中构建和部署 Linux 系统。下面是一些建议来帮助你开始学习嵌入式 Linux: 1. 学习 Linux 基础知识:了解 Linux 的基本命令和文件系统结构是学习嵌入式 Linux 的基础。你可以阅读一些入门级的 Linux 教程,例如《鸟哥的 Linux 私房菜》。 2. 掌握 C/C++ 编程语言:嵌入式系统常用 C/C++ 进行开发,熟悉这两种编程语言可以帮助你更好地理解和编写嵌入式 Linux 应用程序。 3. 了解嵌入式系统架构:不同的嵌入式设备可能采用不同的体系结构,例如 ARM、MIPS 等。了解这些架构的特点和应用场景,可以帮助你选择合适的开发板和工具链。 4. 学习交叉编译:由于嵌入式设备资源有限,通常需要在主机上进行交叉编译,将应用程序编译成目标设备可执行的代码。学习如何配置和使用交叉编译工具链是嵌入式 Linux 开发的重要一环。 5. 实践项目:通过完成一些嵌入式 Linux 项目来实践所学知识。可以选择一款嵌入式开发板,从搭建开发环境、编写驱动程序到构建用户应用,逐步深入了解嵌入式 Linux 的开发流程和技术。 6. 参考文档和社区:在学习过程中,及时查阅相关的文档和参考资料,如 Linux 内核文档、开发板厂商提供的技术手册等。此外,参与嵌入式 Linux 的开发社区,与其他开发者交流和分享经验也是很有价值的。 希望以上建议对你学习嵌入式 Linux 有所帮助!如果有更多问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值