常用命令

bsfn:查找文件名

如果你想查找文件夹内的某个文件,可以使用 find 命令,但默认的 find 命令并不支持表达,所以我在 personalized.sh文件中封装了 bsfn 函数,它接受一个参数,可以精确匹配,也可以写正则表达式:

比如这里我们搜索所有以 BBA 开头,中间字符不限,以 Plugin 结尾的文件。

bsgrep:查找内容

简单的装了 grep,如果不加路径,则表示在当前目录下递归搜索。

bsfilename: 获取文件名

这个命令可以从完整的文件路径中获取不带后缀的文件名,比如

bsfilename ~/Desktop/test.py
# 输出结果: test

bsof: 检查系统端口占用

可以通过系统的 lsof -i:port 来检查哪个程序占用了 port 端口,但有时候我们不想记参数,或者想查找某个程序占用了哪些端口,此时可以使用 bsof

比如查看 redis 进程占用了哪些端口,可以输入 bsof redis,查看哪些进程占用了 80 端口可以输入 bsof :80,如下图所示:

bszip: 压缩文件

这个命令可以快速压缩文件,用法 bszip path_to_file,它会读取要压缩的文件(夹)名,然后在当前目录生成同名的 zip 文件

bswhich:查看定义

如果拿到别人的配置脚本,想自行定制。显然只知道定义是不够的,还得知道这个 alias 或者函数是在哪个文件里被定义的,这样才好去修改,此时建议使用我配置的 bswhich 命令:

bswhich ip
bswhich gg

bssize:查看文件和文件夹大小

bssize 后面的参数可以是文件名,表示查看这个文件的大小。也可以是文件夹名,表示查看文件夹大小和文件夹内各子目录的大小。

bssize . 表示查看当前目录大小和子目录大小,bssize / 表示查看系统磁盘的使用情况。具体效果如图所示

c:使用 VSCode 编辑

首先需要集成 VSCode 的命令行工具,步骤可以参考这个链接

这个命令有三种用法:

  1. 如果不加任何参数,会使用 VSCode 打开当前文件夹
  2. 如果参数所代表的文件或文件夹存在,会用 VSCode 打开指定的文件夹
  3. 如果参数代表的文件不存在,会用 autojump 打开指定路径并使用 VSCode 编辑

ow:快速打开 xcode 工程

自动查找当前目录下的 xcworkspacexcodeproj 文件并打开, 也可以指定路径。

proxy:展示和切换系统代理

如果想使用 Charles 抓包,则输入 p on 即可将系统的 HTTP 和 HTTPS 代理设置为 127.0.0.1:8888

如果想使用 Shadowsocks 科学上网,则输入 p g 即可将系统的 socks 代理设置为 localhost:14179,需要自行修改端口号

如果不想使用代理,输入 p off 可以禁用所有代理,恢复默认设置。

输入 p s 可以查看当前的系统代理:

ppjson:终端 json 格式化

用法:

echo '{"hello": "world"}' | ppjson

效果:

encode64 和 urltool

这几个小命令可以快速实现一些编码和解码工作:

encode64 你好
# 5L2g5aW9

decode64 5L2g5aW9
# 你好%

urlencode https://baidu.com
# https%3A%2F%2Fbaidu.com

urldecode https%3A%2F%2Fbaidu.com
# https://baidu.com

全局别名

  1. 如果只想看某个输出的前 3 行,可以用 cat xxx H 3,这是因为 H 被全局重命名为 | head -n
  2. 如果是看输出的后 3 行,可以用 cat xxx T 3,其中 T 被全局重命名为 | tail -n
  3. 如果是看输出的指定行数,比如第 1、3、7 行,可以用 cat xxx R 1 3 7, 其中 R 被全局重命名为 | row
  4. 如果要看某个输出的某几列,比如倒数第一列,可以用 cat xxx C -1,其中 C 被全局重命名为 | column
  5. 如果要在 less 中查看某个超长的输出,可以用 cat xxx L,其中 L 被全局重命名为 | L
  6. 如果要忽略某条命令的报错,可以用 command NE,其中 NE 被全局重命名为 2> /dev/null
  7. 如果要某个命令完全不输出内容,可以用 command NUL,其中 NUL被全局重命名为 > /dev/null 2>&1

文本处理

使用 column 获取指定的列,或使用 row 获取指定的行:

echo "a b c" | column 1 3
# a c
echo "a\nb\nc\n" | row 1 3
# a
# c

使用 ncolumn 过滤指定的列,或使用 nrow 过滤指定的行:

echo "a b c" | ncolumn 2
# a c
echo "a\nb\nc\n" | nrow 2
# a
# c

使用 average 对列求平均,使用 add 对列求和:

echo "1\n3\n5" | average
# 5
echo "1\n3\n5" | add
# 9

results matching ""

    No results matching ""