Mac OS 安裝 Hexo

本篇紀錄在 Mac OS 下安裝 Hexo 的過程與步驟,

安裝環境

以下為我的安裝環境:

  • Mac OS 10.13.4
  • node v10.10.0 (node -v 指令查看)
  • npm v6.4.1 (npm -v 指令查看)

安裝步驟

安裝步驟只需要兩步驟,

步驟1. 安裝nodejs

1
brew install node

步驟2. 安裝hexo

1
sudo npm install -g hexo

之後步驟參考 Hexo Ubuntu 安裝篇

相關文章
Hexo 使用 Google Analytics 進行網站流量分析
Hexo 本機測試時如何關閉 Google Analytics
Hexo codeblock 插入程式碼區塊與各種程式語言預覽
升級更新 Hexo upgrade
Hexo 熱門主題列表
Ubuntu 安裝 Hexo

macOS Screen Sharing 用指令開啟螢幕分享

本篇 ShengYu 介紹 macOS 如何用指令開啟螢幕分享 Screen Sharing,在圖形介面中要開啟螢幕分享功能的話是從 系統偏好設定 > 共享 > 螢幕共享 的選項去勾選開啟,但有時候從遠端 SSH 登入時突然想用遠端視窗登入,就無法用圖形介面去開啟螢幕分享功能,而此時螢幕分享如果是關閉的話,就會需要用到指令來開啟了。

macOS 螢幕分享的 port 為 5900,以下就來介紹怎麼開啟與關閉的指令吧!

開始螢幕分享 Start Screen Sharing

輸入以下指令開始螢幕分享,

1
2
sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist

停止螢幕分享 Stop Screen Sharing

輸入以下指令停止螢幕分享,

1
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.screensharing.plist

其它相關文章推薦
Ubuntu 安裝 VNC Server
macOS 查詢 Xcode 版本的 3 種方法
macOS 安裝 zsh-completions 自動完成指令
mac 雙螢幕延伸模式的 dock 切換方法
macOS 版本升級的方法

Ubuntu 安裝 x11vnc VNC Server

本篇 ShengYu 紀錄在 Ubuntu 16.04 / Ubuntu 18.04 下安裝 x11vnc VNC Server,x11vnc 是一個遠端桌面伺服器,它允許使用者通過 VNC 協議來遠端訪問和控制正在運行的 X Window System(通常稱為 X11)桌面環境,也就是 x11vnc 會傳輸整個 X Window 的畫面,跟其他 vnc server 不太一樣,所以在使用時建議要設定密碼已達到最低程度的保護,
以下為 Ubuntu 安裝 VNC server 的內容,大概分為這幾部份,

  • Ubuntu 安裝 x11vnc VNC Server
  • 設定 VNC 密碼
  • 手動啟動 x11vnc server
  • x11vnc 參數說明
  • 自動啟動 x11vnc server (開機自動啟動)
  • 確認 x11vnc server 狀態
  • Ubuntu VNC 客戶端程式
  • Windows VNC 客戶端程式
  • macOS VNC 客戶端程式
  • SSH 通訊埠轉發

Ubuntu 安裝 x11vnc VNC Server

使用 apt 指令來安裝 x11vnc server

1
sudo apt-get install x11vnc

設定 VNC 密碼

設定 x11vnc 的連線密碼,使用 x11vnc -storepasswd 指令來設定之後未來 vnc 的連線密碼,並指定要將密碼存放在 /etc/x11vnc.pass 路徑下,

1
2
3
4
5
$ sudo x11vnc -storepasswd /etc/x11vnc.pass
Enter VNC password:
Verify password:
Write password to /etc/x11vnc.pass? [y]/n y
Password written to: /etc/x11vnc.pass

手動啟動 x11vnc server

手動啟動 x11vnc server,Ubuntu 16.04 可以使用下列指令,

1
2
3
4
5
6
7
8
sudo x11vnc \
-display :0 \
-auth /var/run/lightdm/root/:0 \
-forever -bg \
-noxdamage -noxrecord -noxfixes \
-rfbauth /etc/x11vnc.pass \
-rfbport 5900 \
-o /var/log/x11vnc.log

Ubuntu 18.04 可以使用下列指令,跟上面 Ubuntu 16.04 的差別在 -auth 參數,

1
2
3
4
5
6
7
8
sudo x11vnc \
-display :0 \
-auth /run/user/1000/gdm/Xauthority \
-forever -bg \
-noxdamage -noxrecord -noxfixes \
-rfbauth /etc/x11vnc.pass \
-rfbport 5900 \
-o /var/log/x11vnc.log

因為使用 -bg 參數會放到背景執行,所以要關閉 x11vnc server 可以使用 kill / killall 指令,

1
sudo killall x11vnc

或者 x11vnc 來關閉 x11vnc server

1
x11vnc -R stop

x11vnc 參數說明

以下為常用的一些 x11vnc 參數與說明,
-display :0:顯示和本地端的 DISPLAY :0, 即客戶端看到的畫面和本地端看的畫面一樣
-usepw:使用密碼
-nopw:不使用密碼
-rfbauth:指定之前設定好的 vnc 連線密碼檔
-bg:背景執行
-forever:繼續監聽更多 vnc 連線,沒有這個參數的話會在第一個客戶端離線後,就退出程式
-rfbport:指定 vnc 的連接埠
-o:輸出日誌
-auth guess 讓 vnc 自行猜測進行連線
-auth /var/lib/gdm/:0.Xauth 使用 GDM 的 X-Session 進行連線
-auth /var/run/lightdm/root/:0 使用 lightdm 的 X-Session 進行連線
-viewonly:所有客戶端只能看,沒有控制權,即不能控制滑鼠與鍵盤(預設關閉)
-shared:VNC display is shared, i.e. more than one viewer can
connect at the same time (default off).
-geometry WxH:顯示的大小,例如:-geometry 1024x768

自動啟動 x11vnc server (開機自動啟動)

Ubuntu 要開機自動啟動 x11vnc server 的話,就要寫一個 service 的設定檔,方法如下,
編輯 x11vnc.service,內容如下,這份設定適用於 Ubuntu 16.04,
Ubuntu 18.04 就把 -auth 改成 /run/user/1000/gdm/Xauthority 即可,
ExecStop 這行可有可無,

x11vnc.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=x11vnc
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc \
-display :0 \
-auth /var/run/lightdm/root/:0 \
-forever -loop -noxdamage -repeat \
-rfbauth /etc/x11vnc.pass \
-rfbport 5900 \
-o /var/log/x11vnc.log \
-shared
ExecStop=/usr/bin/x11vnc -R stop

[Install]
WantedBy=multi-user.target

移動 x11vnc.service 到 /etc/systemd/system/ 路徑下,並修改存取權限

1
2
3
sudo mv ~/x11vnc.service /etc/systemd/system/
sudo chmod 644 /etc/systemd/system/x11vnc.service
sudo chown root:root /etc/systemd/system/x11vnc.service

重新載入設定值與啟動 x11vnc server 服務

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service # 啟用 x11vnc 服務
sudo systemctl start x11vnc.service # 啟動 x11vnc 服務

確認 x11vnc server 狀態

確認 x11vnc server 有在執行

1
$ systemctl status x11vnc

或者用 ps 指令確認 x11vnc server 有在執行

1
$ ps aux | grep x11vnc

用 netstat 指令確認 x11vnc server 的監聽埠 5900

1
2
3
$ netstat -l | grep 5900
tcp 0 0 *:5900 *:* LISTEN
tcp6 0 0 [::]:5900 [::]:* LISTEN

Ubuntu VNC 客戶端程式

Ubuntu 可以使用內建的 Remmina Remote Desktop Client 來進行 VNC 連線,一些必要的設定與選項如下,

1
2
3
4
5
6
7
Name: xxx
Protocol: VNC-Virtual Network Computing
Server: ip:
User name:
Password: your password
Color depth: High color(16bit)
Quality: Good

若是區域網路內的連線,Color depth 可以選到最高 True color(24bit)

Windows VNC 客戶端程式

在 Windows 可以選用 REAL VNC 這款免費的 VNC Viewer,

macOS VNC 客戶端程式

macOS 內建有 VNC 客戶端程式,要使用 macOS 內建的 VNC 客戶端程式的方式法是 Finder > 前往 > 連接伺服器,之後輸入 vnc://<ip>,例如 vnc://192.168.1.5 再按連線即可。

SSH 通訊埠轉發

要安全地使用 x11vnc 的話,可以搭配 ssh 來達成安全性,
概念是將 x11vnc 改成綁定本機端 loopback 網路介面,這樣外部的連線就無法連上,

x11vnc 要綁定本機端 loopback 網路介面的方法是加上 -localhost 的參數,

1
x11vnc -localhost ... -rfbport 5900 ...

