<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.fundamental-ramen.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tacoball</id>
	<title>Fundamental Ramen - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.fundamental-ramen.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tacoball"/>
	<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/wiki/Special:Contributions/Tacoball"/>
	<updated>2026-09-17T09:59:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/vLLM&amp;diff=3462</id>
		<title>LM/vLLM</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/vLLM&amp;diff=3462"/>
		<updated>2026-09-17T09:49:20Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== compose (Works!) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  vllm-xpu:&lt;br /&gt;
    image: vllm/vllm-openai-xpu:latest&lt;br /&gt;
    container_name: vllm-xpu-qwen38&lt;br /&gt;
    privileged: true&lt;br /&gt;
    network_mode: host&lt;br /&gt;
    shm_size: &amp;quot;32g&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    devices:&lt;br /&gt;
      - /dev/dri:/dev/dri&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${HOME}/.cache/huggingface:/root/.cache/huggingface&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      - HF_HOME=/root/.cache/huggingface&lt;br /&gt;
      - HF_TOKEN=${HF_TOKEN:-}&lt;br /&gt;
      - no_proxy=localhost,127.0.0.1&lt;br /&gt;
      - ZE_FLAT_DEVICE_HIERARCHY=COMPOSITE&lt;br /&gt;
      - ZE_AFFINITY_MASK=0&lt;br /&gt;
      - VLLM_WORKER_MULTIPROC_METHOD=spawn&lt;br /&gt;
      - PYTORCH_ALLOC_CONF=expandable_segments:True&lt;br /&gt;
      - VLLM_XPU_ENABLE_XPU_GRAPH=1&lt;br /&gt;
&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    entrypoint: [&amp;quot;vllm&amp;quot;, &amp;quot;serve&amp;quot;]&lt;br /&gt;
    command:&lt;br /&gt;
      - &amp;quot;SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16&amp;quot;&lt;br /&gt;
      - &amp;quot;--served-model-name=qwen38&amp;quot;&lt;br /&gt;
      - &amp;quot;--port=9000&amp;quot;&lt;br /&gt;
      - &amp;quot;--host=0.0.0.0&amp;quot;&lt;br /&gt;
      - &amp;quot;--quantization=gptq&amp;quot;&lt;br /&gt;
      - &amp;quot;--dtype=float16&amp;quot;&lt;br /&gt;
      - &amp;quot;--max-model-len=131072&amp;quot;&lt;br /&gt;
      - &amp;quot;--gpu-memory-utilization=0.88&amp;quot;&lt;br /&gt;
      - &amp;quot;--kv-cache-dtype=fp8&amp;quot;&lt;br /&gt;
      - &amp;quot;--max-num-seqs=1&amp;quot;&lt;br /&gt;
      - &amp;quot;--max-num-batched-tokens=8192&amp;quot;&lt;br /&gt;
      - &amp;quot;--trust-remote-code&amp;quot;&lt;br /&gt;
      - &amp;quot;--enable-auto-tool-choice&amp;quot;&lt;br /&gt;
      - &amp;quot;--tool-call-parser=qwen3_xml&amp;quot;&lt;br /&gt;
      - &amp;quot;--reasoning-parser=qwen3&amp;quot;&lt;br /&gt;
      - &amp;quot;--limit-mm-per-prompt={\&amp;quot;image\&amp;quot;:10}&amp;quot;&lt;br /&gt;
      - &amp;quot;--speculative-config={\&amp;quot;method\&amp;quot;:\&amp;quot;mtp\&amp;quot;,\&amp;quot;num_speculative_tokens\&amp;quot;:4}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo usermod -aG docker $USER&lt;br /&gt;
docker compose up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== docker.io ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install docker.io&lt;br /&gt;
sudo docker pull intel/vllm&lt;br /&gt;
&lt;br /&gt;
docker run -t -d --shm-size 10g --net=host --ipc=host --privileged \&lt;br /&gt;
  -v /dev/dri/by-path:/dev/dri/by-path --name=vllm-test \&lt;br /&gt;
  --device /dev/dri:/dev/dri --entrypoint=/bin/bash intel/vllm:latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== source ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uv venv --python 3.12 --seed --managed-python&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/vllm-project/vllm.git&lt;br /&gt;
cd vllm&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install -v -r requirements/xpu.txt&lt;br /&gt;
&lt;br /&gt;
pip uninstall -y triton triton-xpu&lt;br /&gt;
pip install triton-xpu==3.7.2 --extra-index-url https://download.pytorch.org/whl/xpu&lt;br /&gt;
&lt;br /&gt;
VLLM_TARGET_DEVICE=xpu pip install --no-build-isolation -e . -v&lt;br /&gt;
&lt;br /&gt;
# check device&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.xpu.is_available()); print(torch.xpu.device_count())&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# download model&lt;br /&gt;
hf download ciocan/gemma-4-E4B-it-W4A16&lt;br /&gt;
&lt;br /&gt;
# Run&lt;br /&gt;
vllm serve unsloth/gemma-4-E4B-it-qat-GGUF --device xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* https://hub.docker.com/r/intel/vllm&lt;br /&gt;
* https://hub.docker.com/u/intel/?page=1&amp;amp;search=vllm&lt;br /&gt;
* https://docs.vllm.ai/en/stable/getting_started/installation/gpu/#requirements&lt;br /&gt;
* https://www.pugetsystems.com/labs/articles/intel-arc-pro-b70-multi-gpu-ai-inference-performance/&lt;br /&gt;
* https://github.com/Hal9000AIML/arc-pro-b70-inference-setup-ubuntu-server&lt;br /&gt;
* https://sergiiob.dev/posts/intel-arc-b70-vllm-initial-mxfp4-test/&lt;br /&gt;
* https://forum.level1techs.com/t/intel-b70-launch-unboxed-and-tested/247873&lt;br /&gt;
* https://huggingface.co/blog/MatrixYao/intel-gpu&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM&amp;diff=3461</id>
		<title>LM</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM&amp;diff=3461"/>
		<updated>2026-09-17T09:31:56Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Topics =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🤖 Agent　 || 🧠 Model　 || 🚀 Engine　 || ⚙️ GPU &amp;amp; Driver　|| Evaluation&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px;vertical-align:top&amp;quot; |&lt;br /&gt;
