Browse Source

Update README

pull/4/head
Ein Verne 5 years ago
parent
commit
26e36759b7
No known key found for this signature in database
GPG Key ID: F80B65F734D9DD7D
  1. 1
      .zshrc
  2. 40
      README.md
  3. 182
      script/ssh_login
  4. 1
      termux_init.sh

1
.zshrc

@ -198,6 +198,7 @@ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=6'
alias tmux="TERM=screen-256color tmux -2"
alias vi="vim"
alias mux="TERM=screen-256color tmuxinator"
alias ls="ls -alh"
alias cp="cp -i"
alias df="df -sh"
alias free="free -m"

40
README.md

@ -1,11 +1,24 @@
vim, zsh, tmux 相关的配置
dotfiles config contain vim, zsh, tmux configurations.
## Overview
使用 [antigen](https://gtk.pw/antigen) 来管理 zsh 插件
vundle 相关配置在 vundle_vimrc 中,用 vundle 管理插件,插件列表`:PluginList`查看
- zsh
- vim
- tmux
With
- [Vundle](https://github.com/VundleVim/Vundle.vim) to manage vim plugins, vundle relate configuration is under `vundle_vimrc`
- [antigen](https://gtk.pw/antigen) to manage zsh plugins
- [tpm](https://github.com/tmux-plugins/tpm) to manage tmux plugins
### Vim config
vundle related configuration is under `vundle_vimrc`, to show all plugins list, use `:PluginList` in vim.
python related configurations is under `python_vimrc`.
python 相关配置在 python_vimrc 中
## Instruction under Linux
@ -30,25 +43,6 @@ with yum:
sudo yum install ctags-etags
## Plugin
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'
Plugin 'scrooloose/nerdtree'
Plugin 'davidhalter/jedi-vim'
Plugin 'ervandew/supertab'
Plugin 'Raimondi/delimitMate'
Plugin 'tomasr/molokai'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'vim-scripts/taglist.vim'
Plugin 'WolfgangMehner/vim-plugins'
Plugin 'L9'
Plugin 'perl-support.vim'
Plugin 'christoomey/vim-tmux-navigator'
Plugin 'tpope/vim-surround'
Plugin 'git://git.wincent.com/command-t.git'
## Tmux
Tmux 配置參考了 [gpakosz](https://github.com/gpakosz/.tmux) 的大部分配置。Tmux 的基础部分可以参考[这篇](http://einverne.github.io/post/2017/07/tmux-introduction.html) 文章。

182
script/ssh_login

@ -0,0 +1,182 @@
#!/bin/bash
# Feature : 使用 except 自动模拟输入密码,登录服务器,适用于跳板机情况自动登录ssh
# 对于自己的服务器可以通过配置 ssh key 来直接免密码登录,但是对于一些
# 跳板机,则每次都需要手动输入比较麻烦,那么可以直接使用该脚本一键登录
# Notice : 注意系统需要安装 expect 程序
# Original Author : Jiangxianli
# Modified : Ein Verne
# Date : 2019/06/10
# Github : https://github.com/jiangxianli/SSHAutoLogin
# Update : Xiongwilee 2018/06/18 https://github.com/xiongwilee/SSHAutoLogin
# Update :
#默认服务器配置项
# "别名 服务器名称 端口号 IP地址 登录用户名 登录密码/秘钥文件Key 秘钥文件地址"
CONFIGS=(
"tencent tencent 22 118.xxxxxxxxxx ubuntu 1234"
"ds ds 22 118.xxxxxxxxxx ubuntu 1234"
)
#读取自定义服务器配置文件(`~/.sshloginrc`)列表,合并服务器配置列表
sshloginrc_path=~/.sshloginrc
if [ -f ${sshloginrc_path} ]; then
CONFIGS=()
while read line
do
CONFIGS+=("$line")
done < ${sshloginrc_path}
fi
#服务器配置数
CONFIG_LENGTH=${#CONFIGS[*]} #配置站点个数
if [[ $CONFIG_LENGTH -le 0 ]] ;
then
echo "未检测到服务器配置项!"
echo "请在脚本CONFIGS变量中配置或单独创建一个 ~/.sshloginrc 文件并配置"
exit ;
fi
##
# 绿色输出
##
function GreenEcho() {
echo -e "\033[32m ${1} \033[0m";
}
##
# 服务器配置菜单
##
function ConfigList(){
echo "- 序号 IP 别名"
for ((i=0;i<${CONFIG_LENGTH};i++));
do
CONFIG=(${CONFIGS[$i]}) #将一维sites字符串赋值到数组
serverNum=$(($i+1))
echo "- [${serverNum}] ${CONFIG[3]} ${CONFIG[0]}"
done
}
##
# 登录菜单
##
function LoginMenu(){
if [ ! -n $1 ]; then
AutoLogin $1
else
echo "-------请输入登录的服务器序号或别名---------"
ConfigList
echo "请输入您选择登录的服务器序号或别名: "
fi
}
##
# 选择登录的服务器
##
function ChooseServer(){
read serverNum;
# 是否重新选择
needChooseServer=1;
if [ -z $serverNum ]; then
echo "请输入序号或者别名"
reChooseServer $needChooseServer;
fi
AutoLogin $serverNum $needChooseServer;
}
##
# 是退出还是重新选择Server
# @param $1 是否重新选择server 1: 重新选择server
##
function reChooseServer(){
if [ "$1"x = "1"x ]; then
ChooseServer;
else
exit;
fi
}
##
# 自动登录
# @param $1 序号或者别名
# @param $2 是否重新选择server 1: 重新选择server
##
function AutoLogin(){
num=$(GetServer $1)
if [ -z $num ]; then
echo "您输入的别名【$1】不存在,请重试"
reChooseServer $2;
fi
CONFIG=(${CONFIGS[$num]})
if [ -z $CONFIG ]; then
echo "您输入的序号【$1】不存在,请重试"
reChooseServer $2;
else
echo "正在登录【${CONFIG[1]}】"
fi
export PASSWORD=${CONFIG[5]};
command="
expect {
\"*assword\" {set timeout 6000; send \$env(PASSWORD)\r; exp_continue ; sleep 3; }
\"*passphrase\" {set timeout 6000; send \$env(PASSWORD)\n\r; exp_continue ; sleep 3; }
\"yes/no\" {send \"yes\n\"; exp_continue;}
\"Last*\" { send_user \"\n成功登录【${CONFIG[1]}】\n\";}
}
interact
";
pem=${CONFIG[6]}
if [ -n "$pem" ] ;then
expect -c "
spawn ssh -p ${CONFIG[2]} -i ${CONFIG[6]} ${CONFIG[4]}@${CONFIG[3]}
${command}
"
else
expect -c "
spawn ssh -p ${CONFIG[2]} ${CONFIG[4]}@${CONFIG[3]}
${command}
"
fi
GreenEcho "您已退出【${CONFIG[1]}】"
exit;
}
##
# 通过输入定位选择那个服务器配置
##
function GetServer(){
# 判断输入是否为数字
if [ "$1" -gt 0 ] 2>/dev/null ;then
echo $(($1-1))
else
for key in ${!CONFIGS[*]} ; do
item=(${CONFIGS[$key]})
if [ ${item[0]} == $1 ]; then
echo $key
break;
fi
done
fi
}
##
# 程序入口
##
if [ 1 == $# ]; then
if [ 'list' == $1 ]; then
ConfigList
else
AutoLogin $1
fi
else
LoginMenu
ChooseServer
fi

1
termux_init.sh

@ -2,6 +2,7 @@
# https://github.com/4679/oh-my-termux
pkg install -y libcurl wget curl openssh vim git zsh unrar unzip less
pkg install -y tsu neofetch
clear
if [ -d "$HOME/.termux" ]; then

Loading…
Cancel
Save