창 터미널의 현재 탭(번호 또는 위치)이 무엇인지 어떻게 알 수 있나요?

창 터미널의 현재 탭(번호 또는 위치)이 무엇인지 어떻게 알 수 있나요?

ctrlUbuntu 및 Fedora의 경우 alt++를 통해 윈도우 터미널을 열면 ++를 통해 새 탭을 열 t수 있습니다 . 5개의 탭이 있는 윈도우 터미널이 있다고 가정해 보겠습니다. 가능하다면 + ( 1-5일 수 있음) 로 그 중 하나로 이동하세요 ...shiftctrltalt##

이제 Window Terminal에 9,10과 같은 탭이 더 있으면...

질문

  • 현재 탭이 무엇인지 어떻게 알 수 있나요? 수량이나 위치.

다음 상황을 처리할 수 있습니다.

  • 나중에 어디로 돌아갈지 아는 방법(현재 탭이 8이고 3으로 가서 나중에 8로 돌아가야 한다고 가정해 보겠습니다). 따라서 8을 알고/얻어야 합니다.
  • 현재 탭의 다음/이전 탭은 무엇입니까(현재 탭이 7이고 다음 탭 8로 이동해야 한다고 가정). 따라서 7을 알고/얻어야 합니다.

명령 을 시도했지만 tty현재 탭이 5인지 표시됩니다. /dev/pts/4보시다시피 N-1. 여기까지 간단한 수학을 적용할 수 있습니다....때때로 예상되는 직접 값이 표시됩니다(예: ) /dev/pts/5.왜 이런 차이가 나는지 모르겠네요. 따라서 반환된 값이 항상 정확하지는 않습니다.

더 중요한 것은 다른 작업 공간에 존재하는 경우다른일부 탭이 있는 윈도우 터미널에서 명령을 실행하면 tty임의의 숫자가 나타납니다. 일반적으로 이전 윈도우 터미널의 가장 높은 탭 + 1이 연속됩니다. 따라서 첫 번째 윈도우 터미널의 첫 번째 탭에 5개의 탭이 있으면 두 번째 윈도우 터미널의 첫 번째 탭이 tty표시 /dev/pts/5(N-1)되거나 직접 표시됩니다 /dev/pts/6. 하지만 예상대로 /dev/pts/1새 탭을 열면 상관관계가 1부터 시작되어야 합니다.

관찰하다탭이 다른 위치로 이동(끌어서 놓기)된 경우 "명령"에 새 위치/번호 매기기가 반영되어야 합니다.

노트이것이 tty올바른 명령이 아니더라도 어떤 명령으로 이를 달성할 수 있습니까?

답변1

gnome-terminal나는 이것이 이 플랫폼의 기본 데스크탑 환경인 Gnome에서 사용하는 기본값이기 때문에 이것을 사용하고 있다고 가정합니다 . (아마도 다른 터미널 에뮬레이터를 사용한다면 그렇게 말할 것입니다!)

제가 아는 한 그런 순서는 없습니다. 탭(귀하의 경우 주로 셸)에서 실행되는 프로그램은 탭에 대해 거의 알지 못합니다. 그렇지 않다~해야 한다도착하다! 또한 "탭"과 "가상 콘솔"(기술적으로 특정 ptty를 하나, 여러 개 또는 전혀 탭 없이 표시하는 데 사용할 수 있는 gnome 터미널 서버) 사이에는 간접 계층이 있습니다. 일반적으로 작동하지 않는 특정 탭에 항상 있습니다. 그러나 이는 귀하가 관심을 갖는 상황에 적용될 수 있습니다.

당신이 할 수 있는 일은 $GNOME_TERMINAL_SCREEN환경 변수를 사용하여 실행 중인 터미널 에뮬레이터 세션에 대한 정보를 얻는 것입니다. 여기에는 dbus 경로가 포함되어 있지만 "빠른" 내부 검사에 따르면 열려 있는 탭 목록을 얻을 수 있고 탭에서 명령을 실행할 수 있지만 그게 전부입니다.

따라서 그러한 명령이 존재하지 않는다는 사실 외에도 원하는 것이 불가능한 것으로 보입니다.


해결하고 싶은 문제를 해결하세요성취하다:

현재 탭이 8이고 3으로 갔다가 나중에 8로 돌아가려면 탭이 필요하다고 가정해 보겠습니다.

탭의 현재 제목을 수동으로 설정할 수 있으므로(탭 제목을 마우스 오른쪽 버튼으로 클릭하고 "제목 설정...") 어떤 제목이 어디에 있는지 알 수 있습니다.

