Contents

1-2-2:TMS观看记录2

shell tools &scripting

链接

第一次学会插入视频,要把我最近最爱的歌放上去

youtube插件推荐

之前一直是用的油猴双语字幕脚本,昨天了解到原来有一个youtube双语插件,YouTube双字幕 不仅可以拖动字幕位置还可以在字幕上面直接复制,再加上google翻译插件,效果真的很绝,这里推荐一下https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_1.png https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_2.png

命令

  • foo=bar:定义变量foo的值为bar,注意不要留空格,空格在shell中作为变量的分隔符,当你留空格时,shell会把foo = bar的foo作为一个命令运行
  • 定义但个字符时,用"“和’‘都是可以的,但是他们有区别,如图https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_3.png
  • sh结尾的是shell脚本,通过source name.sh运行,然后你就可以调用name来运行该脚本了,脚本中,$0-$9是预留的参数,其中$0是文件名
  • !!:bang bang,当你权限不够的时候,sudo !!将会将你刚刚的命令添加下来
  • $?:查询上一次运行命令的函数值,0表示运行正常,https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_4.png因为没有foobar在文件config.toml中所以我们这里grep返回的值为1
  • true和false:将会返回1和0,所以在or的情况下,true将短路后面的内容(这里有一种回归到电路上面的奇妙感觉)https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_5.png
  • ; :课程中没有对;进行讲解,这里引用chatgpt的解释

在shell中,分号 “;” 用于在同一行中运行多条命令。它允许你在不换行的情况下将多个命令链接在一起,并确保这些命令依次执行。 https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The%20Missing%20Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%952_image_6.png 在这个命令之后,分号 “;” 会将下一个命令 “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真的让我很心动

Flag Counter