[Linux]Linux系统基础入门学习笔记(四)

主要内容:常用的压缩/解压工具和Linux下的帮助命令
参考来源: 实验楼
上一篇:[Linux]Linux系统基础入门学习(三)-----环境变量的设置和文件搜索操作

目录
  一、压缩/解压工具
    1.1、zip
    1.2、tar
    1.3、小火苗程序
  二、帮助命令 
    2.1、内建命令与外部命令
    2.2、help
    2.3、man
    2.4、info

一、压缩/解压工具

主要使用zip和tar的两个工具

 1.1、zip

  • 使用zip打包文件夹
$ zip -r -9 -q -o shiyanlou.zip /home/user/Desktop
$ du -h test.zip

上面命令将目录 /home/shiyanlou/Desktop 打包成一个文件,并查看了打包后文件的大小和类型。第一行命令中,-r参数表示递归打包包含子目录的全部内容,
-9参数表示压缩级别(9 最大,1 最小),
-q参数表示为安静模式,即不向屏幕输出信息,
-o表示输出文件,需在其后紧跟打包输出文件名。后面使用 du 命令查看打包后文件的大小.
-e参数可以创建加密压缩包

注意: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:

需要加上 -l 参数将 LF 转换为 CR+LF 来达到以上目的

  • 使用unzip命令解压文件
#将 test.zip 解压到当前目录:
	$ unzip test.zip
#使用 安静模式,将文件解压到指定目录:
	$ unzip -q test.zip -d ziptest
#上述指定目录不存在,将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用 -l 参数:
	$ unzip -l shiyanlou.zip
#使用 -O(英文字母,大写 o)参数指定编码类型:
	$ unzip -O GBK 中文压缩文件.zip

注意: 使用 unzip 解压文件时我们同样应该注意兼容问题,不过这里我们关心的不再是上面的问题,而是中文编码的问题,通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候它会自动帮你处理),为了解决这个问题,我们可以在解压时指定编码类型。

 1.2、tar

  • 创建一个tar文件包
$ tar -cf test.tar /home/user/Desktop

上面命令中,-c表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在-f参数之后,比如不能写成tar -fc test.tar,可以写成tar -f test.tar -c。你还可以加上-v参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /,也可以使用 -P保留绝对路径符。

  • 解压文件
#解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):
   $ mkdir tardir
   $ tar -xf test.tar -C tardir
#只查看不解包文件 -t 参数:
   $ tar -tf test.tar
#保留文件属性和跟随链接(符号链接或软链接),有时候我们使用 tar 备份文件当你在其他主机还原时
   希望保留文件的属性(-p 参数)和备份链接指向的源文件而不是链接本身(-h 参数):
   $ tar -cphf etc.tar /etc
  • 对于创建不同的压缩格式的文件,对于 tar 来说是相当简单的,需要的只是换一个参数,这里我们就以使用 gzip 工具创建 *.tar.gz 文件为例来说明。
#我们只需要在创建 tar 文件的基础上添加 `-z `参数,使用 gzip 来压缩文件:
	$ tar -czf test.tar.gz  /home/user/Desktop```
#解压 *.tar.gz 文件:
	$ tar -xzf test.tar.gz

现在我们要使用其它的压缩工具创建或解压相应文件只需要更改一个参数即可:

压缩文件格式参数
*.tar.gz-z
*.tar.xz-J
*tar.bz2-j

tar 命令的参数很多,不过常用的就是上述这些,需要了解更多你可以查看 man 手册获取帮助。

 1.3小火苗:

	$ sudo apt-get install libaa-bin 
		# 提示 command not found ,请自行解决
	$ aafire

二、帮助命令

 2.1、内建命令与外部命令

因为有一些查看帮助的工具在内建命令与外建命令上是有区别对待的。

内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。

外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。

我们可以使用type命令来区分命令是内建的还是外部的。例如这两个得出的结果是不同的

#得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源码中的 builtins 的.def中
	xxx is a shell builtin
#得到这样的结果说明是外部命令,正如上文所说,外部命令在/usr/bin or /usr/sbin等等中
	xxx is /usr/bin/xxx
#若是得到alias的结果,说明该指令为命令别名所设定的名称;
	xxx is an alias for xx --xxx

2.2、help命令

  • help 命令是用于显示 shell 内建命令的简要帮助信息,所以像ls这样的外部命令是使用不了的.(但是像 ls这样的外部命令内部都有 --help参数 )
  • help xxx直接使用.

2.3、man命令

  • man xxx直接使用
  • 得到的内容比用 help 更多更详细,而且man没有内建与外部命令的区分,因为man工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的man也可以得到程序的更多相关信息和 Linux 的更多特性。

2.4、 info命令

info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息,得到的信息比man更全面。

  • 安装操作步骤如下:
	# 安装 info
		$ sudo apt-get update
		$ sudo apt-get install info
	# 查看 ls 命令的 info
		$ info ls
  • 操作步骤
 	# 查看 ls 命令的 info
		$ info ls
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值