Ubuntu guide

安装

首先下载ubuntu系统镜像,为了更快的下载速度可以使用清华的镜像,以20.04版本为例,下载地址为 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/focal/ubuntu-20.04.1-desktop-amd64.iso

下载好之后,如果是用虚拟机,将iso加载到CD上即可安装,如果是在PC上安装,可以使用Rufus这个免费的小工具制作u盘启动盘,烧录镜像也可以用Etcher

设置sudo免密码

每次sudo都要输入密码,很是麻烦,修改配置文件

1
sudo visudo

在文件尾加上

1
username ALL=(ALL:ALL) NOPASSWD:ALL

其中username是你的用户名。“加在文件尾”这一点很重要,因为后面的策略会覆盖前面的策略,如果加在前面就可能被覆盖掉而无效。

设置默认文本编辑器

我个人比较偏向于使用简单易用的nano,想从nano改为vim或者从vim改为nano,可以用

1
sudo update-alternatives --config editor

更换apt源

这里我们同样使用清华的源,以20.04版本为例(其他版本见此),编辑/etc/apt/sources.list文件,加入以下内容(为加快速度注释掉了deb-src,想用的话可以取消注释)

1
2
3
4
5
6
7
8
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

更换完之后对系统进行更新

1
2
sudo apt-get update
sudo apt-get upgrade

更换pip/pip3源(选做)

在控制台执行以下命令设置清华源,如果用的是pip则将下面的pip3替换为pip

1
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

设置服务器RSA密钥登录

如果使用的是服务器,设置弱密码存在较大风险,比较安全的做法是改用密钥登录并禁用密码登录。

首先需要使用PuTTYgen之类的生成工具生成公钥/私钥对,生成好的公钥为如下的一串:

1
ssh-rsa AAAAB3...luwDMw==

用用户名密码登录服务器后,创建文件夹~/.ssh,编辑文件~/.ssh/authorized_keys,将上面的公钥粘贴进去,保存文件。此时应该就可以正常使用了,可以退出并重新登录一次,验证密钥登录是否成功,如果不成功则需要检查一下是否是文件权限的问题,用chmod修改读取权限。

验证成功之后,就可以禁用密码登录方式了。具体步骤是,编辑/etc/ssh/sshd_config文件,添加如下语句

1
PasswordAuthentication no

保存文件,执行sudo systemctl restart ssh重启sshd服务,这样下次登录的时候就不能再用密码。再次提醒,一定要先验证可以用密钥登录,不然就再也无法登录了!

美化

本着实用为目的,这里只做一些基本的美化,最终效果如下图所示
效果图
首先我们需要安装tweak tools及拓展工具

1
sudo apt-get install gnome-tweak-tool gnome-shell-extensions chrome-gnome-shell

安装Arc主题和papirus图标

1
sudo apt-get install arc-theme papirus-icon-theme

在浏览器中访问 https://extensions.gnome.org/ ,添加浏览器插件,并开启User Themes插件。

安装完成后,在软件中搜索tweaks,打开修改工具,我的配置如下,仅供参考
配置
如果想把dash放在屏幕下方居中的话,下载DashtoDock这个拓展即可,查看自己的gnome版本号用

1
gnome-shell --version

代理配置

服务器端

·ssr

使用一键安装脚本

1
git clone https://github.com/John-Ao/ss-fly

安装使用./ss-fly.sh -ssr,开启bbr使用./ss-fly.sh -bbr
如果发现ssr服务器无法使用,可以用cat /var/log/shadowsocks.log查看错误信息,有可能是端口号被占用,修改端口号即可。

·MTProxy

获取并执行脚本文件mt_proxy.sh

1
wget -N --no-check-certificate https://raw.githubusercontent.com/John-Ao/scripts/master/mt_proxy.sh && chmod +x mt_proxy.sh && ./mt_proxy.sh

按提示输入端口号、secret信息即可

polipo - socks5转http代理

安装polipo:

1
sudo apt-get install polipo

然后修改配置文件/etc/polipo/config

1
2
3
4
socksParentProxy="ip:port"
socksProxyType=socks5
proxyAddress="0.0.0.0" #如果是ipv6的话填 "::0"
proxyPort=2160

修改完后重启polipo

1
sudo /etc/init.d/polipo restart

可以通过curl测试代理是否成功

1
curl --proxy http://127.0.0.1:2160 https://www.google.com

设置定时任务

