ZYNQ - 嵌入式Linux开发 -01- shell操作和文件系统
shell
Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell 负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。
shell基本操作
Shell 命令的格式如下:
command -options [argument]
参数 | 解释 |
---|---|
command | Shell 命令名称 |
options | 选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。 |
argument | Shell 命令是可以带参数的,也可以不带参数运行。 |
常用Shell命令
命令 | 介绍 | 命令 | 介绍 |
---|---|---|---|
ls | 目录信息查看命令 | cp | 文件拷贝命令 |
cd | 目录切换命令 | su | 切换用户命令 |
pwd | 当前路径显示命令 | mv | 移动文件命令 |
uname | 系统信息查看命令 | mkdir | 创建文件夹命令 |
clear | 清理屏幕命令 | touch | 创建文件命令 |
cat | 显示文件内容命令 | rm | 删除命令 |
sudo | 切换用户身份命令 | rmdir | 目录删除命令 |
ifconfig | 显示网络配置信息命令 | sync | 数据同步写入磁盘命令 |
reboot | 重启命令 | find | 查找文件命令 |
poweroff | 关机命令 | grep | 查找内容命令 |
man | 系统帮助命令 | du | 文件夹大小查看命令 |
df | 磁盘空间检查命令 | ps | 当前的系统进程查看命令 |
gedit | 使用gedit打开某个文件命令 | top | 进程实时运行状态查看命令 |
file | 文件类型查看命令 |
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 //查看根目录“/”下的文件以及文件夹
Ubuntu文件系统结构
当我们进入到根目录“/” 里面以后终端提示符“ ” 前 面 的 符 号 “ ” 变 成 了 “ / ” , 这 是 因 为 当 我 们 在 终 端 中 切 换 了 目 录 以 后 “ ”前面的符号“~”变成了“/”,这是因为当我们在终端中切换了目录以后“ ”前面的符号“ ”变成了“/”,这是因为当我们在终端中切换了目录以后“”前面就会显示切换以后的目录路径。 根目录“/”中的一些重要的文件夹:
文件夹名称 | 介绍 |
---|---|
/bin | 存储一些二进制可执行命令文件, /usr/bin 也存放了一些基于用户的命令文件。 |
/boot | Ubuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。 |
/dev | 存放设备驱动文件, Linux 驱动主要跟这个文件夹打交道。 |
/etc | 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。 |
/home | 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下。 |
/lib | 存放库文件 |
/media | 此目录下放置可插拔设备,比如SD卡,或者U盘就是挂载到这个目录中。 |
/mnt | 用户可使用的挂载点,如果要挂载一些额外的设备,那么就可以挂载到此处。 |
/opt | 可选的文件和程序存放目录,给第三方软件放置的目录。 |
/root | root用户目录,也就是系统管理员目录。 |
/sbin | 和/bin类似,也是存放一些二进制可执行文件。sbin下面的一般是系统开机过程中所需要的命令。 |
/srv | 服务相关目录。比如网络服务。 |
/sys | 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。 |
/tmp | 临时目录 |
/var | 存放一些变化的文件,比如日志文件 |
/usr | usr不是user的缩写,而是UNIX Software Resource的缩写,存放于系统用户有关的文件,会占用很大的存储空间! |
/proc | 虚拟文件系统,数据放置到内存中,存放系统运行信息 |
/lost+found | 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。 |
绝对路径和相对路径
**绝对路径:**从根目录“/”算起的路径。
**相对路径:**相对于目前路径的文件名写法,比如./home/vuko。不是以“/”开头的就行。
- “.”代表当前路径,也可以 用“./”表示
- “…”代表上一层目录,也可以用“…/”表示
压缩和解压缩
Ubuntu 下进行文件的压缩和解压缩,可以通过图形化界面进行压缩和解压缩,在Linux操作系统中,比较常用的是使用命令行进行压缩和解压缩。命令行下进行压缩和解压缩常用的命令有三个: zip、 unzip 和 tar。
命令 zip
zip 命令是针对.zip 文件的,用于将一个或者多个文件压缩成一个.zip 结尾的文件,命令格式如下:
主要参数函数如下:
zip [参数] [压缩文件名.zip] [被压缩的文件]
参数 | 解释 |
---|---|
-b<工作目录> | 指定暂时存放文件的目录。 |
-d | 从 zip 文件中删除一个文件。 |
-F | 尝试修复已经损毁的压缩文件。 |
-g | 将文件压缩入现有的压缩文件中,不需要新建压缩文件。 |
-h | 帮助。 |
-j | 只保存文件的名,不保存目录。 |
-m | 压缩完成以后删除源文件。 |
-n<字尾符号> | 不压缩特定扩展名的文件。 |
-q | 不显示压缩命令执行过程。 |
-r | 递归压缩,将指定目录下的所有文件和子目录一起压缩。 |
-v | 显示指令执行过程。 |
-num | 压缩率,为 1~9 的数值。 |
命令 unzip
unzip 命令用于对.zip 格式的压缩包进行解压,命令格式如下:
unzip [参数] [压缩文件名.zip]
主要参数如下:
参数 | 解释 |
---|---|
-l | 显示压缩文件内所包含的文件。 |
-v | 显示命令显示的执行过程。 |
-t | 检查压缩文件是否损坏,但不解压。 |
-Z | 只显示压缩文件的注解。 |
-C | 压缩文件中的文件名称区分大小写。 |
-j | 不处理压缩文件中的原有目录路径。 |
-L | 将压缩文件中的全部文件名改为小写。 |
-n | 解压缩时不要覆盖原有文件。 |
-P<密码> | 解压密码。 |
-q | 静默执行,不显示任何信息。 |
-x<文件列表> | 指定不要处理.zip 中的哪些文件。 |
-d<目录> | 把压缩文件解到指定目录下。 |
命令 tar
zip 和 unzip 这两个是命令只适用于.zip 格式的压缩和解压,其它压缩格式就用不了,Linux 下最常用的.bz2 和.gz 这两种压缩格式。其它格式的压缩和解压使用命令 tar, tar 将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下:
tar [参数] [压缩文件名] [被压缩文件名]
常用参数如下:
参数 | 解释 |
---|---|
-c | 创建新的压缩文件。 |
-C<目的目录> | 切换到指定的目录。 |
-f<备份文件> | 指定压缩文件。 |
-j | 用 tar 生成压缩文件,然后用 bzip2 进行压缩。 |
-k | 解开备份文件时,不覆盖已有的文件。 |
-m | 还原文件时,不变更文件的更改时间。 |
-r | 新增文件到已存在的备份文件的结尾部分。 |
-t | 列出备份文件内容。 |
-v | 显示指令执行过程。 |
-w | 遭遇问题时先询问用户。 |
-x | 从备份文件中释放文件,也就是解压缩文件。 |
-z | 用 tar 生成压缩文件,用 gzip 压缩。 |
-Z | 用 tar 生成压缩文件,用 compress 压缩。 |
我们使用如下两个命令将 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”来查看用户当前目录下所有文件的详细信息。如下图所示:
每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型,这些字符表示的文件类型如下:
类型参数 | 解释 |
---|---|
- | 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。 |
d | 目录文件。 |
c | 字符设备文件, Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。 |
b | 块设备文件,存储设备驱动,比如硬盘, U 盘等。 |
l | 符号连接文件,相当于 Windwos 下的快捷方式。 |
s | 套接字文件。 |
p | 管道文件,主要指 FIFO 文件。 |
文件详细信息中,除去第一个表示文件类型外,后面的表示文件的权限信息,一共是9位表示文件的权限信息。
这里的 r 表示读取,w 表示写入,x 表示执行。
rw-|rw-|r-- |
每三位表示一组权限。分别对应拥有者权限、拥有者所在组权限、其他用户权限。
相关文章
- 【Linux】linux之如何清理磁盘空间
- [platform]linux platform device/driver(二)--Platform Device和Platform_driver注册过程之详细代码
- linux find 10天内改动过的文件
- linux统计文件夹内文件数
- linux 三剑客 使用总结 grep sed awk
- 【学习总结】快速上手Linux玩转典型应用-第6章-linux常用命令讲解
- 重新整理 .net core 实践篇 ———— linux上性能排查 [外篇]
- Linux Shell脚本自动化编程实战- shell内置命令 break、continue
- linux(centos8):安装分布式事务服务seata(file单机模式,seata 1.3.0/centos 8.2)
- Linux - Troubleshooting
- Linux Shell脚本自动化编程实战-shell变量(一)
- Linux 硬盘设备以及df du命令
- 【Linux 内核 内存管理】物理内存组织结构 ⑥ ( 物理页 page 简介 | 物理页 page 与 MMU 内存管理单元 | 内存节点 pglist_data 与 物理页 page 联系 )
- 【Linux 内核 内存管理】优化内存屏障 ④ ( 处理器内存屏障 | 八种处理器内存屏障 | 通用内存屏障 | 写内存屏障 | 读内存屏障 | 数据依赖屏障 | 强制性内存屏障 |SMP内存屏障 )
- L69.linux命令每日一练 -- 第十章 Linux网络管理命令 -- arpping和telnet
- L66.linux命令每日一练 -- 第十章 Linux网络管理命令 -- arp和ip
- L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog
- L2.linux命令每日一练 -- 第一章 Linux命令行简介
- 嵌入式linux开发,交叉编译报错:ld: src/PS_Packet_Packaging.o: Relocations in generic ELF (EM: 40)
- 嵌入式linux开发,编译报错:error: ‘for’ loop initial declarations are only allowed in C99 mode
- 嵌入式linux开发,openssl-1.1.1m移植
- 嵌入式linux开发,openssl-0.9.8d移植
- 嵌入式Linux开发,Ubuntu22下交叉编译报错:make[1]: aarch64-linux-gnu-gcc: No such file or directory
- 嵌入式linux开发,OPC UA移植,open62541移植,open62541交叉编译
- 嵌入式linux开发,linux命令之cp
- 嵌入式linux开发,opencv移植,opencv-2.4.9移植,cmake-gui
- linux下常用压缩命令 tar压缩Linux解压 压缩Linux压缩Ubuntu压缩centos压缩解压gz txt.gz
- ZYNQ - 嵌入式Linux开发 -10- ZYNQ启动流程分析
- 嵌入式linux开发,libzdb库移植
- 嵌入式linux开发,ppp移植,pppd守护进程移植