客戶端要使用 VNC 前,先用 ssh 通訊埠轉發,同時要確定客戶端沒有 5900 的服務正在開啟中,例如客戶端也有一個 VNC Server 的服務剛好也是使用 5900 的話就需要先關閉或改用其他 port,以下 ssh 指令使用後會登入遠端電腦並轉發這些通訊埠,一旦 ssh 連線終止轉發通訊埠也會終止,所以 ssh 登入後就保持連線直到使用完畢再終止連線即可,

1
ssh <x11vnc-server-host> -L 5900:localhsot:5900

然後客戶端再用 VNC 連接自己本機端的 port 5900 vnc://localhost:5900 即可。
如果 VNC 嘗試連線失敗時 ssh terminal 出現 channel 3: open failed: administratively prohibited: open failed 的錯誤訊息的話,可將 localhsot 改用 127.0.0.1 試試。

1
ssh <x11vnc-server-host> -L 5900:127.0.0.1:5900

其它參考
x11vnc(1) - Linux man page
https://linux.die.net/man/1/x11vnc
Bahut: VNC server for Cinnamon with systemd
http://bahut.alma.ch/2018/10/vnc-server-for-cinnamon-with-systemd.html

其它相關文章推薦
macOS Screen Sharing 用指令開啟螢幕分享

在 Ubuntu 下安裝 Anaconda

以下介紹如何使用 Ubuntu 16.04 安裝 Anaconda 環境

下載與安裝 Anaconda

歷史安裝包可以到 Anaconda installer archive下載,
目前最新版是︰
Anaconda2-2019.03-Linux-x86_64.sh
Anaconda3-2019.03-Linux-x86_64.sh

  • python2 請下載 anaconda2, python3 請下載 anaconda3
  • python2/anaconda2 才能跑 pyqt4, python3/anaconda3 才能跑 pyqt5
  • pyqt4 需下載2016年7月或更早的版本
1
bash Anaconda-latest-Linux-x86_64.sh

加入 PATH 設定

假設你把 anaconda 裝在 /opt/anaconda3 下,
可以使用下列指令設定 PATH 系統環境變數,
或者在 .bashrc 加入,每次使用 bash 便會自動設定,
第一次加入 .bashrc 完需 source ~/.bashrc 即可立即生效。

1
export PATH="/opt/anaconda3/bin:$PATH"

確認 Anaconda 安裝完成

可以使用 python --version 來確認 python 版本

參考
https://blog.csdn.net/huangjuegeek/article/details/73556763

相關主題
Python 第一支 Python 程式

Python 在 Ubuntu 下使用 Pycharm IDE 教學

本篇教學介紹如何在 Ubuntu 下安裝使用 pycharm,本篇 pycharm 教學會逐步從 apt 下載安裝開始到安裝完畢,最後是設定 anaconda 的 interpreter。

下載安裝 pycharm

1
2
$ sudo add-apt-repository ppa:mystic-mirage/pycharm
$ sudo apt update

安裝社群版 Install the community version

1
$ sudo apt install pycharm-community

安裝專業版 Install the Professional version

1
$ sudo apt install pycharm

在 pycharm 中設定 anaconda 的 interpreter

選擇 File->Default settings->Default project->project interpreter

點擊 project interpreter 的右邊的小齒輪,選擇 add local ,選擇anaconda文件路徑下的python.exe。接著pycharm會更新解釋器,導入模塊等,要稍等一點時間。

到目前為止,anaconda在pycharm中的配置就基本完成了。

如果要在已產生的專案切換 interpreter 的話則是
選擇 File->Settings->Project->Project Interpreter 進行切換

參考 Refernece
http://ubuntuhandbook.org/index.php/2016/07/latest-pycharm-ubuntu-16-04-ppa/

相關主題
Python 第一支 Python 程式

安裝 Qt 在 Windows 7 (使用MSVC)

本篇將會介紹一下如何在 Windows 下安裝 Qt 開發環境。

系統環境

以下為我的系統環境:

  • Windows 7
  • Qt5.10.0 (qt-opensource-windows-x86-5.10.0.exe)

安裝 Qt

先從官網下載 Qt, 目前最新為5.10,
可以依照你要開發的程式選擇對應的預編譯的函式庫

安裝好之後,

假如要寫32-bit的程式, 安裝時選擇 MSVC 2015 32-bit 預先編譯的QT函式庫,
把 Qt 32-bit DLL 路徑加進系統環境變數裡

