<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>系統相關 on Quietbo</title><link>https://quietbo.com/categories/%E7%B3%BB%E7%B5%B1%E7%9B%B8%E9%97%9C/</link><description>Recent content in 系統相關 on Quietbo</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><lastBuildDate>Tue, 10 Jan 2023 04:47:46 +0000</lastBuildDate><atom:link href="https://quietbo.com/categories/%E7%B3%BB%E7%B5%B1%E7%9B%B8%E9%97%9C/index.xml" rel="self" type="application/rss+xml"/><item><title>[Ubuntu] Ubuntu22網卡遺失</title><link>https://quietbo.com/2023/01/10/ubuntu-ubuntu22%E7%B6%B2%E5%8D%A1%E9%81%BA%E5%A4%B1/</link><pubDate>Tue, 10 Jan 2023 04:47:46 +0000</pubDate><guid>https://quietbo.com/2023/01/10/ubuntu-ubuntu22%E7%B6%B2%E5%8D%A1%E9%81%BA%E5%A4%B1/</guid><description>&lt;p&gt;某天工作發現右上角網路的標誌整個不見…&lt;/p&gt;
&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 先確認網卡是否正常
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$sudo lshw -c network&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若有出現logical name: ens33代表正常&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/DkZQcZl.png" alt="" /&gt;&lt;/p&gt;
&lt;ol class="wp-block-list" start="2"&gt;
 &lt;li&gt;
 執行下方指令
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;sudo service NetworkManager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo gedit /etc/NetworkManager/NetworkManager.conf &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把managed=false改為managed=true再儲存。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/SKDCFmk.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;執行下方指令後，右上角就會出現網路&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;sudo service NetworkManager start&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/Q52Rcli.png" alt="" /&gt;&lt;/p&gt;</description></item><item><title>[Python] 與MongoDB連接(並使用GUI:Studio 3T)</title><link>https://quietbo.com/2023/01/09/python-%E8%88%87mongodb%E9%80%A3%E6%8E%A5%E4%B8%A6%E4%BD%BF%E7%94%A8guistudio-3t/</link><pubDate>Mon, 09 Jan 2023 15:13:00 +0000</pubDate><guid>https://quietbo.com/2023/01/09/python-%E8%88%87mongodb%E9%80%A3%E6%8E%A5%E4%B8%A6%E4%BD%BF%E7%94%A8guistudio-3t/</guid><description>&lt;p&gt;本篇使用虛擬機VMware安裝ubuntu20.04，並安裝docker。&lt;br&gt;
Windows使用GUI &lt;a class="link" href="https://studio3t.com/" target="_blank" rel="noopener"
 &gt;Studio 3T&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;請自行先安裝VMware、ubuntu、docker及Studio 3T。&lt;/p&gt;
&lt;div id="ez-toc-container" class="ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction"&gt;
 &lt;div class="ez-toc-title-container"&gt;
 &lt;p class="ez-toc-title" style="cursor:inherit"&gt;
 Table of Contents
 &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;span class=&amp;quot;ez-toc-title-toggle&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle&amp;quot; aria-label=&amp;quot;顯示/隱藏內容目錄&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-js-icon-con&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;eztoc-hide&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;Toggle&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-icon-toggle-span&amp;quot;&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; class=&amp;quot;list-377408&amp;quot; width=&amp;quot;20px&amp;quot; height=&amp;quot;20px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; fill=&amp;quot;none&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z&amp;quot; fill=&amp;quot;currentColor&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; class=&amp;quot;arrow-unsorted-368013&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;10px&amp;quot; height=&amp;quot;10px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; version=&amp;quot;1.2&amp;quot; baseProfile=&amp;quot;tiny&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;&lt;nav&gt;
 &lt;ul class='ez-toc-list ez-toc-list-level-1 ' &gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-1" href="https://quietbo.com/2023/01/09/python-%e8%88%87mongodb%e9%80%a3%e6%8e%a5%e4%b8%a6%e4%bd%bf%e7%94%a8guistudio-3t/#ubuntu%E5%AE%89%E8%A3%9Ddocker_mongodb" &gt;ubuntu安裝docker mongodb&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-2" href="https://quietbo.com/2023/01/09/python-%e8%88%87mongodb%e9%80%a3%e6%8e%a5%e4%b8%a6%e4%bd%bf%e7%94%a8guistudio-3t/#%E6%9F%A5%E8%A9%A2%E8%A9%B2ubuntu%E7%9A%84IP%E4%BD%8D%E5%9D%80" &gt;查詢該ubuntu的IP位址&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-3" href="https://quietbo.com/2023/01/09/python-%e8%88%87mongodb%e9%80%a3%e6%8e%a5%e4%b8%a6%e4%bd%bf%e7%94%a8guistudio-3t/#Windows%E5%AE%89%E8%A3%9DStudio_3T" &gt;Windows安裝Studio 3T&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-4" href="https://quietbo.com/2023/01/09/python-%e8%88%87mongodb%e9%80%a3%e6%8e%a5%e4%b8%a6%e4%bd%bf%e7%94%a8guistudio-3t/#%E5%A6%82%E4%BD%95%E9%80%B2%E5%85%A5docker%E5%85%A7%E7%9A%84mongodb" &gt;如何進入docker內的mongodb?&lt;/a&gt;
 &lt;/li&gt;
 &lt;/ul&gt;&lt;/nav&gt;
&lt;/div&gt;
&lt;h2 id="ubuntu安裝docker-mongodb"&gt;&lt;span class="ez-toc-section" id="ubuntu%E5%AE%89%E8%A3%9Ddocker_mongodb"&gt;&lt;/span&gt;ubuntu安裝docker mongodb&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;下載image&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="docker" class="language-docker"&gt;docker pull mongo:latest&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;啟動容器&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="docker" class="language-docker"&gt;docker run --name mongo -v /d/tmp/mongo/data:/data/db -d -p 27017:27017 mongo:latest&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 &amp;#8211;name 指定建起來的container名字
 &lt;/li&gt;
 &lt;li&gt;
 -v 連結local端目錄與container目錄 (像Linux中mount共用空間的概念)
 &lt;/li&gt;
 &lt;li&gt;
 -d 背景執行
 &lt;/li&gt;
 &lt;li&gt;
 -p 指定將docker內的27017 port 與本地端(ubuntu)的27017 port連結在一起，這樣就可以透過本地直接連container了
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;若ubuntu重新啟動發現容器沒有up是正常的，只要在重新使用start就可以起來了，&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;docker ps -a
docker start {CONTAINER_ID}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;範例:docker start 242c45f0ab65&lt;br&gt;
up正常為下圖:&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/2loo39c.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="查詢該ubuntu的ip位址"&gt;&lt;span class="ez-toc-section" id="%E6%9F%A5%E8%A9%A2%E8%A9%B2ubuntu%E7%9A%84IP%E4%BD%8D%E5%9D%80"&gt;&lt;/span&gt;查詢該ubuntu的IP位址&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;右上角網路資訊點進去到這頁面會看到ubnutu的ip&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/mtAd6ZL.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="windows安裝studio-3t"&gt;&lt;span class="ez-toc-section" id="Windows%E5%AE%89%E8%A3%9DStudio_3T"&gt;&lt;/span&gt;Windows安裝Studio 3T&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;GUI &lt;a class="link" href="https://studio3t.com/" target="_blank" rel="noopener"
 &gt;Studio 3T&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;設置與ubuntu內的mongodb&lt;/p&gt;
