Linux基础
Linux作为嵌入式操作系统的概述与优势
一、概述
Linux是一套免费试用和自由传播的类Unix操作系统。它作为操作系统,位于底层硬件与用户之间,担当两者的沟通桥梁。通过用户界面,Linux能解释用户命令、驱动硬件设备,满足用户需求。Linux操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,提供支持给其它应用软件,确保计算机系统资源的最大化利用。
嵌入式系统则是以应用为中心、软硬件可裁剪的专用计算机系统。它们在功能、可靠性、成本、体积、功耗等方面有特殊要求,与通用计算机系统的区别在于应用的差异性。
二、嵌入式系统的特点
- 特定应用导向:嵌入式系统通常面向特定应用设计,具有低功耗、体积小、集成度高等特点。
- 技术集成系统:嵌入式系统涉及多个领域的技术,是一个技术密集、资金密集、高度分散、不断创新的系统。
- 高度可定制性:嵌入式系统的硬件和软件必须高度可定制以适应应用的需要。
- 长生命周期:嵌入式系统的生命周期与其所应用产品的生命周期几乎一样长。
- 软件固化:软件一般固化在存储器芯片中,而非磁盘等载体。
- 开发工具依赖:嵌入式系统本身不具备自举开发能力,需要专门的开发工具和环境。
三、Linux作为嵌入式操作系统的优势
- 低成本开发系统:Linux源码开放,降低开发成本,提高效率。
- 多硬件平台支持:Linux支持多种体系结构,适用于多种硬件平台。
- 可定制的内核:Linux的内核模块机制允许实时地调整内核模块,根据需要进行裁剪。
- 性能优异:Linux系统内核精简高效,运行稳定,硬件利用率高。
- 良好的网络支持:Linux首先实现TCP/IP协议栈,提供全面的网络支持。
Linux作为嵌入式操作系统,其灵活性、开放性、高性能及网络支持等特性,使其在嵌入式领域中具有显著优势。
四、基础概念
1、文件系统、分区和挂载
linux的文件系统和windows中的文件系统有很大区别,Windows文件系统是以驱动器的盘符为基础的,而且每一个目录与相应的分区对应。而linux文件系统是一棵文件树,且它的所有文件和外部设备(如硬盘、光驱等)都是以文件的形式挂在这个文件树上,在Windows下,目录结构属于分区;linux下,分区属于目录结构。
2、文件类型及文件属性
linux中的文件类型与Windows有显著的区别,其中最显著的区别在于Linux对目录和设备都当做文件来处理,这样就简化了对各种不同设备的处理,提高了效率。linux中主要的文件类型分为四种:
(1)普通文件
普通文件同Windows中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell脚本、二进制的可执行程序和各种类型的数据
(2)目录文件
Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件的子目录的指针。目录文件时linux中存储文件名的唯一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构成了目录文件。
(3)链接文件
链接文件类似于Windows中的“快捷方式”,但是它的功能更为强大。它可以实现对不同的目录,文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间
(4)设备文件
linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用。在linux下的设备相关的文件一般都在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件
- 块设备文件是指数据的读写,它们是以块为单位的设备,最简单的如硬盘等
- 字符设备主要是指串行端口的接口设备
五、文件属性
Linux中的文件拥有者可以把文件的访问属性设成三种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有三个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)
第一个字符显示文件的类型:
- “-“ 表示普通文件
- “d” 表示目录文件
- “l” 表示链接文件
- “c” 表示字符设备
- “b”表示块设备
- “p” 表示命名管道,比如FIFO文件(first in first out,先进先出)
- “f” 表示堆栈文件,比如LIFO文件(last in first out,后进先出)
- “s” 表示套接字
六、文件系统类型
1、Ext2和Ext3
Ext3是现在Linux常见的默认文件系统,它是Ext2的升级版本。从Ext2转换到Ext3主要有四个理由:可用性、数据完整性、速度及易于转化。Ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从Ext2转换到Ext3无须进行格式化,因此更加推进了Ext3文件系统的推广。
2、SWAP文件系统
该文件系统是Linux中作为交换分区使用的。在安装Linux时,交换分区是必须建立的,并且它所采用的文件系统类型必须是SWAP而没有其他选择。
3、VFAT文件系统
Linux中把DOS中采用的FAT文件系统(包括FAT12、FAT16、FAT32)都称为VFAT文件系统。
4、NFS文件系统
NFS文件系统是指网络文件系统,它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其是在嵌入式领域。使用NFS文件系统可以很多方便地实现文件本地修改,从而免去了一次次读/写Flash的忧虑。
5、ISO 9660文件系统
这是光盘所使用的文件系统,在Linux中对光盘已有了很好的支持,它不仅可以提供对光盘的读/写,还可以实现对光盘的刻录。
七、Linux目录结构
可以把Linux系统看作由四部分构成:内核、用户界面、文件结构和实用工具
- /bin 普通用户的可执行文件,系统的任何用户都可以执行该目录中的命令
- /boot 存放Linux操作系统启动时所需要的文件
- /dev 系统中所有设备文件
- /etc 系统中的配置文件
- /home 普通用户的宿主目录,每个用户在该目下都有一个于用户名同名的目录。
- /mnt 中的子目录用于系统中可移动设备的挂载点
- /root 超级用户root的宿主目录
- /sbin 系统中的管理命令,普通用户不能执行
- /tmp 系统的临时目录
- /usr 系统应用程序的相关文件
- var 系统中经常变化的文件如日志文件和用户邮件
八、环境变量
1、配置环境变量和常用命令
在Linux系统中,配置环境变量和使用常用命令是非常重要的任务。本文将介绍如何配置用户环境变量,修改系统环境变量,以及一些常用的命令和技巧。
2、配置用户环境变量
用户环境变量通常在用户的Bash配置文件中设置。最常用的配置文件是.bashrc
和.bash_profile
。以下是配置用户环境变量的一般步骤:
打开终端并使用文本编辑器打开
.bashrc
文件(如果不存在,可以创建它):1
vi ~/.bashrc
在文件中添加或修改环境变量。例如,将新路径添加到
PATH
变量的末尾:1
PATH=$PATH:$HOME/bin:/安装目录/bin
保存文件并退出编辑器。
要使新的环境变量生效,可以退出当前终端会话并重新登录,或者使用以下命令立即应用更改:
1
source ~/.bashrc
3、修改系统环境变量
系统环境变量通常在系统范围的配置文件中设置。以下是一些常见的系统环境变量配置文件:
/etc/profile
/etc/environment
要修改系统环境变量,您需要具有管理员权限。使用文本编辑器打开适当的配置文件,进行编辑,并保存更改。然后,您可以重新启动系统或重新加载相关服务以使更改生效。
4、常见环境变量
Linux系统中有一些常见的环境变量,它们存储了有关系统和用户的信息。以下是一些示例:
SHELL
: 默认的Shell程序。PATH
: 包含可执行文件的路径列表。USER
: 当前登录用户的用户名。
您可以使用echo
命令来查看这些变量的值。例如:
1 | echo $SHELL |
5、常用命令和技巧
通配符
通配符是用于文件名模式匹配的特殊字符。以下是两个常用的通配符:
*
: 匹配零个或多个字符。?
: 匹配一个字符。
别名
别名是命令的简化形式,可以通过alias
命令定义。以下是一些常见的别名示例:
1 | alias cp='cp -i' |
您可以使用alias
命令查看系统中已定义的别名。
这份文档涵盖了配置环境变量和使用常用命令的基础知识。根据您的需求,您可以进一步扩展文档以包括更多详细信息和示例。
九、系统级环境变量
如果您需要配置系统级别的环境变量,通常会使用系统范围的配置文件,而不是用户级别的.bash_profile
文件。系统级别的环境变量配置文件通常位于/etc
目录下,具体取决于您的Linux发行版。以下是一些常见的系统环境变量配置文件和它们的作用:
/etc/profile
:这是系统范围的配置文件,用于配置系统中的所有用户的环境变量。在这里定义的变量将对所有用户生效。/etc/environment
:这是另一个系统级别的配置文件,用于设置系统范围的环境变量。它通常包含一些全局的环境变量设置。
要配置系统级别的环境变量,您需要以管理员权限编辑适当的配置文件,然后重启系统或重新加载相应的服务以使更改生效。以下是一个示例,如何编辑/etc/environment
文件:
以管理员权限打开
/etc/environment
文件。您可以使用sudo
命令和文本编辑器,例如vi
来执行此操作:1
sudo vi /etc/environment
在文件中添加或修改需要的环境变量,以
KEY=VALUE
的格式表示。例如:1
2PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
MY_VARIABLE="Hello, World!"保存文件并退出编辑器。
要使更改生效,可以重新启动系统或重新加载特定的服务,具体取决于您的Linux发行版。
请注意,系统级别的环境变量对所有用户都会生效,因此要谨慎修改这些配置文件。确保您知道您在做什么,并备份重要的配置文件以防万一。