명령 프롬프트에서 (arg : n)은 무엇을 의미합니까?


10

Codecademy의 Command Line CourseAlt+Shift+# 에서 명령 프롬프트에서 키보드 단축키 (현재 행을 주석 처리해야 함) 를 사용하려고하면 행 의 시작 부분에 대시를 추가하는 대신 프롬프트를에서 $로 전환합니다 (arg: 3). 대신 Alt+Shift+@화면에 표시 (arg: 2)됩니다. 아래 스크린 샷의 마지막 줄을 참조하십시오. 내가 치기 전에 Alt+Shift+#그것은 단지이었다 $.

스크린 샷

바로 가기가 내 컴퓨터에서 제대로 작동합니다.

  1. 이게 뭐야 (arg: n)?
  2. 키보드 단축키는 작동에 따라 어떤 것이 있습니까? 키보드 레이아웃? OS 배포판? 터미널 에뮬레이터? 기본 CLI? 뭐?

답변:


15

이것은 숫자 인수를 입력 할 때 readline 라이브러리의 프롬프트입니다. 입력하여 AltShift@키보드, 당신은 분명히 입력하는 Alt2에 매핑하는 M-2어떤 실행 digit-argument에서 의 readline 기본적으로, 그리고 시작은 숫자 인수를 입력. 그런 다음 Alt3( AltShift#귀하의 경우에 매핑 되는) 을 누르면 프롬프트가 (arg: 23); 모든 Alt숫자 조합을 계속할 수 있습니다 .

이러한 인수는 예를 들어 특정 readline 함수에 사용됩니다 yank-nth-arg. 이것을 실제로 보려면 다음을 실행하십시오.

echo Hello my friend

다음 눌러 Alt2다음 CtrlAltY; 당신은 볼 (arg: 2)사라, 메시지가 나타나고, 이전 명령의 두 번째 인수는 ( "내")는 현재의 명령 줄에 추가됩니다.

자세한 내용은 위의 링크 된 설명서를 참조하십시오. Bash는 readline을 사용하여 입력을 처리합니다. 다른 껍질은 같은 행동을 보이지 않습니다.

일부 터미널 에뮬레이터는 이러한 키 조합 중 일부를 자체 목적으로 사용합니다. 예를 들어 그놈 터미널에서 Alt-digit는 n 번째 탭으로 전환됩니다 . readline 기능을 사용하려면 이러한 조합을 비활성화해야합니다.

귀하의 경우 Codecademy 웹 기반 터미널 에뮬레이터는 AltShift조합을 잘 처리하지 못하는 것 같습니다 . 숫자 인수 바로 가기가 필요하지 않으면 다음을 실행하여 용도를 변경할 수 있습니다.

bind Meta-3:insert-comment

이론적으로는 다음을 추가하여 영구적으로 저장할 수 있어야합니다.

Meta-3: insert-comment

~/.inputrc파일,하지만 난 그 Codecademy에서 작업을 가져올 수 없습니다.


1
감사합니다. readline을 비활성화하거나 키보드 단축키를 사용하여 현재 명령 줄에 주석을 달려면 어떻게해야합니까?
user331380

어떤 터미널 에뮬레이터를 사용하고 있습니까?
Stephen Kitt

Codecademy에서 수행하는 방법을 알고 싶습니다. 마우스 오른쪽 버튼을 클릭하여 찾을 수있는 방법이 없습니다. ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$)출력 /usr/local/bin/ein -service-port 4006 -http-port 4007. 도움이 되나요?
user331380

1
@ user331380 아마도 Codeacademy에서 bash쉘을 사용 하고있을 것입니다. 대화식 쉘에서을 사용하여 새 인스턴스를 시작할 수 bash --noediting있습니다. 이것은 readline을 비활성화하지만 readline라이브러리는 많은 라인 편집 기능을 담당하므로 쉘을 대화식으로 사용하는 것이 약간 더 불편할 수 있습니다.
Sergiy Kolodyazhnyy

입력 한 다음 일반 모드 명령에 대한 숫자 인수를 나타 내기 위해 단순히 일반 모드에서 숫자를 입력 할 때 vi 키 바인딩에서도 발생한다는 점을 언급 할 가치가 있습니다.
JoL
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.