&lt;p&gt;點Connect建立New Connect。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/Uz82ZC5.png" alt="" /&gt;&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/xSPR4yk.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;成功會出現下圖&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/oAkMC9W.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="如何進入docker內的mongodb"&gt;&lt;span class="ez-toc-section" id="%E5%A6%82%E4%BD%95%E9%80%B2%E5%85%A5docker%E5%85%A7%E7%9A%84mongodb"&gt;&lt;/span&gt;如何進入docker內的mongodb?&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 進入容器，指令:docker exec -it 容器ID bash
 &lt;/li&gt;
 &lt;li&gt;
 進入容器後輸入:mongosh
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;下圖為成功進入docker內的mongodb&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/JKKB3re.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;補充&lt;br&gt;
如果沒連上可能是ubuntu 27017的port沒有分享出來。&lt;/p&gt;</description></item><item><title>[Linux] Makefile:8: *** missing separator. Stop.(已解決)</title><link>https://quietbo.com/2022/07/28/linux-makefile8-missing-separator-stop-%E5%B7%B2%E8%A7%A3%E6%B1%BA/</link><pubDate>Thu, 28 Jul 2022 03:26:38 +0000</pubDate><guid>https://quietbo.com/2022/07/28/linux-makefile8-missing-separator-stop-%E5%B7%B2%E8%A7%A3%E6%B1%BA/</guid><description>&lt;p&gt;原因:&lt;/p&gt;
&lt;p&gt;出現這個錯誤的原因通常是tab格式錯誤導致的。Makefile的命令行必須以一個tab作為開頭, 不可用4個空白。&lt;/p&gt;
&lt;p&gt;在~/.vimrc文件中添加：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;set tabstop=4 //設置tab鍵是4個空格
set noexpandtab //不把tab键用空格代替&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看目前的Makefile是否有tab鍵&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;cat -t Makefile&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;當你看到&lt;code&gt;^I&lt;/code&gt;代表tab。出問題的命令行如果前面是有空白, 代表該命令的指令是需要修改的&lt;/p&gt;</description></item><item><title>[Linux] 建立自訂 Systemd 服務教學與範例(Python)</title><link>https://quietbo.com/2022/07/27/linux-%E5%BB%BA%E7%AB%8B%E8%87%AA%E8%A8%82-systemd-%E6%9C%8D%E5%8B%99%E6%95%99%E5%AD%B8%E8%88%87%E7%AF%84%E4%BE%8Bpython/</link><pubDate>Wed, 27 Jul 2022 07:33:45 +0000</pubDate><guid>https://quietbo.com/2022/07/27/linux-%E5%BB%BA%E7%AB%8B%E8%87%AA%E8%A8%82-systemd-%E6%9C%8D%E5%8B%99%E6%95%99%E5%AD%B8%E8%88%87%E7%AF%84%E4%BE%8Bpython/</guid><description>&lt;p&gt;&lt;a class="link" href="https://blog.gtwang.org/linux/linux-create-systemd-service-unit-for-python-echo-server-tutorial-examples/" target="_blank" rel="noopener"
 &gt;Linux 建立自訂 Systemd 服務教學與範例&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="部屬方式"&gt;部屬方式
&lt;/h1&gt;&lt;p&gt;本次範例程式使用FastAPI,&lt;br&gt;
檔名為main.py&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="python" class="language-python line-numbers"&gt;import platform
import os
os_type = platform.system()
if os_type == 'Linux':
 # print('in Linux')
 os.chdir('/home/ubuntu/Dev')
import sys
sys.path.append("/home/ubuntu/.local/lib/python3.8/site-packages")
from fastapi import FastAPI
import uvicorn


app = FastAPI()

@app.get("/")
async def root():
 return {"message": "Hello World"}

if __name__ == "__main__":
 uvicorn.run("main:app", host='0.0.0.0', port=8080, workers=1, reload=True)&lt;/code&gt;&lt;/pre&gt;
&lt;h1 id="linux-建立自訂-systemd-服務教學與範例"&gt;Linux 建立自訂 Systemd 服務教學與範例
&lt;/h1&gt;&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 到/etc建立或rc.local並輸入下列內容(如果沒有的話自行建立)
 &lt;/li&gt;
&lt;/ol&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 更改檔案路徑
 &lt;/li&gt;
 &lt;li&gt;
 python執行檔路徑, 有些是/bin/python, 請自行更改(若想包成docker就寫執行docker容器的指令)
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;#!/bin/sh -e

cd /home/ubuntu/Dev/myPython

/usr/bin/python3 main.py

