如何在 AWS 上快速創建 Windows 10 電腦

使用 AWS WorkSpaces 在雲端上快速創建 Windows 10 電腦 最近我需要「快速啟動」一台 Windows 10 電腦並遠程訪問它,而不需要真的去購買和設置一台電腦。 我的目標是擁有一台全新安裝的 Windows 10 電腦,在我的 Mac 上使用它,嘗試運行一些命令,如安裝 npm、Git 等等,以便測試我的課程中的指令是否正常運行,然後在一小時後將其摧毀。 我總結了各種選擇,並了解了 AWS WorkSpaces。 它們可以支持更複雜的工作流程,但對於我的簡單用例也有效。 我假設您已經有了一個 AWS 賬戶。 登錄 AWS 控制台後,在 AWS 中搜索 WorkSpaces 服務: 點擊 立即開始 並選擇 快速設置: 現在選擇一台機器。我選擇了具有 Windows 10 的 標準版: 協議會影響您的連接方式。我選擇了 WSP(亞馬遜的 WorkSpaces 流傳協議)。 輸入用戶詳細信息,然後按 啟動 WorkSpaces: 接下來,您將收到一封電子郵件,其中包含有關如何設置用戶密碼以及如何下載 AWS WorkSpaces 客戶端的說明。 安裝應用程序,然後在您收到的電子郵件中(可能需要 20 分鐘)輸入您通過電子郵件收到的註冊碼: 然後輸入您的用戶密碼: 您現在可以開始使用了!

如何在 bash 和 zsh 中設置環境變數

在Bash和zsh上操作是相同的,唯一的區別是要分別使用.bashrc和.zshrc來保存它們。 在 shell 中設置環境變數的方法是一樣的: $ export VARIABLE=something 要確定已設置成功,輸入以下命令: $ $VARIABLE 如果你編輯了一個點文件,要使更改應用於當前的 shell,可以使用source .dotfile。 這適用於 Bash 和 Zsh。 對於 Fish,你需要在前面加上 env: env API\_KEY=123123 node app.js

如何在 C 中訪問命令行參數

學習如何在 C 中訪問命令行參數 在你的 C 程式中,當命令啟動時,你可能需要從命令行接受參數。 對於簡單的需求,你只需要將 main() 函数的簽名從 int main(void) 修改為 int main(int argc, char *argv[]) argc 是一個整數,它包含了命令行中提供的參數數量。 argv 是一個字符串數組。 當程式啟動時,我們可以通過這兩個參數獲取傳入的參數。 注意,argv 數組中始終至少有一個項目:程式的名稱 讓我們以運行 C 編譯器來執行我們的程式為例: gcc hello.c -o hello 如果這是我們的程式,則 argc 會為 4,argv 則是一個包含以下項目的數組: gcc hello.c -o hello 讓我們編寫一個打印接收到的參數的程式: #include <stdio.h> int main(int argc, char *argv[]) { for (int i = 0; i < argc; i++) { printf("%s\n", argv[i]); } } 如果我們的程式名稱是 hello,並且像這樣運行它:./hello,則會得到以下輸出: ./hello 如果我們傳入一些隨機的參數,例如:./hello a b c,則會在終端輸出以下內容:...

如何在 C 語言的 `printf()` 函數中印出百分比符號

在撰寫 C 語言程式時,你可能需要使用 printf() 函數來印出百分比符號 %。 也許你正在開發一個計算百分比的程式,在你初學這門語言並創建小型程式時,這是相當常見的。 該如何達成這個目標? 如果你嘗試像這樣使用的話: printf("%"); 這樣是行不通的,而且編譯器會給你一個警告訊息,像這樣: hello.c:9:14: warning: incomplete format specifier [-Wformat] printf("%"); ^ 1 warning generated. 結果並不會被印出。 要使其正常運作,你需要輸入 %%,像這樣: printf("%%");

如何在 CSS 中對多行文本應用填充

我將介紹如何使用 box-decoration-break CSS 屬性對多行文本進行填充。 在重新設計部分博客時,我需要對每個博客標題的每行添加一些填充。以下是我的 HTML 代碼: <h1 class="post-title"> <span>{{ .Title }}</span> </h1> 然後,我添加了以下 CSS: .post-title span { padding: 0px 30px; background-color: rgb(254,207,12); } 顯然有效,它在文章標題的左右兩側添加了 30px 的填充,如下圖所示(感謝黃色背景): 然而,當標題較長且文字換行時,我遇到了一個問題,即填充未應用到每行的結尾處: 可以看到,第二行的「A」字母前沒有填充,第一行的分號後也沒有填充。 為了解決這個問題,我使用了一個名為 box-decoration-break 的 CSS 屬性,值為 clone,並使用 Safari 的 -webkit- 属性: -webkit-box-decoration-break: clone; box-decoration-break: clone; 這樣,它在所有瀏覽器上都正常工作:

如何在 Docker 容器外訪問檔案

