Shell

分类下相关文章

Install Fish Shell Latest Version

On my old ubuntu 18.04 system, fish shell version is very old, 2.7. When open tmux window with fish as default shell, so many errors show: There is no fish_key_bindings function called: '' then tmux hangs ... I can not work any more. So I want to install latest fish shell to resolve this issue. Re ...

阅读全文...

shell 批量复制文件

作为 ctrl c & ctrl v 程序员,经常要来回复制代码。甚至整个目录的代码文件进行复制。 例如,微信小程序开发中要将 A 项目中的 pages/index/ 目录下所有文件,复制到 B 项目中的 pages/about/ 中。 shell for loop 目录 > for i in wxml js json wxss; echo $i; end wxml js json wxss 批量复制 for i in wxml js json wxss; cp project_a/pages/index/index.$i project_b/pages/about/about ...

阅读全文...

expect 做 telnet shell 脚本测试

需求背景 用 golang 写了个 tcp 数据上报服务,用来接收硬件设备上的传感器实时数据。 但是测试起来很麻烦,每次增加协议功能,都需要手动重复 telnet 并输入指令,费时费力,且容易忘记指令。 测试技术选型 用 go 写这种自动测试,我能想到的就是新建一个 main package,这样会多出一个目录,感觉麻烦 python 涉及到版本依赖,越来越不喜欢 感觉还是直接用 shell 写更简单方便,且直观 expect 还是用 expect 更合理一些,因为要判断 tcp 的返回数据格式,是否跟协议规定的一致。 Expect is a program that "ta ...

阅读全文...

软著代码自动提取,并生成代码文件

申请软著需要提交 60 页代码,或者 3000 行代码。手动一个文件一个文件的复制黏贴太麻烦了。 特别是像 Android 项目这种目录层级特别多的,完全是浪费时间。 于是写了个 shell 脚本,自动生成 txt 格式的文件,然后全部复制到 word 中即可。 以 Android Kotlin 项目为例: shell 脚本 gen_code.sh #!/bin/bash set -e # or use "set -o errexit" to quit on error. set -x # or use "set -o xtrace" to prin ...

阅读全文...

sed 替换目录下所有文件中的指定字符串

由于我新项目是从 golang 旧项目中复制的代码,复制之后,需要将原 module 名替换为新的名字。 但是由于项目目录众多,文件众多,如果一个一个文件修改非常繁琐,所以需用 sed 来帮忙。 sed is a stream editor 一行 sed 命令搞定 例如需要将目录中所有的 sunzhongwei.com/member 替换为 sunzhongwei.com/repair,命令如下: find /home/zhongwei/work/server_repair/backend/ \( -type d -name .git -prune \) -o -type f | xarg ...

阅读全文...

Fish Shell 添加目录到 PATH

发现家中开发机系统 PATH 中不包含 ~/bin 目录 fish shell 版本 > fish -v fish, version 2.7.1 查看当前 PATH 值 > echo $PATH /home/zhongwei/.pyenv/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /mnt/d/app/jdk8/bin /mnt/c/Windows/system32 /mnt/c/Windows 查看 fish shell 中设置的 P ...

阅读全文...

curl 命令指定 User Agent

curl --user-agent "Some User Agent" https://www.sunzhongwei.com 执行之后,就可以在目标网站日志中看到对应的请求。 例如,Nginx 日志: 113.124.245.183 - - [15/Feb/2020:20:08:36 +0800] "GET / HTTP/1.0" 200 65680 "-" "Some User Agent" ...

阅读全文...

全文检索命令 grep 的使用技巧

grep 命令是我无法离开 Linux 系统环境的其中一个重要原因,因为实在太好用了。 只搜索指定后缀的文件 例如,只搜索 php 代码文件: grep google -r . --include=*.php 搜索包含若干关键词 例如,有4个敏感词,包含其中任何一个都需要被显示 grep -i -E "golang|dart|flutter|oraclecloud" -r Web 只有使用了 -E 才能使用这种正则语法。-i 是忽略大小写。 -E, --extended-regexp Interpret PATTERN as an extended regular e ...

阅读全文...

The file XXX is marked as an executable but could not be run by the operating system

在 fish shell 中执行我自己写一个 shell 脚本时,报错 > lazy Failed to execute process '/home/zhongwei/bin/lazy'. Reason: exec: Exec format error The file '/home/zhongwei/bin/lazy' is marked as an executable but could not be run by the operating system. lazy 中的代码很简单,就是一行,为了我自己偷懒时使用 > cat ~/bin/lazy git commit ...

阅读全文...

Ubuntu 设置系统启动后默认使用 fish shell

首先安装 fish shell。 查看 fish shell 的安装位置: $ which fish /usr/bin/fish 修改默认 shell 为 fish shell chsh -s /usr/bin/fish man chsh chsh - change login shell ...

阅读全文...

Fish Shell - 比 zsh 更简洁实用的 Shell

一直没有兴趣折腾 zsh,安装了 oh-my-zsh 也是无奈之举,配置起来异常繁琐,关键还很不流畅。最近想添加个文件子目录自动补齐的功能,愣是没配置成功。所以,我果断尝试了一下 fish shell。 fish shell 吸引我的地方 完全不需要配置,开箱即用(Works Out Of The Box,学了个新词)。省去了 zsh 和 oh-my-zsh 的配置麻烦。 基于 history 自动提示 可以自动补齐路径,例如,路径中使用 ** 自动补全子目录 语法更人性化一些。例如,for 循环等,比 bash 的反人类语法好很多。 文档写的挺有意思 ubuntu 18.04 上安装 ...

阅读全文...

shell 命令行中格式化输出 JSON

echo '<raw_json>' | python -mjson.tool example: echo '{"msg": "ok", "data": {"list": [{"website": "letv", "url": "http://www.letv.com/ptv/pplay/75420/2.html", "video_id": "1594024"}], "co ...

阅读全文...

shell snippets - oh my zsh

背景 用习惯了 VIM 的 snippets 插件,就希望在 shell 里也能够按 TAB 进行命令补全。 例如,Django 项目中,输入 python manage.py 再按 TAB 就能自动看到 django 的所有命令参数,而不是要回车执行之后才能看到。 据说 zsh 有该功能,就尝试一下 Oh My Zsh Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful funct ...

阅读全文...