예를 들어, 입력을 하면 sudo apt-get update
몇 분 후에 긴 콘텐츠 목록이 나타납니다.
이 성가신 업데이트를 제거하고 (원래 명령을 종료하지 않고) bash 명령줄을 다시 제어하려면,
이 작업을 수행하는 단축키나 이와 유사한 것이 있습니까?
답변1
apt-get
일시적으로 중지했다 Ctrl-Z가 다시 시작할 수 있습니다 .일하다백그라운드에서bg
주문하다.
$ apt-get foo bar ...
^Z
bash: suspended apt-get
$ bg
bash: continued apt-get
$
apt-get
그러나 이렇게 하면 터미널에서 계속 출력을 받게 됩니다. 그것아니요명령을 시작한 후에 명령을 중지할 수 있습니다(디버거를 사용한 더티 핵 제외). 그러나 여기에서 다른 명령을 실행할 수 있습니다. 작업이 중지되면 여전히 존재하지만 실행되지 않으므로 진행되지 않지만 출력도 표시되지 않습니다.
당신이 유용하다고 생각할 수 있는 것은screen
또는tmux
주문하다. 동일한 물리적 터미널 내에서 서로 다른 터미널을 사용하여 여러 세션을 실행할 수 있습니다. X를 사용하는 경우 다른 터미널 에뮬레이터를 실행하거나 현재 탭 내에 새 탭을 만들 수 있습니다. 어느 쪽이든 apt-get update
하나의 셸에서 실행한 다음 다른 셸로 전환하여 작업을 계속할 수 있습니다.
답변2
이 특정 명령의 경우 일반적으로 대부분의 경우 오류 없이 작동한다고 가정할 수 있습니다. 이 경우 다음과 같이 실행하는 것이 좋습니다.
sudo apt-get update > ~/.aptget.update.log &
괄호를 사용하여 모든 출력을 숨길 수도 있습니다.
(sudo apt-get update > ~/.aptget.update.log &)
이 줄은 편리하게 사용할 수 있도록 별칭으로 사용할 수 있습니다.
alias apt-update="(sudo apt-get update > ~/.aptget.update.log &)"
이를 통해 "apt-update"만 사용하여 명령을 실행할 수 있습니다. 이것을 ~/.bashrc
파일에 넣으면 로그인할 때마다 자동으로 실행됩니다.
그런 다음 사용자 정의 메시지를 추가하여 수행 중인 작업을 상기시킬 수도 있습니다.
alias apt-update="echo \"Running apt-get update in the background. Wait a few moments for it to finish.\" || (sudo apt-get update > ~/.aptget.update.log &)"