: [[LM/ZooCode|ZooCode]]&lt;br /&gt;
: [[LM/jrswab_axe|axe]]&lt;br /&gt;
: [[LM/MCP|MCP]]&lt;br /&gt;
| style=&amp;quot;width:200px;vertical-align:top&amp;quot; |&lt;br /&gt;
: [[LM/hf|hf (Model Management)]]&lt;br /&gt;
: [[LM/Qwen 3.8 27B|Qwen 3.8 27B]]&lt;br /&gt;
: [[LM/Gemma 4|Gemma 4]]&lt;br /&gt;
: [[LM/Devstral Small 2 24B|Devstral Small 2 24B]]&lt;br /&gt;
: [[LM/Muse Glimmer|Muse Glimmer]]&lt;br /&gt;
: [[LM/Experience|Experience]]&lt;br /&gt;
| style=&amp;quot;width:200px;vertical-align:top&amp;quot; |&lt;br /&gt;
: [[LM/llama-swap|llama-swap]]&lt;br /&gt;
: [[LM/ComfyUI|ComfyUI]]&lt;br /&gt;
: [[LM/llama.cpp for SYCL|llama.cpp for SYCL]]&lt;br /&gt;
: [[LM/llama.cpp for CUDA|llama.cpp for CUDA]]&lt;br /&gt;
: [[LM/OVMS|OVMS]]&lt;br /&gt;
: [[LM/llama.cpp for OpenVINO|llama.cpp for OpenVINO]]&lt;br /&gt;
: [[LM/llama.cpp for TurboQuant|llama.cpp for TurboQuant]]&lt;br /&gt;
: [[LM/lemonade for AMD NPU|lemonade for AMD NPU]]&lt;br /&gt;
: [[LM/vLLM|vLLM]]&lt;br /&gt;
: [[LM/SGLang|SGLang]]&lt;br /&gt;
| style=&amp;quot;width:200px;vertical-align:top&amp;quot; |&lt;br /&gt;
: Intel Arc Pro B70&lt;br /&gt;
:: [[LM/Install driver|Install driver]]&lt;br /&gt;
:: [[LM/Install oneAPI|Install oneAPI (SYCL)]]&lt;br /&gt;
:: [[LM/Install OpenVINO|Install OpenVINO]]&lt;br /&gt;
:: [[LM/.bashrc for B70|.bashrc for B70]]&lt;br /&gt;
:: [[LM/Intel Pro Arc B70|Experiment]]&lt;br /&gt;
: NVIDIA RTX 3060&lt;br /&gt;
:: [[LM/Install NVIDIA driver|Install driver]]&lt;br /&gt;
: AMD Ryzen AI 7 350&lt;br /&gt;
:: [[LM/Ryzen AI 7 350|Experiment]]&lt;br /&gt;
: Tools&lt;br /&gt;
:: [[LM/Install nvtop|Install nvtop]]&lt;br /&gt;
:: [[LM/lact|lact]]&lt;br /&gt;
:: [[LM/PCIe Trouble Shooting|PCIe Trouble Shooting]]&lt;br /&gt;
| style=&amp;quot;width:200px;vertical-align:top&amp;quot; |&lt;br /&gt;
: [[LM/Performance|Performance]]&lt;br /&gt;
: [[LM/Security|Security]]&lt;br /&gt;
: [[LM/Hallucination|Hallucination]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [https://huggingface.co/datasets/ScaleAI/SWE-bench_Pro?leaderboard_max_params=32B SWE Pro Benchmark for models &amp;lt; 32B]&lt;br /&gt;
* [https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.3/linux/ OpenVINO 2026.3 supports Ubuntu 26] - 2026-08-04&lt;br /&gt;
&lt;br /&gt;
= Decision Tree for tinkering with Intel Arc Pro B70 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;tinkering-b70&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  subgraph Hardware&lt;br /&gt;
    A1(Intel Arc Pro B70):::node-okay&lt;br /&gt;
    A2(Asus ProArt B850 WiFi NEO):::node-okay&lt;br /&gt;
    A3(AMD Ryzen 5 9600X):::node-okay&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph OS&lt;br /&gt;
    B1(Install&amp;lt;br&amp;gt;Ubuntu 26.04):::node-okay&lt;br /&gt;
    A1 &amp;amp; A2 &amp;amp; A3 --&amp;gt; B1&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Driver&lt;br /&gt;
    C1(Install PPA driver&amp;lt;br&amp;gt;26.27.39122.14):::node-okay&lt;br /&gt;
    C2(Install oneAPI&amp;lt;br&amp;gt;2026.1.1.20260724):::node-okay&lt;br /&gt;
    C3(Install OpenVINO&amp;lt;br&amp;gt;2026.3.0&amp;lt;br&amp;gt;hard to install):::node-warn&lt;br /&gt;
    C1 --&amp;gt; C2 &amp;amp; C3&lt;br /&gt;
    B1 --&amp;gt; C1&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Runtime&lt;br /&gt;
    D1[Build llama.cpp for&amp;lt;br&amp;gt;SYCL]:::node-okay&lt;br /&gt;
    D2[Build llama.cpp for&amp;lt;br&amp;gt;OpenVINO&amp;lt;br&amp;gt;not stable yet]:::node-warn&lt;br /&gt;
    %% D3[Build SGLang for&amp;lt;br&amp;gt;SYCL]:::node-todo&lt;br /&gt;
    %% D4[Build SGLang for&amp;lt;br&amp;gt;OpenVINO]:::node-todo&lt;br /&gt;
    C2 --&amp;gt; D1&lt;br /&gt;
    C3 --&amp;gt; D2&lt;br /&gt;
    %% C2 --&amp;gt; D3&lt;br /&gt;
    %% C3 --&amp;gt; D4&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Tools&lt;br /&gt;
    T1(Install&amp;lt;br&amp;gt;pipx)&lt;br /&gt;
    T2(Install&amp;lt;br&amp;gt;hf)&lt;br /&gt;
    T3(Install&amp;lt;br&amp;gt;nvtop)&lt;br /&gt;
    T4(Install&amp;lt;br&amp;gt;tmux)&lt;br /&gt;
    T5(Install&amp;lt;br&amp;gt;lact)&lt;br /&gt;
    T6(Install&amp;lt;br&amp;gt;llama-swap)&lt;br /&gt;
    T1 --&amp;gt; T2&lt;br /&gt;
    B1 --&amp;gt; T1&lt;br /&gt;
    B1 --&amp;gt; T3&lt;br /&gt;
    B1 --&amp;gt; T4&lt;br /&gt;
    B1 --&amp;gt; T5&lt;br /&gt;
    T5 --&amp;gt; T6&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Models&lt;br /&gt;
    M1(Qwen3.8-27B)&lt;br /&gt;
    M2(Devstral-Small-2-24B)&lt;br /&gt;
    T2 --&amp;gt; M1 &amp;amp; M2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph config&lt;br /&gt;
    V1(Optimize&amp;lt;br&amp;gt;.bashrc)&lt;br /&gt;
    V2(Optimize&amp;lt;br&amp;gt;lmsw.yaml)&lt;br /&gt;
    C2 --&amp;gt; V1&lt;br /&gt;
    C3 --&amp;gt; V1&lt;br /&gt;
    T2 --&amp;gt; V1&lt;br /&gt;
    T4 ---&amp;gt; V1&lt;br /&gt;
    T6 ---&amp;gt; V2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Service&lt;br /&gt;
    Z(service&amp;lt;br&amp;gt;llama-swap \&amp;lt;br&amp;gt;  -config lmsw.yaml \&amp;lt;br&amp;gt;  -listen 0.0.0.0:9876)&lt;br /&gt;
    M1 --&amp;gt; Z&lt;br /&gt;
    D1 --&amp;gt; Z&lt;br /&gt;
    V2 --&amp;gt; Z&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  classDef node-okay fill:#efe,stroke:#393&lt;br /&gt;
  classDef node-warn fill:#fff0e0,stroke:#d63&lt;br /&gt;
  classDef node-fail fill:#fee,stroke:#d33&lt;br /&gt;
  classDef node-todo fill:#eee,stroke:#777&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3460</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3460"/>
		<updated>2026-09-17T09:31:27Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Engine works fine, but most models cannot loaded in xpu mode.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path Intel/gemma-4-12B-it-int4-AutoRound \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3459</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3459"/>
		<updated>2026-09-17T08:00:22Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path Intel/gemma-4-12B-it-int4-AutoRound \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3458</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3458"/>
		<updated>2026-09-17T07:41:38Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path nicosuter/Qwen3.8-27B-AWQ \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3457</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3457"/>
		<updated>2026-09-17T07:38:45Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path unsloth/Qwen3.8-27B-FP8 \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3456</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3456"/>
		<updated>2026-09-17T07:34:13Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path google/gemma-4-E4B-it-qat-w4a16-ct \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3455</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3455"/>
		<updated>2026-09-17T07:29:50Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --hf unsloth/gemma-4-E4B-it-qat-GGUF  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path unsloth/Qwen3.8-27B-FP8 \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3454</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3454"/>
		<updated>2026-09-17T07:24:18Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --hf unsloth/gemma-4-E4B-it-qat-GGUF  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path google/gemma-4-E4B-it-qat-w4a16-ct \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3453</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3453"/>
		<updated>2026-09-17T07:02:35Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --hf unsloth/gemma-4-E4B-it-qat-GGUF  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-path unsloth/gemma-4-E4B-it-qat-GGUF \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3452</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3452"/>
		<updated>2026-09-17T07:01:46Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --hf unsloth/gemma-4-E4B-it-qat-GGUF  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&lt;br /&gt;
sglang serve                        \&lt;br /&gt;
    --model-unsloth/gemma-4-E4B-it-qat-GGUF \&lt;br /&gt;
    --device xpu                    \&lt;br /&gt;
    --attention-backend intel_xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3451</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3451"/>
		<updated>2026-09-17T06:59:45Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --hf unsloth/gemma-4-E4B-it-qat-GGUF  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3450</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3450"/>
		<updated>2026-09-17T06:58:59Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In container ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --model-path &amp;lt;MODEL_ID_OR_PATH&amp;gt;  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3449</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3449"/>
		<updated>2026-09-17T06:57:56Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;\&lt;br /&gt;
sglang serve --help&lt;br /&gt;
&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --model-path &amp;lt;MODEL_ID_OR_PATH&amp;gt;  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3448</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3448"/>
		<updated>2026-09-17T06:57:17Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sglang serve                         \&lt;br /&gt;
    --model-path &amp;lt;MODEL_ID_OR_PATH&amp;gt;  \&lt;br /&gt;
    --trust-remote-code              \&lt;br /&gt;
    --disable-overlap-schedule       \&lt;br /&gt;
    --device xpu                     \&lt;br /&gt;
    --host 0.0.0.0                   \&lt;br /&gt;
    --tp 1                           \   # using multi GPUs&lt;br /&gt;
    --attention-backend intel_xpu    \   # using intel optimized XPU attention backend&lt;br /&gt;
    --page-size                      \   # intel_xpu attention backend supports [32, 64, 128]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3447</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3447"/>
		<updated>2026-09-17T06:55:30Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HF_TOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3446</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3446"/>
		<updated>2026-09-17T06:55:21Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=$HFTOKEN&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3445</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3445"/>
		<updated>2026-09-17T06:54:37Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Rebuild docker image from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run \&lt;br /&gt;
    -it \&lt;br /&gt;
    --privileged \&lt;br /&gt;
    --ipc=host \&lt;br /&gt;
    --network=host \&lt;br /&gt;
    --user root \&lt;br /&gt;
    --group-add $(getent group video | cut -d: -f3) \&lt;br /&gt;
    --device /dev/dri \&lt;br /&gt;
    -v /dev/dri/by-path:/dev/dri/by-path \&lt;br /&gt;
    -v /dev/shm:/dev/shm \&lt;br /&gt;
    -v ~/.cache/huggingface:/root/.cache/huggingface \&lt;br /&gt;
    -p 30000:30000 \&lt;br /&gt;
    -e &amp;quot;HF_TOKEN=&amp;lt;secret&amp;gt;&amp;quot; \&lt;br /&gt;
    sglang-xpu:latest /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3444</id>
		<title>LM/SGLang</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/SGLang&amp;diff=3444"/>
		<updated>2026-09-17T06:52:52Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rebuild docker image from source =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd sglang&lt;br /&gt;
git pull&lt;br /&gt;
cd docker&lt;br /&gt;
docker build -t sglang-xpu:latest -f xpu.Dockerfile .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;sgl-xpu&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    %% 前端與介面層&lt;br /&gt;
    subgraph Frontend [&amp;quot;1. 前端與高階語言層 (Frontend &amp;amp; Program)&amp;quot;]&lt;br /&gt;
        A[&amp;quot;使用者輸入 (SGLang DSL / OpenAI API / Python)&amp;quot;]&lt;br /&gt;
        B[&amp;quot;SGLang Router &amp;amp; Radix Cache 管理 (CPU)&amp;quot;]&lt;br /&gt;
        A --&amp;gt; B&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% SRT 引擎層&lt;br /&gt;
    subgraph Engine [&amp;quot;2. SGLang Runtime (SRT Engine)&amp;quot;]&lt;br /&gt;
        C[&amp;quot;Model Runner / Forward Engine&amp;quot;]&lt;br /&gt;
        D{&amp;quot;Platform Abstraction Layer (DeviceMixin)&amp;quot;}&lt;br /&gt;
        B --&amp;gt; C&lt;br /&gt;
        C --&amp;gt; D&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 轉接層：Intel XPU 平台分支&lt;br /&gt;
    subgraph PyTorch_XPU [&amp;quot;3. PyTorch Backend Branch (Intel Focus)&amp;quot;]&lt;br /&gt;
        E[&amp;quot;PyTorch XPU Backend (torch_xpu)&amp;quot;]&lt;br /&gt;
        F[&amp;quot;Distributed Processing (oneCCL / OneAPI)&amp;quot;]&lt;br /&gt;
        D -- &amp;quot;檢測到 Intel GPU&amp;quot; --&amp;gt; E&lt;br /&gt;
        D --&amp;gt; F&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 高效算子與編譯層&lt;br /&gt;
    subgraph Kernels [&amp;quot;4. XPU Kernel Execution (sgl-kernel-xpu)&amp;quot;]&lt;br /&gt;
        G[&amp;quot;FlashAttention / FMHA (SYCL)&amp;quot;]&lt;br /&gt;
        H[&amp;quot;MLA &amp;amp; MoE Grouped GEMM (SYCL)&amp;quot;]&lt;br /&gt;
        I[&amp;quot;oneDNN / oneMKL (Intel Libraries)&amp;quot;]&lt;br /&gt;
        J[&amp;quot;SYCL JIT Compiler (Intel icpx)&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        E --&amp;gt; G&lt;br /&gt;
        E --&amp;gt; H&lt;br /&gt;
        E --&amp;gt; I&lt;br /&gt;
        G &amp;amp; H -- &amp;quot;AOT 或 JIT 編譯&amp;quot; --&amp;gt; J&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 硬體實體層&lt;br /&gt;
    subgraph Hardware [&amp;quot;5. Intel Hardware Target (XPU)&amp;quot;]&lt;br /&gt;
        K[&amp;quot;Intel Data Center GPU (Max/Flex 系列 / Gaudi)&amp;quot;]&lt;br /&gt;
        J --&amp;gt; K&lt;br /&gt;
        I --&amp;gt; K&lt;br /&gt;
        F --&amp;gt; K&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %% 樣式設定&lt;br /&gt;
    %%classDef frontend fill:#e1f5fe,stroke:#0288d1,stroke-width:2px&lt;br /&gt;
    %%classDef engine fill:#fff3e0,stroke:#f57c00,stroke-width:2px&lt;br /&gt;
    %%classDef xpu fill:#e8f5e9,stroke:#388e3c,stroke-width:2px&lt;br /&gt;
    %%classDef kernel fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px&lt;br /&gt;
    %%classDef hw fill:#eceff1,stroke:#455a64,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
    %%class A,B frontend;&lt;br /&gt;
    %%class C,D engine;&lt;br /&gt;
    %%class E,F xpu;&lt;br /&gt;
    %%class G,H,I,J kernel;&lt;br /&gt;
    %%class K hw;&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* https://docs.sglang.io/docs/hardware-platforms/xpu#xpu&lt;br /&gt;
* https://hub.docker.com/r/intel/sglang-dev&lt;br /&gt;
* https://docs.pytorch.org/docs/2.13/notes/get_start_xpu.html#&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3443</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3443"/>
		<updated>2026-09-17T03:10:24Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* AppImage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= References =&lt;br /&gt;
https://docs.comfy.org/zh/installation/desktop/linux&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== AppImage ==&lt;br /&gt;
&lt;br /&gt;
* Download&lt;br /&gt;
* chmod +x&lt;br /&gt;
* install libfuse2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install&lt;br /&gt;
sudo apt install libfuse2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./comfyui-desktop-2-1.0.47x86_64.AppImage --no-sandbox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Select GPU type&lt;br /&gt;
* Create Instance&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3442</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3442"/>
		<updated>2026-09-17T03:09:49Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= References =&lt;br /&gt;
https://docs.comfy.org/zh/installation/desktop/linux&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== AppImage ==&lt;br /&gt;
&lt;br /&gt;
* Download&lt;br /&gt;
* chmod +x&lt;br /&gt;
* install libfuse2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install&lt;br /&gt;
sudo apt install libfuse2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./comfyui-desktop-2-1.0.47x86_64.AppImage --no-sandbox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3441</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3441"/>
		<updated>2026-09-17T03:03:46Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* AppImage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= References =&lt;br /&gt;
https://docs.comfy.org/zh/installation/desktop/linux&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== AppImage ==&lt;br /&gt;
&lt;br /&gt;
* Download&lt;br /&gt;
* chmod +x&lt;br /&gt;
* install libfuse2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install&lt;br /&gt;
sudo apt install libfuse2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./comfyui-desktop-2-1.0.47x86_64.AppImage --no-sandbox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== from source ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI&lt;br /&gt;
cd ~/ComfyUI&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install --upgrade pip wheel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3440</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3440"/>
		<updated>2026-09-17T03:00:11Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= References =&lt;br /&gt;
https://docs.comfy.org/zh/installation/desktop/linux&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== AppImage ==&lt;br /&gt;
&lt;br /&gt;
* Download&lt;br /&gt;
* chmod +x&lt;br /&gt;
* install libfuse2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install&lt;br /&gt;
sudo apt install libfuse2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== from source ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI&lt;br /&gt;
cd ~/ComfyUI&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install --upgrade pip wheel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3439</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3439"/>
		<updated>2026-09-17T02:53:00Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= References =&lt;br /&gt;
https://docs.comfy.org/zh/installation/desktop/linux&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI&lt;br /&gt;
cd ~/ComfyUI&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install --upgrade pip wheel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3438</id>
		<title>LM/ComfyUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=LM/ComfyUI&amp;diff=3438"/>
		<updated>2026-09-17T02:51:14Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI cd ~/ComfyUI python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip wheel &amp;lt;/syntaxhighlight&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI&lt;br /&gt;
cd ~/ComfyUI&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install --upgrade pip wheel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Management&amp;diff=3437</id>
		<title>Useful Commands/System Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Management&amp;diff=3437"/>
		<updated>2026-09-17T02:03:11Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List process ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ps -axo pid,command&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^ssh/) { print $0; }&#039;&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^login/) { print $0; }&#039;&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^-?bash/) { print $0; }&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List process tree ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pstree 713&lt;br /&gt;
pstree $(ps -axo pid,command | awk &#039;match($2, /^login/) { print $1 }&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CPU &amp;amp; Memory || &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Linux&lt;br /&gt;
cat /proc/cpuinfo&lt;br /&gt;
cat /proc/meminfo&lt;br /&gt;
free&lt;br /&gt;
sudo dmidecode --type 17,19,20&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
locale          # current locale&lt;br /&gt;
locale -a       # available locales&lt;br /&gt;
sudo locale-gen # rebuild locales&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run a command one minute later ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;ls -l &amp;gt; `tty`&amp;quot; | at now + 1 minute&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Arithmetic&amp;diff=3436</id>
		<title>Useful Commands/Arithmetic</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Arithmetic&amp;diff=3436"/>
		<updated>2026-09-17T02:01:14Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| 計算整數 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo $((10+5))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 計算浮點數 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
bc &amp;lt;&amp;lt;&amp;lt; &#039;scale=3; 10/3&#039;&lt;br /&gt;
bc -l &amp;lt;&amp;lt;&amp;lt; &#039;10/3&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Date_%26_Time&amp;diff=3435</id>
		<title>Useful Commands/Date &amp; Time</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Date_%26_Time&amp;diff=3435"/>
		<updated>2026-09-17T02:01:00Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| 取得本地時間 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得 UTC 時間 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date -u&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得 Timestamp || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date +&#039;%s&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 產生 ISO 8601 時間字串 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date -u +&#039;%FT%TZ&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示目前的時區 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date +&#039;%Z&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 以日期命名備份檔 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;BKFILE=`date +&#039;wiki-%Y%m%d.sqlite.gz&#039;`&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得上週的日期 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date -r $((`date +%s`-86400*7))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| crontab 裡面使用 date || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;date +&amp;quot;\%F \%T&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;(注意 % 字元之前需要使用 \ 字元 escape)&lt;br /&gt;
|-&lt;br /&gt;
| 取得檔案的 mtime 並且輸出成日期格式 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;stat -f &#039;%Sm&#039; -t &#039;%Y%m%d&#039; test.sql&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得檔案的 mtime 並且輸出成 ISO 8601 格式 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;stat -f &#039;%Sm&#039; -t &#039;%F %T&#039; test.sql&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得檔案的 mtime 並且輸出 Timestamp ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
stat -f &#039;%Dm&#039; test.sql&lt;br /&gt;
stat -c &#039;%Y&#039; test.sql&lt;br /&gt;
stat -c &#039;%Y %n&#039; *.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 與時間伺服器對時(台灣) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ntpdate time.stdtime.gov.tw&lt;br /&gt;
sudo ntpdate clock.stdtime.gov.tw&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 變更系統時區 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure tzdata&lt;br /&gt;
sudo service cron restart    # 做完記得要重開 cron 服務，否則排程時間會亂掉&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Text_Processing&amp;diff=3434</id>
		<title>Useful Commands/Text Processing</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Text_Processing&amp;diff=3434"/>
		<updated>2026-09-17T02:00:43Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| (改) BIG5 轉 UTF-8 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iconv -f CP950 -t UTF-8 big5file.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| (改) 搜尋 &amp;gt; 取代 &amp;gt; 存檔 - OSX/FreeBSD ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 取代後輸出 (測試與 pipe 用)&lt;br /&gt;
sed -e &#039;s/搜尋RE/取代文字/&#039; 檔名&lt;br /&gt;
# 取代後直接寫回檔案 (單檔自動化處理用)&lt;br /&gt;
sed -i -e &#039;s/搜尋RE/取代文字/&#039; 檔名&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 讀取超大文字檔的第一百萬行&amp;lt;br&amp;gt;(效能視 sed, awk 版本略有差異) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
awk &#039;NR==1000000{print;exit}&#039; 檔名&lt;br /&gt;
sed -n &#039;1000000{p;q;}&#039; 檔名&lt;br /&gt;
sed &#039;1000000q;d&#039; 檔名&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 讀取超大文字檔的其中幾行 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
awk &#039;NR&amp;gt;=1000000{print} NR==1000050{exit}&#039; 檔名&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 輸出檔案並且顯示列號 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nl 3small.txt&lt;br /&gt;
cat -n 3small.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Search Text ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
grep &#039;Test&#039; .&lt;br /&gt;
apk search tcl | grep -e &#039;^tcl&#039;&lt;br /&gt;
pyenv install -l | grep -E &#039;^\s+3&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Low_Level_IO&amp;diff=3433</id>
		<title>Useful Commands/Low Level IO</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Low_Level_IO&amp;diff=3433"/>
		<updated>2026-09-17T02:00:26Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| list with color and suffix for dir and link&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ls -FG&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| list add hidden files only &#039;&#039;&#039;single quote is necessary&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;.*&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete dist directory recursively except README.md and itself.&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find ../../assets/swagger/support ! -path *swagger/support ! -name &#039;README.md&#039; -delete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete files that filename leads by - or --&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rm -- -X --exclude-from&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Set file mtime &amp;lt;br/&amp;gt;2013-09-01 00:00:00&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;touch -t 201309010000 FILENAME&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| create ramdisk for Linux (cannot set size)&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;mount -t ramfs ramfs /usr/local/ramdisk&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| create ramdisk for Linux/BSD&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;mount -t tmpfs -o size=128m tmpfs /usr/local/ramdisk&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Test I/O performance of 1G write with 4K block&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/zero of=100k.bin bs=4k count=262144&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Create file with 100K size&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/zero of=100k.bin bs=1k count=100&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Create file with 1M size&amp;lt;br/&amp;gt;No warning on disk full&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/zero of=10m.bin bs=1m count=10&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Simulate memory consumption (RAM+SWAP)&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /usr/local/ramdisk&lt;br /&gt;
mount -t tmpfs -o size=2G tmpfs /usr/local/ramdisk&lt;br /&gt;
dd if=/dev/zero of=/usr/local/ramdisk/fill.bin bs=1m count=2048&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Remote_File_Access&amp;diff=3432</id>
		<title>Useful Commands/Remote File Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Remote_File_Access&amp;diff=3432"/>
		<updated>2026-09-17T02:00:09Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Samba (Linux) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount -t smbfs {remote} {local} -o \&lt;br /&gt;
   iocharset=utf8, \&lt;br /&gt;
   user={user}%{password}, \&lt;br /&gt;
   uid=`id -u {local user}`, \&lt;br /&gt;
   gid=`id -u {local group}`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Samba (MacOS) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mount_smbfs //&#039;{group};{user}&#039;:{password}@{remote}/{shared dir} {local dir}&lt;br /&gt;
smbutil view //Guest@192.168.91.65&lt;br /&gt;
smbutil view //&#039;WORKGROUP;Administrator&#039;:12345@192.168.1.2 # for Windows 2K3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Samba (FreeBSD) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mount -t smbfs -o &#039;-N&#039; //raymondwu@RaymondWu-PC/TikaSamples /var/tika/samples # Using ~/.nsmbrc&lt;br /&gt;
mount_smbfs -I 192.168.91.65 //raymondwu@RaymondWu-PC/TikaSamples /var/tika/samples&lt;br /&gt;
smbutil view -I 192.168.91.65 //raymondwu@RaymondWu-PC&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Compression&amp;diff=3431</id>
		<title>Useful Commands/Compression</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Compression&amp;diff=3431"/>
		<updated>2026-09-17T01:59:51Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Compression */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| zip ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zip -r front-end.zip index.html static/&lt;br /&gt;
unzip -l front-end.zip&lt;br /&gt;
unzip -p front-end.zip index.html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tar ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar --exclude=&amp;quot;.*&amp;quot; -zcvf ~/solr-4.3.0.tgz solr-4.3.0&lt;br /&gt;
tar -C /usr/local --exclude &#039;.*&#039; -zcvf tika-1.4-pxx.tgz tika&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| gzip ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gzip -k taiwan-taco.map&lt;br /&gt;
gzip -l taiwan-taco.map.gz &lt;br /&gt;
  compressed uncompressed  ratio uncompressed_name&lt;br /&gt;
    25400590     38204880  33.5% taiwan-taco.map&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| xz ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xz -zk hd-20190227.csv&lt;br /&gt;
xz -vt hd-20190227.csv.xz &lt;br /&gt;
hd-20190227.csv.xz (1/1)&lt;br /&gt;
  100 %     344.1 KiB / 1,458.1 KiB = 0.236&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| dd ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make an ISO image.&lt;br /&gt;
df -h&lt;br /&gt;
umount /dev/disk2&lt;br /&gt;
dd if=/dev/disk2 of=Win7.iso bs=2048 count=1000&lt;br /&gt;
file Win7.iso&lt;br /&gt;
Win7.iso: ISO 9660 CD-ROM filesystem data &#039;GRMCULFRER_TW_DVD              &#039; (bootable)&lt;br /&gt;
kill -USR1 {pid of dd}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/File_Processing&amp;diff=3430</id>
		<title>Useful Commands/File Processing</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/File_Processing&amp;diff=3430"/>
		<updated>2026-09-17T01:59:33Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= File System =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| list with color and suffix for dir and link&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ls -FG&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| list add hidden files only &#039;&#039;&#039;single quote is necessary&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;.*&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete dist directory recursively except README.md and itself.&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find ../../assets/swagger/support ! -path *swagger/support ! -name &#039;README.md&#039; -delete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete files that filename leads by - or --&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rm -- -X --exclude-from&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Set file mtime &amp;lt;br/&amp;gt;2013-09-01 00:00:00&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;touch -t 201309010000 FILENAME&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| 目錄與檔案權限分別設為 755 和 644&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find . -type d -exec chmod 755 {} +\&lt;br /&gt;
find . -type f -exec chmod 644 {} +&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rename&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Test first&lt;br /&gt;
$ rename -n &#039;s/short_selled-([0-9]{8}).json/selled-$1.json/&#039; short_selled-*&lt;br /&gt;
rename(short_selled-20190606.json, selled-20190606.json)&lt;br /&gt;
rename(short_selled-20190610.json, selled-20190610.json)&lt;br /&gt;
rename(short_selled-20190611.json, selled-20190611.json)&lt;br /&gt;
...&lt;br /&gt;
# Do it&lt;br /&gt;
$ rename &#039;s/short_selled-([0-9]{8}).json/selled-$1.json/&#039; short_selled-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 搜尋文字檔，複製到另一個目錄 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name *.txt -exec cp {} 目的目錄 \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 從所在目錄遞迴掃檔案找 &#039;string&#039; || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;grep -rn --color -C 2 &#039;string&#039; .&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除 7 天前的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime 7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除超過 7 天的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime +7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除 7 天前到現在的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime -7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 用 regex 找檔案 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -regex &#039;.*[0-9]\{4\}.txt&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取檔名中數字的部分 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ls file-0001.txt | sed &#039;s/file-\([0-9]\{4\}\).txt/\1/&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/File_Processing&amp;diff=3429</id>
		<title>Useful Commands/File Processing</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/File_Processing&amp;diff=3429"/>
		<updated>2026-09-17T01:59:23Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= File System =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| list with color and suffix for dir and link&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ls -FG&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| list add hidden files only &#039;&#039;&#039;single quote is necessary&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;.*&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete dist directory recursively except README.md and itself.&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find ../../assets/swagger/support ! -path *swagger/support ! -name &#039;README.md&#039; -delete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| delete files that filename leads by - or --&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rm -- -X --exclude-from&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Set file mtime &amp;lt;br/&amp;gt;2013-09-01 00:00:00&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;touch -t 201309010000 FILENAME&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 情境 || 指令&lt;br /&gt;
|-&lt;br /&gt;
| 目錄與檔案權限分別設為 755 和 644&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find . -type d -exec chmod 755 {} +\&lt;br /&gt;
find . -type f -exec chmod 644 {} +&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rename&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Test first&lt;br /&gt;
$ rename -n &#039;s/short_selled-([0-9]{8}).json/selled-$1.json/&#039; short_selled-*&lt;br /&gt;
rename(short_selled-20190606.json, selled-20190606.json)&lt;br /&gt;
rename(short_selled-20190610.json, selled-20190610.json)&lt;br /&gt;
rename(short_selled-20190611.json, selled-20190611.json)&lt;br /&gt;
...&lt;br /&gt;
# Do it&lt;br /&gt;
$ rename &#039;s/short_selled-([0-9]{8}).json/selled-$1.json/&#039; short_selled-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 搜尋文字檔，複製到另一個目錄 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name *.txt -exec cp {} 目的目錄 \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 從所在目錄遞迴掃檔案找 &#039;string&#039; || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;grep -rn --color -C 2 &#039;string&#039; .&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除 7 天前的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime 7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除超過 7 天的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime +7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 移除 7 天前到現在的 log || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -name &#039;*.log&#039; -mtime -7 -exec rm -f {} \;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 用 regex 找檔案 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;find . -regex &#039;.*[0-9]\{4\}.txt&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取檔名中數字的部分 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ls file-0001.txt | sed &#039;s/file-\([0-9]\{4\}\).txt/\1/&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3428</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3428"/>
		<updated>2026-09-17T01:58:57Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Maintainance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Current repo ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info for this repo ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user for this repo.&amp;lt;br/&amp;gt;(--comment must be placed before key) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --comment &amp;quot;User for work&amp;quot; user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --local --comment &amp;quot;Email for work&amp;quot; user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== All repos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info and show it&#039;s scope.&amp;lt;br/&amp;gt;(--show-scope must be placed before --get-regexp) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --show-scope --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user and editor for all. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --global core.editor &amp;quot;vim&amp;quot;&lt;br /&gt;
git config --global user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Maintainance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
  | Delete unused branches&lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* bugfix/* hotfix/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | Check why a file was ignored&lt;br /&gt;
  | git check-ignore -v config.php&lt;br /&gt;
|-&lt;br /&gt;
  | Clone a specific branch&lt;br /&gt;
  | git clone -b staging project project_staging&lt;br /&gt;
|-&lt;br /&gt;
  | Clear tags not in remote repository&lt;br /&gt;
  | git fetch --prune --prune-tags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Undo ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Unstage a file&lt;br /&gt;
git reset --  src/sequelize-eparking/models/Fee.js&lt;br /&gt;
&lt;br /&gt;
# Latest commit &amp;gt; stage&lt;br /&gt;
git reset HEAD^&lt;br /&gt;
git reset HEAD~1   # if symbol ^ escaped&lt;br /&gt;
git checkout upstream/develop composer.lock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# stat for single commit&lt;br /&gt;
git diff 5741a4^..5741a4 --stat&lt;br /&gt;
git diff 5741a4^..5741a4 --shortstat&lt;br /&gt;
&lt;br /&gt;
# Get commits count of someone.&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039;&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+[^+]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^-[^-]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+++&#039; | wc -l&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# See local and remote branches&lt;br /&gt;
git branch -v -a&lt;br /&gt;
master                                c313bf9 ...&lt;br /&gt;
remotes/origin/static-files-2         be32085 ...&lt;br /&gt;
remotes/origin/static-files-3         e9021d8 ...&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Checkout remote branch.&lt;br /&gt;
git checkout -b static-files-3 remotes/origin/static-files-3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://docs.github.com/en/github/extending-github/git-automation-with-oauth-tokens&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3427</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3427"/>
		<updated>2026-09-17T01:58:47Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* All repos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Current repo ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info for this repo ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user for this repo.&amp;lt;br/&amp;gt;(--comment must be placed before key) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --comment &amp;quot;User for work&amp;quot; user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --local --comment &amp;quot;Email for work&amp;quot; user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== All repos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info and show it&#039;s scope.&amp;lt;br/&amp;gt;(--show-scope must be placed before --get-regexp) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --show-scope --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user and editor for all. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --global core.editor &amp;quot;vim&amp;quot;&lt;br /&gt;
git config --global user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Maintainance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
  ! Purpose&lt;br /&gt;
  ! Command&lt;br /&gt;
|-&lt;br /&gt;
  | Delete unused branches&lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* bugfix/* hotfix/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | Check why a file was ignored&lt;br /&gt;
  | git check-ignore -v config.php&lt;br /&gt;
|-&lt;br /&gt;
  | Clone a specific branch&lt;br /&gt;
  | git clone -b staging project project_staging&lt;br /&gt;
|-&lt;br /&gt;
  | Clear tags not in remote repository&lt;br /&gt;
  | git fetch --prune --prune-tags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Undo ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Unstage a file&lt;br /&gt;
git reset --  src/sequelize-eparking/models/Fee.js&lt;br /&gt;
&lt;br /&gt;
# Latest commit &amp;gt; stage&lt;br /&gt;
git reset HEAD^&lt;br /&gt;
git reset HEAD~1   # if symbol ^ escaped&lt;br /&gt;
git checkout upstream/develop composer.lock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# stat for single commit&lt;br /&gt;
git diff 5741a4^..5741a4 --stat&lt;br /&gt;
git diff 5741a4^..5741a4 --shortstat&lt;br /&gt;
&lt;br /&gt;
# Get commits count of someone.&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039;&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+[^+]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^-[^-]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+++&#039; | wc -l&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# See local and remote branches&lt;br /&gt;
git branch -v -a&lt;br /&gt;
master                                c313bf9 ...&lt;br /&gt;
remotes/origin/static-files-2         be32085 ...&lt;br /&gt;
remotes/origin/static-files-3         e9021d8 ...&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Checkout remote branch.&lt;br /&gt;
git checkout -b static-files-3 remotes/origin/static-files-3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://docs.github.com/en/github/extending-github/git-automation-with-oauth-tokens&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3426</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Git&amp;diff=3426"/>
		<updated>2026-09-17T01:58:35Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Current repo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Current repo ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info for this repo ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user for this repo.&amp;lt;br/&amp;gt;(--comment must be placed before key) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --local --comment &amp;quot;User for work&amp;quot; user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --local --comment &amp;quot;Email for work&amp;quot; user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== All repos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || Command&lt;br /&gt;
|-&lt;br /&gt;
| List user info and show it&#039;s scope.&amp;lt;br/&amp;gt;(--show-scope must be placed before --get-regexp) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --show-scope --get-regexp &amp;quot;^u&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup user and editor for all. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --global core.editor &amp;quot;vim&amp;quot;&lt;br /&gt;
git config --global user.name &amp;quot;name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;name@mydomain.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Maintainance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
  ! Purpose&lt;br /&gt;
  ! Command&lt;br /&gt;
|-&lt;br /&gt;
  | Delete unused branches&lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | &lt;br /&gt;
  | &amp;lt;nowiki&amp;gt;git branch -l feature/* bugfix/* hotfix/* | xargs git branch -D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
  | Check why a file was ignored&lt;br /&gt;
  | git check-ignore -v config.php&lt;br /&gt;
|-&lt;br /&gt;
  | Clone a specific branch&lt;br /&gt;
  | git clone -b staging project project_staging&lt;br /&gt;
|-&lt;br /&gt;
  | Clear tags not in remote repository&lt;br /&gt;
  | git fetch --prune --prune-tags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Undo ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Unstage a file&lt;br /&gt;
git reset --  src/sequelize-eparking/models/Fee.js&lt;br /&gt;
&lt;br /&gt;
# Latest commit &amp;gt; stage&lt;br /&gt;
git reset HEAD^&lt;br /&gt;
git reset HEAD~1   # if symbol ^ escaped&lt;br /&gt;
git checkout upstream/develop composer.lock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# stat for single commit&lt;br /&gt;
git diff 5741a4^..5741a4 --stat&lt;br /&gt;
git diff 5741a4^..5741a4 --shortstat&lt;br /&gt;
&lt;br /&gt;
# Get commits count of someone.&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039;&lt;br /&gt;
git log --author=&#039;Me&#039; --since=&#039;2019-01-01&#039; --before=&#039;2019-12-31&#039; | grep &#039;^commit&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+[^+]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^-[^-]&#039; | wc -l&lt;br /&gt;
git diff 980b^ 980b | grep &#039;^+++&#039; | wc -l&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# See local and remote branches&lt;br /&gt;
git branch -v -a&lt;br /&gt;
master                                c313bf9 ...&lt;br /&gt;
remotes/origin/static-files-2         be32085 ...&lt;br /&gt;
remotes/origin/static-files-3         e9021d8 ...&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Checkout remote branch.&lt;br /&gt;
git checkout -b static-files-3 remotes/origin/static-files-3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://docs.github.com/en/github/extending-github/git-automation-with-oauth-tokens&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Compilation&amp;diff=3425</id>
		<title>Useful Commands/Package Compilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Compilation&amp;diff=3425"/>
		<updated>2026-09-17T01:58:16Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| 顯示已安裝 nginx 的編譯參數&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nginx -V 2&amp;gt;&amp;amp;1 | tail -n 1 | tr &amp;quot; &amp;quot; &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示已安裝 php 的編譯參數 (5.4)&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -i | head -n 6 | tail -n 1 | tr &amp;quot;  &amp;quot; &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3424</id>
		<title>Useful Commands/Package Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3424"/>
		<updated>2026-09-17T01:57:42Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* OSX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows ==&lt;br /&gt;
&lt;br /&gt;
=== general ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Install scoop ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get path of an executable ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gcm php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t use &#039;&#039;&#039;where php&#039;&#039;&#039;, it&#039;s very slow.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== winget ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Install PowerShell || Required ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget install --id Microsoft.PowerShell --source winget --installer-type wix --override &amp;quot;CREATE_DESKTOP_SHORTCUT=1 ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t install &#039;&#039;&#039;with default options&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget source update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== scoop ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
scoop update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Division Architecture ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! WinGet&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all GUI applications)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Scoop&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all CLI &amp;amp; development tools)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* Chrome / Edge&lt;br /&gt;
* VS Code / JetBrains&lt;br /&gt;
* Docker / Git&lt;br /&gt;
* Discord / Spotify&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* PHP / Composer&lt;br /&gt;
* Node.js / NVM / Bun&lt;br /&gt;
* Python / Go / Rust&lt;br /&gt;
* Neovim / kubectl / 7zip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List how many top packages installed by me. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-mark showmanual | grep -E &#039;top$&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List files owned by package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -L openvino-2026.2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List all packages installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg --get-selections&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package not installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-cache show openssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -s openssl | grep &#039;^Version&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Install beta package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ brew info jython&lt;br /&gt;
jython: stable 2.5.3, devel 2.7-b1&lt;br /&gt;
...&lt;br /&gt;
$ brew install --devel jython&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List compiling options of a package for brew install ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# version / dependencies / build options&lt;br /&gt;
brew info graphviz&lt;br /&gt;
&lt;br /&gt;
# build options only&lt;br /&gt;
brew options graphviz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused packages.&amp;lt;br/&amp;gt;This action could make self-compiling executables miss link for libraries (*.so, *.dylib)  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
brew cleanup&lt;br /&gt;
brew cleanup $FORMULA&lt;br /&gt;
brew cleanup -n # dry-run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3423</id>
		<title>Useful Commands/Package Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3423"/>
		<updated>2026-09-17T01:57:30Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows ==&lt;br /&gt;
&lt;br /&gt;
=== general ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Install scoop ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get path of an executable ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gcm php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t use &#039;&#039;&#039;where php&#039;&#039;&#039;, it&#039;s very slow.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== winget ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Install PowerShell || Required ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget install --id Microsoft.PowerShell --source winget --installer-type wix --override &amp;quot;CREATE_DESKTOP_SHORTCUT=1 ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t install &#039;&#039;&#039;with default options&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget source update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== scoop ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
scoop update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Division Architecture ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! WinGet&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all GUI applications)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Scoop&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all CLI &amp;amp; development tools)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* Chrome / Edge&lt;br /&gt;
* VS Code / JetBrains&lt;br /&gt;
* Docker / Git&lt;br /&gt;
* Discord / Spotify&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* PHP / Composer&lt;br /&gt;
* Node.js / NVM / Bun&lt;br /&gt;
* Python / Go / Rust&lt;br /&gt;
* Neovim / kubectl / 7zip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List how many top packages installed by me. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-mark showmanual | grep -E &#039;top$&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List files owned by package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -L openvino-2026.2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List all packages installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg --get-selections&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package not installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-cache show openssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -s openssl | grep &#039;^Version&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || Command&lt;br /&gt;
|-&lt;br /&gt;
| Install beta package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ brew info jython&lt;br /&gt;
jython: stable 2.5.3, devel 2.7-b1&lt;br /&gt;
...&lt;br /&gt;
$ brew install --devel jython&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List compiling options of a package for brew install ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# version / dependencies / build options&lt;br /&gt;
brew info graphviz&lt;br /&gt;
&lt;br /&gt;
# build options only&lt;br /&gt;
brew options graphviz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused packages.&amp;lt;br/&amp;gt;This action could make self-compiling executables miss link for libraries (*.so, *.dylib)  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
brew cleanup&lt;br /&gt;
brew cleanup $FORMULA&lt;br /&gt;
brew cleanup -n # dry-run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3422</id>
		<title>Useful Commands/Package Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Package_Management&amp;diff=3422"/>
		<updated>2026-09-17T01:57:12Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* general */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows ==&lt;br /&gt;
&lt;br /&gt;
=== general ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Install scoop ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get path of an executable ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gcm php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t use &#039;&#039;&#039;where php&#039;&#039;&#039;, it&#039;s very slow.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== winget ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Install PowerShell || Required ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget install --id Microsoft.PowerShell --source winget --installer-type wix --override &amp;quot;CREATE_DESKTOP_SHORTCUT=1 ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t install &#039;&#039;&#039;with default options&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
winget source update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== scoop ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || RunAs || Command&lt;br /&gt;
|-&lt;br /&gt;
| Update package list || ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
scoop update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Division Architecture ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! WinGet&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all GUI applications)&amp;lt;/small&amp;gt;&lt;br /&gt;
! Scoop&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(For all CLI &amp;amp; development tools)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* Chrome / Edge&lt;br /&gt;
* VS Code / JetBrains&lt;br /&gt;
* Docker / Git&lt;br /&gt;
* Discord / Spotify&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: left;&amp;quot; |&lt;br /&gt;
* PHP / Composer&lt;br /&gt;
* Node.js / NVM / Bun&lt;br /&gt;
* Python / Go / Rust&lt;br /&gt;
* Neovim / kubectl / 7zip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || Command&lt;br /&gt;
|-&lt;br /&gt;
| List how many top packages installed by me. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-mark showmanual | grep -E &#039;top$&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List files owned by package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -L openvino-2026.2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List all packages installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg --get-selections&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package not installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-cache show openssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show version info of a package installed. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -s openssl | grep &#039;^Version&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || Command&lt;br /&gt;
|-&lt;br /&gt;
| Install beta package ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ brew info jython&lt;br /&gt;
jython: stable 2.5.3, devel 2.7-b1&lt;br /&gt;
...&lt;br /&gt;
$ brew install --devel jython&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List compiling options of a package for brew install ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# version / dependencies / build options&lt;br /&gt;
brew info graphviz&lt;br /&gt;
&lt;br /&gt;
# build options only&lt;br /&gt;
brew options graphviz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused packages.&amp;lt;br/&amp;gt;This action could make self-compiling executables miss link for libraries (*.so, *.dylib)  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
brew cleanup&lt;br /&gt;
brew cleanup $FORMULA&lt;br /&gt;
brew cleanup -n # dry-run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/MacOS_only&amp;diff=3421</id>
		<title>Useful Commands/MacOS only</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/MacOS_only&amp;diff=3421"/>
		<updated>2026-09-17T01:56:41Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Optimize Screen Capture ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Save screen capture into ~/Pictures/Screenshots&lt;br /&gt;
defaults write com.apple.screencapture \&lt;br /&gt;
  location ~/Pictures/Screenshots&lt;br /&gt;
&lt;br /&gt;
# Disable shadow&lt;br /&gt;
defaults write com.apple.screencapture \&lt;br /&gt;
  disable-shadow -bool true&lt;br /&gt;
&lt;br /&gt;
# Apply&lt;br /&gt;
killall SystemUIServer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open text file using GitHub Atom&amp;lt;br&amp;gt;(Need to reboot after written) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
defaults write com.apple.LaunchServices/com.apple.launchservices.secure \&lt;br /&gt;
  LSHandlers -array-add \&lt;br /&gt;
  &#039;{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.github.atom;}&#039; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get ID of an application ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
osascript -e &#039;id of app &amp;quot;Atom&amp;quot;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open Finder and select the file ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
open -R something.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Write NTFS ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
umount /dev/disk3s1&lt;br /&gt;
sudo mkdir /Volumes/WinToGo&lt;br /&gt;
sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk3s1 /Volumes/WinToGo&lt;br /&gt;
cd /Volumes/WinToGo&lt;br /&gt;
cp -R ~/Downloads/WindowsSupport/* .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Status&amp;diff=3420</id>
		<title>Useful Commands/System Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Status&amp;diff=3420"/>
		<updated>2026-09-17T01:56:23Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Get Ubuntu version ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
lsb_release -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cet CPU usage by core. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
vmstat -P 1     # FreeBSD&lt;br /&gt;
mpstat -P ALL 1 # Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get info of SNMP v3 with encryption ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
snmpwalk -v 3 -l authPriv -u ${USERNAME} \&lt;br /&gt;
   -a SHA -A ${PASSWORD} \ # hash&lt;br /&gt;
   -x AES -X random123 \   # cipher&lt;br /&gt;
   ${HOST} \&lt;br /&gt;
   ${OID}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[http://www.alvestrand.no/objectid/top.html OID Query]&lt;br /&gt;
|-&lt;br /&gt;
| Get info of SNMP v2 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
snmpwalk -v2c -cpublic 192.168.93.172 system&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Management&amp;diff=3419</id>
		<title>Useful Commands/System Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/System_Management&amp;diff=3419"/>
		<updated>2026-09-17T01:56:07Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OS Management ==&lt;br /&gt;
&lt;br /&gt;
123&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| List process ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ps -axo pid,command&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^ssh/) { print $0; }&#039;&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^login/) { print $0; }&#039;&lt;br /&gt;
ps -axo pid,command | awk &#039;match($2, /^-?bash/) { print $0; }&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List process tree ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pstree 713&lt;br /&gt;
pstree $(ps -axo pid,command | awk &#039;match($2, /^login/) { print $1 }&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CPU &amp;amp; Memory || &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Linux&lt;br /&gt;
cat /proc/cpuinfo&lt;br /&gt;
cat /proc/meminfo&lt;br /&gt;
free&lt;br /&gt;
sudo dmidecode --type 17,19,20&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
locale          # current locale&lt;br /&gt;
locale -a       # available locales&lt;br /&gt;
sudo locale-gen # rebuild locales&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run a command one minute later ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;ls -l &amp;gt; `tty`&amp;quot; | at now + 1 minute&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Service_Management&amp;diff=3418</id>
		<title>Useful Commands/Service Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Service_Management&amp;diff=3418"/>
		<updated>2026-09-17T01:55:42Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* systemctl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== systemctl ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Monitor ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
journalctl -u llama-swap -n 10 -f&lt;br /&gt;
&lt;br /&gt;
journalctl -u llama-swap --since &amp;quot;10:20&amp;quot;&lt;br /&gt;
journalctl -u llama-swap --since &amp;quot;10 minutes ago&amp;quot;&lt;br /&gt;
journalctl -u llama-swap --since today&lt;br /&gt;
&lt;br /&gt;
systemctl status llama-swap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl disable llama-swap&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /home/xxx/yyy/llama-swap.service llama.service&lt;br /&gt;
sudo systemctl enable llama-swap&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Control ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl start  nginx&lt;br /&gt;
systemctl stop   nginx&lt;br /&gt;
systemctl reload nginx&lt;br /&gt;
systemctl reload systemd-networkd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl -t service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Run Level ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target || ! Description&lt;br /&gt;
|-&lt;br /&gt;
| multi-user.target || Multi-user mode (CLI) (Equivalent to Runlevel 3)&lt;br /&gt;
|-&lt;br /&gt;
| graphical.target || Graphical mode (GUI) (Equivalent to Runlevel 5)&lt;br /&gt;
|-&lt;br /&gt;
| rescue.target || Rescue mode (Equivalent to Runlevel 1)&lt;br /&gt;
|-&lt;br /&gt;
| emergency.target || Emergency mode (Equivalent to Runlevel 0)&lt;br /&gt;
|-&lt;br /&gt;
| reboot.target || Reboot&lt;br /&gt;
|-&lt;br /&gt;
| poweroff.target || Power off&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Security&amp;diff=3417</id>
		<title>Useful Commands/Security</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Security&amp;diff=3417"/>
		<updated>2026-09-17T01:55:09Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Frequently Used Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Used Commands =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Automatically accept fingerprint. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh -o &amp;quot;StrictHostKeyChecking no&amp;quot; ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Indirect outgoing for PostgreSQL ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# [Private]&lt;br /&gt;
# localhost -&amp;gt; localhost:15432&lt;br /&gt;
#           -&amp;gt; server:22&lt;br /&gt;
#           -&amp;gt; somewhere.com:5432&lt;br /&gt;
ssh -NCfL 15432:somewhere.com:5432 server&lt;br /&gt;
&lt;br /&gt;
# [Shared]&lt;br /&gt;
# any -&amp;gt; *:15432&lt;br /&gt;
#     -&amp;gt; server:22&lt;br /&gt;
#     -&amp;gt; somewhere.com:5432&lt;br /&gt;
ssh -NCfL *:15432:somewhere.com:5432 server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Indirect outgoing for Web ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# [Private]&lt;br /&gt;
# localhost -&amp;gt; localhost:3128&lt;br /&gt;
#     -&amp;gt; server:22&lt;br /&gt;
#     -&amp;gt; *:*&lt;br /&gt;
ssh -NCfD localhost:3128 server&lt;br /&gt;
&lt;br /&gt;
# [Shared]&lt;br /&gt;
# any -&amp;gt; *:3128&lt;br /&gt;
#     -&amp;gt; server:22&lt;br /&gt;
#     -&amp;gt; *:*&lt;br /&gt;
ssh -NCfD *:3128 server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Share MariaDB in LAN ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Step 1: Listen (Run at LAN)&lt;br /&gt;
# Listen server:13306 -&amp;gt; server:22&lt;br /&gt;
#                     -&amp;gt; localhost:3306&lt;br /&gt;
ssh -NCfR 13306:localhost:3306 server&lt;br /&gt;
&lt;br /&gt;
# Step 2: Share (Run at Home/WAN)&lt;br /&gt;
# any -&amp;gt; server:3306&lt;br /&gt;
#     -&amp;gt; server:13306&lt;br /&gt;
#     -&amp;gt; server:22&lt;br /&gt;
#     -&amp;gt; localhost:3306&lt;br /&gt;
ssh -NCfL *:3306:localhost:13306 localhost&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List tunnels ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List full commands.&lt;br /&gt;
ps ax | awk &#039;/ssh \-NCf/ { print $0 }&#039;&lt;br /&gt;
&lt;br /&gt;
# List settings.&lt;br /&gt;
ps ax | awk &#039;/ssh \-NCf/ { print $7 }&#039;&lt;br /&gt;
&lt;br /&gt;
# List pids.&lt;br /&gt;
ps ax | awk &#039;/ssh \-NCf/ { print $1 }&#039;&lt;br /&gt;
&lt;br /&gt;
# Kill all tunnels.&lt;br /&gt;
kill $(ps ax | awk &#039;/ssh \-NCf/ { print $1 }&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generate key pair ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Save as default name id_rsa, id_rsa.pub&lt;br /&gt;
ssh-keygen&lt;br /&gt;
# Save as thefuck, thefuck.pub without password&lt;br /&gt;
ssh-keygen -f abc -N &#039;&#039;&lt;br /&gt;
# Save as thefuck, thefuck.pub with password &lt;br /&gt;
ssh-keygen -f abc -N &#039;12345&#039; &lt;br /&gt;
# Generate ed25519 key&lt;br /&gt;
ssh-keygen -t ed25519 -f sucks.pem&lt;br /&gt;
ssh-keygen -t ed25519 -f sucks.pem -C nobody@sucks.com&lt;br /&gt;
puttygen raymond -o raymond.ppk -O private&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generate public key from private key ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Dump&lt;br /&gt;
ssh-keygen -yf thefuck.pem&lt;br /&gt;
# Save as file&lt;br /&gt;
ssh-keygen -yf thefuck.pem &amp;gt; thefuck.pub&lt;br /&gt;
# Save as authorized_keys (while ~/.ssh/authorized_keys didn&#039;t exist)&lt;br /&gt;
ssh-keygen -yf thefuck.pem &amp;gt; authorized_keys&lt;br /&gt;
# Append into authorized_keys&lt;br /&gt;
ssh-keygen -yf thefuck.pem &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Get the algorithm info of a private key. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh-keygen -l -f thefuck.pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Access resources without VPN =&lt;br /&gt;
== Lesson 1: UDP -&amp;gt; UDP ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command || Routing&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo socat -d -d \&lt;br /&gt;
  udp4-recvfrom:53,bind=127.0.0.1,fork \&lt;br /&gt;
  udp4-sendto:8.8.8.8:53&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;LS1&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_office {&lt;br /&gt;
  label=&amp;quot;Office&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  A [label=&amp;quot;nslookup www.google.com 127.0.0.1&amp;quot;];&lt;br /&gt;
  B [label=&amp;quot;sudo socat -d -d ...&amp;quot;];&lt;br /&gt;
  C [label=&amp;quot;DNS Server&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
  A -&amp;gt; B [xlabel=&amp;quot;1. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
  B -&amp;gt; C [xlabel=&amp;quot;2. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
  C -&amp;gt; B [xlabel=&amp;quot;3. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
  B -&amp;gt; A [xlabel=&amp;quot;4. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lesson 2: UDP -&amp;gt; TCP -&amp;gt; UDP ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command || Routing&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo socat -d -d \&lt;br /&gt;
  udp4-recvfrom:53,bind=127.0.0.1,fork \&lt;br /&gt;
  tcp4:127.0.0.1:1053&lt;br /&gt;
&lt;br /&gt;
socat -d -d \&lt;br /&gt;
  tcp4-listen:1053,bind=127.0.0.1,fork \&lt;br /&gt;
  udp4-sendto:8.8.8.8:53&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;LS2&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
subgraph cluster_office {&lt;br /&gt;
  label=&amp;quot;Office&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  A [label=&amp;quot;nslookup www.google.com 127.0.0.1&amp;quot;];&lt;br /&gt;
  B [label=&amp;quot;sudo socat -d -d udp4-recvfrom:53 ...&amp;quot;];&lt;br /&gt;
  C [label=&amp;quot;socat -d -d tcp4-listen ...&amp;quot;];&lt;br /&gt;
  D [label=&amp;quot;DNS Server&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
  A -&amp;gt; B [xlabel=&amp;quot;1. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
  B -&amp;gt; C [xlabel=&amp;quot;2. tcp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
  C -&amp;gt; D [xlabel=&amp;quot;3. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
  D -&amp;gt; C [xlabel=&amp;quot;4. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
  C -&amp;gt; B [xlabel=&amp;quot;5. tcp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
  B -&amp;gt; A [xlabel=&amp;quot;6. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lesson 3: UDP -&amp;gt; SSH -&amp;gt; TCP -&amp;gt; UDP ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command || Routing&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Step 1. SSH -&amp;gt; TCP -&amp;gt; UDP (Run at Office)&lt;br /&gt;
socat -d -d -lf socat.log \&lt;br /&gt;
  tcp4-listen:1053,bind=127.0.0.1,fork \&lt;br /&gt;
  udp4-sendto:192.168.1.1:53 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
ssh -NCfR 1053:127.0.0.1:1053 home&lt;br /&gt;
&lt;br /&gt;
# Step 2. UDP -&amp;gt; TCP -&amp;gt; SSH -&amp;gt; TCP -&amp;gt; UDP (Run at Home)&lt;br /&gt;
sudo socat -d -d -lf socat.log \&lt;br /&gt;
  udp4-recvfrom:53,bind=127.0.0.1,fork \&lt;br /&gt;
  tcp4:127.0.0.1:1053 &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;LS3&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_home {&lt;br /&gt;
  label=&amp;quot;Home&amp;quot;;&lt;br /&gt;
  A [label=&amp;quot;nslookup www.google.com 127.0.0.1&amp;quot;];&lt;br /&gt;
  B [label=&amp;quot;sudo socat ... udp4-recvfrom:53 ...&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_office {&lt;br /&gt;
  label=&amp;quot;Office&amp;quot;;&lt;br /&gt;
  C [label=&amp;quot;ssh -NCfR ...&amp;quot;];&lt;br /&gt;
  D [label=&amp;quot;socat ... tcp4-listen ...&amp;quot;];&lt;br /&gt;
  E [label=&amp;quot;DNS Server&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B [xlabel=&amp;quot;1 udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;2 ssh&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;3 tcp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
D -&amp;gt; E [xlabel=&amp;quot;4 udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
E -&amp;gt; D [xlabel=&amp;quot;5 udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
D -&amp;gt; C [xlabel=&amp;quot;6 tcp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
C -&amp;gt; B [xlabel=&amp;quot;7 ssh&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
B -&amp;gt; A [xlabel=&amp;quot;8 udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lesson 4: Forward HTTP ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Step 1. SSH -&amp;gt; TCP -&amp;gt; UDP (Run at Office)&lt;br /&gt;
socat -d -d -lf socat.log \&lt;br /&gt;
  tcp4-listen:1053,bind=127.0.0.1,fork \&lt;br /&gt;
  udp4-sendto:192.168.1.1:53 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
ssh -NCfR 1053:127.0.0.1:1053 home&lt;br /&gt;
&lt;br /&gt;
# Step 2. SSH -&amp;gt; SOCKS -&amp;gt; HTTP (Run at office)&lt;br /&gt;
ssh -NCfD 127.0.0.1:3128 localhost&lt;br /&gt;
ssh -NCfR 3128:127.0.0.1:3128 home&lt;br /&gt;
&lt;br /&gt;
# Step 3. UDP -&amp;gt; TCP -&amp;gt; SSH -&amp;gt; TCP -&amp;gt; UDP (Run at Home)&lt;br /&gt;
sudo socat -d -d -lf socat.log \&lt;br /&gt;
  udp4-recvfrom:53,bind=127.0.0.1,fork \&lt;br /&gt;
  tcp4:127.0.0.1:1053 &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;LS4&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
newrank=true;&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_home {&lt;br /&gt;
  label=&amp;quot;Home&amp;quot;;&lt;br /&gt;
  rank=&amp;quot;same&amp;quot;;&lt;br /&gt;
  A [label=&amp;quot;browser https://www.google.com&amp;quot;];&lt;br /&gt;
  B [label=&amp;quot;sudo socat ... udp4-recvfrom:53 ...&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_office {&lt;br /&gt;
  label=&amp;quot;Office&amp;quot;;&lt;br /&gt;
  subgraph cluster_dns {&lt;br /&gt;
    label=&amp;quot;DNS&amp;quot;;&lt;br /&gt;
    C [label=&amp;quot;ssh -NCfR 1053: ...&amp;quot;];&lt;br /&gt;
    D [label=&amp;quot;socat ... tcp4-listen ...&amp;quot;];&lt;br /&gt;
    E [label=&amp;quot;DNS Server&amp;quot;];&lt;br /&gt;
  }&lt;br /&gt;
  subgraph cluster_http {&lt;br /&gt;
    label=&amp;quot;HTTP&amp;quot;;&lt;br /&gt;
    F [label=&amp;quot;ssh -NCfR 3128: ...&amp;quot;];&lt;br /&gt;
    G [label=&amp;quot;ssh -NCfD ...&amp;quot;];&lt;br /&gt;
    H [label=&amp;quot;HTTP Server&amp;quot;];&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// DNS Routing&lt;br /&gt;
A -&amp;gt; B [xlabel=&amp;quot;1. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;,minlen=3];&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;2. ssh&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;3. tcp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
D -&amp;gt; E [xlabel=&amp;quot;4. udp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
E -&amp;gt; D [xlabel=&amp;quot;5. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
D -&amp;gt; C [xlabel=&amp;quot;6. tcp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
C -&amp;gt; B [xlabel=&amp;quot;7. ssh&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
B -&amp;gt; A [xlabel=&amp;quot;8. udp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;,constraint=false];&lt;br /&gt;
&lt;br /&gt;
// SOCKS Routing&lt;br /&gt;
A -&amp;gt; F [xlabel=&amp;quot;9. ssh&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
F -&amp;gt; G [xlabel=&amp;quot;10. socks&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
G -&amp;gt; H [xlabel=&amp;quot;11. tcp&amp;quot;,color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
H -&amp;gt; G [xlabel=&amp;quot;12. tcp&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
G -&amp;gt; F [xlabel=&amp;quot;13. socks&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
F -&amp;gt; A [xlabel=&amp;quot;14. ssh&amp;quot;,color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lesson 5: Improve connection quality ==&lt;br /&gt;
&lt;br /&gt;
=== ~/bin/mksvc.sh ===&lt;br /&gt;
Create SOCKS and TCP DNS services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
socat -d -d -lf socat.log \&lt;br /&gt;
  tcp4-listen:1053,bind=127.0.0.1,fork \&lt;br /&gt;
  udp4-sendto:192.168.1.1:53 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
ssh -NCf -D 127.0.0.1:3128 localhost&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ~/bin/mktun.sh ===&lt;br /&gt;
Make tunnels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh -NCf \&lt;br /&gt;
  -MS revtun.ctrl \&lt;br /&gt;
  -R 1053:127.0.0.1:1053 \&lt;br /&gt;
  -R 13128:127.0.0.1:3128 \&lt;br /&gt;
  home&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ~/bin/rmtun.sh ===&lt;br /&gt;
Remove tunnels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -e /tmp/revtun.ctrl ]; then&lt;br /&gt;
  ssh -S /tmp/revtun.ctrl -O exit home&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ~/.ssh/config ===&lt;br /&gt;
Make the ssh connection more reliable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; highlight=&amp;quot;5-7&amp;quot;&amp;gt;&lt;br /&gt;
Host                home&lt;br /&gt;
Hostname            x.x.x.x&lt;br /&gt;
User                user&lt;br /&gt;
IdentityFile        ~/.ssh/mykey.pem&lt;br /&gt;
TCPKeepAlive        yes&lt;br /&gt;
ServerAliveInterval 60&lt;br /&gt;
ServerAliveCountMax 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== crontab -e ===&lt;br /&gt;
Create tunnels during 7:30~09:30, 21:00~22:00 only.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# 07:30 ~ 09:30&lt;br /&gt;
30   07   *   *   *   ~/bin/mktun.sh&lt;br /&gt;
30   09   *   *   *   ~/bin/rmtun.sh&lt;br /&gt;
# 21:00 ~ 22:00&lt;br /&gt;
00   21   *   *   *   ~/bin/mktun.sh&lt;br /&gt;
00   22   *   *   *   ~/bin/rmtun.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Homework ===&lt;br /&gt;
Do it at home. NAS is a good choice.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo socat -d -d -lf socat-dns.log \&lt;br /&gt;
  udp4-recvfrom:53,bind=*,fork \&lt;br /&gt;
  tcp4:127.0.0.1:1053 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
sudo socat -d -d -lf socat-socks.log \&lt;br /&gt;
  tcp4-listen:3128,bind=*,fork \&lt;br /&gt;
  tcp4:127.0.0.1:13128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Networking&amp;diff=3416</id>
		<title>Useful Commands/Networking</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Networking&amp;diff=3416"/>
		<updated>2026-09-17T01:54:51Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Which service bound tcp port?&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo netstat -tunlp&lt;br /&gt;
sudo netstat -tnlp | grep :22&lt;br /&gt;
sudo ss -tunlp&lt;br /&gt;
sudo lsof -nP -iTCP -sTCP:LISTEN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示執行中的網路服務&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List listening tcp ports and what program used.&lt;br /&gt;
lsof -i -P | grep -i &amp;quot;listen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OSX, FreeBSD 專用&lt;br /&gt;
netstat -anf inet | grep &#039;LISTEN&#039;  # 只看 ipv4&lt;br /&gt;
netstat -anf inet6 | grep &#039;LISTEN&#039; # 只看 ipv6&lt;br /&gt;
netstat -anf inet | grep &#039;127\..*LISTEN&#039;     # 只看 ipv4 本地服務&lt;br /&gt;
netstat -anf inet | grep &#039;\*\.[0-9].*LISTEN&#039; # 只看 ipv4 開放服務&lt;br /&gt;
netstat -anf inet | grep &#039;127\..*LISTEN&#039; | sort -t. -nk5     # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -anf inet | grep &#039;\*\.[0-9].*LISTEN&#039; | sort -t. -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
netstat -anf inet -p udp | awk &#039;{ print $4 }&#039; | grep &#039;[0-9]$&#039; # List udp4 services&lt;br /&gt;
&lt;br /&gt;
sudo ss -lntp&lt;br /&gt;
&lt;br /&gt;
# Linux 專用 (參數 t 只看 TCP)&lt;br /&gt;
ss -lnt4&lt;br /&gt;
netstat -lnt4 # 只看 ipv4&lt;br /&gt;
netstat -lnt6 # 只看 ipv6&lt;br /&gt;
netstat -lnt4 | grep &#039;127\.&#039; | sort -t: -nk2  # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -lnt4 | grep &#039;0:[^*]&#039; | sort -t: -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
&lt;br /&gt;
# Busybox 專用 (不支援 -4 -6 參數)&lt;br /&gt;
netstat -lnt | grep &#039;127\.&#039; | sort -t: -nk2  # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -lnt | grep &#039;0:[^*]&#039; | sort -t: -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
&lt;br /&gt;
# 通用&lt;br /&gt;
netstat -an | grep &#039;LISTEN\s*$&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得 HTTP 回應代碼&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s -w &#039;%{http_code}\n&#039; -o /dev/null &amp;lt;URL&amp;gt;&lt;br /&gt;
wget --server-response --spider &amp;lt;URL&amp;gt; 2&amp;gt;&amp;amp;1 | awk &#039;/^  HTTP/{print $2}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 執行遠端的 Shell Script&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s &amp;lt;URL&amp;gt; | bash&lt;br /&gt;
wget -qO- &amp;lt;URL&amp;gt; | bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 下載檔案，由伺服器命名&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sOJ &amp;lt;URL&amp;gt;&lt;br /&gt;
wget --trust-server-names &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 片段下載&amp;lt;br/&amp;gt;Server 應該回傳代碼 206&amp;lt;br/&amp;gt;(wget 不支援)&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 簡易用法&lt;br /&gt;
curl -r 0-99 -X HEAD -I &amp;lt;URL&amp;gt;      # 檢查 response header&lt;br /&gt;
curl -r 0-99 -s &amp;lt;URL&amp;gt;              # 直接輸出片段內文&lt;br /&gt;
curl -r 0-99 -sO &amp;lt;URL&amp;gt;             # 輸出到檔案，使用 &amp;lt;URL&amp;gt; 結尾命名&lt;br /&gt;
curl -r 0-99 -sOJ &amp;lt;URL&amp;gt;            # 輸出到檔案，使用 Content-Disposition: attachment; filename=... 命名&lt;br /&gt;
curl -r 0-99 -o part1.bin -s &amp;lt;URL&amp;gt; # 輸出到檔案，自己命名&lt;br /&gt;
&lt;br /&gt;
# 檢查往來 header&lt;br /&gt;
curl -r 0-99 -X HEAD -svI &amp;lt;URL&amp;gt; 2&amp;gt;&amp;amp;1 | grep &#039;^[&amp;lt;&amp;gt;]&#039;&lt;br /&gt;
&lt;br /&gt;
# 檢查是否支援片段下載 (只取 header 不取 body)&lt;br /&gt;
# * 206: 支援&lt;br /&gt;
# * 200: 不支援&lt;br /&gt;
curl -r 0-99 -X HEAD -w &#039;%{http_code}\n&#039; -o /dev/null -sI &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取 HTTP Header&amp;lt;br/&amp;gt;(如：確認 Last-Modified)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -I http://data.openstreetmapdata.com/land-polygons-split-4326.zip&lt;br /&gt;
wget -qS --spider http://data.openstreetmapdata.com/land-polygons-split-4326.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 壓力測試&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ulimit -n 10000; ab -c 500 -n 1000 &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LDAP 簡易搜尋&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ldapsearch \&lt;br /&gt;
   -H ldap://&amp;lt;host&amp;gt; \&lt;br /&gt;
   -D &#039;&amp;lt;user&amp;gt;&#039; \&lt;br /&gt;
   -w &#039;&amp;lt;password&amp;gt;&#039; \&lt;br /&gt;
   -b &#039;&amp;lt;basedn&amp;gt;&#039; \&lt;br /&gt;
   &#039;(objectClass=*)&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sendmail 打信&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sendmail -Am -f&amp;quot;&amp;lt;123@123.com&amp;gt;&amp;quot; &amp;quot;&amp;lt;haha@softnext.com.tw&amp;gt;&amp;quot; &amp;lt; /home/adm/151103/mail20151103060502002.eml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示遠端 samba 檔案&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
smbclient -U smail%123 //192.168.90.154/smail -c &#039;dir&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Networking&amp;diff=3415</id>
		<title>Useful Commands/Networking</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands/Networking&amp;diff=3415"/>
		<updated>2026-09-17T01:54:29Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://www.opencli.com/linux/ip-command&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Which service bound tcp port?&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo netstat -tunlp&lt;br /&gt;
sudo netstat -tnlp | grep :22&lt;br /&gt;
sudo ss -tunlp&lt;br /&gt;
sudo lsof -nP -iTCP -sTCP:LISTEN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示執行中的網路服務&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List listening tcp ports and what program used.&lt;br /&gt;
lsof -i -P | grep -i &amp;quot;listen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OSX, FreeBSD 專用&lt;br /&gt;
netstat -anf inet | grep &#039;LISTEN&#039;  # 只看 ipv4&lt;br /&gt;
netstat -anf inet6 | grep &#039;LISTEN&#039; # 只看 ipv6&lt;br /&gt;
netstat -anf inet | grep &#039;127\..*LISTEN&#039;     # 只看 ipv4 本地服務&lt;br /&gt;
netstat -anf inet | grep &#039;\*\.[0-9].*LISTEN&#039; # 只看 ipv4 開放服務&lt;br /&gt;
netstat -anf inet | grep &#039;127\..*LISTEN&#039; | sort -t. -nk5     # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -anf inet | grep &#039;\*\.[0-9].*LISTEN&#039; | sort -t. -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
netstat -anf inet -p udp | awk &#039;{ print $4 }&#039; | grep &#039;[0-9]$&#039; # List udp4 services&lt;br /&gt;
&lt;br /&gt;
sudo ss -lntp&lt;br /&gt;
&lt;br /&gt;
# Linux 專用 (參數 t 只看 TCP)&lt;br /&gt;
ss -lnt4&lt;br /&gt;
netstat -lnt4 # 只看 ipv4&lt;br /&gt;
netstat -lnt6 # 只看 ipv6&lt;br /&gt;
netstat -lnt4 | grep &#039;127\.&#039; | sort -t: -nk2  # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -lnt4 | grep &#039;0:[^*]&#039; | sort -t: -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
&lt;br /&gt;
# Busybox 專用 (不支援 -4 -6 參數)&lt;br /&gt;
netstat -lnt | grep &#039;127\.&#039; | sort -t: -nk2  # 只看 ipv4 本地服務, 依 port 排序&lt;br /&gt;
netstat -lnt | grep &#039;0:[^*]&#039; | sort -t: -nk2 # 只看 ipv4 開放服務, 依 port 排序&lt;br /&gt;
&lt;br /&gt;
# 通用&lt;br /&gt;
netstat -an | grep &#039;LISTEN\s*$&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取得 HTTP 回應代碼&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s -w &#039;%{http_code}\n&#039; -o /dev/null &amp;lt;URL&amp;gt;&lt;br /&gt;
wget --server-response --spider &amp;lt;URL&amp;gt; 2&amp;gt;&amp;amp;1 | awk &#039;/^  HTTP/{print $2}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 執行遠端的 Shell Script&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s &amp;lt;URL&amp;gt; | bash&lt;br /&gt;
wget -qO- &amp;lt;URL&amp;gt; | bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 下載檔案，由伺服器命名&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sOJ &amp;lt;URL&amp;gt;&lt;br /&gt;
wget --trust-server-names &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 片段下載&amp;lt;br/&amp;gt;Server 應該回傳代碼 206&amp;lt;br/&amp;gt;(wget 不支援)&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 簡易用法&lt;br /&gt;
curl -r 0-99 -X HEAD -I &amp;lt;URL&amp;gt;      # 檢查 response header&lt;br /&gt;
curl -r 0-99 -s &amp;lt;URL&amp;gt;              # 直接輸出片段內文&lt;br /&gt;
curl -r 0-99 -sO &amp;lt;URL&amp;gt;             # 輸出到檔案，使用 &amp;lt;URL&amp;gt; 結尾命名&lt;br /&gt;
curl -r 0-99 -sOJ &amp;lt;URL&amp;gt;            # 輸出到檔案，使用 Content-Disposition: attachment; filename=... 命名&lt;br /&gt;
curl -r 0-99 -o part1.bin -s &amp;lt;URL&amp;gt; # 輸出到檔案，自己命名&lt;br /&gt;
&lt;br /&gt;
# 檢查往來 header&lt;br /&gt;
curl -r 0-99 -X HEAD -svI &amp;lt;URL&amp;gt; 2&amp;gt;&amp;amp;1 | grep &#039;^[&amp;lt;&amp;gt;]&#039;&lt;br /&gt;
&lt;br /&gt;
# 檢查是否支援片段下載 (只取 header 不取 body)&lt;br /&gt;
# * 206: 支援&lt;br /&gt;
# * 200: 不支援&lt;br /&gt;
curl -r 0-99 -X HEAD -w &#039;%{http_code}\n&#039; -o /dev/null -sI &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 取 HTTP Header&amp;lt;br/&amp;gt;(如：確認 Last-Modified)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -I http://data.openstreetmapdata.com/land-polygons-split-4326.zip&lt;br /&gt;
wget -qS --spider http://data.openstreetmapdata.com/land-polygons-split-4326.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 壓力測試&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ulimit -n 10000; ab -c 500 -n 1000 &amp;lt;URL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LDAP 簡易搜尋&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ldapsearch \&lt;br /&gt;
   -H ldap://&amp;lt;host&amp;gt; \&lt;br /&gt;
   -D &#039;&amp;lt;user&amp;gt;&#039; \&lt;br /&gt;
   -w &#039;&amp;lt;password&amp;gt;&#039; \&lt;br /&gt;
   -b &#039;&amp;lt;basedn&amp;gt;&#039; \&lt;br /&gt;
   &#039;(objectClass=*)&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sendmail 打信&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sendmail -Am -f&amp;quot;&amp;lt;123@123.com&amp;gt;&amp;quot; &amp;quot;&amp;lt;haha@softnext.com.tw&amp;gt;&amp;quot; &amp;lt; /home/adm/151103/mail20151103060502002.eml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 顯示遠端 samba 檔案&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
smbclient -U smail%123 //192.168.90.154/smail -c &#039;dir&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands&amp;diff=3414</id>
		<title>Useful Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands&amp;diff=3414"/>
		<updated>2026-09-17T01:53:55Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Trouble shooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🌐 Networking&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 💻 OS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Hardware&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Networking|Networking]]&lt;br /&gt;
* [[Useful Commands/Security|Security]]: ssh, socat&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Service Management|Service Management]]&lt;br /&gt;
* [[Useful Commands/System Management|System Management]]&lt;br /&gt;
* [[Useful Commands/System Status|System Status]]&lt;br /&gt;
* [[Useful Commands/Windows only|Windows only]]&lt;br /&gt;
* [[Useful Commands/MacOS only|MacOS only]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Hardware|Hardware]]&lt;br /&gt;
|-&lt;br /&gt;
! 📦 Packages&lt;br /&gt;
! 📁 File System&lt;br /&gt;
! 📊 Data&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Package Management|Package Management]]&lt;br /&gt;
* [[Useful Commands/Package Compilation|Package Compilation]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Git]]&lt;br /&gt;
* [[Useful Commands/File Processing|File Processing]]&lt;br /&gt;
* [[Useful Commands/Compression|Compression]]&lt;br /&gt;
* [[Useful Commands/Remote File Access|Remote File Access]]&lt;br /&gt;
* [[Useful Commands/Low Level IO|Low Level IO]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Text Processing|Text Processing]]&lt;br /&gt;
* [[Useful Commands/Date &amp;amp; Time|Date &amp;amp; Time]]&lt;br /&gt;
* [[Useful Commands/Arithmetic|Arithmetic]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Trouble shooting =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify $PATH by line. ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo $PATH | tr &#039;:&#039; &#039;\n&#039;&lt;br /&gt;
echo $PATH | tr &#039;:&#039; &#039;\n&#039; | grep &#039;snap&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands&amp;diff=3413</id>
		<title>Useful Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.fundamental-ramen.com/index.php?title=Useful_Commands&amp;diff=3413"/>
		<updated>2026-09-17T01:53:16Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Trouble shooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🌐 Networking&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 💻 OS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Hardware&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Networking|Networking]]&lt;br /&gt;
* [[Useful Commands/Security|Security]]: ssh, socat&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Service Management|Service Management]]&lt;br /&gt;
* [[Useful Commands/System Management|System Management]]&lt;br /&gt;
* [[Useful Commands/System Status|System Status]]&lt;br /&gt;
* [[Useful Commands/Windows only|Windows only]]&lt;br /&gt;
* [[Useful Commands/MacOS only|MacOS only]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Hardware|Hardware]]&lt;br /&gt;
|-&lt;br /&gt;
! 📦 Packages&lt;br /&gt;
! 📁 File System&lt;br /&gt;
! 📊 Data&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Package Management|Package Management]]&lt;br /&gt;
* [[Useful Commands/Package Compilation|Package Compilation]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Git]]&lt;br /&gt;
* [[Useful Commands/File Processing|File Processing]]&lt;br /&gt;
* [[Useful Commands/Compression|Compression]]&lt;br /&gt;
* [[Useful Commands/Remote File Access|Remote File Access]]&lt;br /&gt;
* [[Useful Commands/Low Level IO|Low Level IO]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Useful Commands/Text Processing|Text Processing]]&lt;br /&gt;
* [[Useful Commands/Date &amp;amp; Time|Date &amp;amp; Time]]&lt;br /&gt;
* [[Useful Commands/Arithmetic|Arithmetic]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Trouble shooting =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose | ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify $PATH by line. |&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo $PATH | tr &#039;:&#039; &#039;\n&#039;&lt;br /&gt;
echo $PATH | tr &#039;:&#039; &#039;\n&#039; | grep &#039;snap&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
</feed>