嵌入式Linux 期末复习指南(上)

鉴于互联网上针对本科目相关复习视频及资料过少,

撰写本篇期末复习指南用作期末复习知识点扫盲,以应对本科期末考试及格之用。

由于任课老师并透露考试范围或任何有关试卷的相关信息,本篇指南基于教材、上机实验报告及作者经验编写,仅供参考。

鉴于试卷考察形式以简答及代码编写题为主(死记硬背),指南精炼作者认为有用的知识点,非重点则不予总结。

一、Linux操作系统简介

Linux操作系统源于自由软件运动。

Linux操作系统的特点有哪些?

答:

①开源与自由 ②多用户多任务 ③良好的用户界面 ④丰富的网络功能 ⑤安全稳定

⑥良好的可移植性 ⑦设备独立性 ⑧支持多文件系统

二、Linux操作系统管理常用命令

命令缩写:提高编码效率及代码简洁度。

coding又不是写文章,知道代码指令什么意思就完了 ;)

1、touch 新建文件

复制代码
touch [选项] [文件]

2、useradd 创建新用户

复制代码
useradd [用户名]

3、passwd 修改用户密码

复制代码
passwd [用户名]

4、su 切换用户

复制代码
su [用户名]
常用:su root -> 输入password:12345 [Enter] -> 切换管理员

5、shutdown 关机

6、cp 复制文件 (copy -> cp

复制代码
cp [源目录或文件] [目标目录或文件]

7、mv 移动文件 (move -> mv

复制代码
mv [源目录或文件] [目标目录或文件]

8、rm 删除文件 (remove -> rm

复制代码
rm [将要删除的目录或文件]

9、mkdir 新建文件夹 (make directory -> mkdir

复制代码
mkdir [目录]

10、cd 切换当前工作目录

复制代码
cd [目录]

11、pwd 获取当前工作目录 (print working directory -> pwd

12、ls 列出目录所有文件(list directory contents -> ls

13、tar 压缩

14、unzip 解压缩

15、chmod 修改用户对文件的权限

# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r-- 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 --x 001
0 --- 000

16、df 查看磁盘使用情况

17、du 查看目录大小

18、ifconfig 查看网络配置

19、netstat 查看网络状态

20、grep 查找字符串

21、rpm 软件安装

22、mount 安装/挂载设备

23、umount 卸载设备

24、find 查找文件

25、top 查看CPU占用/使用情况

26、ps 查看进程占用/使用情况

27、kill 杀死进程

28、man 查询Linux指令使用方式

什么是输入/输出重定向?举例说明。

答:用于改变命令的输入/输出来源或目标。

将文件file1的内容作为命令的输入

command < file1

将命令的输出写入到file2中(覆盖原有内容)

command > file2

将命令的输出追加到file2中(保留原有内容)

command >> file2
什么是管道?举例说明。

答:将一个命令的输出作为另一个命令的输入。

使用 "command1 | command2"
合并两个文件?

答:$ cat file1 file2 >> combined_file
Linux操作系统进程间通讯方式?

答:①管道 ②消息队列 ③共享内存 ④信号量 ⑤信号 ⑥Socket

三、Shell编程

掌握Shell简单逻辑代码的编写。

通过实例搞懂基本代码编写,考试不会超出这些例子范围(如果考了)。

1、Shell编程,利用两层循环打印乘法表( for循环

bash 复制代码
#!/bin/bash

# 外层循环控制行数(1到9)
for i in {1..9}; do
    # 内层循环控制每行的列数(1到当前行数i)
    for ((j=1; j<=i; j++)); do
        # 计算乘积并格式化输出
        printf "%d*%d=%-2d " $j $i $((j*i))
    done
    # 每行结束后换行
    echo
done

2、Shell编程,接收用户输入,判断是否为纯数字( Input / 正则表达式匹配字符串

bash 复制代码
#!/bin/bash

# 提示用户输入
read -p "请输入一个数字: " input

# 判断是否为数字
if [[ "$input" =~ ^[0-9]+$ ]]; then
    echo "您输入的是数字: $input"
else
    echo "错误: '$input' 不是有效的数字"
fi

3、Shell编程,根据用户输入的成绩判断及格情况( if判断 / break和continue的使用

bash 复制代码
#!/bin/bash

echo "学生成绩评定系统(输入Q退出)"

while true; do
    read -p "请输入学生成绩(0-100): " score
    
    # 检查是否输入Q退出
    if [[ "$score" =~ ^[Qq]$ ]]; then
        echo "退出成绩评定系统"
        break
    fi
    
    # 检查输入是否为数字
    if ! [[ "$score" =~ ^[0-9]+$ ]]; then
        echo "错误:请输入有效的数字成绩!"
        continue
    fi
    
    # 检查成绩范围是否合法
    if (( score < 0 || score > 100 )); then
        echo "错误:成绩必须在0-100之间!"
        continue
    fi
    
    # 判断及格情况
    if (( score >= 60 )); then
        echo "成绩 $score: 及格"
    else
        echo "成绩 $score: 不及格"
    fi
done

break和continue的区别:

break - 立即终止整个循环​

continue - 跳过当前迭代,进入下一次循环​

四、Linux常用开发工具

VI文本编辑器、GCC编译器和GDB调试工具。

看书了解即可。

五、文件系统与操作

1、Linux文件系统目录

(1)根目录(/)

(2)/bin:存放Linux命令及二进制可执行文件

(3)/boot:存放内核文件和引导装载程序文件

(4)/dev:设备文件目录(磁盘、光驱、网卡等设备)

(5)/etc:存放系统配置文件

(6)/home:系统默认用户宿主目录

(7)/lib、/usr/lib、/usr/local/lib:存放系统使用的函数库的目录

(8)/lost+fount:系统崩溃或者意外关机产生的文件

(9)/mnt:用于临时挂载文件系统

(10)/opt:额外安装软件存放目录

(11)/proc:内存数据

(12)/root:系统管理员目录

(13)/sbin:存放系统管理员使用的可执行命令

(14)/srv:存放服务需要访问的数据

(15)/tmp:存放临时文件

(16)/usr:应用程序存放目录。其中/bin存放应用程序,/share存放共享数据,/lib存放函数库文件,/local存放用户安装软件目录,/share/doc存放系统说明文件

(17)/var:存放系统运行过程中易变化的文件。

2、文件权限

每一文件或目录的访问权限分三组,每组用三位表示:

①文件属主 ②与属主同组用户 ③其他用户

-rwxr--r-- 拆分来看 第一位的"-"表示文件类型 之后的每三位对应每一类用户的三类权限情况

r:read------读 w:write------写 x:excute------执行

使用chmod命令更改文件或目录权限,详见前文。

解释inode节点在文件系统中的作用

答:存储了文件的​​元数据​ ​(metadata)和​​物理存储位置。无需遍历目录树即可快速定位。

与文件名的关系:

文件名 ≠ 文件本身​ ​:

文件名存储在​​目录项(dentry)​​中,目录本质是"文件名到inode号"的映射表。
什么是符号链接?什么是硬链接?区别?

答:

​特性​ ​符号链接​ ​硬链接​
​本质​ 存储目标路径的独立文件 与目标文件共享inode的文件别名
​跨文件系统​ 支持 不支持
​链接目录​ 支持 不支持
​目标文件删除后​ 链接失效(悬空) 仍可访问数据
​inode号​ 与目标文件不同 与目标文件相同
​文件大小​ 等于路径字符串的长度 与目标文件相同
​权限​ 始终为lrwxrwxrwx(无实际意义) 与目标文件一致

符号链接理解为:快捷方式,删除目标文件后,链接失效。
硬链接理解为:文件索引,删除目标文件后,索引存在,文件正常访问。
linux操作系统有几种类型文件?它们分别是什么?相同和不同点?
答:七种

​类型标识​ ​描述​ ​ls -l显示​ ​示例​
- 普通文件(Regular File) -rw-r--r-- 文本、二进制、压缩包等
d 目录文件(Directory) drwxr-xr-x /home, /etc
l 符号链接(Symbolic Link) lrwxrwxrwx 软链接(如/usr/bin/python
c 字符设备文件(Character Device) crw--w---- 终端(/dev/tty)、键盘
b 块设备文件(Block Device) brw-rw---- 磁盘(/dev/sda)、USB设备
p 管道文件(Named Pipe) prw------- 进程间通信(FIFO)
s 套接字文件(Socket) srwxrwxrwx 网络通信(/var/run/docker.sock)

相同点:

  1. 均通过inode管理,具有权限、所有者等元数据。
  2. 使用统一的文件操作接口(如open()read())。
  3. 文件名均存储在目录中,与inode关联。

不同点:

​特性​ 普通文件 目录 符号链接 设备文件 管道 套接字
​存储数据​ 仅路径 临时
​可读写内容​ 重定向
​跨文件系统​
​工具创建​ touch mkdir ln -s mknod mkfifo 应用自动
相关推荐
AlfredZhao13 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫2 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++