less 명령을 사용하거나 매뉴얼 페이지 내에서 Linux 명령을 어떻게 실행합니까?


9

일반적으로 페이징하는 동안 명령 ls을 파이프하고 명령 less을 실행하고 싶습니다. 예를 들어 삭제하려는 파일을 발견하여 rm {filename}여전히 페이징하는 동안 명령을 실행하고 싶습니다 . 또한 매뉴얼 페이지를 숙독하면서 동일한 방법을 사용할 수 있기를 바랍니다. 그렇지 않다면 어떻게 다른가요?

답변:


8

!적은 시간 안에 bang ( )을 사용하여 명령 행에 액세스 할 수 있습니다 .

예를 들어 다음을 입력하면

touch temp.txt
ls | less
!rm temp.txt

그리고 temp.txt가 없어야합니다.

편집 : 기본적으로 man은 이제 페이지를 덜 사용하는 것으로 보입니다 (어떤 이유로 인해 이전에 사용했다고 생각합니다 more). 동일한 트릭을 사용할 수 있지만 작동하려면 전체 경로 (예 : / home / user / ...)가 필요합니다.

man을 호출하면 현재 작업 디렉토리가 변경되기 때문입니다. 내 컴퓨터 (xubuntu, 사용 xfce-terminal)에서로 이동합니다 /usr/share/man. 콘솔에 CWD가 표시되면 변경 사항을 보거나 다음 man을 입력하여 내부에서 볼 수 있습니다 .

!pwd

man은 실제로 CWD를 변경하므로 전체 경로를 사용해야합니다.
Rob

@Rob-무슨 뜻 man actually changes CWD인가요?
PeanutsMonkey

상태 표시 줄에 CWD를 표시하도록 tmux를 설정했습니다. 이렇게 man man사람이 열려있는 동안 (또는 무엇이든은) 내 CWD 변경됩니다. 내 리눅스 머신은 현재 사용할 수 없으며 CWD를 확인하는 다른 방법은 확실하지 않지만 나에게 그렇게하는 것처럼 보입니다.
Rob

@Rob-tmux를 사용하고 있기 때문에 명령을 실행할 때 현재 작업 디렉토리 man {command}를 say 에서 명령 /home/{user}의 위치로 변경한다는 의미입니다 man.
PeanutsMonkey

그것은 내가 본 행동을 설명 할 것입니다. 이제 CWD가 바뀌는 이유 는 또 다른 질문입니다.
Ash

4

이를 수행하는 일반적인 방법은 현재 작업을 일시 중단하고 명령을 실행 한 후 이전 작업을 재개하는 것입니다.

ls | less
Control-z현재 활성 명령을 일시 중단하려면 (텍스트를 읽고 파일 이름을 확인하십시오)

다음과 비슷한 줄이 나타납니다. [1]+ Stopped ls | less
([1]은 작업 번호입니다.)

rm testfile

fg또는 fg %1 (1은 작업 번호입니다)

여러 프로세스를 동시에 일시 중단 할 수 있습니다. 예
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1작업 1
fg %2을 다시 시작 하거나 (백그라운드에서 맨 페이지를 열어 둔 채로) 작업 2를 다시 시작하려면 (맨 rm)

일시 중단 된 프로세스가 여러 개인 경우로 나열 할 수 있습니다 jobs.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.