搜尋
首頁後端開發Python教學分享基於 Python 的 強大Shell 語言和命令提示符

分享基於 Python 的 強大Shell 語言和命令提示符

Xonsh 是一種基於Python 的、跨平台的、面向Unix 的shell 語言和命令提示符,它本質上是一個Python解釋器,具有運行Shell 命令的良好語法。因此,在熟悉的Shell環境中,您擁有Python的所有功能。適用於所有主要係統,包括 Linux、OSX 和 Windows。

Bash 腳本對於小型或批次應用程式來說既快速又有效。 Bash 的限制之一是它處理數學函數和浮點數。

如果您是 Python 程式設計師,應該會非常喜歡,它擁有龐大的可用函數庫。

對於 Raspberry Pi 用戶,Xonsh 可以提供許多機會來編寫一些極其精簡的腳本。 Python 可用於連接到第三方裝置和感測器。

在這篇文章中,我將透過一些範例來介紹 Xonsh。

入門

有關特定係統的安裝說明,請參閱 Xonsh 文件。若要在Raspberry Pi/Ubuntu/Debian 安裝,請輸入:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install xonsh

分享基於 Python 的 強大Shell 語言和命令提示符

要執行Xonsh,只要輸入:xonsh

分享基於 Python 的 強大Shell 語言和命令提示符

#開箱即用的Xonsh 提供了一個設定精靈和一個教學。

使用 Python

Python 程式碼可以直接在命令列輸入。 Python 的版本將取決於基礎系統上載入的內容。要檢查您的版本:

linuxmi@linuxmi ~/www.linuxmi.com $ import sys
linuxmi@linuxmi ~/www.linuxmi.com $ sys.version
'3.9.7 (default, Sep 10 2021, 14:59:43) n[GCC 11.2.0]'

分享基於 Python 的 強大Shell 語言和命令提示符

與互動式Python 介面一樣,不需要列印語句即可查看輸出:

linuxmi@linuxmi ~/www.linuxmi.com $ 7+9
16
linuxmi@linuxmi ~/www.linuxmi.com $ a=5;b=6
linuxmi@linuxmi ~/www.linuxmi.com $ a+b
11
linuxmi@linuxmi ~/www.linuxmi.com $ i="Hello World!"
linuxmi@linuxmi ~/www.linuxmi.com $ i + " www.linuxmi.com"
'Hello World! www.linuxmi.com'

分享基於 Python 的 強大Shell 語言和命令提示符

使用Bash

Xonsh 首先使用Python,因此以ls(Bash list 指令)為例:

#在上面的範例***ls***首先用作Bash list 指令,但如果定義了同名的變量,則引用該變數。

linuxmi@linuxmi ~/www.linuxmi.com $ ls
'VS Code.png' www.linuxmi.com.jpg www.linuxmi.com.py wwww.linuxmi.com
 linuxmi.comwww.linuxmi.com.mp4 www.linuxmi.png
linuxmi@linuxmi ~/www.linuxmi.com $ ls="这是一个变量www.linuxmi.com"
linuxmi@linuxmi ~/www.linuxmi.com $ ls
'这是一个变量www.linuxmi.com'

分享基於 Python 的 強大Shell 語言和命令提示符

第一個ls用作Bash list指令,第2個是Xonsh顯示變數ls。

Xonsh 將 Bash 語句當作單行處理。這表示:

  • Bash for/while/if 語句需要全部在一行
  •  記得在字元之間使用空格
  • 不支援行擴展(帶有“”)
  • 不支援Bash 函數。
  •  您可以用Python 而不是Bash 寫函數

在Bash 中使用Python

Python 語句在Bash 中使用:@( Python statements)。以下是Bash 中使用Python 的兩個範例:

linuxmi@linuxmi ~/www.linuxmi.com $ import sys
linuxmi@linuxmi ~/www.linuxmi.com $ echo @(sys.version)
3.9.7 (default, Sep 10 2021, 14:59:43)
[GCC 11.2.0]
linuxmi@linuxmi ~/www.linuxmi.com $ echo @("LinuxMi.com=" +str(8+9))
LinuxMi.com=17

分享基於 Python 的 強大Shell 語言和命令提示符

#
linuxmi@linuxmi ~/www.linuxmi.com $ from tkinter import *
linuxmi@linuxmi ~/www.linuxmi.com $ root = Tk()
linuxmi@linuxmi ~/www.linuxmi.com $ canvas = Canvas(root, width = 500, height =
500)
linuxmi@linuxmi ~/www.linuxmi.com $ canvas.pack()
linuxmi@linuxmi ~/www.linuxmi.com $ img = PhotoImage(file="www.linuxmi.com.png")
linuxmi@linuxmi ~/www.linuxmi.com $ canvas.create_image(0,0, anchor=NW, image=im
g)
1
linuxmi@linuxmi ~/www.linuxmi.com $ mainloop()

分享基於 Python 的 強大Shell 語言和命令提示符

在Python 中使用Bash

Bash 變數可以直接在Python 中使用,例如:

使用Bash date並將其傳遞給Python

linuxmi@linuxmi ~/www.linuxmi.com $ now=$(date)
linuxmi@linuxmi ~/www.linuxmi.com $ print("现在的时间是: " + now)
现在的时间是: 2022年 04月 01日 星期五 19:17:13 CST

分享基於 Python 的 強大Shell 語言和命令提示符

問題

在不同的shell 和子shell 之間工作可能會有點混亂。我發現我有時會搞不清楚自己在哪個 shell 中工作。 ps命令會告訴我xonsh*是否正在運行:

linuxmi@linuxmi ~/www.linuxmi.com $ ps
PID TTYTIME CMD
 7966 pts/100:00:00 bash
 8044 pts/100:00:04 xonsh
11342 pts/100:00:00 ps

分享基於 Python 的 強大Shell 語言和命令提示符

我能夠在沒有任何問題的情況下將Xonsh腳本傳遞給Bash腳本,但我發現對於某些操作,我需要手動殺死Xonsh shell。

總結

Xonsh 適用於專家和新手的日常使用。與其他 shell 不同,xonsh 基於 Python,添加了額外的語法,使呼叫子進程命令、操作環境和處理檔案系統變得容易。 xonsh 命令提示字元為使用者提供了對 xonsh 語言的互動式存取。

對於尋求簡單腳本解決方案的使用者來說,Xonsh 具有很大的潛力。

就我自己而言,我可能會堅持使用 Bash 或 Python 解決方案,但我還有其他選擇。

以上是分享基於 Python 的 強大Shell 語言和命令提示符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)