音乐播放器
Thinker's Space
 
文章 标签
8

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...

WSL的美化与开发环境的配置

Linux的最佳发行版本是什么?WSL!!!
好吧这是我口胡的,不过WSL确实在一定程度上方便了部分Linux开发,因此我也尝试了使用WSL,然后发现:真香!
网上关于WSL的配置文档很多,不过我配过几次WSL,每次都要网上找很麻烦,因此就把我自己的相关配置写下来,方便以后万一要重新配置使用。


这里选择的是Ubuntu子系统

下面的操作默认在普通用户下执行,若命令前有‘#’则代表在root下进行

以下操作来自网络以及个人亲自实践


换源(清华源)

$ sudo vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

系统更新

$ sudo apt update
$ sudo apt upgrade

删除文档

WSL不推荐安装桌面环境,因此文档等于无用,还占空间,因此选择删除

根据Ubuntu wiki,我们可以指示dpkg不要安装任何文档。这样可以防止apt安装任何文档(版权信息除外)。

$ sudo vim /etc/dpkg/dpkg.cfg.d/01_nodoc

加入以下内容:

path-exclude /usr/share/doc/*
# we need to keep copyright files for legal reasons 
path-include /usr/share/doc/*/copyright 
path-exclude /usr/share/man/* 
path-exclude /usr/share/groff/* 
path-exclude /usr/share/info/* 
# lintian stuff is small, but really unnecessary 
path-exclude /usr/share/lintian/* 
path-exclude /usr/share/linda/*

接着手动删除已安装文档

$ sudo find /usr/share/doc -depth -type f ! -name copyright|xargs rm || true
$ sudo find /usr/share/doc -empty|xargs rmdir || true
$ sudo rm -rf /usr/share/man/* /usr/share/groff/* /usr/share/info/*
$ sudo rm -rf /usr/share/lintian/* /usr/share/linda/* /var/cache/man/*

当然也可以通过以下命令删除文档

$ sudo apt --purge remove ****

开启ssh

安装

$ sudo apt remove openssh-server 
# 这一步是必需的

$ sudo apt install openssh-server

修改配置

$ sudo vim /etc/ssh/sshd_config

在其中找到并修改:

port 2222
PasswordAuthentication yes

启动

$ sudo service ssh --full-restart

安装mysql

安装

$ sudo apt install mysql-server

配置

不打算删除localhost的root账户,因此建立了一个用于一般工作使用的可远程访问的test账户

$ sudo service mysql start
$ sudo mysql -u root -p
CREATE USER 'test'@'%' IDENTIFIED BY 'test';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
FLUSH PRIVILEGES;

开启远程访问

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address,把127.0.0.1改成0.0.0.0


开启服务

$ sudo service mysql start

安装redis

安装

$ sudo apt install redis-server

配置远程访问

$ sudo vim /etc/redis/redis.conf

找到并注释掉下面一行,或者把127.0.0.1改成0.0.0.0

bind 127.0.0.1


开启服务

$ sudo service redis-server start

中文支持和字体

改系统语言为中文

$ sudo apt install language-pack-zh-hans
$ sudo update-locale LANG=zh_CN.UTF-8

不推荐安装中文,若要改回英文,则输入下面指令即可

$ sudo update-locale LANG=en_US.UTF-8

安装中文字体

$ sudo mkdir /usr/share/fonts
$ sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
$ sudo apt install fontconfig
$ sudo fc-cache -fv

安装git及配置SSH密钥连接Github

安装git

$ sudo apt install git

设置git账户

执行如下两条命令设置git账户的用户名和密码:

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"

查看git config的信息:

$ git config --list

生成SSH公钥(摘自网络)

SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。先确认是否已经有一个公钥了:

$ cd ~/.ssh
/bin/sh: cd: can't cd to /root/.ssh

主要是看是否存在 id_dsaid_rsa 文件。有 .pub 后缀的文件就是 公钥,另一个文件则是密钥。

创建新的SSH密钥

如果已经存在公钥,可跳过这步。如果没有,使用 ssh-keygen 来创建:

$ cd ~
$ ssh-keygen -t rsa -C "youremail@domain.com"

示例:(xxxxxx@126.com 为我的账户邮箱)

~ # ssh-keygen -t rsa -C "xxxxxx@126.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
# 直接回车,则将密钥按默认路径及文件名进行存储。此时也可以输入特定的文件名
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):  
# 根据提示,你需要输入密码和确认密码。可以不填,设置为空值,直接回车
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yFt14TcP0H+ixy9VKiILPPJ6DVevkKgrbxVFqk7mn5k xxxxxx@126.com
The key's randomart image is:
+---[RSA 2048]----+
|            o.   |
|      .    . o.  |
|     o    . o +. |
|    .... ... ..++|
|   . o .So .   o+|
|  + o Bo= . + + .|
| =   *.* +   o o |
|  ++o o o .   . .|
|  E=++         . |
+----[SHA256]-----+

查看生成的文件:

$ cd ~/.ssh

$ ls
id_rsa      id_rsa.pub		known_hosts

文件 id_rsa.pub 就是公钥。


在 GibHub 中添加你的公钥

复制公钥 id_rsa.pub 文件中的内容。

我这里使用 XShell 来登录的linux服务器,可以直接复制出来。或在 vim 下,可通过命令 ggVG 全选,+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序使用。

登陆Github网站,选择 Settings –> SSH and GPG keys 菜单,点击 New SSH key 按钮。
粘贴你的密钥到 Key 输入框中并设置 Title 信息,点击 Add SSH key 按钮完成。


连接测试

测试 SSH keys 是否设置成功,执行如下命令:

$ ssh -T git@github.com

当提示如下信息时,说明正常连通了github:

Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

如果你是第一次设置连接github.com,会询问你是否继续,输入 yes 即可,这样就会将连接地址记录在本地:

$ ssh -T git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpxxxxxxxxARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

然后就可以将本地的项目用github来管理了。


出错(自己遇到的问题)

如果在powershell下面已经生成过密钥,那么在测试连接时会发生如下情况:

$ ssh -T git@github.com

git@github.com: Permission denied (publickey).

这时我们查看该目录下的文件就会发现:

$ ls
known_hosts

公钥和密钥都不见了

那么我们就在win下操作,将公钥和密钥中的内容复制,在WSL下创建公钥和密钥,将内容复制进去。但是,这时连接会出现以下情况:

$ ssh -T git@github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/ljw/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/ljw/.ssh/id_rsa": bad permissions
git@github.com: Permission denied (publickey).

权限不够,那么只需要运行下面一行代码即可:

$ sudo chmod 700 id_rsa

虽然不知道什么原理。


安装zsh

安装

$ sudo apt install zsh
$ sudo chsh -s $(which zsh)
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

启动zsh

$ sudo vim ~/.bashrc

加入以下内容:

# Launch Zsh
if [ -t 1 ]; 
	then
	exec zsh
fi

开机启动ssh,mysql和redis

$ sudo vim ~/.zshrc

加入以下内容:

echo "Detect the boot startup item"
if [ ! -e "/var/run/sshd.pid" ]; then
    echo 'start sshd'
    sudo service ssh start
fi

if test $( pgrep -f mysql | wc -l ) -lt 1
    then
    echo "start mysql"
    sudo service mysql start
fi

if test $( pgrep -f redis | wc -l ) -lt 1
    then
    echo "start redis"
    sudo service redis-server start
fi

启动显示

$ sudo vim ~/.zshrc

加入以下内容:

umask 0022
export DISPLAY=localhost:0.0

修改wsl里面查看windows磁盘文件的颜色

$ dircolors -p > $HOME/.dircolors
$ vim $HOME/.dircolors

将 STICKY_OTHER_WRITABLE 后面的数字改成02;32 OTHER_WRITABLE 后面的数字改成01;34

$ sudo vim ~/.zshrc

加入以下内容:

eval $(dircolors -b $HOME/.dircolors)

修改主题

$ sudo vim ~/.zshrc

将下面这一行的值改成ys(个人觉得这个主题很好)

ZSH_THEME="rubbyrussell"

安装miniconda

虽然anaconda更省心,所有的包都有了,但是有一些可视化应用根本无法使用,因此这边选择轻量版的miniconda,当然,如果不在意这点的空间消耗的话,那就直接安装anaconda即可。

安装

$ sudo apt install wget
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
# 一直按回车然后输入yes
please answer 'yes' or 'no':
>>> yes

# 选择安装路径, 文件名前加点号表示隐藏文件
Miniconda3 will now be installed into this location:
>>> ~/.miniconda3

# 添加配置信息到 ~/.zshrc文件
Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no]
[no] >>> yes
# 运行配置信息文件或重启电脑
$ source ~/.zshrc

# 测试是否安装成功
$ conda --version

# 若依旧不行
$ sudo vim ~/.zshrc
export export PATH="/home/ljw/miniconda3/bin:$PATH"
$ source ~/.zshrc

换清华源

个人觉得conda官方源挺快的,也就没改清华源。不过这边还是做一下记录,若需要修改,则:

显示所有channel

$ conda config --show
#显示出所有conda的config信息

$ conda config --show channels
#只看channels的信息

添加可用的清华源

$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes

conda config --set show_channel_urls yes的意思是从channel中安装包时显示channel的url,这样就可以知道包的安装来源了。

顺带修改一下安装前的确认

$ conda config --set always_yes false

(这里的意思是安装确认中,不默认yes,而是由我来决定)


移除清华源镜像

$ conda config --remove channels  https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda指令操作

基本操作

升级全部库:conda upgrade --all

升级一个包:conda update packagename

安装包(可以同时安装多个包):conda install packagename

安装固定版本的包:conda install packagename=version

移除一个包:conda remove packagename

查看所有包:conda list

删除没有用的包:conda clean -p

tar打包:conda clean -t

删除所有的安装包及cache:conda clean -y --all


管理python环境

创建虚拟环境:conda create -n env-name list of packagename

指定python版本:conda create -n env_name python2=2.7 list of packagename

激活环境:activate env_name

退出环境:deactivate env_name

删除虚拟环境:conda env remove -n env_name

显示所有虚拟环境:conda env list


安装jdk

虽然这个jdk环境不能用于直接编写代码使用,但还是可以用于运行jar包,浏览器访问没什么问题。

这里选择安装openjdk-8-jdk

$ sudo apt install openjdk-8-jdk

查看java版本,检查是否安装成功

$ java -version

如果安装了多个版本的jdk,可以通过以下指令在版本之间切换:

$ sudo update-alternatives -config java

安装GCC,GDB等

安装gcc

方法一:

$ sudo apt builed-dep gcc

方法二:

$ sudo apt install build-essential

方法三:

$ sudo apt install gcc

查看版本:

$ gcc --version

安装gdb等

$ sudo apt install gdb clang cmake

安装texlive

可以选择使用sudo apt install texlive-full一步到位,不过会占用更多空间,毕竟一些图形化软件压根没用,所以可以选择下面的安装:

安装latex:

$ sudo apt install texlive-latex-base

安装中文环境:

$ sudo apt install latex-cjk-all

安装额外包:

$ sudo apt install texlive-latex-extra

安装xelatex:

$ sudo apt install texlive-xelatex

texlive的文档占用空间很大,所以个人非常推荐先完成删除文档的操作。