如果容器是隔離的,那麼它們如何與主機進行通信,例如存儲數據?因為當我們從映像創建容器時,容器被移除時生成的任何數據都會丟失。 因此,我們需要一種方式來實現永久性存儲。 我們可以使用 Bind Mounts 和 Volumes 來實現。 兩者之間沒有太大的區別,除了 Bind Mounts 可以指向主機計算機上的任意文件夾,並且不由 Docker 直接管理。 讓我們首先看看 Bind Mounts。一個典型的例子是日誌文件。假設您的應用在容器內的 /usr/src/app/logs 文件夾中創建了一個日誌文件,您可以使用 docker run 命令的 -v(與 --volume 相同)選項將其映射到主機計算機上的一個文件夾中,例如 -v ~/logs:/usr/src/app/logs。 這將把該文件夾映射到用戶的主目錄下的 logs 子文件夾中。 注意:-m 或 --mount 選項的使用方法非常相似。 以下是我們以前創建的 examplenode 映像的命令示例: docker run -d -p 80:3000 -v ~/logs:/usr/src/app/logs --name node-app examplenode 現在我們可以運行我們的 Node 應用程序,並將任何日誌存儲在主機計算機中,而不是 Docker 容器內部。 請注意,examplenode 應用程序不會在 /usr/src/app/logs 中生成任何日誌,這只是一個示例,您需要首先設置該日誌。 有關該卷的詳細信息將在運行 docker inspect 命令時列出,可以在容器名稱下的“Mounts”部分找到: "Mounts": [ { "Type": "bind", "Source": "/Users/flavio/logs", "Destination": "/usr/src/app/logs", "Mode": "", "RW": true, "Propagation": "rprivate" } ], 您能看到 "Type": "bind" 嗎?這表示我們創建了一個 bind mount。...

如何在 Electron 中設置熱重載

在開發 Electron 應用程式時,設置熱重載非常方便,可以在不重新啟動應用程式的情況下進行更新。 你可以使用 npm 模組 electron-reloader 來達到這一目的。 假設你有以下這個示例 Electron 應用程式: index.js const { app, BrowserWindow } = require('electron') function createWindow() { // 建立瀏覽器視窗 const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, }, }) // 載入應用程式的 index.html win.loadFile('index.html') } app.whenReady().then(createWindow) index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Hello World!</title> </head> <body> <h1>Hello World!</h1> </body> </html> 作為開發用的相依套件,安裝 electron-reloader: npm install -D electron-reloader 然後在 index.js 檔案中加入以下程式碼:...

如何在 Fish Shell 中添加路徑

我想要一個快速的方法,可以在我的 Fish Shell 中添加一個路徑,這樣我就可以在該資料夾中執行命令。 以下是在 Fish Shell 中執行這個操作的方法: fish\_add\_path "/Users/flavio/bin"

如何在 flexbox 中居中對齊

Flexbox 已經成為我喜歡的元素居中方式。 你只需要將一個元素包裹在 div 中,並設置 display: flex 和 justify-content: center。 <div class="wrapper"> ... </div> .wrapper { display: flex; justify-content: center; } 使用 Tailwind CSS 更加簡單,只需要添加 flex 和 justify-center 類名: <div class="flex justify-center"> ... </div>

如何在 Ghost 網站上添加搜索功能

我想在自己使用 Ghost 架設的網站上添加搜索功能。 你可以在這個頁面上看到這個教程的最終效果:https://ritywool.it/ricerca/。 當你第一次開始處理這個任務時,你會覺得 “這一定很簡單”。 但不知何故 Ghost 軟件並沒有提供一個簡單的解決方案,你需要使用第三方插件並修改模板。這確實需要一位懂得處理這些的開發者。 不知道為什麼他們沒有提供一個內建的簡單解決方案,而不是需要像我這樣的開發者花時間來調整主題。 這真是奇怪,因為他們在管理面板中有搜索功能,但卻沒有解決辦法來面對公共頁面。他們官方建議使用 Google 自定義搜索,但這實際上並不是一個解決方案。 如果是一個靜態網站生成器,這也還可以理解,因為它沒有運行搜索的引擎,但 Ghost 不是一個靜態網站生成器。 我探索了一段時間的可能選項。他們文檔中建議的一個選項是 GhostHunter,但這對我來說沒有起作用。我嘗試了一下,但在控制台中出現了各種 JavaScript 錯誤,而且我沒有耐心去看問題出在哪裡。這個項目似乎也已經被停止開發了,最後一次提交是 2 年前。 然後我找到了 Ghost Finder,這個插件完美地解決了問題,所以我在這裡解釋一下如何使用。 它是一個使用 Ghost API 來搜索文章的 JavaScript 庫。 首先,我在本地創建了網站的副本(使用 npm install ghost-cli -g 和 ghost install local),並使用了在生產環境上使用的主題。我從 /ghost/#/settings/design 下載了這個主題。 接著,我下載了 Ghost Finder 庫並將其放在 assets 目錄下。 然後,我在 Ghost 管理面板中創建了一個具有 “/search” URL 別名的 search 頁面。 然後我進入了編輯器,創建了一個 page-search.hbs 文件(後面的 - 之後的文件名必須與頁面別名匹配)。 我在命令行中使用 ghost restart 重新啟動 Ghost,以使其識別到這個頁面(這只在本地需要,生產環境上不需要)。 我使用了 Casper 默認主題,這部分可能因為你使用的主題不同而有所不同,不過我在 default.hbs 文件中加入了 Ghost Finder 的 JavaScript 文件(這會載入到所有頁面,不幸的是):...