chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一款用rust制作的命令行工具

jf_wN0SrCdH ? 來源:Rust語言中文社區(qū) ? 2023-05-04 09:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

get-host-ip

這是一款用rust制作的命令行工具。其被設(shè)計用來從C:WindowsSystem32ipconfig.exe的執(zhí)行結(jié)果內(nèi)提取出指定【網(wǎng)卡】的屬性值。比如,從電腦本的【無線局域網(wǎng)適配器WLAN】中提取出【IPv4地址】字符串值。

使用場景

Windows Subsystem for Linux(比如,Ubuntu-20.04)讀取其宿主主機(jī)(比如,Windows 11)無線物理網(wǎng)卡的IP地址。進(jìn)而,將其作為兩項重要功能的配置項入?yún)ⅲ?/p>

  1. 投影WSL2圖形界面至Windows宿主桌面系統(tǒng)顯示。

  • 無論是將整個Gnome桌面系統(tǒng)投影作為Windows環(huán)境下的一個應(yīng)用程序窗口,還僅只是投影某個Linux GUI應(yīng)用程序,X11 Server都需要借助$DISPLAY環(huán)境變量明確地知曉XSTATA的準(zhǔn)確IP位置。請不要自做聰明地認(rèn)為127.0.0.1可能搪塞過去。127.0.0.1是指向WSL2子系統(tǒng)自身,而不是宿主主機(jī)。

  • 關(guān)于WSL2桌面投影的更多技術(shù)細(xì)節(jié),可參見我早先的另一篇文章為 Rust+QT 編程搭建【偽】win32 開發(fā)環(huán)境。還算是詳細(xì)吧!

  • 使Windows宿主操作系統(tǒng)共享VPN客戶端給WSL2子系統(tǒng)。

  • 從操作上,執(zhí)行export HTTP_PROXY=***指令要比在Linux系統(tǒng)里安裝與配置另一個Clash實例要省心多了。

  • 從后續(xù)維護(hù)上,對VPN客戶端的軟件升級與配置更新僅需要做一遍操作更節(jié)省時間。

  • 從經(jīng)濟(jì)上,更少的在線客戶端數(shù)量也更便宜。

曾經(jīng)的糾結(jié)

早先我也曾經(jīng)使用nodejs腳本程序?qū)崿F(xiàn)了相同的功能。但,node虛擬機(jī)首次啟動時間著實有些長了。雖然該長延時弊端在交互式bash上下文中并不明顯(畢竟咱敲鍵盤也不快,還時不時地敲錯字母),但當(dāng)被置于.bashrc內(nèi)執(zhí)行時,其造成的shell會話初始化阻滯就讓人有點不好接受了(畢竟,每次開個新shell窗口都得明顯黑幕個把秒鐘,體驗著實有些兒差)。所以,我決心使用rust重構(gòu)此“熱”指令。效果明顯,幾乎一閃便可完成shell初始化。

命令行指令-用法


	

$ get-host-ip --help 獲取 wsl 宿主機(jī)器的物理 IP 地址 Usage: get-host-ip [OPTIONS] Options: -s, --section

ipconfig.exe 返回結(jié)果中的【主分類】標(biāo)題 [default: "無線局域網(wǎng)適配器 WLAN"] -e, --entry ipconfig.exe 返回結(jié)果中的【主分類】下各個條目的標(biāo)簽名 [default: "IPv4 地址"] -h, --help Print help -V, --version Print version

更詳細(xì)圖例

c363230a-e8b5-11ed-ab56-dac502259ad0.png

返回結(jié)果

get-host-ip執(zhí)行輸出就是沒有結(jié)尾換行符的IP地址字符串。若將該指令添加入$PATH,那么在Shell求值表達(dá)式內(nèi)可以直接


	

export HOST_IP=$(get-host-ip);

鏈接庫依賴

因為Windows cmd指令輸出文本內(nèi)容的字符集是cp936,而不是UTF-8。所以,get-host-ip需要依賴操作系統(tǒng)預(yù)置的字符集轉(zhuǎn)換動態(tài)鏈接庫libiconv,來完成cp936 -> UTF-8的字符集轉(zhuǎn)換。

Linux操作系統(tǒng)

大部分主流Linux OS都包含有libiconv。若你的Linux OS版本比較早或是compact版而缺失了libiconv也不必慌。按如下方式補(bǔ)裝即可:


	

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.1.tar.gz tar -xzvf libiconv-1.9.1.tar.gz cd libiconv-1.9.1.tar.gz ./configure --prefix=/usr/local sudo make -j8 sudo make install sudo ln -s /usr/local/lib/libiconv.so /usr/lib/libiconv.so sudo ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

Windows操作系統(tǒng)

要么,從setup直接下載安裝包,并本地安裝之。缺點就是會“污染”你的PATH環(huán)境變量。

要么,從binary下載預(yù)編譯包。在解壓縮之后,將其下的bin目錄添加到你的編譯環(huán)境變量RUST_FLAGS內(nèi)。比如,


	

set RUST_FLAGS=-L C:libiconv-1.9.2-1-binbin

