只有累積,沒有奇蹟

2019年6月27日 星期四

[Windows] Windows Terminal Preview 初體驗

前言
自從 Build 2019 亮相之後一直對於 Windows Terminal 頗有興趣,終於在六月下旬官方 Blog 公布 Windows Terminal Preview 可以開放下載使用,根據官方 Blog 介紹如下
Windows Terminal! Windows Terminal is a new, modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL.
這邊就簡單分享 升級到 Windows 1903 與 安裝Windows Terminal 過程。

前言
在安裝 Windows Terminal 前可以說是挑戰重重,首先要求系統最低標必須是 Windows 1903 以上才能執行,升級版本需要 11G 的空間大小,因此小弟在安裝時第一步是先升級系統版本

升級 Windows 10 版本 1903
公司筆電的硬碟只有 128G 硬碟空間一直處於不夠用的情況,後來是透過 WizTree 硬碟空間分析軟體才擠出本次 Windows 10 升級的空間,確定硬碟足夠之後可以透過上圖中的更新,會到官網下載 Windows 10 更新軟體,在進行 Windows 10 1903 版本的升級動作,整個過程需要約一小時左右
更新完畢後會重開機,重開機時會在進行基本設定並看到熟悉的您好 :)

安裝 Windows Terminal Preview
可以在 Microsoft Store 進行下載的動作 : 傳送門
安裝完畢之後可以透過左下角搜尋 Windows Terminal 開啟
開啟之後畫面如下,內建有 cmd 與 powershell 功能,預設是使用 powershell 

基本操作
可以使用  +  來開啟新的 Terminal 視窗,預設有提供 cmd 以及 powershell 兩種 Terminal (預設是 powershell ),在 Windows Terminal 中的設定則可以透過  ⬇  中的 settings 來進行設定
設定檔的預設位置存放在
userName\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState
設定檔中可以依據你的喜好調整個人設定,透過 Visual Studo Code 開啟後找到  profiles  區塊,在 profiles 的每個區塊分別定義了 commandline 各別的設定,也就是說你可以 powershell 與 cmd 設定不同的喜好設定
另外很方便的一點是在其中調整 json 內容會即時更新,舉例來說調整字形或是背景圖示時,Windows Terminal 會即時的顯示調整的內容,舉例來說下列是修改 powershell 文字與背景圖片,在修改時都會立即顯示在 Terminal 視窗中,且不會影響到 cmd 的設定
另外也提供設定快捷鍵 keybindings,也可以自定義字形的字體部分,如果想了解更多可以參考官網網站說明,以下為分享初步研究調整字形 (Fira Code) 與背景圖片的 Windows Terminal 畫面
在微軟官方 Blog 中有關於 Windows Terminal 的文章與介紹,有興趣可以參考了解更多細節

參考
Windows Terminal Microsoft Store Preview Release
Introducing Windows Terminal
How to customize the new Windows Terminal with Visual Studio Code

2019年6月25日 星期二

[Docker] 無法刪除 Docker 中的 windowsfilter 資料夾

問題 
在整理硬碟的時候發現 Docker 資料夾中的 windowsfilter 意外的龐大,佔據主硬碟接近 1/3 的空間不說還以驚人的方式成長,且刪除 windowsfilter 時還會跳出錯誤  拒絕存取資料夾 : 您需具有執行此動作的權限 ,這篇就來分享如何解決這問題,若有謬誤或是更快的方法歡迎留言一起討論。 

解決方案 
使用 WizTree 硬碟分析工具分析硬碟檔案,發現 Docker 資料夾佔據 30G 的大小,公司筆電主硬碟僅有 128 G 相當吃重,Docker for windows 預設安裝 image 檔案會儲存在 image 與 windowsfilter 目錄底下,進到資料夾底下針對個別檔案進行刪除也無法進行,都會跳出無法存取的錯誤訊息,
針對此問題以下介紹兩種解決方式

Reset to factory defaults
重置 Docker 設定為出廠的預設值,自己在本機環境測試的 Docker image 都是可以重建所以將 Docker 重置對我來說影響不大,設定方式如下
Docker > Settings > Reset > Restart Docker Desktop
按下後會跳出視窗提醒此動作會刪除 image 及還原 Docker 所有設定
按下確定後會進行還原設定的動作,會需要跑一段時間,執行完畢後還會跳出首次進 Docker 歡迎的畫面 (覺得好笑),在使用硬碟分析工具掃描一次,Docker 資料夾已還原為出廠設定佔用

docker-ci-zap
如果不希望使用環境的 Docker 設定還原,也可以考慮使用工具進行刪除 windowsfilter 資料夾的動作,在 [Windows] windowsfilter folder impossible to delete #26873 討論串中看到可以工具刪除的方式,使用前需要先編譯後才可以使用,工具相關資訊如下
下載 : https://github.com/jhowardmsft/docker-ci-zap
使用 : 輸入下列指令進行強行刪除的動作
.\docker-ci-zap.exe -folder "C:\ProgramData\docker"
如果對於工具或是細節有興趣,也可以看討論串的內容了解更多 

後記 
沒想到 Docker 的 windowsfilter 竟佔用硬碟這麼大的空間,且刪除時還無法直接刪除也讓我很意外,最後還是找到解決方法解救了硬碟空間,以上分享兩種 Docker 刪除 windowsfilter 解決方案,各位開發者可以依據需要來選擇使用,Happy Coding :)

