一、Linux的优化

zsh终端美化

非root用户安装zsh,并配置

非root下zsh安装

新建zsh文件夹

  cd && mkdir  zsh && cd zsh
  • 下载最新版本的zsh,需要手动添加版本号

    wget https://sourceforge.net/projects/zsh/files/latest/download/zsh-XXX.tar.xz (xxx换成最新的版本号)
  • 解压下载后文件

    xz -d zsh-xxx.tar.xz
    tar -xvf zsh-xxx.tar
    cd zsh-xxx
    (xxx换成最新的版本号)
  • 编译文件

    ./configure --prefix=$HOME/zsh #表示安装到家目录中的zsh文件夹下,可以自己设置想要的路径
    make && make install
  • 若没有遇到问题则跳过此步 问题一:./configure出现问题,提示缺少ncurses

configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'.  You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your system."
See `config.log' for more details
  • 解决: 先配置相应的环境变量,除了第三行可以修改(也可以不修改),其他不用修改
export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export NCURSES_HOME=$HOME/ncurses  # 这里表示家目录的ncurses目录,可以自己设置一个想要的路径
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"

配置好环境变量后,安装ncurses, 找到最新版本ncurses下载安装

cd ../../ && mkdir ncurses && cd ncurses  # 切换到上级目录新建ncurses文件夹
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-XXX.tar.gz  # 下载最新版本ncurses
tar -xzvf ncurses-XXX.tar.gz  # 解压
cd ncurses-XXX
# XXX需要改成最新的版本号
./configure --prefix=HOME/ncurses --with-shared --without-debug --enable-widec  
# 指定路径configure,可以自己修改想要安装的路径,这里我装到了家目录的ncurses下面了
make && make install  # 安装

安装完ncurses后,回到zsh路径,重新进行第四步就行了。

问题二:make && make install 时出现问题

make: *** No targets specified and no makefile found.  Stop.

这里的问题应该也是问题一,可能是你没有看到而忽略了。按照问题一的解决办法修改就行了。

非root下onmyzsh安装

  • 更新PATH

    安装oh-my-zsh前先将安装好的zsh所在的路径添加到系统环境变量 PATH

    export PATH=$HOME/zsh/bin:$PATH
    # 这里需要修改成你安装的路径

    但是我们会发现重新登录之后,默认的shell还是bash,这里我们通过修改.bash_profile来自动切换到zsh,将一下命令加到~/.bash_profile

[ -f $HOME/zsh/bin/zsh ] && exec $HOME/zsh/bin/zsh -l
# 路径还是要修改成你安装的路径

注意zsh与scp不兼容,所以不要把该命令写到.bashrc中。因为当我们使用scp命令从本地连接该Linux服务器时,系统会自动执行.bashrc(而不会执行.bash_profile),如果.bashrc中有切换到zsh的命令,则系统的shell会被切换到zsh, 从而与scp产生兼容的问题。

.bash_profile只有当交互式登录shell时(如系统启动、远程登录)才会被读取并执行,而.bashrc在交互式登录与非交互登录(如使用scp从本地连接到该Linux服务器)时都会被读取且执行。
  • 安装onmyzsh
# 方法一:wget方式自动化安装oh my zsh:
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

# 方法二:
$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 

# 官网上的另外一种写法
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 方法三:手动安装
$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh 
注: 1. 克隆后将templates目录下的zsh配置文件拷贝至~/.zshrc即可
    2. .oh-my-zsh一定要在$HOME下( ~ 下)

以上选一种即可

  • 切换到zsh,安装完之后应该是会自动切换到zsh
    exec $HOME/zsh/bin/zsh  # 你的zsh路径

root用户安装zsh,并配置

root下zsh安装

  • 安装
    sudo apt install zsh
  • 将 zsh 设置为默认 shell
    chsh -s /bin/zsh
  • 检查
    echo $SHELL
    返回 /usr/bin/zsh 即表示成功;若没成功,重启试试看

root下onmyzsh安装

% 通过 curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

% 或者 通过 wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

zsh配置onmyzsh

  • 修改默认主题
    vim ~/.zshrc
    用vim打开文件后,按下/键,可以直接搜索ZSH_THEME的位置,按esc即可退出。将其修改成
    ZSH_THEME="ys"  //修改风格
  • 插件

语法高亮插件 zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-syntax-highlighting

自动提示插件 zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-autosuggestions

快速打开 GitHub 仓库 git-open

git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open`

下载之后还需要修改.zshrc使其生效,修改plugins的值,将zsh-syntax-highlighting zsh-autosuggestions git-open添加进去

plugins=(
    git 
    zsh-syntax-highlighting 
    zsh-autosuggestions
    git-open
    )

incr.zsh 补全插件 在zsh 模式下全自动补全指令或目录 下载软件:官网: http://mimosa-pudica.net/zsh-incremental.html 放置:.oh-my-zsh/plugins/.zshrc中加入source ~/.oh-my-zsh/plugins/incr/incr2.0.zsh incr文件内容:

然后source

source ~/.zshrc
In [ ]:

In [1]:
!jupyter nbconvert Readme_Linux.ipynb --to html
[NbConvertApp] Converting notebook Readme_Linux.ipynb to html

[NbConvertApp] Writing 288929 bytes to Readme_Linux.html

In [ ]: