iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0

今天來看到下一個room
Windows command line / powershell
基本上也是來介紹終端的指令然後讓你實作那些指令會出現什麼
上面兩個過後還會介紹linux shell

基本系統資訊

  • 路徑環境變數
    • set:查看系統環境變數
      • 其中 Path= 顯示 Windows 執行命令時會搜尋的路徑
  • 系統資訊查詢
    • ver:顯示作業系統版本
      • 範例:Microsoft Windows [Version 10.0.17763.1821]
    • systeminfo:列出完整系統資訊(OS、主機名稱、CPU、記憶體等)
  • 輸出控制
    • | more:逐頁顯示輸出內容
    • 範例:driverquery | more
    • 按空白鍵翻頁
    • CTRL + C 中斷
  • 常用輔助命令
    • help:查看命令的幫助訊息
    • cls:清除畫面

網路故障排除

  • 基本網路資訊
    • ipconfig:顯示IP、子網路遮罩、預設閘道
    • ipconfig /all:顯示完整網路配置(DNS、DHCP、MAC、租約時間等)
  • 網路測試與故障排除
    • ping <目標>:測試與目標是否能互通(ICMP)
    • tracert <目標>:顯示到目標的路由路徑
  • DNS 查詢
    • nslookup <網域>:查詢網域的IP
    • nslookup <網域> [dns伺服器]:透過指定的DNS伺服器查詢
  • 連線狀態
    • netstat:顯示目前連線與監聽的連接埠
    • netstat命令列參數
      • -a:顯示所有連線與監聽
      • -b:顯示對應的程式
      • -o:顯示進程ID(PID)
      • -n:使用數字顯示位址與埠
      • -abon:常用組合(完整資訊:連線、程式、PID、數字位址)

任務和流程管理

  • 查看進程
  • 列出所有正在執行的進程
$tasklist
  • 篩選指定進程
$tasklist /FI "imagename eq sshd.exe"
  • 其他篩選條件還有:
    • imagename → 進程名稱
    • pid → 進程ID
    • status → RUNNING / NOT RESPONDING
    • session → 使用者工作階段
    • memusage → 記憶體使用量
  • 查詢完整清單
$tasklist /?
  • 終止進程
  • 根據 PID (進程 ID) 終止
  • taskkill /PID [pid_number]
$taskkill /PID 4567
  • 根據進程名稱終止
  • taskkill /IM [process_name]
$taskkill /IM notepad.exe
  • 強制終止 (類似於「結束工作」)
 $taskkill /F /PID [pid_number]
 $taskkill /F /IM [process_name]

PowerShell

  • Windows內建的命令列殼層 + 腳本語言
  • 與CMD類似,但功能更強大
  • 支援物件導向(輸出是物件,而不是純文字)
  • 常用於系統管理、自動化、資安測試

powershell在指令上會跟cmd有所不同
| 功能 | CMD 指令 | PowerShell 指令 (正式寫法) | PowerShell 簡寫 (別名) |
| ------ | -------------------- | ------------------------------ | ------------------- |
| 查看目錄內容 | dir | Get-ChildItem | ls, dir, gci |
| 顯示目前路徑 | cd | Get-Location | pwd |
| 切換目錄 | cd <目錄> | Set-Location <目錄> | cd, sl |
| 建立目錄 | mkdir <目錄> | New-Item -ItemType Directory | mkdir, ni |
| 刪除檔案 | del <檔案> | Remove-Item <檔案> | del, rm, ri |
| 複製檔案 | copy a.txt b.txt | Copy-Item a.txt b.txt | copy, cp, ci |
| 移動檔案 | move a.txt C:\test | Move-Item a.txt C:\test | move, mv, mi |
| 查看檔案內容 | type a.txt | Get-Content a.txt | gc, cat, type |
| 列出進程 | tasklist | Get-Process | gps, ps |
| 終止進程 | taskkill /PID 1234 | Stop-Process -Id 1234 | kill, spps |
| 查看服務 | sc query | Get-Service | 無 |
| 系統資訊 | systeminfo | Get-ComputerInfo | 無 |
| 測試連線 | ping google.com | Test-Connection google.com | 無 |

  • PowerShell 幾乎支援所有CMD的舊指令(因為有別名),但推薦用 動詞-名詞的正式寫法,方便記憶與自動化腳本
  • 你可以先用熟悉的dir、cd、copy,慢慢轉成 Get-ChildItem,、Set-Location、Copy-Item
  • 一旦習慣了PowerShell,你會發現它比CMD強很多,尤其在查系統、管網路、寫自動化腳本時

Linux shell

Shell是一種讓使用者可以和作業系統Kernel(核心用來控制CPU、記憶體、硬碟等硬體)互動溝通的橋樑

常見的指令之前也已經提過的這邊就不在重複
這裡直接用shell script來講

  • Shell Script 基本結構
#!/bin/bash
# 這是一個簡單的 Shell Script 範例

# 印出問候語
echo "Hello, Linux!"

# 宣告變數
USER_NAME="Alice"
echo "目前使用者是:$USER_NAME"

# 條件判斷
if [ -d "/etc" ]; then
  echo "/etc 資料夾存在"
else
  echo "/etc 資料夾不存在"
fi

# 迴圈
for i in {1..3}; do
  echo "第 $i 次迴圈"
done
  • 執行方式
  1. 建立檔案
nano hello.sh
  1. 賦予執行權限
chmod +x hello.sh
  1. 執行
./hello.sh

Shell Script的運用範圍很廣,自動備份、批量修改檔案、監控系統資訊、定時任務....
房間內也有簡單的任務讓我寫一個shell去執行結果
Shell Script 在自動化任務上有很大的作用,可節省大量手動操作的時間
在未來的程式開發與系統管理中,Shell Script 都是一項非常實用的技能,對於提升工作效率與自動化能力都有很大的幫助


上一篇
Day 08. Active Directory Basics
下一篇
Day 10. Networking
系列文
THM30天挑戰:從菜鳥到小駭客10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言