Linux嵌入式自学笔记(基于野火EBF6ULL):3.连网、Linux文件目录
一、连网
注:校园网要用“网络地址转换(NAT)”模式
测试:打开终端:输入ping www.baidu.com ,然后记得输入ctrl+c终止不然就会一直弹
二、文件目录
1.进入根目录
cd /
2.查看子目录
ls
3.查看具体目录,以查看bin目录文件为例
ls /bin
4.查看整个系统目录层次(?)
tree命令(未解决)
5.linux文件系统层次结构标准:FHS3.0(可以去官网下载下来看,50多页英文)
/boot 目录:存储系统启动相关的静态文件,例如内核镜像(vmlinuz)、初始化内存盘(initrd/initramfs)以及引导加载程序(如 GRUB)的配置文件。这些文件是系统启动过程中必需的。
/dev 目录(device):包含设备文件,用于表示硬件设备或虚拟设备。例如,
/dev/sda
表示硬盘,/dev/null
表示空设备。Linux 通过文件系统与设备交互,设备文件分为字符设备和块设备。/bin 目录(binary):存放系统核心的可执行二进制文件,例如常用命令
ls
、cp
、mv
等。这些命令在单用户模式下也能使用,供基本系统操作。/etc 目录(“et cetera”(拉丁语,意为“等等”)):存储系统配置文件,例如网络配置(
/etc/network
)、用户密码(/etc/passwd
)、服务配置等,是系统管理的核心目录。/home 目录:用户的主目录,每个普通用户在此有自己的子目录(如
/home/username
),用于存储个人文件和配置文件。/lib 目录(library):包含系统启动和运行所需的核心共享库文件(如动态链接库
.so
文件),支持/bin
和/sbin
中的二进制文件。/mnt 目录(mount):临时挂载点,用于挂载文件系统,如 U 盘、移动硬盘等外部存储设备。
/opt 目录(optional):存放可选的第三方软件包或手动安装的应用程序,通常是独立软件的安装位置。
/proc 目录(process):虚拟文件系统,存储系统运行时的状态信息,例如进程信息(
/proc/[pid]
)、硬件状态(/proc/cpuinfo
)等,内容动态生成。/root 目录:超级用户(root)的主目录,区别于普通用户的
/home
目录。/sbin 目录:存储系统管理相关的二进制文件,如
fdisk
、ifconfig
等,通常需要管理员权限运行。/tmp 目录:用于存储临时文件,系统重启后内容通常会被清除,适合短期数据存储。
/usr 目录:存放用户安装的程序和数据,包括二进制文件(
/usr/bin
)、库文件(/usr/lib
)、文档(/usr/share/doc
)等。/var 目录(variable):存储动态变化的数据,如日志文件(
/var/log
)、邮件(/var/mail
)、数据库文件等。- /media 目录:用于自动挂载可移动存储设备(如 U 盘、CD/DVD、移动硬盘等)的挂载点。现代 Linux 发行版(如 Ubuntu)通常通过桌面环境或系统工具(如 udev)自动将插入的设备挂载到此目录下的子目录(如
/media/username/disk
)。与/mnt
不同,/media
更常用于用户友好的自动挂载场景。查看读卡器分区常用。
点击文件管理器菜单项的最后一项:“其他位置”
然后点开“计算机”
proc目录下:
6.查看根目录下的详细子目录情况
ls -l /
"drwxr":目录; "-rw":是普通文件 “->” 表示指针; “lrwx”链接文件 ;
Linux的哲学:“一切皆文件”
7.系统路径
Linux 文件系统采用树形结构,路径用于定位文件或目录。路径分为绝对路径和相对路径,用于描述文件或目录在文件系统中的位置。
绝对路径
- 定义:从文件系统的根目录(
/
)开始,完整描述文件或目录的路径,不依赖当前工作目录。 - 特点:
- 以
/
开头。 - 路径固定,无论当前在哪个目录,指向的位置始终相同。
- 常用于脚本或需要明确指定文件位置的场景。
- . 表示当前目录,也可以用./表示
- 以
- 示例:
/home/user/documents/file.txt
:表示从根目录到file.txt
的完整路径。/etc/passwd
:指向系统用户密码文件。
相对路径
- 定义:相对于当前工作目录(通过
pwd
命令查看)的路径,不以/
开头。 - 特点:
- 依赖当前所在目录,路径描述基于当前位置。
- 使用
.
表示当前目录,..
表示上级目录。 - 更简洁,适合在当前目录附近操作。
- .. 表示上一层目录,也可以用../表示
- 示例:
- 如果当前目录是
/home/user
,则documents/file.txt
指向/home/user/documents/file.txt
。 ../config
表示当前目录的上级目录中的config
文件或目录。
- 如果当前目录是
三、用户和用户组
UID(用户标识)
定义
- UID 是 User ID(用户标识号)的缩写,是 Linux 系统中用于唯一标识用户的数字标识。
- 每个用户(包括普通用户和系统用户)在系统中都有一个唯一的 UID,存储在
/etc/passwd
文件中。
双击即可打开
或者终端输入:
sudo gedit /etc/passwd
作用
- 身份认证:系统通过 UID 识别用户,确定其权限和访问控制。
- 文件所有权:文件和目录的所有者以 UID 形式记录,用于权限检查(如读、写、执行)。
- 进程管理:运行的进程与某个 UID 关联,决定进程的权限范围。
特点
- 范围:
- UID 通常为非负整数。
0
:保留给超级用户(root
),具有最高权限。1-999
:通常分配给系统用户或服务(如daemon
、bin
),用于运行系统进程。1000+
:通常分配给普通用户(视发行版而定,如 Ubuntu 从 1000 开始)。
- 查看方式:
- 命令
id
或id <用户名>
显示用户的 UID、GID 及所属群组。- 示例:
id alice
可能输出uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo)
。
- 示例:
- 查看
/etc/passwd
文件,格式为:username:x:UID:GID:comment:home_directory:shell
示例:alice:x:1000:1000:Alice User:/home/alice:/bin/bash
。
- 命令
示例
- 用户
alice
的 UID 为 1000,创建文件/home/alice/file.txt
时,文件的所有者 UID 记录为 1000。 - 超级用户
root
(UID=0)可以访问系统中的任何文件。
GID(群组标识)
定义
- GID 是 Group ID(群组标识号)的缩写,是 Linux 系统中用于唯一标识用户群组的数字标识。
- 每个群组有一个唯一的 GID,存储在
/etc/group
文件中。
作用
- 权限管理:群组用于简化权限分配,同一群组的用户共享某些文件或资源的访问权限。
- 文件访问控制:文件和目录的群组所有权以 GID 记录,决定群组成员的访问权限。
- 协作:多个用户可属于同一群组,方便共享资源(如项目文件夹)。
特点
- 范围:
- GID 也是非负整数,与 UID 类似。
0
:通常为root
群组。1-999
:系统群组,如adm
、wheel
等。1000+
:普通用户群组。
- 主群组与附加群组:
- 每个用户有一个主群组(Primary GID),记录在
/etc/passwd
中。 - 用户还可属于多个附加群组(Secondary Groups),记录在
/etc/group
中。
- 每个用户有一个主群组(Primary GID),记录在
- 查看方式:
- 命令
id
显示用户的 GID 和所属群组。 - 查看
/etc/group
文件,格式为:group_name:x:GID:user1,user2,...
示例:sudo:x:27:alice,bob
表示sudo
群组的 GID 为 27,包含用户alice
和bob
。
- 命令
示例
- 用户
alice
的主 GID 为 1000(群组alice
),她还属于sudo
群组(GID=27)。 - 文件
/home/project/data.txt
的群组 GID 为 1001(project
群组),project
群组的成员可按权限访问该文件。
UID 和 GID 的关系
- 用户与群组:每个用户有唯一的 UID 和主 GID,并可加入多个群组(附加 GID)。
- 文件权限:文件权限分为三类(所有者、群组、其他),通过 UID 和 GID 确定:
- 所有者(Owner):由文件的 UID 决定。
- 群组(Group):由文件的 GID 决定。
- 其他(Others):非所有者和群组成员的用户。
- 查看文件权限:
ls -l
,示例输出:-rw-r--r-- 1 alice project 1024 Sep 17 2025 data.txt
alice
(UID=1000)是所有者,project
(GID=1001)是群组。
- 管理命令:
- 添加用户:
useradd -u <UID> -g <GID> <用户名>
指定 UID 和主 GID。 - 添加群组:
groupadd -g <GID> <群组名>
。 - 修改用户群组:
usermod -aG <群组名> <用户名>
添加到附加群组。
- 添加用户: