рд░реВрдмреА рдХреЗ рд╕рд╛рде рд░реЗрд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдПрдХ tmux рд╡рд┐рдВрдбреЛ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛

рд╢реБрдн рджреЛрдкрд╣рд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ c # (asp.net) рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рд░реВрдмреА рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдЙрдмрдВрдЯреВ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рдирд╛ рднреА рдерд╛ред рд░реВрдмреА рдЗрд╕ рдСрдирд▓рд╛рдЗрди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рд╕реАрдЦ рд░рд╣реА рд╣реИ: railstutorial.ru ред рдмреЛрд░реНрдб рдкрд░ рдореИрдВ Ubuntu 13.04 рд╣реИред

RoR рдмреЙрдб рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рд░реЗрд▓ рд╕рд░реНрд╡рд░ рдореЗрдВ, рджреВрд╕рд░реЗ рдЧрд╛рд░реНрдб рдореЗрдВ рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рд╕рд╛рде, рддреАрд╕рд░реЗ рд░реВрдмреА рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрджрд┐ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдореИрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ tmux рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХрдИ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд▓рд┐рдирдХреНрд╕ рдХреЛ рдЯрд░реНрдорд┐рдиреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдорд╛рдлрд╝ рдХрд░реЗрдВ)ред рддрд╕реНрд╡реАрд░ рдореЗрдВ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


Tmux рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ( sudo apt-get install tmux ) рдФрд░ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд░ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИред рдПрдХ "рд▓реЗрдХрд┐рди" рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ tmux рд╡рд┐рдВрдбреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ 5 рдЕрддрд┐рд░рд┐рдХреНрдд рдорд┐рдирдЯ рд╣реИ! рдХреНрдпрд╛ tmux windows рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕рдВрднрд╡ рд╣реИ!

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдХрдИ рд╕рдорд╛рдзрд╛рди рдкрд╛рдП рдЧрдП рдереЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╕рддреНрд░ рдХреЛ рдХреНрд░реЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП, рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдирдЦрд░реЗ рдХреЗ рд╕рд╛рде рдпреЗ рд╕рднреА рдиреГрддреНрдп рдЬрдЯрд┐рд▓ рдереЗ, рди рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рди рд╣реА рдХрд╛рд░реНрдпрд╛рддреНрдордХред рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХ 3 рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ tmux рд╕рддреНрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрдЧрд╛ред
рдкреИрд░рд╛рдореАрдЯрд░ рдпреЗ рдЪрд╛рд╣рддреЗ рдереЗ:


