这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【每日总结】liklon从零学嵌入式Linux

共87条 1/9 1 2 3 4 5 6 ›| 跳转至

【每日总结】liklon从零学嵌入式Linux

高工
2014-04-22 09:48:22     打赏

      之前论坛里一点一滴学习嵌入式Linux的活动没赶上,非常遗憾哟...

      现在开始一点一点的学习嵌入式Linux,决定每天晚上把当天学习的内容贴出来,大家共同学习和交流。

      开工.....

      

      学习过程中对于指出小弟问题的盆友们,将赠送积分作为感谢


      第一天:    Linux基础知识 + Linux虚拟机建立共享文件夹并熟悉常用命令

      第二天:    Linux下C语言编程与调试基础

      第三天:    Linux开发环境搭建

      第四天:    编译Linux内核(1)

      第五天:    编译Linux内核(2)

      第六天:    编译Linux内核(3)+NFS安装配置

      第七天:      文件IO编程(1)     祝大家节日快乐....

      第八天:   文件IO编程(2)

     第九天:   Linux进程控制

      第十天:    Linux进程通信--管道

      第十一天    Linux进程通信-信号通信(1)

      第十二天    Linux进程通信-信号通信(2)

      第十三天    Linux进程通信-信号量 

      第十四天    Linux进程通信-共享内存

      第十五天    Linux进程通信-消息队列

      第十六天    Linux进程通信部分总结

      第十七天    Linux多线程编程(一)

      第十八天    Linux多线程编程(二)

      第十九天    Linux多线程编程(三)

      第二十天    Linux多线程编程(四)

   第二十一天    Linux多线程编程(五)

   第二十二天    网络基础架构

   第二十三天    Linux网络编程-TCP程序设计(一)

   第二十四天    Linux网络编程-TCP程序设计(二)

   第二十五天    Linux网络编程-UDP程序设计(一)      (二)    

   第二十六天    Makefile编写基础。(分享了一份很不错教程,欢迎下载)



嵌入式LINUX学习第二部分(基于OK6410开发板学习)


        第一炮    ARM汇编指令基础     

        第二炮    吐槽一下买了龙芯笔记本8089b之后的“悲惨经历”

        第三炮    两台linux电脑之间传输文件(一)

     第四炮    两台linux电脑之间传输文件(二)




关键词: 嵌入式     Linux     总结    

高工
2014-04-22 09:49:32     打赏
2楼

一、LINUX基础知识

安装的是virtualbox虚拟机和Ubuntu10.04   http://pan.baidu.com/s/1mghtbHA

1.文件系统和根文件系统

    操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

    根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。根文件系统包括Linux启动时所必须的目录和关键性的文件

详细了解查看链接:http://baike.baidu.com/link?url=6qvwzs01i6cUPXCajLHKDdf79ESNtCPx_4fT88GwgXwwqvDdMuU6S-bbz80_K2-w

http://baike.baidu.com/link?url=R5DGJGK_nDv4jUkd7DtRdKcKSMqadwp3_XG9iz9g9ryhZ_ilOgMYgK3sT4Scym_qggc3QsY0cfYww53eYPrk-K

    linux的文件系统和windows不同,windows每个目录都与分区对应,而linux下文件系统就像一棵树,所有文件和外部设备都以文件的形式挂在这棵树上。这样又出现了一个概念就是挂载在linux中把每个分区与某一个目录对应,之后操作这个目录就是操作这个对应的分区。把分区和目录对应的过程叫挂载。挂载在文件树种的位置就是挂载点。这种关系可以由用户随时改变和中断。

2.主分区,扩展分区,逻辑分区

  主分区就是包含操作系统启动所必须的文件和数据的硬盘分区,要在硬盘上安装操作系统就必须有一个主分区,主分区最多是4个。除了主分区外的就是扩展分区,而扩展分区不能直接使用,必须得分为多个逻辑分区,逻辑分区数量没有限制。

         C盘-------/dev/hda1   (主分区)

         D盘------/dev/hda5  (逻辑分区,从hda5开始)

         E盘-----/dev/hda6    (逻辑分区)

3. root权限

   拥有超级权限的用户称为root用户。root用户的默认目录是在/root下,其他普通用户是在/home下。root用户的权限极高,可以修改内核,所以初学者慎用。

4.linux下的文件类型

  linux的一个特点是将设备和目录都看作文件来处理,不需要不同设备用不同的处理方法,提高了效率。Linux中主要的文件类型分为四种:普通文件,目录文件,链接文件,设备文件。

   普通文件就是用户平时使用最多的文件,像WINDOWS中的文本文件之类的。

   目录文件是linux中存储文件的唯一地方 ,在linux中目录也是文件。将文件和目录对应起来时,也就是指针将其链接起来之后,就构成了目录文件。操作目录文件一般不涉及对文件类容的操作。

   链接文件就类似于windows中的快捷方式。

Linux将设备也是当作文件来操作

块设备文件是指数据的读写,是以块为单位的设备,比如硬盘等

字符设备主要是指串行端口的接口设备

5.文件系统的组织结构

/ Linux 文件系统的入口,也是处于最高一级的目录;

/bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令;比如 ls、cp、mkdir等命令;

/usr/bin 这个目录中的文件都是可执行的,做为基础系统所需要的最基础的命令就是放在这里。

/boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;

/dev 设备文件存储目录,比如声卡、磁盘…… ……

/etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;

/home 普通用户家目录默认存放目录;

/lib 库文件存放目录

/lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。

