ZYNQ - 嵌入式Linux开发 -01- shell操作和文件系统

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: ZYNQ - 嵌入式Linux开发 -01- shell操作和文件系统

shell


Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell 负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。

shell基本操作


Shell 命令的格式如下:

command  -options  [argument]

image.png

常用Shell命令


image.png


Linux文件系统


操作系统的基本功能之一就是文件管理,而文件的管理是由文件系统来完成的。在 Windows 下有 FAT、 NTFS 和 exFAT 这样的文件系统,在 Linux 下的文件系统主要有 ext2、 ext3、 ext4 等文件系统。 Linux 还支持其他的 UNIX 文件系统,比如XFS、 JFS、 UFS 等,也支持 Windows 的 FAT 文件系统和网络文件系统 NFS 等。这里主要讲一下 Linux自带的 ext2、 ext3 和 ext4 文件系统。

ext2 文件系统:

ext2 是 Linux 早期的文件系统,但是随着技术的发展 ext2 文件系统已经不推荐使用了, ext2 是一个非日志文件系统,大多数的 Linux 发行版都不支持 ext2 文件系统了。

ext3 文件系统:

ext3 是在 ext2 的基础上发展起来的文件系统,完全兼容 ext2 文件系统, ext3 是一个日志文件系统, ext3支持大文件, ext3 文件系统的特点有如下:

  • 高可靠性:使用 ext3 文件系统的话,即使系统非正常关机、发生死机等情况,恢复 ext3 文件系统也只需要数十秒。
  • 数据完整性: ext3 提高了文件系统的完整性,避免意外死机或者关机对文件系统的伤害。
  • 文件系统速度: ext3 的日志功能对磁盘驱动器读写头进行了优化,文件系统速度相对与 ext2 来说没有降低。
  • 数据转换:从 ext2 转换到 ext3 非常容易,只需要两条指令就可以完成转换。用户不需要花时间去备份、恢复、格式化分区等,用 ext3 文件系统提供的工具 tune2fs 即可轻松的将 ext2 文件系统转换为 ext3 日志文件系统。 ext3 文件系统不需要经过任何修改,可以直接挂载成 ext2 文件系统。

ext4 文件系统:

ext4 文件系统是在 ext3 上发展起来的, ext4 相比与 ext3 提供了更佳的性能和可靠性,并且功能更丰富,ext4 向下兼容 ext3 和 ext2,

因此可以将 ext2 和 ext3 挂载为 ext4。在终端中输入如下命令来查询当前磁盘挂载的是啥文件系统:

df -T –h

**根目录“/” **


Linux下“/”就是根目录!所有的目录都是由根目录衍生出来的。使用cd 命令进入根目录并使用ls命令查看根目录下的文件。

cd / //进入到根目录“/
ls //查看根目录“/”下的文件以及文件夹

image.png

Ubuntu文件系统结构


当我们进入到根目录“/” 里面以后终端提示符“” 前 面 的 符 号 “   ” 变 成 了 “ / ” , 这 是 因 为 当 我 们 在 终 端 中 切 换 了 目 录 以 后 “ ”前面的符号“~”变成了“/”,这是因为当我们在终端中切换了目录以后“”前面的符号“ ”变成了“/”,这是因为当我们在终端中切换了目录以后“”前面就会显示切换以后的目录路径。 根目录“/”中的一些重要的文件夹:

image.png

image.png

绝对路径和相对路径


**绝对路径:**从根目录“/”算起的路径。

**相对路径:**相对于目前路径的文件名写法,比如./home/vuko。不是以“/”开头的就行。

  • “.”代表当前路径,也可以 用“./”表示
  • “…”代表上一层目录,也可以用“…/”表示

压缩和解压缩


Ubuntu 下进行文件的压缩和解压缩,可以通过图形化界面进行压缩和解压缩,在Linux操作系统中,比较常用的是使用命令行进行压缩和解压缩。命令行下进行压缩和解压缩常用的命令有三个: zip、 unzip 和 tar。

命令 zip


zip 命令是针对.zip 文件的,用于将一个或者多个文件压缩成一个.zip 结尾的文件,命令格式如下:

主要参数函数如下:

zip [参数]   [压缩文件名.zip]   [被压缩的文件]

image.png

命令 unzip


unzip 命令用于对.zip 格式的压缩包进行解压,命令格式如下:

unzip [参数] [压缩文件名.zip]

主要参数如下:

image.png

命令 tar


zip 和 unzip 这两个是命令只适用于.zip 格式的压缩和解压,其它压缩格式就用不了,Linux 下最常用的.bz2 和.gz 这两种压缩格式。其它格式的压缩和解压使用命令 tar, tar 将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下:

tar [参数] [压缩文件名] [被压缩文件名]  

常用参数如下:

image.png

我们使用如下两个命令将 demo 文件夹压缩为.bz2 和.gz 这两个格式:

tar -vcjf demo.tar.bz2 demo 
tar -vczf demo.tar.gz demo

如下所示两行命令完成.bz2 和.gz 格式文件的解压缩:

tar -vxjf demo.tar.bz2tar -vxzf demo.tar.gz

文件类型


可以在终端中使用命令“ls -l”来查看用户当前目录下所有文件的详细信息。如下图所示:

image.png

每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型,这些字符表示的文件类型如下:

image.png

文件详细信息中,除去第一个表示文件类型外,后面的表示文件的权限信息,一共是9位表示文件的权限信息。

这里的 r 表示读取,w 表示写入,x 表示执行。

rw-|rw-|r-- |

每三位表示一组权限。分别对应拥有者权限、拥有者所在组权限、其他用户权限。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
35 13
|
16天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
24天前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
30 0
Linux 如何更改默认 Shell
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
75 8
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
52 7
|
2月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
78 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
110 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
36 0
下一篇
DataWorks