有时ss服务器可能会出现不稳定的情况而莫名无法连接,此时可以使用crontab来设置定时重启,只需要修改/etc/crontab文件即可。

客户端

配置snap代理

snap是少数不走proxychains的命令行工具,只能手动配置http代理,运行下面的语句(注意将修改代理端口2160为实际使用端口)

1
2
3
4
5
6
echo -e '[Service]\nEnvironment="http_proxy=http://127.0.0.1:2160/"' \
| sudo tee /etc/systemd/system/snapd.service.d/http-proxy.conf
echo -e '[Service]\nEnvironment="https_proxy=http://127.0.0.1:2160/"' \
| sudo tee /etc/systemd/system/snapd.service.d/https-proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart snapd

electron-ssr (推荐)

如果想通过deb安装,可以下载electron-ssr建议使用0.2.3版本,0.2.4似乎无法使用

proxychains+ssr

首先安装ssr

1
2
3
4
5
6
sudo apt-get install build-essential
wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz
tar -xvf libsodium-1.0.16.tar.gz
cd libsodium-1.0.16
./configure && make -j3 &&sudo make install
sudo ldconfig

获取ssr.sh脚本文件

1
wget -N --no-check-certificate https://raw.githubusercontent.com/John-Ao/scripts/master/ssr.sh && chmod +x ssr.sh

然后在终端里输入

1
2
3
./ssr.sh install
./ssr.sh config #填入配置信息
./ssr.sh start

即可启用ssr,然后可以通过proxychains把tcp代理到socks5

1
2
sudo apt-get install proxychains #安装
sudo nano /etc/proxychains.conf #编辑配置文件

以后在需要的语句前面加上它就可以了,比如proxychains google-chrome
如果报错可以修改/usr/bin/proxychains文件,先执行命令

1
find /usr/lib/ -name libproxychains.so.3 -print

然后把文件中的LD_PRELOAD改为上面所查找出来的路径

ssr-qt5

带有图形界面的ss-qt5是一个不错的选择,在apt install前需要添加ppa源:

1
2
3
4
sudo add-apt-repository ppa:hzwhuang/ss-qt5

sudo apt-get update
sudo apt-get install shadowsocks-qt5

反之,如果要移除该ppa源,可以使用

1
sudo add-apt-repository -r ppa:hzwhuang/ss-qt5

如果第一条语句出现找不到apt_pkg错误,可以尝试用下面的方法解决:

1
2
3
4
5
sudo apt install python3-apt

cd /usr/lib/python3/dist-packages

sudo cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.cpython-36m-x86_64-linux-gnu.so

软件配置

pyspark

1.安装jdk

1
sudo apt-get install openjdk-8-jdk

2.安装py4j

1
pip3 install py4j

3.下载pyspark

1
2
wget "https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz"
tar xvf spark-2.4.3-bin-hadoop2.7.tgz

~/.bashrc文件中添加pyspark的路径,其中xxx按上面下载的实际情况填写

1
2
export SPARK_HOME=/xxx/spark-2.4.3-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH

保存之后激活

1
source ~/.bashrc

4.设置及测试
现在输入pyspark就可以进入交互式spark环境,和python交互式环境类似,开头会有一堆log信息,将log的等级从INFO修改为WARN看起来会舒服很多,修改方法如下

1
2
3
cd ${SPARK_HOME}
cp conf/log4j.properties.template conf/log4j.properties
nano conf/log4j.properties

把文件中的

1
log4j.rootCategory=INFO, console

替换为

1
log4j.rootCategory=WARN, console

如果想使用ipython3的话,需要设置环境变量

1
2
export PYSPARK_DRIVER_PYTHON=ipython3
export PYSPARK_PYTHON=python3

单次运行pyspark也可以用

1
PYSPARK_DRIVER_PYTHON=ipython3 pyspark

最后,我们可以运行一个计算Pi的程序来测试一下

1
${SPARK_HOME}/bin/run-example SparkPi 10

远程操作

相比vnc、xdrp之类的老牌解决方案,TeamViewer是一个更为方便的选择,它是一个免费的(限个人使用)多平台支持的远程控制软件,只需要在两台计算机上分别安装即可使用。

开发工具

  • 调试工具可以用edb-debugger,界面友善,简单易用
  • 调整分区可以用gparted
  • C/C++用clion或者codelite

    Cheat Sheet

    df -n查看硬盘使用情况
    nvidia-smi查看显卡使用情况(nvidia)
    netstat -tulp查看网络端口
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×