參考
[Windows] windowsfilter folder impossible to delete #26873
docker keeps taking more storage space under C:\ProgramData\docker\windowsfilter with no way to reclaim it since prune commands not available 
解決無法刪除 dcoker 在 Windows 下的 image 預設目錄 windowsfilter

2019年6月24日 星期一

[Tool] 搶救硬碟大作戰 - WizTree & SpaceSniffer

前言
筆電用一陣子之後主硬碟 C 槽一直處於空間不足狀態,為了升級 Windows 10 新版 18362 需要 10 G 空間,使用磁碟清楚也沒有太大的幫助,因此下定決心要好好找到空間不足的殺手,在搜尋以及試用過一些硬碟分析工具之後,發現有兩套不錯的硬碟分析軟體推薦給各位,以下為介紹

WizTree
下載位置 : 傳送門

推薦這套原因是掃描速度非常的快,測試多次掃描公司筆電的 SSD C 主硬碟 128G 平均速度為都在 20 秒內可以完成 (檔案數 90w+) ,大勝所有其他硬碟分析工具軟體,其這麼快的原因是因為 WizTree 直接掃描硬碟主文件表 MFT 檔案,MFT 主要是記錄硬碟中所有的檔案及資料夾,查看方式則提供樹狀查看檔案查看兩種,透過結構化的樹狀呈現方式,可以快速地找到那些檔案所佔的比例查看資訊,找出所有的檔案並依照大小排序,匯出 csv 格式檔案...等功能
如果想了解更多功能,可以參考官方介紹 

SpaceSniffer
下載位置 : 傳送門

這一套硬碟分析工具是以方塊的方式呈現,每個方塊背後代表檔案的大小,所以當你掃描完畢之後會看到大大小小不同的方塊,也就可以很直覺透過視覺的方式看到硬碟殺手是那些,並且會顯示檔案新增、修改的時間,作為是否要移除的依據,以下圖為例掃描硬碟後可以發現 pagefile.sys 竟佔據 12g 的空間,在調整系統的虛擬記憶體空間即可
官網說明影片可以參考
以上透過簡單的介紹了我覺得好用的硬碟分析工具,如果有興趣可以到官方網站有更詳細的介紹,分享給有跟我一樣 SSD 硬碟不夠大且需要幫助的朋友們,另外在 Windows 中常見的問題是 pagefile.sys 與 hiberfil.sys 佔用過大,功用分別是虛擬記憶體與休眠恢復檔案,如果硬碟真的不足可以關閉兩者設定,可以參考 Windows 10 系統空間被誰吃掉了?關閉 pagefile.sys 與 hiberfil.sys,如果有同樣困擾的朋友不坊也可以試試看 :) 

2019年6月22日 星期六

[VisualStudio] Visual Studio Code 實用套件 - REST Client

前言
有 API 開發經驗的人相信都使用過 Postman 來模擬使用端發出的 Request 進行測試,今天要介紹另一套工具與 Postman 相似 - REST CLIENT,根據官網的敘述如下
REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.
Rest Client 套件讓開發者可以在 Visual Studio 中發送 HTTP Request 請求並看 Response 結果,這篇就介紹 REST CLIENT 的基本使用方式,若有問題或是錯誤的地方歡迎網路的高手大大給予指導

安裝
在 Visual Studio 安裝十分簡單,搜尋 REST CLIENT 後點選 install 即可

使用
接著在 Visual Studio Code 中新增檔案,在檔案中輸入測試網址 https://example.com/comments/1,右下角 Language Mode 選擇  HTTP  模式,可以看到網址列上方出現  Send Request  的灰色按鈕,可以選擇使用滑鼠點擊 Send Request 或是用快速鍵 Ctrl + Alt + R 執行,在 Visual Studio 右邊區塊會呈現 Response 結果,左下角則可以看到本次 Request 的執行時間與對方 Server 回傳 Reponse 內容大小
或者可以選擇發送的 RFC2616 標準的請求,以下為發送 Post 且指定 contentType 為 json 的請求範例
POST https://example.com/comments HTTP/1.1
content-type: application/json

{
    "name": "Marcus blog",
    "time": "Wed, 21 Mar 2019 18:27:50 GMT"
}
如果包含多個請求可以透過  ###  來分開

Generate Code
另外一個強大的功能是 Generate Code Snippet ,可以將輸入測試的 HTTP 請求轉化為不同程式語言,目前支援轉換的語言為 C、C#、Go、Java、Javascript、Node.js...等主流程式語言都支援,官方的示意如下
REST CLIENT 官方介紹有提供更多強大的功能與使用情境,像是也支援 cURL 語法、自定義請求的變數、設定 SSL與儲存 Response 資訊等好用的功能,這裡就不在做更多說明有興趣可以到官方 GitHub 了解。

感想
感謝強者同事介紹這麼好用的工具,自己在了解 REST CLIENT 功能時想到如果有了 Generate Code 功能,或許可以將使用 REST CLIENT 測試 API  的請求,轉化為單元測試的代碼 (如果懶得自己寫的話 XD),這樣也可以省下寫代碼的時間,加入情境測試對於程式碼更有保護,也提供各位在測試 API 時有不一樣的選擇  :)

參考
REST Client
[VSCode插件推荐] REST Client: 也许是比Postman更好的选择

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com