여러 서버에 걸쳐 유사한 환경에서 작업할 때 혼란을 줄입니다.

여러 서버에 걸쳐 유사한 환경에서 작업할 때 혼란을 줄입니다.

원격 서버에 대한 여러 SSH 판매 터미널을 동시에 열어야 하는 경우가 많습니다. ,예를 들어. 개발 및 테스트. 이러한 경로는 애플리케이션과 정확히 동일합니다. 한 창에서 다른 창으로 특정 명령을 실행하면 종종 혼란스러워집니다.

예를 들어, 개발 환경용으로 svn을 업데이트하고 싶지만 테스트 환경에서 실행하면 문제가 발생할 수 있습니다.

단말기를 정밀하게 제어하는 ​​방법을 공유해 주실 수 있나요?

답변1

저는 다양한 환경에 대해 다양한 배경색을 사용합니다.
프로덕션: 빨간색 -
입력하기 전에 생각하세요. 테스트: 노란색 - 이 작업을 수행하시겠습니까?
개발자: Green - 마음껏 미쳐보세요

또 다른 필수 사항은 다른 프롬프트입니다. 호스트 이름을 포함하는 것이 좋습니다.

답변2

분명히 궁극적으로 어떤 터미널에 어떤 명령을 입력했는지 항상 알아야 합니다. 이제 다음을 수행하여 세션을 차별화할 수 있습니다.

  • 다양한 색상의 터미널을 사용하십시오(배경색 포함). 이를 달성하는 한 가지 방법은 다음과 같습니다.단말기그러나 특정 컨텍스트의 경우 셸에서 요청하는 것이 더 유연합니다. 명령 프롬프트 문자열(셸 초기화 파일에 입력한 내용(아래 참조))에서 요청할 가능성이 가장 높습니다.

  • 다른 명령 프롬프트를 사용하십시오. 이는 일반적으로 환경 변수를 설정하여 수행됩니다. 예를 들어 PS1수행해야 할 작업을 정확히 이해하려면 쉘 문서를 읽으십시오. 사용ANSI 이스케이프 시퀀스색상 및/또는 위치 지정을 도입합니다(특히 후자는 일부 터미널에서 출력을 중단할 수 있음).

    Bash의 예는 다음과 같습니다.

    export PS1="^[[31;1m\u@\h:^[[0;1m\w^[[0m "
    

    이는 \u사용자 이름, \h호스트 이름 및 \w현재 작업 디렉터리를 나타내므로 다음과 같은 프롬프트가 표시됩니다.

    예시 팁

    일반적 으로 다음 키를 눌러 삽입되는 ^[이스케이프 문자를 나타냅니다 . 두 문자 가 아니므 로 여기에서 문자 그대로 복사하여 작동할 것으로 기대할 수 없습니다.Ctrl+VEsc^[

    이를 조정할 수 있는 방법은 셀 수 없이 많습니다. 눈에 과도한 긴장을 주지 않고 특히 위험한 터미널에 주의를 끌기 위해 예를 들어 밝은 빨간색 명령을 사용하는 것도 합리적인 선택일 수 있습니다 ^[[0;31;1m. ^[[0m끈).

  • 일부 터미널에서는 특정 이스케이프 시퀀스를 제목으로 해석할 수 있습니다. 이렇게 하면 프롬프트 내용을 창 제목에 넣을 수 있습니다. 이 이스케이프 시퀀스를 무시하도록 지시하지 않는 한 이는 쉘이 명령줄을 적절하게 중단하는 기능을 방해한다는 점에 유의하십시오(물론 색상에도 적용됩니다. 이는 및 bash사이에 "너비가 없는" 부분을 묶어 수행됩니다 ).\[\]

  • 원격 시스템에서 터미널 멀티플렉서를 사용하십시오(로컬에서 사용하는 것도 나쁘지 않습니다). 이는 특히 원격 작업의 경우 아무리 강조해도 지나치지 않으며 연결이 끊어졌을 때 많은 골칫거리를 덜어줄 수 있습니다. AFAIK, 에서 사용자 정의 상태 표시줄을 얻는 것이 가능 screen하지만 사람들은 tmux일반적으로 상상할 수 있는 모든 방법으로 더 나은 방법을 찾으려고 노력합니다.

  • 일부 셸을 사용하면 자신의 기능을 명령 처리에 연결할 수 있으므로 재해가 발생하기 전에 특정 명령을 실행할 것인지 여부를 셸에서 묻도록 할 수 있습니다.

위의 내용을 결합하세요.

관련 정보