?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
  
shell语法高亮及自动补全
 
 
 
一. linux下GIT命令自动补全和状态提示     --注意!!! 该方法为经证实,请谨慎使用!!!
# Github源码地址: https://github.com/git/git
1. 进入目录
> /etc/profile.d
 
2. 从官拉取文件: git-completion.bash && git-prompt.sh ( ./contrib/completion 目录下的两个文件)
#git-completion.bash是自动补全脚本,git-prompt.sh是状态提示脚本
> wget https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
> wget https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
 
3. 两个放到/etc/profile.d/目录下后,再把git-completion.bash改名为 git-completion.sh 然后创建一个git.sh文件(或者直接修改在/etc/profile文件)在里面加入以下内容
> mv git-completion.bash git-completion.sh
> touch git.sh
//-----------------------编辑内容如下     begin
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM="verbose git svn"
PS1='\[\033[1;32m\]\u@\h \[\033[1;34m\]\W\[\033[1;31m\]$(__git_ps1 " (%s)")\[\033[1;35m\] $ \[\033[0m\]'
//-----------------------编辑内容如下     end
 
 
4. 完成 --新建一个终端,检查命令是否可用
 
另.附上:异常处理
    1. -bash: __git_ps1: command not found
        1). 编辑 /etc/bashrc 写入命令
> vim /etc/bashrc
        //----------------------------------------在文件结尾写入如下内容 begin
 
        PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$ "
 
        //----------------------------------------在文件结尾写入如下内容 end
 
        2). 使用source让配置立即生效
> source /etc/bashrc
 
 
 
 
 
二. linux下通过修改/etc/bashrc 在shell显示git分支信息
 
 
1. 编辑 /etc/bashrc 写入命令
> vim /etc/bashrc
//----------------------------------------在文件结尾写入如下内容 begin
 
