Ubuntu Ubuntu 20.04.5 LTS에서 bash 터미널과 GNOME 터미널 에뮬레이터를 사용하고 있습니다. 터미널을 사용할 때의 현재(기본) 동작은 다음과 같습니다.
- 새 터미널 세션을 열면
~
. - 예를 들어, 디렉토리에서 새 터미널 탭을 열면
path/to/dir
새 탭은 해당 디렉토리에서 시작됩니다path/to/dir
.
2)를 변경하지 않고 1)을 변경하고 싶습니다. 에서 새 터미널 세션을 시작하고 싶지만 ~/start
새 탭은 여전히 현재 디렉터리에서 열려 있어야 합니다. 이 목표를 어떻게 달성할 수 있나요?
이 질문에 대한 완벽한 대답( cd /start
에 추가 .bashrc
) 변경 2) - 이렇게 하면 /start
현재 디렉토리에 관계없이 새 탭이 시작됩니다.
같은 답변에 대한 의견을 보면 "새 탭 열기" 동작은 bash 기능이 아니지만 "새 터미널 열기"보다 "새 탭 열기"를 더 많이 만들 수 있는 추가 논리가 있어야 한다고 생각합니다. 2)에 지정된 동작을 보장하는 뭔가가 터미널 에뮬레이터에서 진행되고 있다고 가정합니다. 하지만 확실하지도 않고 어떻게 바꾸는지도 모릅니다.
답변1
셸과 터미널에는 실제로 "기본" 시작 디렉터리가 없습니다.
그들이 가지고 있는 것은 상속된 디렉토리입니다. 실행하는 디렉터리는 상위 프로세스가 이미 위치한 디렉터리입니다.
명시된 목표를 달성하는 두 가지 방법을 생각해 볼 수 있습니다.
~/start
또는 에서 터미널을 열 수 있는 바로가기를 추가하세요/start
.start.desktop
이를 수행하는 파일을 생성하여 초기 터미널로 사용할 수 있습니다 .- 만약 너라면안 돼요홈 디렉터리에서 시작하려면 bashrc에 무언가를 추가하여 이를 감지하고 홈 디렉터리에서 시작하는 경우에만 디렉터리를 변경할 수 있습니다. (그러나
cd
.bashrc에 명령을 추가하는 것은 장기적으로 보면 좋지 않은 생각이라고 생각합니다 .) - 나는 (인용된 대체 질문에서) 디렉토리를 빠르게 변경하기 위해 쉘 별칭을 사용하는 아이디어가 좋은 것이라고 생각합니다. 쉘 설정도 마찬가지입니다
CDPATH
.
"새 탭에서 열기" 기능은 클릭한 그래픽 터미널 또는 그래픽 응용 프로그램의 기능입니다. 일반적으로 bash는 그래픽 응용 프로그램이 아니며 마우스나 기타 GUI 상호 작용 또는 창 열기 등에 대해 아무것도 모릅니다. 터미널에서 새 탭을 여는 것이 상위 탭 대신 이전 탭의 홈 디렉토리를 상속하는 경우 쉘은 이전 탭의 bash에서 이를 복사하는 현명한 작업을 수행합니다.