exit 0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;確定輸入的python路徑正確, 使程式正常運行:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ /usr/bin/python3 data_collector_main.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然後將執行權限添加到 /etc/rc.local 文件。&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo chmod +x /etc/rc.local&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="2"&gt;
 &lt;li&gt;
 到/etc/systemd/system建立rc-local.service服務
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ nano /etc/systemd/system/rc-local.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是依照rc.local則直接複製下方內容,無須修正&lt;br&gt;
(有修改過rc.local檔名的話, 請自行將下方的4處修改為自己的檔名, 分別為下方的1,4,9,17行)&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
Environment="DJANGO_SETTINGS_MODULE=Macdonald_Server.settings.production"
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="3"&gt;
 &lt;li&gt;
 python的庫位置
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ pip3 show fastapi&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="4"&gt;
 &lt;li&gt;
 添加PATH, 路徑請自行更改
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ export PATH=$PATH:/home/nadi_19/.local/lib/python3.6/site-packages&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="5"&gt;
 &lt;li&gt;
 開啟執行權限
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ chmod +x /home/nadi_19/NADI/ShowCase/server_ms_showcase/data_collector/data_collector_main.py&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="6"&gt;
 &lt;li&gt;
 重新載入 Systemd 設定檔
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl daemon-reload&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="7"&gt;
 &lt;li&gt;
 啟動自訂的 echo 伺服器
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl start rc-local.service&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="8"&gt;
 &lt;li&gt;
 查看 echo 伺服器狀態
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl status rc-local.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;成功啟動訊息如下:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;root@ShowCase19-1:/home/nadi_19/NADI/ShowCase/server_ms_showcase/data_collector# systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
 Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset: enabled)
 Drop-In: /lib/systemd/system/rc-local.service.d
 └─debian.conf
 Active: active (exited) since Wed 2022-07-20 11:15:40 UTC; 1min 27s ago
 Docs: man:systemd-rc-local-generator(8)
 Process: 31493 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="9"&gt;
 &lt;li&gt;
 使服務能夠在啟動時自動啟動
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl enable rc-local.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;輸入完後重新開機, 測試看看是否service都有自己run起來!&lt;/p&gt;
&lt;ol class="wp-block-list" start="10"&gt;
 &lt;li&gt;
 指令補充
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;下方的service-name都是指rc-local.service這隻檔案。&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 檢視服務的當前狀態&lt;br /&gt;無論它是否正在執行，都可以在終端中使用以下命令語法：
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl status [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 啟動服務，請使用以下語法
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl start [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 停止正在執行的服務
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl stop [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 使服務能夠在機器啟動時自動啟動
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl enable [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 禁用服務，使其無法在啟動時自動啟動：
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl disable [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 重新載入服務
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ systemctl reload [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 重新載入&lt;br /&gt;或重新啟動服務（它重新載入服務，並且如果重新載入不可用，那麼它將重新啟動服務。）
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl reload-or-restart [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 檢查服務是否啟用
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl is-active [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;服務正常並啟用則返回:activating&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 檢查是否已啟用服務以在系統啟動時自動啟動
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo systemctl is-enabled [service-name]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;啟用則返回:enabled&lt;/p&gt;
&lt;h2 id="補充"&gt;補充
&lt;/h2&gt;&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 若是出現Condition check resulted in /etc/rc.local Compatibility being skipped.
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;將執行權限添加到 /etc/rc.local 文件。&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo chmod +x /etc/rc.local&lt;/code&gt;&lt;/pre&gt;
&lt;ol class="wp-block-list" start="2"&gt;
 &lt;li&gt;
 找不到xxx.local檔案&lt;br /&gt;如果在確認etc是否有xxx.local,如果沒有的話請將自己補上, 或是.service檔案內的xx.local檔名打錯了。
 &lt;/li&gt;
 &lt;li&gt;
 執行多個service&lt;br /&gt;目前是建立多個xx.local和xx-local.service,&lt;br /&gt;未來若有更好的方式, 我會來修正現在的方式(如果我有記得的話)
 &lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>[Ubuntu] Terminator+ZSH</title><link>https://quietbo.com/2022/07/17/ubuntu-terminatorzsh/</link><pubDate>Sat, 16 Jul 2022 16:26:36 +0000</pubDate><guid>https://quietbo.com/2022/07/17/ubuntu-terminatorzsh/</guid><description>&lt;p&gt;多窗口如下:&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/T32W7Qv.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="terminator"&gt;Terminator
&lt;/h2&gt;&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;$ #sudo add-apt-repository ppa:gnome-terminator
$ sudo apt update
$ sudo apt install terminator&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="zsh"&gt;zsh
&lt;/h2&gt;&lt;p&gt;更新apt-get&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;$sudo apt-get update
$sudo apt-get upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安裝 zsh&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;$sudo apt-get install zsh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安裝git&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;$sudo apt-get install git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看一下是否安裝成功&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$cat /etc/shells

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安裝 curl&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$ sudo apt-get install curl&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安裝 oh-my-zsh&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改配置&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;$chsh -s /bin/zsh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;官方主題庫:&lt;a class="link" href="https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes" target="_blank" rel="noopener"
 &gt;Github網址&lt;/a&gt;&lt;/p&gt;</description></item><item><title>[Python] 背景執行nohup, &amp; 與 nohup.out</title><link>https://quietbo.com/2022/07/06/python-%E8%83%8C%E6%99%AF%E5%9F%B7%E8%A1%8Cnohup-%E8%88%87-nohup-out/</link><pubDate>Wed, 06 Jul 2022 10:13:54 +0000</pubDate><guid>https://quietbo.com/2022/07/06/python-%E8%83%8C%E6%99%AF%E5%9F%B7%E8%A1%8Cnohup-%E8%88%87-nohup-out/</guid><description>&lt;h1 id=""&gt;
&lt;/h1&gt;&lt;p&gt;本篇提到的「&lt;strong&gt;背景&lt;/strong&gt;」指的是: 在終端機模式下使用 [ctrl]-c, 並不會中斷的一個情境!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://quietbo.com/2021/03/10/ubuntu%e8%83%8c%e6%99%af%e5%9f%b7%e8%a1%8cpy%e6%96%b9%e6%b3%95/" target="_blank" rel="noreferrer noopener"&gt;[Linux]背景執行py方法&lt;/a&gt; 雖然是在背景執行, 不會因為[ctrl]-c而中斷, 但會因為「&lt;strong&gt;終端機關閉後而中斷&lt;/strong&gt;」。&lt;/p&gt;
&lt;p id="block-b1f3c7ea-6b97-4897-bb83-e416e7bdabac"&gt;
 中斷可能多個原因, 例如ssh連線到機器後, 操作時不小心將視窗關閉,或是網路斷線而關閉。
&lt;/p&gt;
&lt;p&gt;本次主要目的為: 「&lt;strong&gt;在離線或登出系統後，還能夠讓工作繼續進行&lt;/strong&gt;」。&lt;/p&gt;
&lt;p&gt;演示的code為my_nohup.py:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="python" class="language-python line-numbers"&gt;# coding:utf-8
from datetime import datetime
from time import sleep
import logging

Log_Format = "%(levelname)s %(asctime)s - %(message)s"

logging.basicConfig(filename = "mylog.log",
 filemode = "w",
 format = Log_Format,
 level = logging.INFO)
logger = logging.getLogger()
logger.error("Our First Log Message")

while(1):
 sleep(5)

 print("print " + str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
 logger.info(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
 # print(1/0) # 輸出錯誤時使用&lt;/code&gt;&lt;/pre&gt;
&lt;h1 id="指令介紹"&gt;&lt;span class="ez-toc-section" id="%E6%8C%87%E4%BB%A4%E4%BB%8B%E7%B4%B9"&gt;&lt;/span&gt;指令介紹&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 &lt;code&gt;nohup&lt;/code&gt;: no hang up的縮寫, 不斷地運行。
 &lt;/li&gt;
 &lt;li&gt;
 &lt;code&gt;&amp;&lt;/code&gt;: 在後台運行，關掉終端會停止運行。
 &lt;/li&gt;
 &lt;li&gt;
 &lt;code&gt;&amp;gt;&lt;/code&gt; : 標準輸出符號。
 &lt;/li&gt;
 &lt;li&gt;
 &lt;code&gt;-u&lt;/code&gt;: 在nohup.out內可以看到print的訊息。
 &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="背景執行nohup-"&gt;&lt;span class="ez-toc-section" id="%E8%83%8C%E6%99%AF%E5%9F%B7%E8%A1%8Cnohup"&gt;&lt;/span&gt;背景執行(nohup, &amp;amp;)&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;nohup python3 my_nohup.py &amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;758865 為背景執行的PID&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/Ixd9tqD.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;執行完會出現一段，所有輸出都被重定向到一個名為nohup.out的文件中&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;nohup: ignoring input and appending output to 'nohup.out'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此時輸入ls指令會看到多出mylog.log和nohup.out&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;admins@labs:~$ ls
Dev get-pip.py mylog.log my_nohup.py nohup.out Python-3.7.9&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;試著使用cat去看看這兩隻檔案, mylog.log會每5秒打印訊息, 但nohup.out是空的。&lt;/p&gt;
&lt;p&gt;查看背景運行(若是關閉終端機後才使用指令，jobs已經無法看到後台跑得程序了, 需使用ps aux)&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;jobs -l&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;離開該終端機後, 背景仍會繼續執行這個服務, 可使用ps aux來查看。&lt;/p&gt;
&lt;h2 id="解決-nohupout打開是空白問題"&gt;&lt;span class="ez-toc-section" id="%E8%A7%A3%E6%B1%BA_nohupout%E6%89%93%E9%96%8B%E6%98%AF%E7%A9%BA%E7%99%BD%E5%95%8F%E9%A1%8C"&gt;&lt;/span&gt;[解決] nohup.out打開是空白問題&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;如果沒有指定導出的地方, 會在nohup.out檔案內, 但在執行時需使用&lt;br&gt;
python -u&lt;br&gt;
執行時使用下方指令:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;nohup python3 -u my_nohup.py &amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;這樣print內的訊息都會在nohup.out了, 而log則是logger寫入的資料, 是分開的檔案。&lt;/p&gt;
&lt;h2 id="指定輸出檔案導出檔案"&gt;&lt;span class="ez-toc-section" id="%E6%8C%87%E5%AE%9A%E8%BC%B8%E5%87%BA%E6%AA%94%E6%A1%88%E5%B0%8E%E5%87%BA%E6%AA%94%E6%A1%88"&gt;&lt;/span&gt;指定輸出檔案(導出檔案)&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;可以指定導到其他檔案, 下方是導到my_print.txt&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;nohup python3 -u my_nohup.py &amp;gt; my_print.txt &amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;沒有nohup: ignoring input and appending output to ‘nohup.out’的訊息, 也沒有看到nohup.out的檔案。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/cg3xS8W.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;這裡的&amp;gt;其實是 1&amp;gt; 的縮寫。&lt;figure class="wp-block-table"&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;名稱&lt;/th&gt;
 &lt;th&gt;代碼&lt;/th&gt;
 &lt;th&gt;操作符號&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;標準輸入&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&amp;lt; 或&amp;laquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;標準輸出&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;&amp;gt;或&amp;raquo;或1&amp;gt; 或1&amp;raquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;標準錯誤輸出&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;2&amp;gt; 或2&amp;raquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;通常後台運行重定向可以寫成：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;mkdir logs
nohup python3 -u my_nohup.py &amp;gt; logs/command.log 2&amp;gt;&amp;1 &amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2&amp;gt;&amp;amp;1 是將「標準錯誤輸出(2)」重定向到「標準輸出(1)」, 簡單來說就是&lt;strong&gt;標準輸出和標準錯誤輸出都在同一份檔案&lt;/strong&gt;, 導入logs文件夾下的command.log日誌文件。&lt;/p&gt;
&lt;h2 id="標準輸出與標準錯誤輸出分開儲存"&gt;&lt;span class="ez-toc-section" id="%E6%A8%99%E6%BA%96%E8%BC%B8%E5%87%BA%E8%88%87%E6%A8%99%E6%BA%96%E9%8C%AF%E8%AA%A4%E8%BC%B8%E5%87%BA%E5%88%86%E9%96%8B%E5%84%B2%E5%AD%98"&gt;&lt;/span&gt;標準輸出與標準錯誤輸出分開儲存&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;如果想要把錯誤輸出存到另一份檔案,把最後一行的註解拿掉， print(1/0)在最後運行時會出錯, 下方指令, 會把標準輸出到out.log, 標準錯誤輸出err.log&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;nohup python3 -u my_nohup.py &amp;gt; out.log 2&amp;gt;err.log &amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下方為故意讓程式有出錯的狀況的圖片, 會看到out.log是原本的print日期時間, 而err.log則是遇到錯誤的訊息&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/mMogv4p.png" alt="" /&gt;&lt;/p&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity" /&gt;
&lt;p&gt;補充:&lt;br&gt;
&lt;a href="https://linux.vbird.org/linux_basic/centos7/0440processcontrol.php#nohup" target="_blank" rel="noreferrer noopener"&gt;鳥哥私房菜-離線管理問題&lt;/a&gt;&lt;/p&gt;</description></item><item><title>[windows] 一鍵解決Docker Desktop報錯WSL 2 installation is incomplete的問題(已解決)</title><link>https://quietbo.com/2022/02/22/windows-%E4%B8%80%E9%8D%B5%E8%A7%A3%E6%B1%BAdocker-desktop%E5%A0%B1%E9%8C%AFwsl-2-installation-is-incomplete%E7%9A%84%E5%95%8F%E9%A1%8C%E5%B7%B2%E8%A7%A3%E6%B1%BA/</link><pubDate>Tue, 22 Feb 2022 06:34:54 +0000</pubDate><guid>https://quietbo.com/2022/02/22/windows-%E4%B8%80%E9%8D%B5%E8%A7%A3%E6%B1%BAdocker-desktop%E5%A0%B1%E9%8C%AFwsl-2-installation-is-incomplete%E7%9A%84%E5%95%8F%E9%A1%8C%E5%B7%B2%E8%A7%A3%E6%B1%BA/</guid><description>&lt;p&gt;電腦使用的wsl2版本老了, 需要自己手動更新, 可點擊下圖提示, 去微軟官網下載最新版的wsl2安裝後即可正常打開。&lt;figure class="wp-block-image"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/KdW085I.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;下載安裝:&lt;a class="link" href="https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi" target="_blank" rel="noopener"
 &gt;下載&lt;/a&gt;&lt;/p&gt;</description></item><item><title>[Mac|M1] Port 5000 already in use,Port 5000一直被佔用(已解決)</title><link>https://quietbo.com/2022/01/22/macm1-port-5000-already-in-useport-5000%E4%B8%80%E7%9B%B4%E8%A2%AB%E4%BD%94%E7%94%A8%E5%B7%B2%E8%A7%A3%E6%B1%BA/</link><pubDate>Fri, 21 Jan 2022 20:00:38 +0000</pubDate><guid>https://quietbo.com/2022/01/22/macm1-port-5000-already-in-useport-5000%E4%B8%80%E7%9B%B4%E8%A2%AB%E4%BD%94%E7%94%A8%E5%B7%B2%E8%A7%A3%E6%B1%BA/</guid><description>&lt;p&gt;再學習docker+flask+redis時遇到一個小問題，就是5000一直被佔用著，但Flask 預設使用 port 5000。&lt;/p&gt;
&lt;p&gt;查詢port 5000是否被佔用:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$ sudo lsof -i :5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 96400 bocky 36u IPv4 0xb3652d5dff6c5fe3 0t0 TCP *:commplex-main (LISTEN)
ControlCe 96400 bocky 37u IPv6 0xb3652d5dec3e630b 0t0 TCP *:commplex-main (LISTEN)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查詢結果已經在使用了&lt;/p&gt;
&lt;h2 id="解決方式1"&gt;解決方式1.
&lt;/h2&gt;&lt;p&gt;左上角[系統偏好設定]&lt;figure class="wp-block-image"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/8Tv4FHr.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;點擊[共享]&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/L7TRWPJ.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;將AirPlay接收器關閉。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/umGw5mx.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="解決方式2"&gt;解決方式2.
&lt;/h2&gt;&lt;p&gt;將flask更換其他port號，更換port方式請自行搜尋。&lt;/p&gt;</description></item><item><title>[Mac|M1] ModuleNotFoundError: No module named ‘pip._internal.cli.main’ (已解決)</title><link>https://quietbo.com/2022/01/17/macm1-modulenotfounderror-no-module-named-pip-_internal-cli-main-%E5%B7%B2%E8%A7%A3%E6%B1%BA/</link><pubDate>Mon, 17 Jan 2022 07:01:50 +0000</pubDate><guid>https://quietbo.com/2022/01/17/macm1-modulenotfounderror-no-module-named-pip-_internal-cli-main-%E5%B7%B2%E8%A7%A3%E6%B1%BA/</guid><description>&lt;p&gt;問題訊息如下:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$ pip install --upgrade pip
Traceback (most recent call last):
 File "/usr/local/bin/pip", line 6, in &amp;lt;module&amp;gt;
 from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip._internal.cli.main'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解決方式:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;Defaulting to user installation because normal site-packages is not writeable
Collecting pip
 Using cached pip-21.3.1-py3-none-any.whl (1.7 MB)
Installing collected packages: pip
 WARNING: The scripts pip, pip3 and pip3.8 are installed in '/Users/bocky/Library/Python/3.8/bin' which is not on PATH.
 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-21.3.1
WARNING: You are using pip version 19.2.3; however, version 21.3.1 is available.
You should consider upgrading via the '/Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pip install --upgrade pip' command.&lt;/code&gt;&lt;/pre&gt;&lt;figure class="wp-block-image"&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/ZxKs6aB.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;訊息告知建議執行的內容:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash line-numbers"&gt;/Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pip install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下方為執行結果:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in ./Library/Python/3.8/lib/python/site-packages (21.3.1)&lt;/code&gt;&lt;/pre&gt;&lt;figure class="wp-block-image"&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/LwzulX6.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;解決!&lt;/p&gt;</description></item><item><title>什麼是網路位址轉換(NAT)?</title><link>https://quietbo.com/2022/01/15/%E4%BB%80%E9%BA%BC%E6%98%AF%E7%B6%B2%E8%B7%AF%E4%BD%8D%E5%9D%80%E8%BD%89%E6%8F%9Bnat/</link><pubDate>Fri, 14 Jan 2022 17:03:30 +0000</pubDate><guid>https://quietbo.com/2022/01/15/%E4%BB%80%E9%BA%BC%E6%98%AF%E7%B6%B2%E8%B7%AF%E4%BD%8D%E5%9D%80%E8%BD%89%E6%8F%9Bnat/</guid><description>&lt;h2 id="淺談l1"&gt;淺談(L1)
&lt;/h2&gt;&lt;p&gt;網路位址轉換（英語：Network Address Translation，縮寫：NAT；又稱網路掩蔽、IP掩蔽）&lt;/p&gt;
&lt;p&gt;NAT是作為一種解決IPv4位址短缺以避免保留IP位址困難的方案而流行起來的。&lt;/p&gt;
&lt;p&gt;NAT就像是中間綠色箭頭，將私有IP轉為公開IP&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/N4cYuul.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;NAT 伺服器的功能:&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 封包偽裝
 &lt;/li&gt;
 &lt;li&gt;
 封包過濾
 &lt;/li&gt;
 &lt;li&gt;
 平衡負載
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;參考：&lt;br&gt;
&lt;a class="link" href="https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2" target="_blank" rel="noopener"
 &gt;wiki:網路位址轉換NAT&lt;/a&gt;&lt;br&gt;
YT參考影片:&lt;a class="link" href="https://www.youtube.com/watch?v=FTUV0t6JaDA&amp;amp;ab_channel=PowerCertAnimatedVideos" target="_blank" rel="noopener"
 &gt;NAT Explained – Network Address Translation&lt;/a&gt;&lt;br&gt;
&lt;a class="link" href="http://linux.vbird.org/linux_server/0250simple_firewall.php" target="_blank" rel="noopener"
 &gt;鳥哥的Linux 私房菜-第九章、防火牆與 NAT 伺服器&lt;/a&gt;&lt;/p&gt;</description></item><item><title>網絡常用命令</title><link>https://quietbo.com/2022/01/13/%E7%B6%B2%E7%B5%A1%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link><pubDate>Wed, 12 Jan 2022 18:09:23 +0000</pubDate><guid>https://quietbo.com/2022/01/13/%E7%B6%B2%E7%B5%A1%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid><description>&lt;div id="ez-toc-container" class="ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction"&gt;
 &lt;div class="ez-toc-title-container"&gt;
 &lt;p class="ez-toc-title" style="cursor:inherit"&gt;
 Table of Contents
 &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;span class=&amp;quot;ez-toc-title-toggle&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle&amp;quot; aria-label=&amp;quot;顯示/隱藏內容目錄&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-js-icon-con&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;eztoc-hide&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;Toggle&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-icon-toggle-span&amp;quot;&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; class=&amp;quot;list-377408&amp;quot; width=&amp;quot;20px&amp;quot; height=&amp;quot;20px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; fill=&amp;quot;none&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z&amp;quot; fill=&amp;quot;currentColor&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; class=&amp;quot;arrow-unsorted-368013&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;10px&amp;quot; height=&amp;quot;10px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; version=&amp;quot;1.2&amp;quot; baseProfile=&amp;quot;tiny&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;&lt;nav&gt;
 &lt;ul class='ez-toc-list ez-toc-list-level-1 ' &gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-1" href="https://quietbo.com/2022/01/13/%e7%b6%b2%e7%b5%a1%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/#IP%E5%9C%B0%E5%9D%80%E7%9A%84%E6%9F%A5%E7%9C%8B" &gt;IP地址的查看&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-2" href="https://quietbo.com/2022/01/13/%e7%b6%b2%e7%b5%a1%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/#%E7%B6%B2%E7%B5%A1%E9%80%A3%E9%80%9A%E6%80%A7%E6%B8%AC%E8%A9%A6" &gt;網絡連通性測試&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-3" href="https://quietbo.com/2022/01/13/%e7%b6%b2%e7%b5%a1%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/#%E6%B8%AC%E8%A9%A6%E7%AB%AF%E5%8F%A3%E7%9A%84%E9%80%A3%E9%80%9A%E6%80%A7" &gt;測試端口的連通性&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-4" href="https://quietbo.com/2022/01/13/%e7%b6%b2%e7%b5%a1%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/#traceroute" &gt;traceroute&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-2'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-5" href="https://quietbo.com/2022/01/13/%e7%b6%b2%e7%b5%a1%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/#curl%E5%91%BD%E4%BB%A4" &gt;curl命令&lt;/a&gt;
 &lt;/li&gt;
 &lt;/ul&gt;&lt;/nav&gt;
&lt;/div&gt;
&lt;h2 id="ip地址的查看"&gt;&lt;span class="ez-toc-section" id="IP%E5%9C%B0%E5%9D%80%E7%9A%84%E6%9F%A5%E7%9C%8B"&gt;&lt;/span&gt;IP地址的查看&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;Windows:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;ipconfig&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Linux、Mac:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;ifconfig&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mac 中沒有 ip 命令，可使用brew install&lt;br&gt;
&lt;a class="link" href="https://superuser.com/questions/687310/ip-command-in-mac-os-x-terminal/898971" target="_blank" rel="noopener"
 &gt;ip command in Mac OS X terminal&lt;/a&gt;&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;brew install iproute2mac
ip addr&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="網絡連通性測試"&gt;&lt;span class="ez-toc-section" id="%E7%B6%B2%E7%B5%A1%E9%80%A3%E9%80%9A%E6%80%A7%E6%B8%AC%E8%A9%A6"&gt;&lt;/span&gt;網絡連通性測試&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;ping命令:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;ping 192.XXX.XXX.XXX&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="測試端口的連通性"&gt;&lt;span class="ez-toc-section" id="%E6%B8%AC%E8%A9%A6%E7%AB%AF%E5%8F%A3%E7%9A%84%E9%80%A3%E9%80%9A%E6%80%A7"&gt;&lt;/span&gt;測試端口的連通性&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;telnet命令&lt;/p&gt;
&lt;p&gt;mac M1需安裝telnet:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;brew install telnet&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;測試連接google的80port如下&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$ telnet www.google.com.tw 80
Trying 172.217.163.35...
Connected to www.google.com.tw.
Escape character is '^]'.&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="traceroute"&gt;&lt;span class="ez-toc-section" id="traceroute"&gt;&lt;/span&gt;traceroute&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;可顯示封包在IP網路經過的路由器的IP位址。&lt;/p&gt;
&lt;p&gt;Windwos平台指令&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;tracert&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Linux平台指令：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;traceroute
tracepath&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;traceroute連接到google如下：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;$ traceroute www.google.com.tw
traceroute to www.google.com.tw (142.251.43.3), 64 hops max, 52 byte packets
 1 192.168.100.1 (192.168.100.1) 6.143 ms 5.137 ms 4.805 ms
 2 192.168.1.1 (192.168.1.1) 6.382 ms 7.177 ms 6.312 ms
 3 h254.s98.ts.hinet.net (168.95.98.254) 12.624 ms 7.280 ms 9.544 ms
 4 * * *
 5 203-75-90-146.hinet-ip.hinet.net (203.75.90.146) 19.812 ms 7.768 ms 6.890 ms
 6 tpdt-3308.hinet.net (168.95.81.6) 8.898 ms 7.564 ms 31.192 ms
 7 tpdt-3032.hinet.net (220.128.27.94) 14.086 ms
 tpdb-3031.hinet.net (220.128.1.102) 8.078 ms 8.284 ms
 8 * * *
 9 pcpd-3211.hinet.net (220.128.12.241) 13.199 ms
 pcpd-3211.hinet.net (220.128.13.85) 9.528 ms
 pcpd-3211.hinet.net (220.128.12.189) 7.593 ms
10 72.14.218.140 (72.14.218.140) 9.797 ms 9.633 ms 10.930 ms
11 * * *
12 209.85.243.196 (209.85.243.196) 9.198 ms
 142.251.226.170 (142.251.226.170) 28.471 ms
 216.239.48.134 (216.239.48.134) 10.657 ms
13 142.251.77.85 (142.251.77.85) 8.641 ms 17.196 ms
 tsa03s08-in-f3.1e100.net (142.251.43.3) 8.052 ms&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="curl命令"&gt;&lt;span class="ez-toc-section" id="curl%E5%91%BD%E4%BB%A4"&gt;&lt;/span&gt;curl命令&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;請求web服務的&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 -v :顯示請求詳細信息
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;curl quietbo.com -v&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 -X :指定请求方式(GET or POST)
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;curl -X Get URL
curl -X POST URL&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 -H :指定頭部類型&amp;Cookie
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;curl -H "Content-Type:application/json"
curl -H "Cookie:username=XXX" URL&lt;/code&gt;&lt;/pre&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 -d :使用POST向server發送數據，下方可以省略-X POST
 &lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;curl -H "Content-Type:application/json" -d '{"name":"bocky","date":"2022/1/13"}' URL -v&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可參考更多網路文章，&lt;a class="link" href="http://www.ruanyifeng.com/blog/2019/09/curl-reference.html" target="_blank" rel="noopener"
 &gt;文章&lt;/a&gt;&lt;/p&gt;</description></item><item><title>[Mac] Homebrew安裝tree(樹狀資料夾目錄結構)</title><link>https://quietbo.com/2021/11/10/mac-homebrew%E5%AE%89%E8%A3%9Dtree%E6%A8%B9%E7%8B%80%E8%B3%87%E6%96%99%E5%A4%BE%E7%9B%AE%E9%8C%84%E7%B5%90%E6%A7%8B/</link><pubDate>Tue, 09 Nov 2021 16:37:03 +0000</pubDate><guid>https://quietbo.com/2021/11/10/mac-homebrew%E5%AE%89%E8%A3%9Dtree%E6%A8%B9%E7%8B%80%E8%B3%87%E6%96%99%E5%A4%BE%E7%9B%AE%E9%8C%84%E7%B5%90%E6%A7%8B/</guid><description>&lt;p&gt;目的：使用homebrew來安裝tree，並顯示資料結構。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/P7VqLcb.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="homebrew"&gt;Homebrew
&lt;/h2&gt;&lt;p&gt;可以在 Mac 上安裝系統沒有的套件，例如 Wget (算是工程師滿常使用的軟體)&lt;/p&gt;
&lt;p&gt;開啟終端機，輸入下方指令來安裝&lt;a class="link" href="https://brew.sh/index_zh-tw.html" target="_blank" rel="noopener"
 &gt;Homebrew&lt;/a&gt;&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更新套件&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;brew update &amp;&amp; brew upgrade &amp;&amp; brew cleanup&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安裝tree&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;brew install tree&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若在顯示列印資料夾目錄，中文檔名有亂碼時，加上 -N&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;tree -N&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;有些資料夾層級太多時，可指定要印出的層數，後面加上層數的數字：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;tree -L 1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;依字母排序&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;tree -v&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;關鍵字搜尋 Homebrew 套件(下方是搜尋tree)&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;brew search tree&lt;/code&gt;&lt;/pre&gt;&lt;figure class="wp-block-image"&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/VGyBRyQ.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;查看更多tree的功能：&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;tree --help&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>[Iphone] 不使用USB，投影畫面至電腦</title><link>https://quietbo.com/2021/10/01/iphone-%E4%B8%8D%E4%BD%BF%E7%94%A8usb%EF%BC%8C%E6%8A%95%E5%BD%B1%E7%95%AB%E9%9D%A2%E8%87%B3%E9%9B%BB%E8%85%A6/</link><pubDate>Fri, 01 Oct 2021 07:02:46 +0000</pubDate><guid>https://quietbo.com/2021/10/01/iphone-%E4%B8%8D%E4%BD%BF%E7%94%A8usb%EF%BC%8C%E6%8A%95%E5%BD%B1%E7%95%AB%E9%9D%A2%E8%87%B3%E9%9B%BB%E8%85%A6/</guid><description>&lt;p&gt;需要準備的有:一台iphone手機、一台電腦及無線網路。&lt;/p&gt;
&lt;p&gt;使用:&lt;br&gt;
iPhone 11Pro(IOS v14.6)&lt;br&gt;
電腦:windows 10&lt;br&gt;
享幕版本:1.2.4.4&lt;/p&gt;
&lt;p&gt;目前已知問題:&lt;strong&gt;YT無法投影&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;手機安裝: &lt;a href="https://apps.apple.com/app/letsview-easy-screen-cast-tool/id1478202069" data-type="URL" data-id="https://apps.apple.com/app/letsview-easy-screen-cast-tool/id1478202069"&gt;點我下載幕享IOS版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;電腦下載: &lt;a href="https://download.aoscdn.com/down.php?softid=letsview-protop&amp;_cc=8&amp;_ct=1633057079&amp;_dm=letsview.com&amp;_gn=ANGLE%20(Intel%2C%20Intel(R)%20UHD%20Graphics%20620%20Direct3D11%20vs_5_0%20ps_5_0%2C%20D3D11-27.20.100.8337)&amp;_sh=864&amp;_sw=1536&amp;_tz=GMT%2B0800&amp;_vi=ab393f8c60c79b2a4c2dbc71c35190f9&amp;_wxga=GA1.2.2019990918.1633055975" data-type="URL" data-id="https://download.aoscdn.com/down.php?softid=letsview-protop&amp;_cc=8&amp;_ct=1633057079&amp;_dm=letsview.com&amp;_gn=ANGLE%20(Intel%2C%20Intel(R)%20UHD%20Graphics%20620%20Direct3D11%20vs_5_0%20ps_5_0%2C%20D3D11-27.20.100.8337)&amp;_sh=864&amp;_sw=1536&amp;_tz=GMT%2B0800&amp;_vi=ab393f8c60c79b2a4c2dbc71c35190f9&amp;_wxga=GA1.2.2019990918.1633055975" target="_blank" rel="noreferrer noopener"&gt;點我下載[幕享電腦版]&lt;/a&gt;&lt;/p&gt;
&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 先將iPhone及電腦連至同一個wifi網路
 &lt;/li&gt;
 &lt;li&gt;
 電腦打開幕享&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/Etf7pT2.png" alt="" /&gt;&lt;br /&gt;開啟畫面如下，打開箭頭方向的QRCode:&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/TIG7ser.png" alt="" /&gt;
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;展開後會看到QRCode和一組密碼&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/PC6OWht.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;第三種登入方式:&lt;/p&gt;
&lt;ol class="wp-block-list" start="3"&gt;
 &lt;li&gt;
 iPhone開啟幕享APP&lt;br /&gt;登入方式我試過三種，三種都可以:
 &lt;/li&gt;
&lt;/ol&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 直接點選與電腦的本機名稱一樣的設備名稱&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/gRFAI7e.png" alt="" /&gt;&lt;br /&gt;第二種登入方式:
 &lt;/li&gt;
 &lt;li&gt;
 輸入投影碼連接(電腦端顯示的3801)&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/fHpDVn4.png" alt="" /&gt;&lt;br /&gt;第三種登入方式:
 &lt;/li&gt;
 &lt;li&gt;
 掃QRCode&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/yNO9DA3.png" alt="" /&gt;
 &lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="wp-block-list" start="3"&gt;
 &lt;li&gt;
 選擇投射方式&lt;br /&gt;本次是要將手機畫面投影到電腦，所以選擇「手機螢幕投射」&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/em662oA.png" alt="" /&gt;
 &lt;/li&gt;
 &lt;li&gt;
 打開iPhone的控制中心&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/MTxsV3W.png" alt="" /&gt;
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;選擇要螢幕鏡像輸出:&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/3BusSq1.png" alt="" /&gt;&lt;/p&gt;
&lt;ol class="wp-block-list" start="6"&gt;
 &lt;li&gt;
 打開電腦&lt;br /&gt;連接成功後，電腦會自動跳出幕享的畫面，這時候的操作都會顯示在螢幕上了。&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/z1R0yrd.png" alt="" /&gt;
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;更多問題請查看&lt;br&gt;
&lt;a class="link" href="https://letsview.com/tw/faq/cant-connect-via-wifi.html" target="_blank" rel="noopener"
 &gt;幕享&lt;/a&gt;&lt;/p&gt;</description></item><item><title>設定windows shadowsocks與virtualbox(ubuntu)共享IP</title><link>https://quietbo.com/2021/06/30/%E8%A8%AD%E5%AE%9Awindows-shadowsocks%E8%88%87virtualboxubuntu%E5%85%B1%E4%BA%ABip/</link><pubDate>Wed, 30 Jun 2021 13:53:44 +0000</pubDate><guid>https://quietbo.com/2021/06/30/%E8%A8%AD%E5%AE%9Awindows-shadowsocks%E8%88%87virtualboxubuntu%E5%85%B1%E4%BA%ABip/</guid><description>&lt;p&gt;最近WFH後，都要用penVPN和shadowsocks的IP來開發和測試。&lt;br&gt;
但其實我一直有一個問題沒有解決，&lt;br&gt;
就是windows開shadowsocks，但virtualbox的ubuntu20.04沒有共享到，&lt;br&gt;
最近測試又要用shadowsocks的IP，終於在今天把這問題解決了。(感謝我家技術長提供的方法)&lt;/p&gt;
&lt;p&gt;主機系統：Windows10&lt;br&gt;
VPN：shadowsocks 4.1.9.2&lt;br&gt;
VM: virtualbox 6.1.0&lt;br&gt;
Client:ubuntu20.04&lt;/p&gt;
&lt;p&gt;注:這裡不教設定方式，請自行上網設定完成及確認正確ip&lt;/p&gt;
&lt;ol class="wp-block-list"&gt;
 &lt;li&gt;
 啟用windows的shadowsocks&lt;br /&gt;shadowsocks右鍵 -&gt; 系統代理 -&gt; 全局模式&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/3ngWvhP.png" alt="" /&gt;
 &lt;/li&gt;
 &lt;li&gt;
 顯示ubumtu路由的設定&lt;br /&gt;在ubuntu打開終端機，執行:
 &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;ip route show&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我們要的是紅框內的IP(每台可能不一樣，不要抄我的IP)&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/F1UQmfu.png" alt="" /&gt;&lt;/p&gt;
&lt;ol class="wp-block-list" start="3"&gt;
 &lt;li&gt;
 設置Virtualbox 使用 NAT 網絡&lt;br /&gt;之前我一直設定成橋接模式&lt;br /&gt;設定 -&gt; 網路 -&gt; 附加到:NAT&lt;br /&gt;&lt;img decoding="async" src="https://i.imgur.com/G4Xgwb8.png" alt="" /&gt;
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這邊設定完我會重開一次ubuntu。&lt;/p&gt;
&lt;ol class="wp-block-list" start="4"&gt;
 &lt;li&gt;
 設置ubuntu網絡代理伺服器
 &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;打開ubuntu設定，&lt;br&gt;
網路 -&amp;gt; 網路代理伺服器 -&amp;gt; 手動 -&amp;gt; 填入在第二步驟時的ip&lt;figure class="wp-block-image"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/ZYge3iA.png" alt="" /&gt; &lt;/figure&gt; &lt;figure class="wp-block-image"&gt;&lt;img decoding="async" src="https://i.imgur.com/lnwpSOT.png" alt="" /&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;設定完後，網路代理伺服器會變成:手動&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/ziZGQRy.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;在ubuntu開啟測試IP網址:https://www.whatismyip.com.tw&lt;br&gt;
注意:此時windows的shadowsocks是開著，ubuntu有網路連線，代理伺服器是手動。&lt;/p&gt;
&lt;p&gt;如果IP是原本shadowsocks-windows的IP就成功了。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/NoQWLvk.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;如果開發結束，想用回原本的IP，只要把網路代理伺服器會變成:關閉&lt;br&gt;
就不會用shadowsocks-windows的IP了。&lt;/p&gt;
&lt;p&gt;來自:&lt;a class="link" href="https://stackoverflow.com/questions/49941543/how-to-set-virtualbox-centos-7-client-to-share-host-vpn" target="_blank" rel="noopener"
 &gt;stackoverflow的文章&lt;/a&gt;&lt;/p&gt;</description></item><item><title>windows分享VPN給手機</title><link>https://quietbo.com/2021/05/28/windows%E5%88%86%E4%BA%ABvpn%E7%B5%A6%E6%89%8B%E6%A9%9F/</link><pubDate>Thu, 27 May 2021 16:54:17 +0000</pubDate><guid>https://quietbo.com/2021/05/28/windows%E5%88%86%E4%BA%ABvpn%E7%B5%A6%E6%89%8B%E6%A9%9F/</guid><description>&lt;p&gt;原本用手機測試都是連公司的wifi，不需要開vpn，但最近疫情關係要WFH，一定要用公司IP才能測試。&lt;/p&gt;
&lt;p&gt;以下操作只要抓到兩個關鍵點就可以完成了&lt;br&gt;
1.VPN是哪台?如何判斷?&lt;br&gt;
2.如何開啟行動熱點?如何判斷?&lt;/p&gt;
&lt;div id="ez-toc-container" class="ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction"&gt;
 &lt;div class="ez-toc-title-container"&gt;
 &lt;p class="ez-toc-title" style="cursor:inherit"&gt;
 Table of Contents
 &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;span class=&amp;quot;ez-toc-title-toggle&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle&amp;quot; aria-label=&amp;quot;顯示/隱藏內容目錄&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-js-icon-con&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;eztoc-hide&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;Toggle&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;ez-toc-icon-toggle-span&amp;quot;&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; class=&amp;quot;list-377408&amp;quot; width=&amp;quot;20px&amp;quot; height=&amp;quot;20px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; fill=&amp;quot;none&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z&amp;quot; fill=&amp;quot;currentColor&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;svg style=&amp;quot;fill: #999;color:#999&amp;quot; class=&amp;quot;arrow-unsorted-368013&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;10px&amp;quot; height=&amp;quot;10px&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot; version=&amp;quot;1.2&amp;quot; baseProfile=&amp;quot;tiny&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z&amp;quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;&lt;nav&gt;
 &lt;ul class='ez-toc-list ez-toc-list-level-1 ' &gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-1'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-1" href="https://quietbo.com/2021/05/28/windows%e5%88%86%e4%ba%abvpn%e7%b5%a6%e6%89%8b%e6%a9%9f/#%E9%96%8B%E5%95%9F%E7%B6%B2%E8%B7%AF%E9%80%A3%E7%B7%9A%E7%95%AB%E9%9D%A2" &gt;開啟網路連線畫面&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-1'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-2" href="https://quietbo.com/2021/05/28/windows%e5%88%86%e4%ba%abvpn%e7%b5%a6%e6%89%8b%e6%a9%9f/#VPN%E6%98%AF%E5%93%AA%E5%8F%B0%E6%80%8E%E9%BA%BC%E5%88%A4%E6%96%B7" &gt;VPN是哪台?怎麼判斷?&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-1'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-3" href="https://quietbo.com/2021/05/28/windows%e5%88%86%e4%ba%abvpn%e7%b5%a6%e6%89%8b%e6%a9%9f/#%E5%A6%82%E4%BD%95%E9%96%8B%E5%95%9F%E8%A1%8C%E5%8B%95%E7%86%B1%E9%BB%9E%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%B7" &gt;如何開啟行動熱點?如何判斷?&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-1'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-4" href="https://quietbo.com/2021/05/28/windows%e5%88%86%e4%ba%abvpn%e7%b5%a6%e6%89%8b%e6%a9%9f/#%E8%A8%AD%E5%AE%9A%E5%88%86%E4%BA%ABVPN%E6%AD%A5%E9%A9%9F" &gt;設定分享VPN步驟&lt;/a&gt;
 &lt;/li&gt;
 &lt;li class='ez-toc-page-1 ez-toc-heading-level-1'&gt;
 &lt;a class="ez-toc-link ez-toc-heading-5" href="https://quietbo.com/2021/05/28/windows%e5%88%86%e4%ba%abvpn%e7%b5%a6%e6%89%8b%e6%a9%9f/#%E6%B8%AC%E8%A9%A6" &gt;測試&lt;/a&gt;
 &lt;/li&gt;
 &lt;/ul&gt;&lt;/nav&gt;
&lt;/div&gt;
&lt;h1 id="開啟網路連線畫面"&gt;&lt;span class="ez-toc-section" id="%E9%96%8B%E5%95%9F%E7%B6%B2%E8%B7%AF%E9%80%A3%E7%B7%9A%E7%95%AB%E9%9D%A2"&gt;&lt;/span&gt;開啟網路連線畫面&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;p&gt;先到下圖的畫面(如果找到了就可以跳過找這畫面的過程)&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/oYrfG7N.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;如果找不到，可以在下方操作找到:&lt;br&gt;
右下網路WiFi圖示右鍵 -&amp;gt; 開啟網路和網際網路設定 -&amp;gt; 狀態 -&amp;gt; 變更介面卡選項&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/dlQtPLh.png" alt="" /&gt;&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/j8d2ED8.png" alt="" /&gt;&lt;/p&gt;
&lt;h1 id="vpn是哪台怎麼判斷"&gt;&lt;span class="ez-toc-section" id="VPN%E6%98%AF%E5%93%AA%E5%8F%B0%E6%80%8E%E9%BA%BC%E5%88%A4%E6%96%B7"&gt;&lt;/span&gt;VPN是哪台?怎麼判斷?&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;p&gt;看到後找尋有TAP-Windows Adapter V9 字的就是VPN。&lt;br&gt;
但若有2台以上，沒辦法判斷哪台才是真正要分享的VPN時，打開VPN的程式，再回來看網路連線，有連線上的就是正確的。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/vCaVmQK.png" alt="" /&gt;&lt;/p&gt;
&lt;h1 id="如何開啟行動熱點如何判斷"&gt;&lt;span class="ez-toc-section" id="%E5%A6%82%E4%BD%95%E9%96%8B%E5%95%9F%E8%A1%8C%E5%8B%95%E7%86%B1%E9%BB%9E%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%B7"&gt;&lt;/span&gt;如何開啟行動熱點?如何判斷?&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;p&gt;回到下面設定位置，開啟行動熱點，藍色框就是手機連線要找的Wifi名稱和密碼。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/oJg9ufU.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;回到網路連線畫面，會看到多了一個熱點分享的區域連線，這台就是要分享出去的網路，等等要設定，所以要記得名字。&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/edYmhzv.png" alt="" /&gt;&lt;/p&gt;
&lt;h1 id="設定分享vpn步驟"&gt;&lt;span class="ez-toc-section" id="%E8%A8%AD%E5%AE%9A%E5%88%86%E4%BA%ABVPN%E6%AD%A5%E9%A9%9F"&gt;&lt;/span&gt;設定分享VPN步驟&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;p&gt;把已知VPN右鍵 -&amp;gt; 內容&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/Kbdbsnm.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;共用 -&amp;gt; 第一個框打勾 -&amp;gt; 選擇行動熱點的區域連線&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/1RcIzrL.png" alt="" /&gt;&lt;/p&gt;
&lt;h1 id="測試"&gt;&lt;span class="ez-toc-section" id="%E6%B8%AC%E8%A9%A6"&gt;&lt;/span&gt;測試&lt;span class="ez-toc-section-end"&gt;&lt;/span&gt;
&lt;/h1&gt;&lt;p&gt;把筆電和手機開啟&lt;a href="https://www.whatismyip.com.tw/" target="_blank" rel="noreferrer noopener"&gt;測試網路IP的連結&lt;/a&gt;，若IP一樣，就是分享成功!&lt;/p&gt;
&lt;p&gt;參考連結:&lt;a href="https://makingreal.net/win10%E7%94%B5%E8%84%91%E7%83%AD%E7%82%B9%E5%85%B1%E4%BA%ABvpn%E8%BF%9E%E7%BB%93/" target="_blank" rel="noreferrer noopener"&gt;Win10电脑热点共享VPN连结&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>