linux命令Tee
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
sed 是linux 中的流式编辑器,用于过滤和修改文本。sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
在开始学习java语言之前,先了解Java的一些特性:
James Gosling和Henry McGilton撰写的白皮书 The Java Language Environment中解释了上述每个流行词 。
Java开发过程:
Java平台包含两个组件:Java虚拟机和Java应用程序编程接口(API).虚拟机用于执行java程序,sdk 提供了系统库和部分高级API库。
收集了一些工作中常用的shell命令的使用
Mac OS X自带的sed等命令行工具是基于BSD的,有一些缺陷和不足,可以安装gnu命令行工具来替代Mac自带的这些常用工具。
在安装GNU工具前,确保mac 已安装 HomeBrew,安装方法见链接。
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 |
Linux man中的man就是manual的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分,如下所示:
在shell中输入man+数字+命令/函数即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。
例如:我们输入man ls,它会在最左上角显示LS(1),在这里,LS表示手册名称,而(1)表示该手册位于第一节章,同样,我们输入man ifconfig它会在最左上角显示IFCONFIG(8)。man是按照手册的章节号的顺序进行搜索的,比如:man sleep,只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:man 3 sleep
可以使用whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。
1 | [root@nfs-server ~]#whatis cd |
tldr=Too Long; Didn't Read,它简化了烦琐的man指令帮助文档,仅列出常用的该指令的使用方法。相比较man给出完整的帮助文档而言,大多数情况下,给出几个指令的使用demo可能正是我们想要的。tldr会在本地存储文档库,所以需要安装到本地。有多种客户端,例如python,node。mac用户可以直接用brew install tldr安装。
使用方法: tldr [command],例如 tldr tar
cht.sh是在线版的TLDR+Cheat,此外,还支持了多种编程语言。
1 | # 安装cht.sh 客户端脚本 |
使用例子:
1 | # 命令 |
id命令用于显示用户的ID,以及所属群组的ID。id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
1 | # 显示当前用户 ID (UID), group ID (GID) and groups |
numfmt用于数字和可阅读的形式的相互转换。
1 | # 数字转可读形式 |
Polysh 是一个交互式命令,可以在一台服务器上批量的对一批服务器进行处理,运行交互式命令。
1 | wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz |
新版维护在github上
shuttle cli need ruby 2.x (rbenv install 2.7.8).
sshpass非交互式的 ssh 客户端,可以同时传递用户名和密码。
ubuntu安装:
1 | sudo apt update |
macos安装:
1 | brew install thefuck |
1 | # ubuntu |
给 rm 设置一个别名来不使用它
1 | alias rm='trash-put' |
如果你真的要用 rm,那就在 rm 前加上斜杠来取消别名:
1 | \rm file-without-hope |
sdk manager,一般都支持安装,删除,切换sdk。
python sdk manager。
1 | # ubuntu |
修改.zshrc:
1 | export PYENV_ROOT="$HOME/.pyenv" |
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!!! |
node sdk manager。
1 | # ubuntu |
修改.zshrc:
1 | export NVM_DIR="$HOME/.nvm" |
ubuntu 日常开发机的调整记录
Tag Plugin 是一种使 Hexo 支持特殊样式内容的方法。例如,我们无法在标准 Markdown 中显示具有自定义尺寸的图像。然后我们可以使用标签插件来解决它。 Hexo 有很多可以帮助用户的标签。 Hexo 还具有主题接口,使主题能够创建自己的标签。
1 | git config --global user.name "xxx" |
1 | git config --list --show-origin |
使用git在本地新建一个分支后,需要做远程分支关联。如果没有关联,在执行git pull, git push操作时就需要指定对应的远程分支。
1 | git branch --set-upstream-to=[remote_repo]/[remote_branch] [local_branch] |
1 | git config --global core.quotepath false |
在工作区根目录下创建“.gitignore”文件,文件中配置不需要进行版本管理的文件、文件夹。“.gitignore”文件本身是被纳入版本管理的,可以共享。有如下规则:
#开头为注释。常见gitignore 配置: https://github.com/github/gitignore
1 | #简洁模式查看本地仓库状态 |
Zsh是比Bash更好用的Shell。
macos 可以使用 HomeBrew安装Zsh
1 | brew install zsh |
ubuntu 可以使用 apt安装Zsh
1 | sudo apt install zsh |
在macos中切换默认shell:
1 | echo $SHELL |
如果遇到 chsh: /usr/local/bin/zsh: non-standard shell 问题,可以修改 /etc/shells,在文件中添加一行/usr/local/bin/zsh。
linux的操作和macos类似
ohmyzsh是zsh的管理工具。
使用安装脚本,安装ohmyzsh。
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" |
1 | # .zshrc |
1 | # .zshrc |
Oh My Zsh 为终端增加了自动跟踪 git 仓库变化的能力,其实是在检测到当前目录是在 git 管理的目录中时,执行了一系列的操作来获取到变化。但是往往会导致终端长时间无响应,或卡顿。
1 | #通过设置标识关闭 dirty 检查 |
1 | plugins=( |
安装插件
1 | git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search |
激活插件
1 | plugins=( [plugins...] history-substring-search) |
通过cat -v 命令查看上下键的符号表示,然后绑定键位:
1 | bindkey '^[[A' history-substring-search-up |
使用:
control+u 终止搜索1 | # ubuntu |
在使用tab键补齐时,使用fzf查找。
在macos上还需要安装依赖:
1 | brew install gawk grep |
安装插件:
1 | git clone https://github.com/lincheney/fzf-tab-completion.git ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/fzf-tab-completion |
zsh 语法高亮
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
zsh基于历史和补齐的推荐。
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
在浏览器中打开git项目
1 | git clone https://github.com/paulirish/git-open.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/git-open |
zsh补齐扩展。
1 | git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions |
参考iterm2官方文档安装下载脚本。
1 | # zsh |
然后在.zshrc中增加配置:
1 | test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" || true |
only for macos
1 | proxy="127.0.0.1:7890" |
在这篇文章中,我将向你们介绍一个开发模型,早在差不多一年前,我已经将这个模型应用于我的多个项目,而事实证明,这个模型是非常成功的。其实这篇文章我早就打算写了,只是一直没有时间,直到现在。在这篇文章中我将不会谈及任何项目细节,分支策略和发布管理才是本文的核心内容。