https://nmap.org/
公司實驗室的機器 IP有時候飄來飄去,這時候就可以靠 nmap來找到需要的機器。
掃描指定機器的常用埠
掃描子網路 (192.168.1.0 to 192.168.1.255)
掃描指定的埠
偵測每個埠上運行的服務
掃描子網路下所有 port 22的狀態為 open的機器
- -T4 加速掃描速度
- --open 只列出狀態為 open的 port
- --oG - 輸出grepable的格式到console
https://nmap.org/
公司實驗室的機器 IP有時候飄來飄去,這時候就可以靠 nmap來找到需要的機器。
官方網址:
https://github.com/gokcehan/lf
| 最重要的命令 | |
| q | 離開 lf |
| 移動 | |
| j or [↓] | 檔案列表中往下移動 |
| k or [↑] | 檔案列表中往上移動 |
| [Ctrl] + d | 檔案列表中往下移動半頁 |
| [Ctrl] + u | 檔案列表中往上移動半頁 |
| [Ctrl] + b or [PgDn] | 檔案列表中往下移動一頁 |
| [Ctrl] + f or [PgUp] | 檔案列表中往上移動一頁 |
| h or [←] | 移動到上一層目錄 |
| l or [→] | 移動到下一層目錄,或者開啟檔案 |
| gg or [Home] | 移動到最上面的檔案 |
| G or [End] | 移動到最下面的檔案 |
| 檔案操作 | |
| gg or [Home] | 移動到最上面的檔案 |
| G or [End] | 移動到最下面的檔案 |
| [Space] | 選取目前的檔案 |
| v | 取消選取目前的檔案 |
| u | 取消所有選取的檔案 |
| y | 複製目前或者選取的檔案 |
| d | 剪下目前或者選取的檔案 |
| p | 貼上複製或剪下的檔案到當前的目錄 |
| c | 取消貼上複製或剪下的檔案 |
| 命令列 | |
| : | 輸入預設或自定義的命令 |
| $ | 在 shell下執行命令 |
| % | 在 shell下執行命令,並將ui pipe到input,output pipe到ui |
| ! | 在 shell下執行命令,並等待按鍵輸入 |
| & | 在背景執行命令 |
| 搜尋 | |
| / | 搜尋符合pattern的輸入 |
| ? | 反向搜尋符合pattern的輸入 |
| n | 下一個符合pattern的結果 |
| N | 上一個符合pattern的結果 |
| 設定 | |
| z | 更改某些選項的設定 |
| s | 更改 sortby及 info的設定 |
| 開啟 | |
| e | 開啟檔案編輯器 |
| i | 開啟 pager |
| w | 開啟 shell |
Linux
Windows
可以透過修改環境變數來更改 lf的預設指令
| 環境變數 | |
| OPENER | Windows: start Linux: xdg-open |
| EDITOR | Windows: notepad Linux: vi |
| PAGER | Windows: more Linux: less |
| SHELL | Windows: cmd Linux: sh |
官方網址:
https://github.com/yrp604/rappel
rappel提供了一個 assembly的交互式介面環境,可以在執行完指令後馬上看到暫存器狀態的變化,用來嘗試一些指令非常好用。
編譯完後可從./bin/rappel執行,Ctrl + d 退出程序:
tmux是個 Linux下的終端機管理程式,可以在同一個終端 (terminal)下同時操作多個程式, 對於透過 SSH連線來使用機器來說非常方便。
開啟新的 tmux session
開啟名為 <session_name>新的 session
列出當前的所有的 tmux session
attach到 <session_name>的 tmux session
detach當前的 tmux session
關閉session
| tmux快捷鍵 | |
| [Ctrl]+b d | detach當前的 tmux session |
| [Ctrl]+b " | 垂直分割兩個 pane |
| [Ctrl]+b % | 水平分割兩個 pane |
| [Ctrl]+b [←/↓/↑/→] | 切換 pane |
| [Ctrl]+b x | 關閉當前的 pane |
| [Ctrl]+b c | 建立新的 window |
| [Ctrl]+b n | 移動到下個 window |
| [Ctrl]+b p | 移動到上個 window |
| [Ctrl]+b <index> | 移動到第<index>個 window |
| [Ctrl]+b & | 關閉當前的 window |
| [Ctrl]+b w | 打開操作面板,可以瀏覽所有 tmux session |
一開始認識 vim就要先了解其不同的模式:
其中最常用是一般模式 (Normal Mode)、插入模式 (Insert Mode)及命令列模式 (Command Line Mode)。一開始進入 vim時的模式為普通模式, 其他模式都要經過普通模式進入,透過 Esc鍵返回。
| 游標移動 | |
| h or [←] | 游標向左移動一個字元 |
| j or [↓] | 游標向下移動一個字元 |
| k or [↑] | 游標向上移動一個字元 |
| l or [→] | 游標向右移動一個字元 |
| 可以在指令前加上要執行指令的次數,例如 20l or 20[→],就可以往右移動 20個字元。 | |
| [Ctrl] + b or [PgUp] | 向上移動一頁 (backward) |
| [Ctrl] + f or [PgDn] | 向下移動一頁 (forward) |
| [Ctrl] + u | 向上移動半頁 (upward) |
| [Ctrl] + d | 向下移動半頁 (downward) |
| 0 or [Home] | 移動到此列的起始位置 |
| $ or [End] | 移動到此列最後面非空字元 |
| ^ | 移動到此列最前面非空字元 |
| + | 移動到下一列最前面的非空字元 |
| - | 移動到上一列最前面的非空字元 |
| gg | 移動到檔案的第一行 |
| G | 移動到檔案的最後一行 |
| {number}G 可以移動到第 {number}行,例如 20G,可以移動到檔案第 20行 | |
| H | 移動到目前顯示的第一行首字元 |
| M | 移動到目前顯示的中間一行首字元 |
| L | 移動到目前顯示的最後一行首字元 |
| [Space] | 向右移動一個字元 |
| [Enter] | 移動到下一行 |
| {number}[Space]可以向右移動 {number}個字元,與[→]不同的是,[Space]會移動到下一行。 {number}[Enter]可以向下移動 {number}行。 | |
| 搜尋與取代 | |
| /{string} | 向後搜尋 {string}字串 |
| ?{string} | 向前搜尋 {string}字串 |
| n | 執行上一個搜尋操作 |
| N | 反向執行上一個搜尋操作 |
| s/{string1}/{string2}/g | 將此行的 {string1}取代成 {string2} |
| %s/{string1}/{string2}/g | 將檔案裡的 {string1}取代成 {string2} |
| %s/{string1}/{string2}/gc | 將檔案裡的 {string1}取代成 {string2},取代前需要確認 |
| 編輯 | |
| x | 刪除游標後面的字元 |
| X | 刪除游標前面的字元 |
| dd | 刪除游標所在的這一行 |
| {number}X及 {number}x可以刪除游標前、後 {number}個字元。 {number}dd可以刪除游標往下 {number}行。 | |
| d1G | 刪除游標到第一行中的內容 |
| dG | 刪除游標到最後一行的內容 |
| d0 | 刪除游標前的這一行的內容 |
| d$ | 刪除游標後的這一行的內容 |
| yy | 複製游標所在的這一行 (yank) |
| {number}yy可以複製游標往下 {number}行。 | |
| y1G | 複製游標到第一行中的內容 |
| yG | 複製游標到最後一行的內容 |
| y0 | 複製游標前的這一行的內容 |
| y$ | 複製游標後的這一行的內容 |
| p | 在游標的後一行貼上 |
| P | 在游標的前一行貼上 |
| J | 將此行與下一行合成同一行 |
| u | 回到上一個操作的狀態 (undo) |
| [Ctrl] + r | 回到下一個操作的狀態 (redo) |
| . | 重複上一個操作 |
| 進入插入模式 | |
| i | 在游標字元處前插入 (insert) |
| I | 從此行第一個非空字元前插入 |
| a | 在游標字元處後插入 (append) |
| A | 從此行最後字元後插入 |
| o | 插入新的下面一行 (open) |
| O | 插入新的上面一行 |
| r | 進入取代模式,只取代一個字元 (replace) |
| R | 進入取代模式,直到離開 |
| Command Line Mode指令 | |
| :w | 儲存目前檔案變更 (write) |
| :q | 離開 vim (quit) |
| :w!可以強制寫入唯讀檔案。:q!可以強制不儲存離開。 | |
| :wq | 儲存並離開 |
| ZZ | 若檔案沒有修改,直接離開。若檔案有修改,儲存並離開 |
| ZQ | 不儲存離開 |
| :w {filename} | 將檔案另存到 {filename} |
| :r {filename} | 將另外一個檔案的內容加到游標位置的下一行 |
| :! {command} | 暫時離開 vim並執行 {command} |
| vim 可以同時打開多個檔案進行編輯。ex: vim a.txt b.txt。 | |
| :files | 列出目前 vim所開啟的檔案 |
| :n | 編輯下一個檔案 |
| :N | 編輯上一個檔案 |
| Visual Mode指令 | |
| v | 將游標經過的字元反白選擇 |
| V | 將游標經過的行反白選擇 |
| [Ctrl + v] | 以blcok的方式進行反白選擇 |
| y | 複製選擇的內容 |
| d | 刪除選擇的內容 |
| p | 貼上選擇的內容 |
參考連結:
鳥哥私房菜 第九章、vim程式編輯器
官方網址:
https://com0com.sourceforge.net/
com0com可以在 Windows下虛擬出一組對接com port。
安裝完後,可用putty打開兩個com port進行測試是否可互傳訊息。
https://curl.se/
最近在工作上碰到有腳本使用 cURL來即時向 server請求資料,趁此紀錄一些其使用方法。
-X 參數用來對 URL發出 HTTP request,後面帶入HTTP method。
-x 通過代理伺服器 PROXY_ADDRESS:PROXY_PORT使用 cURL。
官方網址:
https://stedolan.github.io/jq
最近工作上接觸到其他人寫的 script,使用 jq來將 curl所得到的 .json檔案解析成 .csv檔。
雖然目前只使用到 jq一點點功能,但還是趁此機會紀錄一下。
依照官網的範例,可透過 github的 api獲取 json格式的 jq最近 5個 commit資訊:
使用 jq過濾 json:
只取出第一個 commit的資訊:
取出所有 commit中的 sha資訊:
也可以使用 jqplay的網站來嘗試 jq的輸出結果:
Chocolatey 可以讓 Windows以 command line的形式來安裝及管理軟體套件,類似
Linux使用的 APT。
以建立一個名為HelloCMake的專案為例,在 HelloCMake的目錄新增 CMakeLists.txt
檔案及放入專案程式碼 HelloCMake.cpp,如下:
HelloCmake
├ ─ ─ ─ CMakeLists.txt
└ ─ ─ ─ HelloCMake.cpp
Windows Server 評估版在過了使用期限後,還是可以透過 slmgr來延長。
透過 Win + R快捷鍵執行:
查看使用期限及剩餘可延長次數
slmgr.vbs /dlv延長使用授權
slmgr.vbs /rearm