명령 프롬프트에서 (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.