ss並且開機啟動
0. 安裝shadowsocks
sudo pip install shadowsocks
1. 建立配置文件ss.json
我的位置是:/home/ray/Documents/shadowsocks/ss.json
{
"server":"*.*.*.*",
"server_port":***,
"local_port":1081,
"password":"*****",
"timeout":600,
"method":"aes-256-cfb"
}
2. 建立sh文件,用以運行
我的位置是:/home/ray/Documents/shadowsocks/ss.sh
#!/bin/bash
#ss.sh
/home/ray/anaconda3/bin/sslocal -c /home/ray/Documents/shadowsocks/ss.json
echo "connected!"
注意,如果是開機啟動會出現:"sslocal 未知的命令"的情況,一定要附上絕對路徑,或者加入環境變量。
不要忘記增加可執行權限:
sudo chmod +x ss.sh
測試:打開終端后,運行: sh /home/ray/Documents/shadowsocks/ss.sh,不報錯就成功了
3. 開機自動啟動
3.1 首先載啟動文件/etc/rc.local
中加入
sh /home/ray/Documents/shadowsocks/ss.sh
增加權限:
sudo chmod +x /etc/rc.local
重啟,如果可以翻牆最好,如果不行則考慮步驟3.2
3.2 添加服務
新建文件:/usr/lib/systemd/system/rc-local.service
,在其中加入:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
ExecStart=/etc/rc.local
[Install]
WantedBy=multi-user.target
之后在終端運行:
systemctl enable rc-local.service # 允許該服務,使其可以開機自運行
systemctl start rc-local.service # 啟動該服務
systemctl status rc-local.service # 查看服務狀態
如果發現服務狀態沒有異常,則搞定了,重啟即可
4. github代理
git config --global http.proxy 'socks5://127.0.0.1:1081'
1081為本地端口號
雙硬盤時,機械硬盤掛載
1. 格式化硬盤為EXT4
如果時windows過來的NTFS,一定要進行格式化,否則無法寫入
fdisk -l # 列出所有分區,找到想要格式化的分區名,如/dev/sda1
sudo mkfs -t ext4 /dev/sda1 # 格式化完成
2. 分區
sudo fdisk /dev/sda #格式化后名稱為/dev/sda
輸入n、p、1、兩下回車、wq、回車,分成一個區
3. 掛載
# 新建文件夾作為掛載點
mkdir /home/ray/Documents/Data
# 給定寫入權限
chown -R 500:ray /run/media/ray/data/
sudo chown ray:ray /run/media/ray/data/
# 掛載
sudo mount -t ext4 /dev/sda1 /home/ray/Documents/Data/
4. 開機自動掛載
sudo gedit /etc/fstab
加入:
/dev/sda1 /home/ray/Documents/Data ext4 defaults 0 2
添加字體
1. 安裝依賴
sudo pacman -S fontconfig
2. 下載對應的字體文件,並且放到指定位置
- 微軟雅黑:https://pan.baidu.com/s/1pL5asEv
- 放入/usr/share/fonts/my_fonts/中
3. 建立緩存
mkfontscale
mkfontdir
fc-cache -fv
安裝 latex
# 安裝底層(最后一個用於解決bibtex的問題)
sudo pacman -S texlive-core texlive-langchinese texlive-latexextra texlive-publishers
# 安裝IDE
sudo pacman -S texstudio
# 更新texlive
texhash
雙顯卡驅動
manjaro裝機之后的顯卡驅動切換程序:Bumblebee還是有點問題,我們重新安裝
1. 安裝
# 依賴
sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus
# 安裝雙顯卡切換程序bumblebee
sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee
# 允許服務
sudo systemctl enable bumblebeed
# 添加用戶
sudo gpasswd -a $USER bumblebee
2. 防止啟動后無法進入圖形界面
- 打開 /etc/default/grub
- 找到並且改為:GRUB_CMLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=Linux acpi_osi=’Windows 2015’ pcie_port_pm=off resume=..."
- 運行sudo update-grub,重啟
3. 測試
# 安裝測試軟件
sudo pacman -S mesa-demos
# 集成顯卡性能
glxgears -info
# 獨顯性能
optirun glxgears -info
# 或者
primusrun glxgears -info
之后所有需要用獨顯允許的程序,前面都要加上optirun或者primusrun允許
# 打開nvida面板
optirun -b none nvidia-settings -c :8
# 不依賴Bumblebee來使用CUDA
sudo tee /proc/acpi/bbswitch <<< 'ON'
# 使用完CUDA 停止NVIDIA顯卡
sudo rmmod nvidia_uvm nvidia && sudo tee /proc/acpi/bbswitch <<< OFF
inxi -G # 查看顯卡情況
optirun nvidia-smi # 查看CPU情況
4. 兩種用法
- 用bumblebee切換:
命令前面加上 optirun 或者primusrun運行 - 用bbswitch:
# 一直開啟獨顯
sudo tee /proc/acpi/bbswitch <<< 'ON'
# 一直禁用獨顯
sudo tee /proc/acpi/bbswitch <<< 'OFF'
docker + pyspark + jupyter 安裝
參考: http://maxmelnick.com/2016/06/04/spark-docker.html
1. 本地安裝docker
1.1 安裝docker包
sudo pacman -S docker
1.2 防止權限問題,加入用戶權限
sudo usermod -aG docker ray
1.3 重啟服務(或者重啟計算機)
sudo systemctl restart docker
1.4 查看安裝是否成功
sudo docker -info
2 配置spark 鏡像(images)和容器(containers)
首先,直接建立容器,如果鏡像不存在,則會自動下載:
sudo docker run -d -p 8888:8888 --name spark -v $PWD:/home/jovyan/work jupyter/all-spark-notebook start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd'
命令解釋:
- docker run 載鏡像基礎上建立容器
- -d 后台運行
- -p 8888:8888 指定端口
- -- name spark 命名容器
- -v $PWD:/home/jovyan/work 掛載 all-spark-notebook的工作目錄到當前目錄,使得文件可以在docker內外共享(jovyan是該鏡像內置的用戶名,不要更改!)
- jupyter/all-spark-notebook 鏡像名稱,來自https://hub.docker.com/r/jupyter/all-spark-notebook/
- start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd' 指定密碼而不是token,密碼先得轉為hash碼(怎么轉)
在瀏覽器中輸入'http://localhost:8888',即可打開容器對應的notebook
其次,查看docker狀態
# 顯示當前容器
docker ps
# 顯示所有容器
docker ps -a
# 顯示所有鏡像
docker images
# 刪除容器
docker rm container_name
# 刪除鏡像,必須先刪除依賴該鏡像的容器
docker rmi image_name
最后,直接打開或是關閉
# 關閉容器
docker stop spark
# 打開容器
docker start spark
3 推薦的pyspark docker
安裝 ZSH
zsh,shell中的極品(為什么)
1. 安裝zsh
sudo pacman -S git, zsh
2. 安裝 oh-my-zsh
oh-my-zsh是zsh的一個封裝,類似spacemacs和emacs的關系
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
記着將.bashrc
中添加的語句復制到.zshrc
中
3. 設置為默認shell
chsh -s /bin/zsha
4. 添加powerline
pip install git+git://github.com/powerline/powerline
然后將
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
. /usr/local/lib/python2.7/dist-packages/powerline/bindings/zsh/powerline.zsh
添加到.zshrc
中,注意powerline的位置不一定是上面的,需要自行更改
最后重啟
tensorflow 環境搭建
我們的配置是:
- CUDA-8.0
- cuDNN-6
- tensorflow-gpu 1.4
1. 雙顯卡切換為獨顯
獨顯必須一直保持開着的狀態,才可以穩定運行cuda等程序,我們通過bbswitch
切換獨顯
sudo tee /proc/acpi/bbswitch <<< ‘ON’
注意,如果nvidia-smi -pm
為1的話上述方法是無效的,必須變為0,即實時切換狀態
nvidia-smi -pm 0
2. 安裝CUDA
2.1 yaourt 安裝
yaourt -S cuda-8.0
如果遇到yaourt報告空間不夠,則:
- 打開
/etc/yaourtrc
- 將
#TMPDIR="/tmp"
改為TMPDIR="/home/$USER/tmp"即可
2.2 加入環境變量
通過安裝日志可以發現,yaourt將安裝包遷移到了/opt
中,因此我們在 .bashrc
或.zshrc
、以及/etc/profile
中加入:
export CUDA_HOME=/opt/cuda
export PATH=/opt/cuda/bin:$PATH
export LD_LIBRARY_PATH=/opt/cuda/lib64:$LD_LIBRARY_PATH
2.3 驗證安裝
查看CUDA版本
nvcc -V
編譯samples,CUDA安裝時自帶了samples文件夾,進入該文件夾后直接編譯(gcc啥的都給你裝好了),但是一定記得用sudo,否則報錯
cd /opt/cuda/samples
sudo make
查看編譯結果:
cd bin/x86_64/linux/release
./deviceQuery # 最后如果返回pass,則通過
./bandwidthTest # 最后如果返回pass,則通過
reboot # 最好重啟一下
恭喜你,到了這一步,CUDA已經順利安裝完成啦!!
3. cuDNN安裝
cuDNN是nivida提供的深度學習GPU庫,在manjaro下非常好安裝:
# 先確定獨顯是開着的
sudo tee /proc/acpi/bbswitch <<< ‘ON’
yaourt -S cudnn6
裝好之后,將cudnn文件拷貝到cuda中:
sudo cp /opt/cudnn6/include/cudnn.h /opt/cuda/include
sudo cp cudnn6/lib64/libcudnn* /opt/cuda/lib64
# 增加權限
sudo chmod a+r cuda/include/cudnn.h
sudo chmod a+r cuda/include/cudnn.h
恭喜,至此你已經完成了准備工作啦!
4. 安裝tensorflow-gpu版本
為了跟CUDA8兼容,我們安裝1.4版本的tensorflow-gpu
pip install tensorflow-gpu==1.4
重啟,很關鍵*
reboot
重啟之后,打開ipython,輸入命令進行測試:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
如果提示中不包含ERROR
或FAIL
字樣,且包含了你的獨顯名稱,那么就是正確安裝了。
最后設置CPU按需求使用,在每次導入tf時:
# 設置tendorflow對顯存使用按需增長。
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
5. 安裝keras
pip install keras
keras默認使用tensorflow后端,並且會直接調用其GPU,因此無需做任何改動
linux備份
0. 權限問題
sudo gedit /etc/rsyncd.conf
將其中的
uid = nobody
gid = nobody
改為
uid = root
gid = root
備份結束之后一定要改回來!!
1. 備份
sudo time rsync -Pa / /run/media/ray/Elements/LinuxBackup/2018_05_10 --exclude="/sys/*" --exclude="/proc/*" --exclude="/mnt/*" --exclude="/tmp/*" --exclude="/run/media/*"
2. 恢復
sudo rsync -Pa /run/media/ray/Elements/LinuxBackup/2018_05_10 /
teamviewer
manjaro的teamviewer有一些問題,pacman裝上之后會出現"Not ready,.."的情況,此時應該:
sudo teamviewer --daemon enable
再打開teamviewer即可!
連接鼠標
1. 藍牙直連
2. 有線連接,安裝驅動
ltunify unpair mouse
ltunify pair
開機互換 caps和ctrl
每次打開終端時互換
在 ~/.bashrc或者~/.zshrc中添加
setxkbmap -option ctrl:swapcaps
jupyter notebook 連接遠程服務器
服務器端:
生成配置文件
$ jupyter notebook --generate-config
In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856'
打開配置文件
$vim ~/.jupyter/jupyter_notebook_config.py
修改:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...剛才復制的那個密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #隨便指定一個端口
c.NotebookApp.allow_remote_access = True
打開jupyter notebook
本地端
網頁輸入 http:// ip_address:8888