문제

나는 bash를 사용하고 있으며 10년 넘게 사용해 왔습니다. 하지만 때때로 Linux 셸 세계에서 중요한 새로운 개발이 있었는지 궁금합니다.

몇 년 전 Microsoft는 매우 흥미로웠던 PowerShell을 출시했습니다.Linux 셸에서 비슷한 혁신이 진행되고 있나요?

도움이 되었습니까?

해결책

다음을 통해 Linux에서 PowerShell을 실행할 수 있습니다. 파시.PowerShell이 ​​.NET을 사용하는 방식으로 Mono를 사용합니다.

다른 팁

당신은 알고 있습니다 bash 4 최근에 많은 새로운 기능과 언어 추가로 출시 되었습니까?

  • 쉘 옵션 globstar (**/foo) 재귀 검색을 수행하고 dirspell PathName 확장 중 오타를 수정합니다.
  • 연관 배열, 문자열을 문자열에 숫자로 숫자로 맵핑하십시오.
  • 그만큼 autocd Shell 옵션을 넣지 않고 디렉토리 경로를 입력하여 디렉토리를 변경할 수 있습니다. cd 앞에.
  • 공동 프로세스
  • &>> 그리고 |& 둘 다 리디렉션하는 리디렉션 연산자 stdout 그리고 stderr
  • 스크립팅 편의성을 향상시키기 위해 기존 내장에 많은 추가 기능을 제공합니다.

체크 아웃 :

Zsh 또는 FishShell을 살펴 보겠습니다.

Bash (및 기타 쉘)의 가장 선포 된 특징 중 하나는 자신의로드 가능성을 작성하고 쉘이 내장 된 사람으로 실행하도록하는 것입니다.

로드 가능한 'on'을 쓰고 다음과 같이 작동하기를 원합니다.

on node 123 run some command
on class nodes run some command
on all nodes run some command

... 등 ..

로드 가능한 글을 쓰는 방법에 대한 간단한 예제를 따르고 enable -f/path/to/loadable loadable_name을 통해 내장 된 배쉬로 활성화 할 수 있습니다.

따라서 우리의 경우 -f/opt/bash/loadables/on을 활성화하십시오.

... 당신의 bashrc에서, 당신은 그것을 얻었습니다.

따라서 BASH가 기본적으로 새 언어를 해석하려면 '사용'또는 'switch_to'라는로드 가능한로드 가능한 이름을 작성한 다음 특정 환경 변수가 설정된 경우 다른 문법 / 런타임을로드하도록 파서를 수정하십시오.

즉:

#/bin/bash

switch_to my-way-cool-language

funkyfunc Zippy(int p) [[
   jive.wassup(p) ]]

대부분의 사람들은입니다 ~ 아니다 그러나 그들의 껍질을 해킹하고 싶을 것입니다. 나는 시설이 핵심 코드를 너무 많이 충족시키지 않고 시설이 배쉬를 가져 와서 원하는 방식으로 만들기 위해 존재한다는 것을 지적하고 싶었다.

/배시-소스/예제/로드블을 참조하십시오. 여전히 bash를 사용하고 있기 때문에 작업하는 곳으로 날아갈 수 있습니다.

나는 "원래 개선 된 쉘"이 생각합니다 KSH93. Bash는 KSH 소스 코드가 독점적 인시기에 존재했다. KSH가 오픈 소스 였다면, 새로운 쉘을 가질 필요가없는 것으로 여겨지지 않았을 것입니다 (FSF를 사용하면 결코 알지 못합니다). KSH는 특히 C 모듈을 통해 확장 할 수있는 능력에 대해 공부할 가치가 있지만 Bash에 대한 명확한 승리는 아닙니다. Bash의 자동 완성은 분명히 우수하며 Bash가 전반적으로 승리하기에 충분할 수 있습니다. 어쨌든 Bash와 KSH는 수렴을 위해 상당한 노력을 기울 였으므로 차이는 미미합니다.

다른 흥미로운 껍질은입니다 ZSH, CSH를 포함하는 동안 KSH가있는 모든 것이되기를 시도합니다. 나는 CSH에 어떤 점이나 사용을 본 적이 없기 때문에, 나는 Zsh를 옹호하는 올바른 사람이 아닙니다. 나는 하나의 비정상적인 비 호환성을 지적 할 것입니다 : 기본적으로 zsh에서 변수 $var 언제나 공백이 포함되어 있어도 단일 토큰으로 확장됩니다. 이 동작은 다른 모든 SH 유래 쉘과 호환되지 않으며 때로는 불편하지만 실제로는 원래보다 훨씬 더 의미가 있으며 많은 인용의 지옥을 절약합니다.

CSH는 직무를 통제 한 최초의 껍질 이었지만 내 마음 속에서 Bash와 KSH에 의해 대체되었습니다. 스크립트를 작성하는 것은 결코 재미있는 일이 아니 었습니다.

마지막으로, 구조 플로피 (!) 및 기타 스파르타 환경을 위해 설계된 많은 작은 껍질이 있지만, 그에 관심이 거의없는 것처럼 들립니다.

(혁신 문제에서 쉘 스크립트로 작성했던 스크립트의 절반 이상이 이제 루아 스크립트. 다른 사람들은 Python 또는 Ruby에 대해서도 똑같이 말하거나 하루에 Perl 또는 Tcl을 말할 수 있습니다. 그래서 나는 실제 혁신이 명령 줄에서 프로그래밍 가능한 상호 작용을 위해 쉘에서 멀어지게하는 것이라고 생각합니다.)

IIRC, PowerShell은 객체 지향적 인 반면 대부분의 유닉스 쉘과 유틸리티는 텍스트에서 작동합니다. 그 점에서 다람쥐 껍질 당신에게 관심을 가질 수 있습니다. 그래도 나는 그것을 사용한 적이 없습니다.

잃을 각오가 되어 있다면 sh 호환성을 고려하면 Python이나 Tcl과 같은 스크립팅 언어를 쉘로 사용하는 것을 고려할 수 있습니다. rlwrap 인터프리터가 줄 편집, 명령 기록, 완성 등을 제공하지 않는 경우 매우 편리할 수 있습니다.

쉘에 관한 한 가지 철학은 주로 프로세스를 파일과 연결하는 데에만 사용해야 한다는 것입니다(여기에 그러한 접근 방식을 지지하는 한 페이지가 있습니다.).즉, 사람들은 이를 사용하여 매우 복잡한 소프트웨어를 작성했습니다.

포탄은 체계 chell. UNIX 명령을 실행하는 능력과 결합 된 모든 체계의 힘 그리고 임베디드 awk 통역사 (물론 체계로 작성). 유일한 단점은 조금만 필요하다는 것입니다. 패치 64 비트 리눅스를 구축하려면.

정확히 Bourne-Shell은 아니지만 다릅니다. 물론, 당신은 계획 - 보너스를 배워야합니다!

Ruby를 좋아한다면 Rush (IRB가 아닌 Ruby-Unix Shell)를 사용할 수 있습니다.

여기 프레젠테이션을 참조하십시오

http://www.slideshare.net/adamwiggins/rush-the-ruby-shell-and-unix-integration-library

또는 더 많은 예를 볼 수있는 공식 웹 사이트

http://rush.heroku.com/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top