Select Page

PyAutoGUI-自動控制你的電腦

可以在 windows, mac, Linux 上使用,自動地透過滑鼠鍵盤來控制你的電腦畫面,還支援螢幕截圖

簡易使用方法

安裝 pyautogui

pip install pyautogui

使用 pyautogui

import pyautogui

螢幕截圖

pyautogui.screenshot('screenshot.png')

滑鼠控制

pyautogui.moveTo(100, 100, duration = 1.5) #用1.5秒移動到x=100,y=100的位置
pyautogui.dragTo(100, 100, duration=2, button='right') #用2秒按住滑鼠右鍵到x=100,y=100的位置
pyautogui.click(clicks=2, interval=0.5, button='right') #雙擊左鍵並且中途間隔0.5秒

鍵盤控制

pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.keyUp('ctrl') #全選的功能鍵效果
pyautogui.hotkey('ctrl', 'shift', 'esc') #開啟工作管理員的快捷鍵

資源

PyAutoGUI 說明文件

PyAutoGUI 原始碼

中文說明檔

相關資源

完全移除 Linux Apache 的方法

在 ubuntu linux 中預設是用 apache2 作為 http server,但現在比較多機會是用 nginx 或是自己建的 http server ,所以在這邊記錄下我的移除方法

移除指令

sudo apt-get remove --purge apache*

執行指令後,注意看一下有沒有可能會誤刪的,沒有的話,接下去執行

sudo apt-get autoremove

執行完畢後,apache2 就會被刪除,但內容以及設定檔都還會存在

移除相關設定和內容

設定預設是存放在 /etc/apache2 這個資料夾

內容預設是放在 /var/www 下,記得要檢查備份後,刪除

Linux find 指令介紹(尋找檔案、目錄)

Linux 的 find 指令是一個非常強大而且必定要學習的工具,用於在文件系統中搜索符合特定條件的文件或目錄。以下想要介紹這個指令,通過各種參數和選項來定制搜索條件,讓你能夠精確地找到所需的文件。

基本語法

find 指令的基本語法如下:

find [路徑...] [選項] [動作]
  • 路徑:指定 find 指令開始搜索的目錄。如果不指定,默認為當前目錄。
  • 選項:定義搜索的條件,例如按文件名、文件類型、修改時間等。
  • 動作:對搜索結果執行的操作,如列印文件名、刪除文件等。如果不指定動作,默認動作是列印所有找到的文件的路徑。

常用選項

  1. 按名稱搜索
    • -name 'pattern':搜索文件名匹配指定的模式的文件。模式可以包含通配符,如 *?
    • 示例:find /home/user -name '*.txt'
  2. 按類型搜索
    • -type f:僅搜索文件。
    • -type d:僅搜索目錄。
    • 示例:find /var/log -type f
  3. 按修改時間搜索
    • -mtime +n:搜索在 n 天之前被修改過的文件。
    • -mtime -n:搜索在最近 n 天內被修改過的文件。
    • 示例:find / -mtime -10
  4. 按大小搜索
    • -size +n:搜索大於 n 單位的文件。單位可以是 k(KB)、M(MB)、G(GB)。
    • -size -n:搜索小於指定大小的文件。
    • 示例:find / -size +100M

常用動作

  • -print:輸出匹配文件的完整路徑(這是默認動作)。
  • -delete:刪除找到的文件。
  • -exec cmd {} \;:對找到的每個文件執行指定的命令。{} 是一個占位符,代表當前找到的文件名。
  • 示例:find /tmp -type f -mtime +30 -exec rm {} \;

最常使用的動作

搜尋整個硬碟中大於100MB的log檔案(不分大小寫),並且把她刪除

find / -type f -size +100M -iname "*.log" -delete

使用案例

尋找並刪除 30 天前的臨時文件

find /tmp -type f -mtime +30 -delete

尋找特定大小的日誌文件並列出詳細信息

find /var/log -type f -size +50M -exec ls -lh {} \;

尋找所有 JPG 文件並複製到另一個目錄

find /home/user/Pictures -name '*.jpg' -exec cp {} /home/user/Backup/ \;