하지만 솔직히 말하면, 여러분은 가상 터미널을 많이 사용하는 "고급 사용자"인 것처럼 들리며, gnome-terminal아마도 여러분을 위해 그 모든 것을 관리하는 도구는 아닐 것입니다. tmux소위 여러 가지가있을 수 있습니다창유리한 번에 표시되거나 여러 개 표시될 수 있습니다.윈도우(X11/wayland 의미의 창과 혼동하지 마십시오.) 원하는 대로 이름 바꾸기, 이동, 재정렬, 열기, 닫기 등을 할 수 있는 창을 포함합니다. 이 모든 것은 단일 그놈 터미널 인스턴스 내에서 발생합니다.

tmux그래픽 세계에 종사하는 사람이라면(모두가 1987년 이후에 태어난 사람이겠죠) 다소 혼란스러울 수 있지만시작하기 가이드실제로는 괜찮습니다. 위에서 아래로 읽을 때 중간으로 넘어가려고 하지 마세요. "이봐, 내가 그 안에서 창을 실행하고 있던 게 기억나는데 nvim, 모든 창에서 그 창을 검색할 수 있니?" 와 같은 영리한 작업을 수행할 수 있습니다 .

한번 시도해 보세요. tmux를 설치하고 tmuxgnome 터미널에서 실행하십시오. 일반적인 쉘과 이상한 작은 상태 표시줄이 여러분을 맞이할 것입니다.

top지속적으로 실행되는 시스템 로드 모니터를 얻으려면 실행하세요 . 이것이 시스템 모니터가 있는 창이라는 것을 기억하고 싶기 때문에 ctrl+를 클릭 b한 다음 을 클릭합니다 ,. 상태 표시줄에 주의하세요! 이제 창에 새 이름을 지정하라는 메시지가 표시됩니다. "시스템 모니터링"이 효과가 있다고 생각합니다. 당신한테 달렸습니다. 좋습니다. 키보드 단축키가 있는 것 같습니다. 키보드 단축키가 많이 기억나지 않습니다. 그래서 저는 tmux 명령 인터페이스를 선호합니다. ctrl+를 누른 b다음 를 누르세요 :. 이제 명령을 입력할 수 있습니다. 를 입력 split -h하고 클릭합니다 Enter(자동 완성 기능도 있습니다 tab). 잭, 이제 두 개 남았네요.창유리귀하의 창에서 ( h가로로 분할). 디스크의 여유 공간을 모니터링하고 싶으므로 이 새 창에서 실행해 보세요 watch df -h.

이제 새로운 tmux "창"이 필요합니다. ctrl+ bc( reate c와 같은 c) 키 조합을 기억합니다 . 나는 내가 가장 좋아하는 편집기를 그 안에서 실행합니다(내 경우에는 이것이겠지만, 귀하의 경우에는 그럴 nvim수 있습니다,,,,, emacs...나는 판단하지 않습니다.). 여기서 내가 한 일을 기억하고 싶어서 창 이름을 바꿨습니다. 그런데 이번에는 키보드 단축키( + )를 사용하는 대신 간단히 실행합니다.vimvinanoed
ctrlbtmux rename-window "config edit"

이제 한동안 이 게임을 플레이할 수 있으며 세션에 수백 개의 창이 표시됩니다. 상태 표시줄에 이러한 내용이 나열되어 있지만 실제로 도움이 됩니까? 물론 ctrl+를 사용하면 bf이제 창을 검색할 수 있습니다. 편집기가 느려지기 전에 할머니에게 편지를 쓰기 시작했고 시스템 모니터를 확인한 다음 일부 구성 파일을 편집하기 시작했습니다. 아이디어를 얻었습니다.


^dbus-send --session --print-reply --type=method_call --dest=org.gnome.Terminal "$GNOME_TERMINAL_SCREEN" org.freedesktop.DBus.Introspectable.Introspect

²dbus-send --session --print-reply --type=method_call --dest=org.gnome.Terminal /org/gnome/Terminal/screen org.freedesktop.DBus.Introspectable.Introspect

답변2

Konsole환경 변수를 사용하십시오. 다른 터미널 에뮬레이터에 대해서는 모르겠습니다.

#↳ set | grep -i kon
KONSOLE_DBUS_SERVICE=:1.955
KONSOLE_DBUS_SESSION=/Sessions/2
KONSOLE_DBUS_WINDOW=/Windows/1
KONSOLE_VERSION=221203

고유한 창과 = 탭을 식별하려면 SESSION/ 튜플을 사용해야 하는 것 같습니다 .WINDOWsession

tmux이를 수행하려면 더 강력한 도구를 사용하는 것이 좋습니다 .

관련 정보