shell命令集合
收集了一些工作中常用的shell命令的使用
MACOS 使用 GNU 工具
Mac OS X自带的sed等命令行工具是基于BSD的,有一些缺陷和不足,可以安装gnu命令行工具来替代Mac自带的这些常用工具。
preinstall
在安装GNU工具前,确保mac 已安装 HomeBrew,安装方法见链接。
install
- 首先安装最重要的--GNU Coreutils
GNU Coreutils包含了UNIX最基本的命令,如ls,cat等。
1 | brew install coreutils |
为了使用默认工具名字,例如使用 ls 而不是 gls 来执行ls命令。需要在bashrc或zshrc配置文件中加上下面这段配置。
1 | if brew list --formula | grep coreutils > /dev/null ; then |
- 其他命令
1 | brew install binutils |
帮助命令
man
Linux man中的man就是manual的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分,如下所示:
- 1 Executable programs or shell commands
- 2 System calls (functions provided by the kernel)
- 3 Library calls (functions within program libraries)
- 4 Special files (usually found in /dev)
- 5 File formats and conventions eg /etc/passwd
- 6 Games
- 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
- 8 System administration commands (usually only for root)
- 9 Kernel routines [Non standard]
在shell中输入man+数字+命令/函数即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。
例如:我们输入man ls,它会在最左上角显示LS(1)
,在这里,LS
表示手册名称,而(1)
表示该手册位于第一节章,同样,我们输入man ifconfig
它会在最左上角显示IFCONFIG(8)
。man是按照手册的章节号的顺序进行搜索的,比如:man sleep,只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:man 3 sleep
whatis
可以使用whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。
1 | [root@nfs-server ~]#whatis cd |
tldr
tldr=Too Long; Didn't Read
,它简化了烦琐的man指令帮助文档,仅列出常用的该指令的使用方法。相比较man给出完整的帮助文档而言,大多数情况下,给出几个指令的使用demo可能正是我们想要的。tldr会在本地存储文档库,所以需要安装到本地。有多种客户端,例如python,node。mac用户可以直接用brew install tldr
安装。
使用方法: tldr [command]
,例如 tldr tar
cht.sh
cht.sh是在线版的TLDR+Cheat,此外,还支持了多种编程语言。
1 | # 安装cht.sh 客户端脚本 |
使用例子:
1 | # 命令 |
常用命令
工具
Polysh
Polysh 是一个交互式命令,可以在一台服务器上批量的对一批服务器进行处理,运行交互式命令。
1 | wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz |
新版维护在github上https://github.com/innogames/polysh
Id
id命令用于显示用户的ID,以及所属群组的ID。id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
1 | # 显示当前用户 ID (UID), group ID (GID) and groups |
numfmt
numfmt用于数字和可阅读的形式的相互转换。
1 | 数字转可读形式 |
thefuck
ubuntu安装:
1 | sudo apt update |
macos安装:
1 | brew install thefuck |
trash-cli
1 | ubuntu |
给 rm 设置一个别名来不使用它
1 | alias rm='trash-put' |
如果你真的要用 rm,那就在 rm 前加上斜杠来取消别名:
1 | \rm file-without-hope |
sdk manager
sdk manager,一般都支持安装,删除,切换sdk。
pyenv
python sdk manager。
1 | # ubuntu |
修改.zshrc
:
1 | export PYENV_ROOT="$HOME/.pyenv" |
sdkman
java,scala 系列的sdk manager。
1 | curl -s "https://get.sdkman.io" | bash |
修改.zshrc
:
1 | #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! |
nvm
node sdk manager。
1 | # ubuntu |
修改.zshrc
:
1 | export NVM_DIR="$HOME/.nvm" |