tmux 및 tmuxinator를 사용한 개발 워크플로

이 블로그에서는 tmux 및 tmuxinator를 사용하여 개발 환경을 설정하고 시작합니다.

tmuxinator는 tmux를 기반으로 하므로 먼저 tmux와 기본 명령을 살펴본 다음 프로젝트 설정을 위한 yml 템플릿을 만듭니다.

Tmux 소개



Tmux는 터미널 멀티플렉서의 약자입니다.
tmux를 사용하면 한 터미널의 한 창 내에서 다른 창과 창을 만들고 이러한 창과 창 주위를 이동할 수 있습니다.
하나의 터미널 내에서 여러 프로그램 사이를 전환하고 마음대로 분리했다가 다른 터미널에 다시 연결할 수 있습니다.

Tmux 설치


  • 우분투: sudo apt install tmux
  • Windows: 우분투용 wsl 사용`
  • OSX: brew install tmux

  • 터미널을 열고 다음을 입력하여 tmux 세션을 시작하십시오.tmux
    This will open a tmux window.

    Tmux 기본 명령

    1. Create vertical pane: Ctrl + a + %
    2. Create horizontal pane: Ctrl + a +
    3. Switch between panes: Ctrl + a + <- ->
    4. Close down pane: exit or Ctrl + a + x

    Tmux 창 명령

    1. Create new window: Ctrl + a + c
    2. Switch between windows:Ctrl + a + n OR Ctrl + a + p
    3. Switch between windows: Ctrl + a + 0 OR Ctrl + a + 1
    4. Rename windows: Ctrl + a + ,
    5. Exit Windows: exit

    6. Tmux 세션 명령


    7. Tmux 세션 보기: tmux ls
    8. 새 세션 시작: tmux new -s docker
    9. 세션 이름 바꾸기: tmux rename-session -t 0 git
    10. 세션 분리: Ctrl + a + d
    11. 세션 재연결: tmux attach -t 0
    12. 세션 삭제 또는 종료: tmux kill-session -t docker

    13. 이것이 tmuxinator를 사용하는 데 필요한 모든 명령입니다.

      Tmuxinator



      Tmuxinator는 tmux 세션의 레이아웃을 설명하는 yaml 파일을 사용하여 tmux 세션을 쉽게 관리하고 단일 명령으로 해당 세션을 열 수 있는 도구입니다.

      설치: gem install tmuxinator

      Tmuxinator 명령



      새 템플릿 만들기: Tmuxinator new <todo_project_name>
      Edit existing template: Tmuxinator edit <project_name>프로젝트 시작: Tmuxinator start <project_name>

      We have a sample rails project as backend and react project as frontend.

      Usually for development purpose we need.

      1. editor
      2. rails server
      3. sidekiq server
      4. rails console
      5. git for rails project
      6. react npm start
      7. git for react project

      We can create a predefined template using tmuxinator.
      To start creating new project template in terminal: tmuxinator new <project name>

      A editor is opened with yml file for project setup.

      1. Give name to your project
        name: todo

      2. You need to define root of the project
        root: ~/Documents/react-practice/todo-api

      3. Then you can define you different windows are shown
        and commands to execute in that window.
        server: bundle exec rails s -p 4001
        Above will create a window name server and start the rails server in the specified root folder.

      4. You can define panes in window which splits the screen

        react_project:
          root: ~/Documents/react-practice/todo-app
          layout: even-horizontal
          panes:
            - npm start
            - git status
        

        Above will create a window name react_project, change root folder for this window to react app then will start react server and git in 2 horizontal equally split panes.

      5. A sample tmuxinator file for starting rails and react server.

        name: todo
        root: ~/Documents/react-practice/todo-api
        
        windows:
          - editor: vim .
          - server: bundle exec rails s -p 4001
          - sidekiq: bundle exec sidekiq
          - git: git status
          - rails_console: bundle exec rails console
          - react_project:
              root: ~/Documents/react-practice/todo-app
              layout: even-horizontal
              panes:
                - npm start
                - git status
        

        To start the development setup using tmuxinator in terminal.
        tmuxinator start todo

        Tmux session for todo app with different windows and panes.

        To close the todo app tmux session.
        tmuxinator stop todo

        Hope this will help you.
        Thank you for reading

    좋은 웹페이지 즐겨찾기