Missing Semester 2

本文介绍了Bash和Shell中的实用技巧,包括变量赋值、命令执行、逻辑运算、文件操作及查找等内容。通过示例展示了如何使用source命令导入脚本、利用通配符批量处理文件、使用find和grep进行精确查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 在 bash 中,空格是用来区分参数的,给变量赋值不能带空格。
# wyk_ubuntu @ WYK-XPS in ~ [22:47:02] C:130
$ foo=bar

# wyk_ubuntu @ WYK-XPS in ~ [22:55:42]
$ foo = bar
zsh: command not found: foo

  • 单引号只能表示纯字符串,双引号可以表示格式化字符串
# wyk_ubuntu @ WYK-XPS in ~ [22:57:28]
$ echo "hello $foo"
hello bar

# wyk_ubuntu @ WYK-XPS in ~ [22:57:42]
$ echo 'hello $foo'
hello $foo

  • source命令
source FILENAME [ARGUMENTS]  # [ARGUMENTS]是执行脚本的参数
. FILENAME [ARGUMENTS]

source 和 . 是同一个命令(在bash中是,在zsh中不是),将脚本执行并导入shell环境(函数,变量等)。如果 FILENAME 不是绝对路径,shell 会先在 $PATH 中找,然后在当前路径中找。

# wyk_ubuntu @ WYK-XPS in ~ [18:14:31]
$ source mcd.sh  # 导入并执行mcd.sh脚本,其中包含mcd函数

# wyk_ubuntu @ WYK-XPS in ~ [18:14:36]
$ mcd abc  # 在shell中可以直接执行mcd函数

  • 逻辑运算
# 根据程序(命令)返回的error code来判断true/false
# || 和 && 均为顺序执行指令
# || 如果第一个命令(程序)为true,则不执行第二条命令
# && 如果第一个命令(程序)为false,则不执行第二条命令
# wyk_ubuntu @ WYK-XPS in ~ [19:01:21]
$ true || echo "hello"  

# wyk_ubuntu @ WYK-XPS in ~ [19:02:43]
$ false || echo "hello"
hello

多条指令可以用 ;隔开,均会执行

# wyk_ubuntu @ WYK-XPS in ~ [19:11:54] C:1
$ echo "hi";echo "hello"
hi
hello

  • cat 命令
    cat 命令从一个或多个文件中读取内容作为输入,将内容首尾连接后输出到屏幕。如果没有文件参数,则从键盘读取输入。
    通常用于展示文件内容,组合文件,创造新文件。
cat [OPTIONS] [FILE_NAMES]

$ cat <(ls) <(ls ..)  # 组合文件
Transparency
wyk_ubuntu

# wyk_ubuntu @ WYK-XPS in ~ [9:00:36]
$ cat > new_create.txt  # 创建新文件
something new
# <ctrl+D> 保存文件

# wyk_ubuntu @ WYK-XPS in ~ [9:18:36]
$ cat new_create.txt  # 展示文件内容
something new

  • 通配符(globbing)
# wyk_ubuntu @ WYK-XPS in ~ [11:12:36]
$ ls *.sh
mcd.sh  try.sh  try2.sh

在这里插入图片描述

  • convert命令
    用于处理图像,转换格式,大小等。
# wyk_ubuntu @ WYK-XPS in ~ [13:11:43]
$ convert image.{png,jpg}

  • 用 {} 进行扩展
    当有一串指令有相同的子字符串时,可以用 {} 进行扩展,甚至可以做笛卡尔积。
# wyk_ubuntu @ WYK-XPS in ~ [13:03:25]
$ touch {foo,bar}/{a..j}   
# 等价于(press tab)
# wyk_ubuntu @ WYK-XPS in ~ [13:03:25]
$ touch foo/a foo/b foo/c foo/d foo/e foo/f foo/g foo/h foo/i foo/j bar/a bar/b bar/c bar/d bar/e bar/f bar/g bar/h bar/i bar/j  
  • 根据文件名查找

find path -option [ -print ] [ -exec -ok command ] {} \
可以根据条件(如名字,类型等)查找文件,并对其执行操作。

# wyk_ubuntu @ WYK-XPS in ~ [16:23:12]
$ find . -name "*.sh" -type f
./.oh-my-zsh/oh-my-zsh.sh
./.oh-my-zsh/plugins/catimg/catimg.sh
./.oh-my-zsh/plugins/drush/drush.complete.sh
./.oh-my-zsh/plugins/emacs/emacsclient.sh

# wyk_ubuntu @ WYK-XPS in ~ [16:25:30] C:1
$ find . -name "*.abcd" -type f -exec rm {} \;

fd path fd命令是find的简洁版

# wyk_ubuntu @ WYK-XPS in ~ [16:32:57]
$ fd ".*sh"
abc.sh

locate [OPTION] PATTERN... locate 命令通过建立索引来查找,速度更快但是功能较少,并且要手动更新索引

# wyk_ubuntu @ WYK-XPS in ~ [16:35:31] C:1
$ locate .bashrc
/etc/bash.bashrc
/etc/skel/.bashrc

# wyk_ubuntu @ WYK-XPS in ~ [16:37:17]
$ updatedb  # 更新索引

  • 根据文件内容查找

grep [OPTIONS] PATTERN [FILE...]

# wyk_ubuntu @ WYK-XPS in ~ [17:14:05]
$ sudo apt list | grep grep

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

agrep/focal 4.17-9.1 amd64
ext3grep/focal 0.10.2-4build1 amd64
grep/focal,now 3.4-1 amd64 [installed]

ripgrep 同样,ripgrep是其简洁版。(用 rust 装成功,别的都失败)

  • history 命令
    展示历史指令
# wyk_ubuntu @ WYK-XPS in ~ [17:16:39]
$ history | grep convert
  203  convert image.jpg image.png
  261  tldr convert
  264  convert image.{jpg,png}

  • <Ctrl+R>指令
    在过去指令中搜索指定指令。
# wyk_ubuntu @ WYK-XPS in ~ [17:20:18]
$ convert image.jpg image.png
bck-i-search: convert_ 

再次 <Ctrl+R> 继续查询上一条。

  • 文件展示ls,tree,broot
内容概要:本文档详细介绍了基于MATLAB实现的多头长短期记忆网络(MH-LSTM)结合Transformer编码器进行多变量时间序列预测的项目实例。项目旨在通过融合MH-LSTM对时序动态的细致学习和Transformer对全局依赖的捕捉,显著提升多变量时间序列预测的精度和稳定性。文档涵盖了从项目背景、目标意义、挑战与解决方案、模型架构及代码示例,到具体的应用领域、部署与应用、未来改进方向等方面的全面内容。项目不仅展示了技术实现细节,还提供了从数据预处理、模型构建与训练到性能评估的全流程指导。 适合人群:具备一定编程基础,特别是熟悉MATLAB和深度学习基础知识的研发人员、数据科学家以及从事时间序列预测研究的专业人士。 使用场景及目标:①深入理解MH-LSTM与Transformer结合的多变量时间序列预测模型原理;②掌握MATLAB环境下复杂神经网络的搭建、训练及优化技巧;③应用于金融风险管理、智能电网负荷预测、气象预报、交通流量预测、工业设备健康监测、医疗数据分析、供应链需求预测等多个实际场景,以提高预测精度和决策质量。 阅读建议:此资源不仅适用于希望深入了解多变量时间序列预测技术的读者,也适合希望通过MATLAB实现复杂深度学习模型的开发者。建议读者在学习过程中结合提供的代码示例进行实践操作,并关注模型训练中的关键步骤和超参数调优策略,以便更好地应用于实际项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值