function git-branch-name {
    gitName=`git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3`
    if [ ! $gitName ]; then
        git show 2>/dev/null | grep '^commit.*$' | awk '{print $2}'
    else
        echo $gitName
    fi
}
function git-branch-prompt {
    local branch=`git-branch-name`
if [ $branch ]; then printf " [%s]" $branch; fi
}
#PS1="\u@\h \[\033[0;36m\]\W\[\033[0m\]\[\033[0;32m\]\$(git-branch-prompt)\[\033[0m\] \$ "
PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h\[\e[35m\]$MSYSTEM\[\e[0m\]\[\033[5;36m\]\$(git-branch-prompt)\[\033[0m\] \[\e[33m\]\w\[\e[0m\]\n> "
 
//----------------------------------------在文件结尾写入如下内容 end
 
 
2. 使用source让配置立即生效
> source /etc/bashrc
 
 
3. 成功
 
 
 
 
 
三. linux下Docker语法及参数的自动补全及高亮(Wharfee)
# Wharfee是一个开源Python包 Github: https://github.com/j-bennet/wharfee
 
 
1. 使用pip安装
> pip install wharfee
 
 
2. 将 wharfee 命令拷贝出一份docke命令
> cp /usr/bin/wharfee /usr/bin/docke
 
 
3. 运行 wharfee 并执行docker进行测试
> docke
//---------------------------------------  演示   begin
[docker@jiangshengxin ~]$ docke
Version: 0.10
Home: http://wharfee.com
wharfee> ps
Status       Created    Image         Id           Command                          Names              Ports
-----------  ---------  ------------  -----------  -------------------------------  -----------------  -------------------------------
Up 20 hours  last week  011111*****1  bc******66l  entrypoint.sh                    docker_php7.2_1    9000/tcp
wharfee>
Goodbye!
//---------------------------------------  演示   end
 
 
 
 
 
四. McFly:利用神经网络为 Bash 提供历史命令搜索功能
# McFly 安装参考url: https://zhuanlan.zhihu.com/p/54101610
 
 
1. yum 安装依赖,必备依赖: curl git irb python-setuptools ruby
root@10-6-66-111 root $ > yum install ruby
 
 
2. 安装Linuxbrew,警告: 请勿以root用户身份运行以下命令!!!
www@10-6-66-111 root $ > ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"
//-------------------------------------------begin
 
- Install the Linuxbrew dependencies if you have sudo access:
Debian, Ubuntu, etc.
sudo apt-get install build-essential
Fedora, Red Hat, CentOS, etc.
sudo yum groupinstall 'Development Tools'
See http://linuxbrew.sh/#dependencies for more information.
- Add Linuxbrew to your ~/.profile by running   #执行如下命令,添加 Linuxbrew 至 ~/.profile
echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >>~/.profile
    - Add Linuxbrew to your PATH
PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"
    - We recommend that you install GCC by running:
brew install gcc
- After modifying your shell profile, you may need to restart your session
(logout and then log back inif the brew command isn't found.
- Run `brew help` to get started
- Further documentation:
Warning: /home/linuxbrew/.linuxbrew/bin is not in your PATH.
 
//-------------------------------------------end
 
 
3. 将 /home/linuxbrew/.linuxbrew/bin 写入系统 PATH --请root用户下进行
1). root@10-6-66-111 root $ > vim /etc/profile
 
    //------------------------------------ 找到 PATH 追加 /home/linuxbrew/.linuxbrew/bin    --begin
 
    PATH=$PATH:/usr/local/php7.1.5/bin:/home/linuxbrew/.linuxbrew/bin
 
    //------------------------------------ 找到 PATH 追加 /home/linuxbrew/.linuxbrew/bin    --end
 
    2). 使用source让配置立即生效
    root@10-6-66-111 root $ > source /etc/bashrc
 
4. 根据如上 LinuxBrew 安装成功,执行上面命令将 brew 全局命令 --请在非root用户下执行
    www@10-6-66-111 root $ > echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >>~/.profile
 
 
5. 安装好 Linuxbrew,运行下面的命令来安装 McFly   --请在非root用户下执行
    1). www@10-6-66-111 root $ > brew tap cantino/mcfly https://github.com/cantino/mcfly
    2). www@10-6-66-111 root $ > brew install mcfly
    //---------------------------------------------------begin
    ==> Installing mcfly from cantino/mcfly
    ==> Downloading https://github.com/cantino/mcfly/releases/download/v0.3.1/mcfly-v0.3.1-x86_64-unknown-linux-gnu.tar.gz
    Already downloaded: /home/www/.cache/Homebrew/downloads/f6781531818220ed2b4b9ab805583091c55118e141f4b6bc675bd772671bd1cb--mcfly-v0.3.1-x86_64-unknown-linux-gnu.tar.gz
    ==> Caveats
    ONE MORE STEP! Edit ~/.bashrc and add the following:
 
    if [ -f $(brew --prefix)/opt/mcfly/mcfly.bash ]; then
    . $(brew --prefix)/opt/mcfly/mcfly.bash
    fi
    ==> Summary
    🍺  /home/linuxbrew/.linuxbrew/Cellar/mcfly/v0.3.1: 4 files, 2.6MB, built in 3 seconds
    //---------------------------------------------------end
 
 
6. 检查 mcfly 命令安装完成
> cd cd /home/linuxbrew/.linuxbrew/opt/mcfly
 
 
7. 根据安装第 5 步,mcfly 命令安装提示,我们将 mcfly.bash 写入 ~/.bashrc 命令
 
    1). 编辑 ~/.bashrc 写入命令
    > vim ~/.bashrc
    //----------------------------------------在文件结尾写入如下内容 begin
 
    if [ -f $(brew --prefix)/opt/mcfly/mcfly.bash ]; then
    . $(brew --prefix)/opt/mcfly/mcfly.bash
    fi
 
    //----------------------------------------在文件结尾写入如下内容 end
 
    2). 使用source让配置立即生效
    > ~/.bashrc
 
8. 开启  light terminal
    1). 编辑文件,追加一下内容
    > ~/.bash_profile
    //----------------------------追加内容  begin
    export MCFLY_LIGHT=TRUE
    //----------------------------追加内容  end
 
 
 
另.附上: 相关异常处理
 
1. curl: (77) error setting certificate verify locations: CAfile:
   /home/linuxbrew/.linuxbrew/etc/openssl/cert.pem CApath:
    #原因是证书不存在,下载证书即可
    1). 进入证书所在目录
    > /home/linuxbrew/.linuxbrew/etc/openssl
    2). 下载证书
    > wget https://curl.haxx.se/ca/cacert.pem
    3). 重命名证书
    > mv cacert.pem cert.pem
 
 
2. Error: parent directory is world writable but not sticky
    #原因是/tmp目录权限不对
    1). 检查 /tmp 目录权限
    root@10-6-66-111 / $> ls -ld tmp
      drwxrwxrwt 42 www www 4096 Jan 17 15:22 tmp
    2). 为目录分配权限
    www@10-6-66-111 .linuxbrew $> sudo chmod +t /tmp
    # 知识点: +t 表示设置粘着位(sticky bit),防止文件或目录被非属主删除
 
  


---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。