find 完整參數

  • -mtime : 搜尋檔案的修改時間(天)
  • -mmin : 搜尋檔案的修改時間(分鐘)
  • -ctime : 搜尋檔案的建立時間(天)
  • -cmin : 搜尋檔案的建立時間(分鐘)
  • -atime : 搜尋檔案的最後開啟時間(天)
  • -amin : 搜尋檔案的最後開啟時間(分鐘)
  • -size : 搜尋檔案的大小
  • -name : 搜尋檔案名稱(有分大小寫)
  • -iname : 搜尋檔案名稱(不分大小寫)
  • -type f : 只搜尋“檔案”
  • -type d : 只搜尋“目錄”
  • -exec <cmd> {} \; : 把搜尋結果導向指令來執行
  • -user : 搜尋特定使用者的檔案或目錄
  • -o : 邏輯運算為「或」的意思
  • -print : 將結果印出於螢幕

參考資料

https://www.redhat.com/sysadmin/linux-find-command

將你windows中的Ubuntu(WSL)的IP對外

預設在你的windows下的 Linux 系統會取得一個 IP,通常是172.19開頭的,這是因為用的是 Hyper-V 架構導致的,變成你再 WSL 內開發的服務都很難對外,但其實只要利用 windows 內建的 Netsh interface portproxy 即可

設定 NAT Proxy

透過 netsh interface portproxy 來作設定

netsh interface portproxy add v4tov4 listenport=<yourPortToForward> listenaddress=0.0.0.0 connectport=<yourPortToConnectToInWSL> connectaddress=(wsl hostname) -I)

其中

listenport 和 connectport 通常設定一樣,也就是你的服務的 port

listenaddress=0.0.0.0 (固定)

connectaddress 要記得是填入你 ubuntu 的IP喔,可以透過 wsl hostname -I 找出 IP

wsl hostname -I

假設你有一個服務是運行在 port 3001,ubuntu 的 ip 172.19.227.52,修改後的你指令應該要長成

netsh interface portproxy add v4tov4 listenport=3001 listenaddress=0.0.0.0 connectport=3001 connectaddress=172.19.227.5

最後記得要打開對應的防火牆的設定喔

加碼演出

關於 netsh 的控制指令說明

顯示目前所有的設定

netsh interface portproxy show all

重新設定 netsh

netsh interface portproxy reset

參考資料

https://learn.microsoft.com/zh-tw/windows/wsl/networking

如何變動在 linux 中的預設 php 執行檔?

如何變動在 linux 中的預設 php 執行檔?

在 Linux 中更改命令行的預設 PHP 執行檔,通常涉及更新系統的 PATH 環境變數或使用 update-alternatives 工具(如果你的系統支援)。以下是幾種常見的方法來變更預設 PHP 執行檔:

方法 1:使用 update-alternatives(適用於 Debian、Ubuntu 及其衍生系統)

如果你的系統安裝了多個 PHP 版本,可以使用 update-alternatives 工具來設定預設的 PHP 版本。

列出所有可用的 PHP 替代版本

sudo update-alternatives --display php

設定預設 PHP 版本

使用下面的命令設定預設版本。將 phpX.Y 替換成你想設定為預設的 PHP 版本號,例如 php8.2

sudo update-alternatives --set php /usr/bin/php8.2

如果你想要在可用選項之間手動選擇,可以使用:

sudo update-alternatives --config php

方法 2:直接修改 PATH 環境變數

你可以通過修改 PATH 環境變數來讓系統首先找到你想要的 PHP 版本。這可以通過在你的 ~/.bashrc~/.zshrc 或其他適用的 shell 配置檔案中添加一行來實現。

假設你想使用的 PHP 版本位於 /usr/local/phpX.Y/bin(將 X.Y 替換成具體版本號),可以添加以下行:

export PATH=/usr/local/phpX.Y/bin:$PATH

然後,執行 source ~/.bashrc(或對應的配置檔案)來使變更生效。

source ~/.bashrc

方法 3:使用符號連結

另一個變更預設 PHP 執行檔的方法是建立一個指向你想要的 PHP 版本的符號連結(symlink)。這通常涉及到刪除或重命名舊的 PHP 符號連結,然後創建一個新的指向你選擇的版本。

刪除或重命名當前的符號連結

sudo mv /usr/bin/php /usr/bin/php.old

建立新的符號連結

/usr/bin/php 指向你想要的 PHP 版本。將 /path/to/your/php 替換成你想要設定為預設 PHP 執行檔的完整路徑。

sudo ln -s /path/to/your/php /usr/bin/php

在進行這些變更後,你可以通過執行 php -v 來驗證新的預設 PHP 版本是否已正確設定。

php -v