/media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录;

    /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。比如光驱可以挂载到/mnt/cdrom .

    /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

   /root Linux超级权限用户root的目录;

   /sbin 是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的;凡是目录sbin中包含的都是root权限才能执行的。

   /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。

   /usr 这个是系统存放程序的目录,这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。普通用户可执行文件目录/usr/bin 或/usr/local/bin,超级权限用户root的可执行命令存放目录,比如/usr/sbin 或/usr/local/sbin 等;还有程序的头文件存放目录/usr/include.

   /var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。

    



院士
2014-04-22 10:15:41     打赏
3楼
我靠,太棒了

院士
2014-04-22 10:23:14     打赏
4楼

零基础~~

这个可要鼓励啊~~


专家
2014-04-22 16:37:25     打赏
5楼
Linix,越来越高端了,持续关注,希望楼主详细点。

高工
2014-04-22 17:16:44     打赏
6楼
呵呵,每天一点点,生活多姿多彩嘛

高工
2014-04-22 17:17:36     打赏
7楼
再来好好学学

高工
2014-04-22 17:18:43     打赏
8楼
嗯,会把觉得有价值的贴出来,大家一起看

高工
2014-04-22 18:15:56     打赏
9楼

二、基础命令

   通过在linux下安装交叉编译工具来熟悉一些基础命令

1、建立共享文件夹(VirtualBox 系统自带方式)

  

 启动虚拟机,然后选择安装增强功能,等安装完成后开始下一步的配置。  


  设置共享文件夹路径


进入Linux环境修改用户权限,进入/media目录到共享的文件夹sf_liklon-linux,然后查看这个文件夹所在的用户组,并将本机用户添加到对应的用户组。

所用到的指令:

sudo,su:

sudo我们主要用来临时提升权限,主要用以管理员(超级用户)的权限来运行命令,当需要修改当前登录用户力所不能及的文件/目录时需要用sudo。Linux下输入密码不是像windows中显示的是*,而是什么都不显示。添加用户到某一个组,需要在管理员权限,所以要用到这个。

ls:

显示目录内容

最常用参数:

-a        —-显示指定目录所有文件,包括文件名以 . 开头的文件

-l        —-显示文件详细信息(包括文件类型,权限,修改时间,访问时间,大小,文件名…)

-h        —-将文件大小以方便阅读的形式表示出来,配合 -l 参数使用,常有奇效

cd:

切换当前工作目录

不同于其他命令,这是一个shell内置命令

最常用参数:

.        —-切换到当前目录(貌似没有什么意义)(.这个目录可以通过ls -a看到)

..       —-切换到上层目录

~        —-回到家目录(/home/你的登录名/)

gpasswd

功能:管理组

用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname

参数:

-a:添加用户到组

-d:从组删除用户

-A:指定管理员

-M:指定组成员和-A的用途差不多

-r:删除密码

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组


1行:cd /media/   进入/media目录

2行:ls  列出目录下的文件

4行:cd sf_liklon-linux/  进入共享文件夹

5行:提示没有权限,所以需要将当期用户添加到组

6行:详细列表

详细列表7个段分别是:

文件属性:drwxrwx---

文件硬链接数或目录子目录数:

所有者:root

所属用户组:vboxsf

文件大小:0

修改时间:2014---

文件名:sf_liklon-linux

采用gpasswd命令添加当期用户到vboxsf组,得用管理员权限,所以加sudo

添加完成后再进去还是没有权限是因为必须重新登录用户,所以现在注销然后登录。


进去后可以看到共享的文件:


共享文件夹设置完成了,开始安装交叉编译工具。用到的指令:

mkdir [选项] 目录...

创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。 

-m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 

-v, --verbose  每次创建新目录都显示信息

--help   显示此帮助信息并退出

--version  输出版本信息并退出

cp [选项]...  源 目的

将源文件复制至目标文件,或将多个源文件复制至目标目录。

命令参数:

-a,    --archive      等于-dR --preserve=all

    --backup[=CONTROL 为每个已存在的目标文件创建备份

-b            类似--backup 但不接受参数

     --copy-contents  在递归处理是复制特殊文件内容

-d             等于--no-dereference --preserve=links

-f,    --force      如果目标文件无法打开则将其移除并重试(当 -n 选项

              存在时则不需再选此项)

-i, --interactive     覆盖前询问(使前面的 -n 选项失效)

-H             跟随源文件中的命令行符号链接

-l, --link        链接文件而不复制

-L, --dereference      总是跟随符号链接

-n, --no-clobber       不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference   不跟随源文件中的符号链接

-p            等于--preserve=模式,所有权,时间戳

--preserve[=属性列表   保持指定的属性(默认:模式,所有权,时间戳),如果

             可能保持附加属性:环境、链接、xattr 等

-R, -r, --recursive  复制目录及目录内的所有项目

tar 

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

.rar

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName



上面的几行命令完成的步骤是

建立目录/usr/local/armtest/

然后将共享文件夹里的压缩包复制到新建目录

然后利用解压命令解压。

解压完成后查看



开始设置环境变量(PS.在发帖前已经我已经添加了环境变量,就不重新添加,只介绍方法了)

# vi /etc/profile

在文档最后,添加:

export PATH="目录:$PATH"

保存,退出,然后运行:

#source/etc/profile

这里要用到vi编辑器,可以再网上查找vi编辑器的使用方法。

Vi编辑器的使用方法:http://www.jb51.net/os/RedHat/1131.html

Ubuntu常用命令与技巧 http://www.iteye.com/topic/148375




专家
2014-04-22 18:38:28     打赏
10楼

共87条 1/9 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]