%20%EA%B8%B0%EB%8A%A5%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8F%84%EB%A1%9D%20%EC%9C%84%EC%AA%BD%20%EB%B0%8F%20%EC%95%84%EB%9E%98%EC%AA%BD%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%ED%95%98%EC%84%B8%EC%9A%94..png)
위쪽 및 아래쪽 키가 cmd와 동일하도록 Bash를 어떻게 사용자 정의합니까?
예:
$echo command1
$echo command2
$echo command3
$echo command4
Bash와 cmd 모두에서 ↑, ↑, 를 ↑누르면 ENTER가 실행됩니다 echo command2
.
그러나 이후에 cmd에서 아래쪽 키를 누르면 나중에 명령으로 바로 이동합니다 echo command3
. 즉, . Bash에서 아래쪽 키를 눌러도 아무 일도 일어나지 않습니다. cmd는 특정 시점 기록을 유지하지만(웹 브라우저의 뒤로 및 앞으로 버튼과 유사) Bash는 그렇지 않습니다.
cmd와 마찬가지로 cmd에서 위쪽 키를 두 번 누르면 가 반환되지만 echo command1
Bash에서는 가 반환됩니다 echo command3
.
이전에 순서대로 입력한 일련의 명령을 양해하고 싶은 경우가 많습니다. cmd에서는 기록을 통해 시퀀스의 첫 번째 부분까지 뒤로 스크롤한 다음 , ↓, ENTER, ↓, ENTER, ... 할 수 있어 정말 편리합니다 ↓.ENTER
그러나 Bash에서는 이와 유사한 방법을 찾을 수 없습니다. ~/.inputrc
이를 달성하기 위해 어떤 방식으로든 다른 파일을 수정하는 것이 가능합니까 ?
답변1
개인적으로는 bash 기록에 익숙해졌기 때문에 그렇게 하고 싶지 않지만 사람들이 왜 그렇게 하고 싶어하는지 알 수 있습니다. 나는 이전에 *nix를 처음 접하고 xterm에서 DOS와 유사한 기능을 원했던 직장 동료를 위해 이 문제를 조사한 적이 있지만 지금으로서는 해결책이 없는 것 같습니다.
방금 또 다른 광범위한 검색을 수행했지만 다음 외에는 확실한 것을 찾을 수 없습니다.
- 도세무, 이는 당신이 원하는 것이 아닙니다. 그리고;
- 쉘 스크립팅을 사용하여 Linux 명령줄을 DOS처럼 작동하게 만드세요., 그러나 링크가 다소 간헐적으로 나타나는 것 같고, 게다가 이것은 아마도 당신이 정말로 원하는 것이 아닐 수도 있습니다. 이 링크는 단지 다음 방법을 제공할 뿐입니다.대체사용자 정의 스크립트를 사용하는 DOS 명령용 Unix 명령.
이상하게도 cmd를 bash처럼 만드는 방법은 많습니다. 예를 들어,Windows 명령 프롬프트의 Bash 기록과 유사한 기능, 하지만 안타깝게도그 반대는 아니고.
주요 문제는 지나치게 간단하게 말하면 커서 키 기능(및 이 기능이 기록과 상호 작용하는 방식)이 Bash 소스 코드에 내장되어 있으며 스크립팅, 별칭 및 셸 함수가 해당 사실을 재정의할 수 없다는 것입니다 1 . 당신이 요구하는 것은다시 쓴bash에는 다른 [전환 가능?] 커서 키 기능이 내장되어 있습니다. 일종의 "DOSBash"입니다.
어쩌면 틈새 시장이 충족될 기회가 있을 수도 있고 누군가가 결국 그 요구를 충족할 수도 있지만 나는 숨을 멈추지 않을 것입니다.
1 내 말이 틀리고 간단한 리소스 파일 변경으로 커서 키 기능을 무시할 수 있다면 누군가 나를 바로잡아주면 기쁠 것입니다.
답변2
내가 사용하는 비결은 다음과 같은 횟수를 단순히 반복하는 것입니다 ↑.
$ echo command1
$ echo command2
$ echo command3
$ echo command4
echo command 2
에서 까지 의 시퀀스를 반복하려면 에 도달하기 위해 3번을 echo command4
누르고 , 에 도달하기 위해 다시 3번을 누르고 에 다시 3번을 누르십시오 .↑echo command2
echo command3
echo command4
따라서 N 번을 눌러 기록에서 N 항목으로 되돌아간 경우 ↑실행한 새 명령이 삽입되었기 때문에 N 번 다시 누르면 매번 다음 명령으로 이동하게 됩니다.