Missing Semester 2

  • 在 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值