吐槽

同一款libiconv鏈接庫怎么對LinuxWindows操作系統(tǒng)提供了不同名的導(dǎo)出函數(shù)呢?這個“缺德的”命名差異導(dǎo)致我在【編譯期·動態(tài)鏈接】環(huán)節(jié)卡住了好幾天。相對于Linux版的鏈接庫導(dǎo)出函數(shù)名,Windows版的每個導(dǎo)出函數(shù)都有一個lib前綴 —— 故意的吧?真要命。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    745

    瀏覽量

    23305
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    405

    瀏覽量

    28949
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    237

    瀏覽量

    7406

原文標(biāo)題:get-host-ip

文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    在STM32實現(xiàn)命令行

    工作中的開發(fā)環(huán)境都是基于linux命令行交互,作為命令行的重度使用者,玩單片機(jī)也要使用命令行工具,百度了
    發(fā)表于 12-09 11:32 ?3356次閱讀

    Linux命令行工具

    Linux 新手往往對命令行心存畏懼。部分原因是因為需要記憶大量的命令,畢竟掌握命令是高效使用命令行的前提不幸的是,學(xué)習(xí)這些命令并無捷徑,
    發(fā)表于 07-25 08:10

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2493次閱讀

    CMD的命令行高級教程

    CMD的命令行高級教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級教程

    監(jiān)控jvm常用的5個命令行工具

    常用的幾個命令行工具有jps、jstat、jinfo、jmap、jstack等。這幾個工具可以安裝openjdk-devel-debug包。
    的頭像 發(fā)表于 02-06 14:47 ?6288次閱讀
    監(jiān)控jvm常用的5個<b class='flag-5'>命令行</b><b class='flag-5'>工具</b>

    實用 Linux 命令行使用技巧集錦

    下面介紹的都是命令行工具,這些工具在日常工作中都很有用。
    的頭像 發(fā)表于 03-21 14:42 ?5182次閱讀

    Xilinx軟件命令行工具:XSCT開發(fā)和調(diào)試

    了解如何使用XSCT,Xilinx軟件命令行工具進(jìn)行開發(fā)和調(diào)試。 該視頻演示了XSCT如何充當(dāng)Xilinx SDK的命令行控制臺。
    的頭像 發(fā)表于 11-21 06:02 ?1.5w次閱讀

    Xilinx軟件命令行工具進(jìn)行開發(fā)和調(diào)試

    了解如何使用XSCT,Xilinx軟件命令行工具進(jìn)行開發(fā)和調(diào)試。 該視頻演示了XSCT如何充當(dāng)Xilinx SDK的命令行控制臺。
    的頭像 發(fā)表于 11-22 06:53 ?7406次閱讀

    Git常見的誤區(qū)和命令行工具等綜述

    Git常見的誤區(qū)和命令行工具等綜述
    發(fā)表于 08-31 09:51 ?0次下載

    Golang基于flag庫實現(xiàn)命令行工具

    Golang 標(biāo)準(zhǔn)庫中的 flag 庫提供了解析命令行選項的能力,我們可以基于此來開發(fā)命令行工具。
    的頭像 發(fā)表于 10-28 09:26 ?1763次閱讀

    新的開源命令行工具west

    電子發(fā)燒友網(wǎng)站提供《新的開源命令行工具west.zip》資料免費下載
    發(fā)表于 11-11 09:25 ?0次下載
    新的開源<b class='flag-5'>命令行</b><b class='flag-5'>工具</b>west

    用于解析和操作URL的命令行工具

    curl 作者 Daniel 宣布推出新的開源項目:trurl,這是一款用于解析和操作 URL 的命令行工具,主要是面向 shell 腳本作者提供。Daniel 稱項目名字中的 'tr' 代表 transla
    的頭像 發(fā)表于 04-11 10:02 ?1537次閱讀

    介紹Go里面經(jīng)常使用到的命令行工具

    優(yōu)秀的工具配合熟練的使用,往往可以讓開發(fā)效率大幅度提升,本小節(jié)介紹 Go 里面經(jīng)常使用到的命令行工具。
    的頭像 發(fā)表于 05-22 16:58 ?1858次閱讀
    介紹Go里面經(jīng)常使用到的<b class='flag-5'>命令行</b><b class='flag-5'>工具</b>

    PetaLinux工具文檔:命令行參考指南

    電子發(fā)燒友網(wǎng)站提供《PetaLinux工具文檔:命令行參考指南.pdf》資料免費下載
    發(fā)表于 09-15 14:52 ?0次下載
    PetaLinux<b class='flag-5'>工具</b>文檔:<b class='flag-5'>命令行</b>參考指南

    HarmonyOS開發(fā):【基于命令行(安裝庫和工具集)】

    使用命令行進(jìn)行設(shè)備開發(fā)時,可以通過以下步驟安裝編譯OpenHarmony需要的庫和工具
    的頭像 發(fā)表于 04-25 21:03 ?978次閱讀
    HarmonyOS開發(fā):【基于<b class='flag-5'>命令行</b>(安裝庫和<b class='flag-5'>工具</b>集)】