>  기사  >  백엔드 개발  >  Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

WBOY
WBOY앞으로
2023-04-11 19:49:161088검색

Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Xonsh는 Python 기반, 크로스 플랫폼, Unix 지향 쉘 언어 및 명령 프롬프트입니다. 이는 본질적으로 쉘 명령을 실행하기 위한 좋은 구문을 갖춘 Python 인터프리터입니다. 따라서 친숙한 셸 환경에서 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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Xonsh를 실행하려면 다음을 입력하세요. xonsh

Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

기본적으로 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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

대화형 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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

첫 번째 ls는 Bash 목록 명령으로 사용되며 두 번째는 Xonsh 표시 변수 ls입니다.

Xonsh는 Bash 문을 한 줄로 처리합니다. 이는 다음을 의미합니다:

  • Bash for/while/if 문은 모두 한 줄에 있어야 합니다.
  • 문자 사이에 공백을 사용해야 합니다.
  • 줄 확장("" 포함)은 지원되지 않습니다.
  • Bash 기능은 지원되지 않습니다. 지원됩니다.
  • Bash 대신 Python으로 함수를 작성할 수 있습니다.

Bash에서 Python 사용

Python 문은 Bash에서 사용됩니다: @(Python 문). 다음은 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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Example

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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Using Bash in Python

Bash 변수는 Python에서 직접 사용할 수 있습니다. 예를 들면 다음과 같습니다.

Bash 날짜 사용 및 전달 문제 Python

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

Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

다른 쉘과 서브쉘 사이에서 작업하는 것은 약간 혼란스러울 수 있습니다. 어떤 쉘에서 작업하고 있는지 가끔 혼란스러울 때가 있습니다. 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 기반의 강력한 쉘 언어 및 명령 프롬프트 공유

Xonsh 스크립트를 아무런 문제 없이 Bash 스크립트에 전달할 수 있지만 특정 작업의 경우 Xonsh 쉘을 수동으로 종료해야 한다는 것을 알았습니다.

요약

Xonsh는 전문가와 초보자 모두가 일상적으로 사용하기에 적합합니다. 다른 셸과 달리 xonsh는 Python을 기반으로 하며 하위 프로세스 명령 호출, 환경 운영 및 파일 시스템 작업을 쉽게 만드는 추가 구문을 추가합니다. xonsh 명령 프롬프트는 사용자에게 xonsh 언어에 대한 대화형 액세스를 제공합니다.

Xonsh는 간단한 스크립팅 솔루션을 찾는 사용자에게 많은 잠재력을 가지고 있습니다.

나 자신의 경우에는 Bash나 Python 솔루션을 사용하겠지만 다른 옵션도 있습니다.

위 내용은 Python 기반의 강력한 쉘 언어 및 명령 프롬프트 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제