1
C:\Qt\Qt5.10.0\5.10.0\msvc2015\bin

假如要寫64-bit的程式, 安裝時選擇 MSVC 2015 64-bit 預先編譯的QT函式庫,
把 Qt 64-bit DLL 路徑加進系統環境變數裡

1
C:\Qt\Qt5.10.0\5.10.0\msvc2015_64\bin

其它相關文章推薦
[Qt] 讀檔,讀取 txt 文字檔
[Qt] 寫檔,寫入 txt 文字檔
Qt產生的exe發布方式
Qt 新增多國語言.ts翻譯檔案
Qt5的中文亂碼問題如何解決

Ubuntu 安裝 WinUSB(WoeUSB)

Winusb(WoeUSB) 是一個在 Ubuntu 下把 Windows ISO/DVD 製作成 USB 安裝碟的工具,本篇要介紹如何在 Ubuntu 下編譯安裝 Winusb。

本篇使用 Ubuntu 16.04 安裝 Winusb

以下方法都要裝這個相依套件

1
sudo apt-get install libwxgtk3.0-dev

方法一,編譯安裝 slacka 的 WoeUSB

github: slacka/WoeUSB
編譯

1
2
3
4
5
6
git clone https://github.com/slacka/WoeUSB
cd WoeUSB
autoreconf --force --install # Most non-Debian derived distros will need this
./configure
make
sudo make install

啟動

1
sudo woeusbgui

方法二,編譯安裝 aaptel 的 WoeUSB

github: aaptel/WinUSB
版本1.0.11, 比方法三1.0.11版 多了一些修正

編譯

1
2
3
4
git clone https://github.com/aaptel/WinUSB
./configure
make
sudo make install

啟動

1
sudo woeusbgui

方法三,編譯安裝 debian 管理包的 WoeUSB

參考這篇 How to Install Winusb on Ubuntu 16.04

1
2
3
4
5
6
7
8
9
wget ftp://ftp.ru.debian.org/gentoo-distfiles/distfiles/winusb-1.0.11.tar.gz
tar xvf winusb-1.0.11.tar.gz
cd winusb-1.0.11/src
sed -i -- 's#wxStandardPaths().GetInstallPrefix()#wxStandardPaths::Get().GetInstallPrefix()#g' findFile.cpp
sed -i -- 's#wxStandardPaths().GetDataDir()#wxStandardPaths::Get().GetDataDir()#g' findFile.cpp
cd ..
./configure
make
sudo make install

啟動 同方法二

Linux md5sum 指令用法

md5sum 是個可以將檔案透過某種特定的函式或演算法產生出一組雜湊值,
而這個檔案生成組雜湊值將會是獨一無二的唯一碼,不會有別的檔案生成的雜湊值跟它一樣,
所以我們可以透過這個方式來比對這幾個檔案是不是同一個檔案,
也可以比對這個檔案有沒有被竄改過。

接下來就介紹 Linux md5sum 指令怎麼使用吧!

單一檔案產生 md5sum

以下示範對單一檔案產生 md5sum,假設我目錄下有 msvcp140.dll、msvcp140d.dll、vcruntime140.dll、vcruntime140d.dll 這 4 個 dll,但我想知道 msvcp140.dll 的 md5sum 是多少的話,我可以透過以下指令來計算 msvcp140.dll 的 md5sum,

1
2
3
4
$ ls
msvcp140.dll msvcp140d.dll vcruntime140.dll vcruntime140d.dll

$ md5sum msvcp140.dll

多個檔案產生 md5sum

如果我一次想要對多個檔案產生 md5sum 的話,可以用 * 的方式,用法如下,

1
2
3
4
$ ls
msvcp140.dll msvcp140d.dll vcruntime140.dll vcruntime140d.dll

$ md5sum * > md5sum.txt

根據 md5sum 校驗碼來檢查檔案

承上述例子,我可以將產生好的 md5sum 檔案反過來檢查這些檔案的 md5sum 是不是跟 md5sum.txt 裡紀錄的校驗碼一樣,用法是在執行 md5sum 時加上 -c 的參數後面接 md5sum 校驗碼的檔名,md5sum 檢查結果相同的話會顯示 OK,不同的話會顯示 FAILED

1
2
3
4
5
$ md5sum -c md5sum.txt
msvcp140.dll: OK
msvcp140d.dll: OK
vcruntime140.dll: OK
vcruntime140d.dll: OK