Tmux рдкрд░ рдореИрдиреБрдЕрд▓ рдкрдврд╝рдиреЗ рдФрд░ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ ~ / .bash_ali_ad рдореЗрдВ рдЬреЛрдбрд╝рд╛ред
 alias rapp='cd ~/work/ruby/Apps/sample_app' alias rappo='cd ~/work/ruby/Apps/sample_app && subl .' alias rapps='/bin/bash --login' alias tmux-k='tmux kill-session' alias tmux-ko='tmux kill-server' alias tmux-l='tmux ls' 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдирдореВрдирд╛_рдПрдкреНрдк) рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢реЙрд░реНрдЯрдХрдЯ рдЬреЛрдбрд╝реЗ, рд╕рд╛рде рд╣реА tmux рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢реЙрд░реНрдЯрдХрдЯ рднреА рдЬреЛрдбрд╝реЗред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ tmux-s рдлрд╝рд╛рдЗрд▓ рдХреЛ / bin рдлрд╝реЛрд▓реНрдбрд░ ( sudo touch tmux-s ) рдореЗрдВ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп ( sudo chmod +x tmux-s ) рдмрдирд╛рдпрд╛ред рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рдореЗрд░реА рдЬрд╝рд░реВрд░рдд рдХреЗ рдкреИрдирд▓ рдФрд░ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде tmux рд╕реЗрд╢рди рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ред рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 #!/bin/bash ####################### # Constants flag='0' ####################### # Config Variables session_name="rails" first_window_name="first" second_window_name="second" base_pane_command="rapp && rapps" server_start_comand="rails s" tests_start_comand="guard" project_open_command="rappo" console_open_command="rails c" ####################### # Addpanes add_panes() { tmux split-window -h -t "${session_name}" tmux split-window -v -t "${session_name}" tmux send-keys -t "${session_name}":"${first_window_name}".1 "${base_pane_command}" Cm tmux send-keys -t "${session_name}":"${first_window_name}".2 "${base_pane_command}" Cm tmux send-keys -t "${session_name}":"${first_window_name}".3 "${base_pane_command}" Cm tmux send-keys -t "${session_name}":"${first_window_name}".2 "${server_start_comand}" tmux send-keys -t "${session_name}":"${first_window_name}".3 "${tests_start_comand}" } ####################### # Tmux server start tmux_session_start() { if [ "${flag}" != '1' ] ;then echo "Session ${session_name} start..." tmux new-session -s ${session_name} -n ${first_window_name} -d add_panes fi } ####################### # Rails server start rails_server_start() { tmux send-keys -t "${session_name}":"${first_window_name}".2 Cm } ####################### # Guard start guard_tests_start() { tmux send-keys -t "${session_name}":"${first_window_name}".3 Cm } ####################### # Open project in Sublime Text open_project() { tmux send-keys -t "${session_name}":"${first_window_name}".1 "${project_open_command}" Cm } ####################### # Ruby console start ruby_console_start() { tmux send-keys -t "${session_name}":"${first_window_name}".1 "${console_open_command}" Cm } ####################### # error_param error_param() { tmux kill-session echo "Session ${session_name} killed..." echo "Parameter is incorrect! Avaliable parameters: -s for start Rails server -t for start Gusrd server -o for open project in Sublime Text -c for open Ruby concole" exit 1 } if [ ! ${1} ] ;then tmux_session_start fi while [ ${1} ] ;do case ${1} in -s) tmux_session_start rails_server_start flag='1' shift 1 ;; -t) tmux_session_start guard_tests_start flag='1' shift 1 ;; -o) tmux_session_start open_project flag='1' shift 1 ;; -c) tmux_session_start ruby_console_start flag='1' shift 1 ;; *) error_param ;; esac done echo "Success!" tmux select-pane -L -t "${session_name}" tmux resize-pane -R -t "${session_name}":"${first_window_name}".1 25 tmux new-window -n "${second_window_name}" -t "${session_name}" tmux select-window -t "${session_name}":"${first_window_name}" tmux attach -t "${session_name}" 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ ~ / .tmux.conf рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╣рд╛рдВ рд╕реЗ рджрд░реНрдЬ рдХрд░реЗрдВ: tmux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

рд╡рд╣ рд╕рдм рд╣реИред рдПрдХ рдирдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ, tmux-s рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ tmux рд╡рд┐рдВрдбреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬреЛ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрдк рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рд╡реЗ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ ~ / .bash_aliases рд╕реЗ рдПрд▓рд┐рдпрдВрд╕ рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрде рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВред рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВ, рдкрдЯрдХрдерд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдЬреЛ рдкреБрд╕реНрддрдХ railstutorial.ru рдкрд░ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧрд╛рд░реНрдб рдирд╣реАрдВ рд╣реИ, рддреЛ -t рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ Sublime Text рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

рдХреГрдкрдпрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВред рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реБрдЖрдд рддрдХред рдореИрдВрдиреЗ рдПрдХ рджрд┐рди рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╣рддреНрдпрд╛ рдХреА, рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдореБрдЭреЗ рд░реВрд╕реА-рднрд╛рд╖рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓реЗ)ред рдкрд░реНрдпрд╛рдкреНрдд рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ (рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдирдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдб рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ)ред

Source: https://habr.com/ru/post/In217339/


All Articles