1-2-2:TMS观看记录2
Contents
shell tools &scripting
第一次学会插入视频,要把我最近最爱的歌放上去youtube插件推荐
之前一直是用的油猴双语字幕脚本,昨天了解到原来有一个youtube双语插件,YouTube双字幕 不仅可以拖动字幕位置还可以在字幕上面直接复制,再加上google翻译插件,效果真的很绝,这里推荐一下
命令
- foo=bar:定义变量foo的值为bar,注意不要留空格,空格在shell中作为变量的分隔符,当你留空格时,shell会把
foo = bar
的foo作为一个命令运行 - 定义但个字符时,用"“和’‘都是可以的,但是他们有区别,如图
- sh结尾的是shell脚本,通过
source name.sh
运行,然后你就可以调用name
来运行该脚本了,脚本中,$0-$9是预留的参数,其中$0是文件名 - !!:bang bang,当你权限不够的时候,sudo !!将会将你刚刚的命令添加下来
- $?:查询上一次运行命令的函数值,0表示运行正常,因为没有foobar在文件config.toml中所以我们这里grep返回的值为1
- true和false:将会返回1和0,所以在or的情况下,true将短路后面的内容(这里有一种回归到电路上面的奇妙感觉)
- ; :课程中没有对;进行讲解,这里引用chatgpt的解释
在shell中,分号 “;” 用于在同一行中运行多条命令。它允许你在不换行的情况下将多个命令链接在一起,并确保这些命令依次执行。 在这个命令之后,分号 “;” 会将下一个命令 “echo “This will always be printed”” 执行,它会输出字符串 “This will always be printed” 到屏幕。所以,这个命令的整体逻辑就是:先执行 false 命令,无论它是否成功,都会继续执行下一个命令。因此,即使 “false” 命令执行失败,也会输出字符串 “This will always be printed” 到屏幕。
- `echo “we are in $(pwd)”
- `cat <(ls) <(ls ..)
- **15min那里讲shell编程听的迷迷糊糊的,不太懂,用grep在循环中找foobar
- 通配符*和?
- {}:自动展开,
touch foo{1,2,3,10}
- diff:
diff <(ls foo) <(ls bar)
- tldr:man的手册有时候太复杂,可以安装tldr,它会给你一些友好的示例,
Too Long; Didn’t Read
,直译即是“太长,不值得一读” 直接安装后可能tldr运行什么都说没有内容,因为它是社区贡献的用例,这个时候需要执行tldr --update
来更新,比如我总是忘记的tar命令,我们可以运行tldr tar
![[Pasted image 20230110214649.png]]
- find:找文件,比如
find . -name src -type d
,在当前目录下找名为src的文件夹,find有很多flags,你可以做很多利用find,它会遍历当前的文件夹 - locate:如果每天都需要做很多find这样可能会比较花费时间去等待它的索引过程,所以你可以直接建立一个index来索引,而locate就是这样的一个工具,你可以通过
sudoupdatedb
来更新database - grep:find可能太过强大,很多时候grep便足够了
grep -R foobar .
- history:展示你的command历史,并且你可以
- fzf:一种模糊搜索器
- ls -R;tree
总结
这一堂课主要是介绍了很多shell里面的小工具,他们有的很常见有的从来没听说过,其中我最喜欢的是tldr,通过社区贡献的内容往往很实用,man一直对我来说都太过复杂,可能我只是想知道某个工具怎么用而以,tldr tar
真的让我很心动