tmux-এর গভীরে অনুসন্ধান: চূড়ান্ত টার্মিনাল মাল্টিপ্লেক্সার নির্দেশিকা

টিএমইউএক্স কি?
  • tmux একটি একক উইন্ডোর মধ্যে একই সাথে একাধিক টার্মিনাল সেশন চালানো, বিভক্ত করা এবং পরিচালনা করতে সক্ষম করে, যা ডেভেলপমেন্ট, সিস্টেম অ্যাডমিনিস্ট্রেশন এবং রিমোট ওয়ার্কের মতো ক্ষেত্রে নমনীয়তা প্রদান করে।
  • tmux-এর মূল ধারণাগুলো—সেশন, উইন্ডো এবং পেইন—একটি শক্তিশালী সাংগঠনিক কাঠামো প্রদান করে, যা ডিফল্ট টার্মিনাল অ্যাপ্লিকেশনগুলোর তুলনায় উৎপাদনশীলতা এবং ওয়ার্কফ্লো কাস্টমাইজেশনকে অনেক বেশি বাড়িয়ে তোলে।
  • সংযোগ বিচ্ছিন্ন বা হারিয়ে যাওয়ার পরেও tmux সেশনগুলি অক্ষুণ্ণ থাকে, যা স্থানীয় এবং দূরবর্তী উভয় স্থানেই নিরাপদ ও নির্বিঘ্ন SSH ওয়ার্কফ্লো এবং উন্নত মাল্টিটাস্কিংয়ের সুযোগ করে দেয়।
  • এর ব্যাপক কনফিগারেশন, স্ক্রিপ্টিং, প্লাগইন এবং কীবোর্ড শর্টকাট ব্যবহারকারীদের ব্যক্তিগত ও পেশাগত প্রয়োজন অনুযায়ী tmux-কে সাজিয়ে নিতে, Vim-এর মতো টুলের সাথে ইন্টিগ্রেট করতে, একাধিক প্রজেক্টের জন্য ওয়ার্কফ্লো তৈরি করতে এবং কমান্ড-লাইনের কার্যকারিতা বাড়াতে সক্ষম করে।

আপনি যদি কখনও একসাথে অনেকগুলো টার্মিনাল উইন্ডো সামলাতে গিয়ে হিমশিম খেয়ে থাকেন, কোনো রিমোট মেশিনে SSH করার সময় নিজের অবস্থান না হারানোর জন্য আপ্রাণ চেষ্টা করে থাকেন, অথবা আপনার কমান্ড-লাইন ওয়ার্কফ্লো যদি একটি সুসংগঠিত কন্ট্রোল রুমের মতো হতো বলে মনে করে থাকেন, তবে tmux নামের একটি টুল আপনার জীবনটাই বদলে দিতে পারে। সাধারণ ডেভেলপার এবং কমান্ড-লাইনের দক্ষ ব্যবহারকারী, উভয়ের জন্যই tmux হলো সেই বহুমুখী সমাধান যা আপনি সবসময় চেয়েছেন: এটি আপনাকে একাধিক টার্মিনাল এনভায়রনমেন্ট খুলতে, পরিচালনা করতে, বিভক্ত করতে এবং স্থায়ীভাবে সংরক্ষণ করতে দেয়—কোনো বিশৃঙ্খলা নয়, শুধু উৎপাদনশীলতা। কিন্তু tmux আসলে কী? এর অদ্ভুত বৈশিষ্ট্য এবং শক্তিগুলোকে কাজে লাগালে এটি আপনাকে কী দিতে পারে?

চলুন পরিস্থিতিটা কল্পনা করা যাক: আপনি কাজে পুরোপুরি ডুবে আছেন, চারদিকে ট্যাব খোলা, SSH কানেকশন খোলা, বিভিন্ন প্রসেস চলছে, হয়তো এখানে একটি Vim সেশন বা ওখানে একটি শেল স্ক্রিপ্টও চলছে। হঠাৎ আপনার ইন্টারনেট সংযোগ বিচ্ছিন্ন হয়ে গেল, অথবা আপনি কম্পিউটার পরিবর্তন করলেন, কিংবা খোলা উইন্ডোগুলোর ভিড়ে আপনি দিশেহারা হয়ে পড়লেন। tmux-এর সাহায্যে আপনি শুধু আপনার চলমান প্রসেসগুলোকে এই ধরনের ঝামেলা থেকে সুরক্ষিতই করতে পারবেন না, বরং আপনার টার্মিনালকে পাজলের টুকরোর মতো ভাগ করতে, ওয়ার্কস্পেসগুলোর মধ্যে স্বাচ্ছন্দ্যে যাতায়াত করতে এবং কোনো বাধা ছাড়াই কাজ পুনরায় শুরু করতে পারবেন—আপনি কোন মেশিন বা টার্মিনাল এমুলেটর ব্যবহার করছেন তা নির্বিশেষে। আপনি টার্মিনাল মাল্টিপ্লেক্সারের ধারণার সাথে নতুন পরিচিত হন বা উন্নত কাজের জন্য tmux স্ক্রিপ্টিং করে থাকুন না কেন, প্রতিটি কীস্ট্রোকের সর্বোচ্চ ব্যবহার নিশ্চিত করতে এই নির্দেশিকাটি আপনার সঙ্গী হবে।

tmux কী? টার্মিনাল মাল্টিপ্লেক্সার বোঝা

tmux, যার পূর্ণরূপ 'টার্মিনাল মাল্টিপ্লেক্সার', এমন একটি প্রোগ্রাম যা আপনাকে একটিমাত্র উইন্ডো বা রিমোট সংযোগের মাধ্যমে একাধিক স্বাধীন টার্মিনাল সেশন চালানো এবং নিয়ন্ত্রণ করার সুযোগ দেয়। উন্নত পরিবেশে tmux-এর আরও বেশি সুবিধা কীভাবে নেওয়া যায়, তা জানতে আপনি এই রিসোর্সটিও দেখতে পারেন (https://www.ikkaro.net/android-17-linux-terminal/)।

লোকেরা tmux কেন ভালোবাসে? এর অনেক বাস্তব কারণ রয়েছে:

  • একই সাথে একাধিক কর্মপরিবেশ: আপনি এখানে এডিটর, ওখানে লগ, এক প্যানে সার্ভার চালানো এবং অন্য প্যানে পারফরম্যান্স পর্যবেক্ষণ করতে পারেন।
  • অধ্যবসায়: আপনার টার্মিনাল বন্ধ হয়ে গেলেও, সংযোগ বিচ্ছিন্ন হলেও বা আপনি সরে গেলেও প্রসেসগুলো চলতে থাকে। আপনি চলে যেতে পারেন এবং পরে ঠিক যেখান থেকে ছেড়ে গিয়েছিলেন, সেখান থেকেই আবার ফিরে আসতে পারেন।
  • রিমোট কাজ: বিশেষ করে SSH-এর ক্ষেত্রে, tmux সার্ভারে সেশন সচল রেখে নেটওয়ার্ক বিচ্ছিন্ন হয়ে গেলে আপনার কাজ নষ্ট হওয়া থেকে রক্ষা করে।
  • কাস্টমাইজেশন: Tmux-কে ব্যাপকভাবে কাস্টমাইজ করা যায়। এর বিস্তৃত কনফিগারেশন অপশন, স্ক্রিপ্টিং সুবিধা এবং প্লাগইন এটিকে অনেক পাওয়ার-ইউজার টুলকিটের একটি অপরিহার্য অংশ করে তুলেছে।

সংক্ষেপে, tmux শুধু আপনাকে একটি টার্মিনাল ভাগ করার সুযোগই দেয় না—এটি আপনার কাজে শৃঙ্খলা, সুবিধা এবং একটি শক্তিশালী সাংগঠনিক কাঠামো নিয়ে আসে, যা একটি সাধারণ শেলকে CLI-এর জন্য একটি শক্তিশালী ডেস্কটপ এনভায়রনমেন্টের মতো কিছুতে পরিণত করে। আপনি যদি GNU Screen ব্যবহার করে থাকেন , তবে tmux একই ধরনের ধারণার উপর ভিত্তি করে তৈরি, কিন্তু এর কোড আরও পরিচ্ছন্ন ও আধুনিক এবং এর সম্প্রসারণযোগ্যতাও উন্নত।

মৌলিক ধারণা: সেশন, উইন্ডো এবং প্যান

tmux ভালোভাবে বুঝতে হলে, আপনাকে তিনটি মূল ধারণা আয়ত্ত করতে হবে যা সবকিছুকে সচল রাখে: সেশন, উইন্ডো এবং পেইন। একবার এগুলোতে দক্ষতা অর্জন করলে, আপনি খুব অল্প সময়েই নিজের মতো করে টার্মিনাল ওয়ার্কস্পেস ডিজাইন করতে পারবেন।

দায়রা

tmux-এ একটি সেশন হলো আপনার সর্বোচ্চ স্তরের কন্টেইনার। প্রতিবার tmux চালু করার সময়, আপনি একটি নতুন সেশন তৈরি করেন। সেশনগুলো বিভিন্ন প্রজেক্ট, রিমোট কানেকশন বা ওয়ার্কফ্লোকে উপস্থাপন করতে পারে। আপনি ব্যাকগ্রাউন্ডে একাধিক সেশন চালু রাখতে পারেন, যেগুলোর প্রতিটি বাইরের জগৎ থেকে বিচ্ছিন্ন থাকে যতক্ষণ না আপনি সেটিতে অ্যাটাচ (বা সুইচ) করার সিদ্ধান্ত নেন।

  • সেশন = উইন্ডো এবং তাদের কাঁচের সমষ্টি।
  • আপনি টার্মিনাল সংযোগ বিচ্ছিন্ন করলে বা বন্ধ করলেও এগুলো সক্রিয় (এবং চালু) থাকতে পারে।
  • এরপর আপনি যেকোনো জায়গা থেকে যেকোনো সেশনে পুনরায় যুক্ত হতে পারবেন—এটা অনেকটা আপনার সম্পূর্ণ CLI ওয়ার্কস্পেসকে ডিভাইস বা টার্মিনালের মধ্যে টেলিপোর্ট করার মতো।

আপনার কর্মপ্রবাহকে আরও উন্নত করতে এই টার্মিনাল গাইডগুলো থেকে tmux এবং অন্যান্য কমান্ডের সর্বোচ্চ ব্যবহার করার উপায় শিখুন ।

উইন্ডোজ

প্রতিটি সেশনের মধ্যে, tmux উইন্ডো ব্যবহার করে আপনার কাজ সাজিয়ে রাখে। প্রতিটি উইন্ডো একটি পূর্ণ-স্ক্রিন টার্মিনালের মতো কাজ করে, যাকে প্যানে ভাগ করা যায়। আপনি উইন্ডো পরিবর্তন করতে পারেন, সেগুলোর নাম দিতে পারেন (যেমন, 'deployment', 'logs', 'editor'), এবং সেগুলোকে আপনার সেশনের মধ্যে আলাদা ওয়ার্কস্পেস হিসেবে ব্যবহার করতে পারেন।

  • উইন্ডো = এক বা একাধিক প্যানেলের সমষ্টি, যা আপনার প্রকল্পের কোনো একটি কাজ বা উপসেটকে উপস্থাপন করে।
  • উইন্ডো পরিবর্তন করা তাৎক্ষণিক এবং এর বিষয়বস্তু সক্রিয় থাকে—যদি আপনি কোনো বিল্ড চালু রেখে দেন, তবে অন্য উইন্ডোতে কাজ করার সময়েও সেটি চলতে থাকবে।
  • উইন্ডোগুলোতে ইনডেক্স (সংখ্যাযুক্ত, অথবা ঐচ্ছিক নিজস্ব নামসহ) থাকে, যা আপনি শর্টকাট ও নেভিগেশনের জন্য ব্যবহার করতে পারেন।

প্যানেল

প্যান-এর মাধ্যমেই মাল্টিটাস্কিং বাস্তবে রূপ নেয়। একটি উইন্ডোর মধ্যে, আপনি ভিউটিকে একাধিক 'টাইল' বা প্যানে ভাগ করতে পারেন, যার প্রতিটিতে নিজস্ব প্রোগ্রাম, কমান্ড বা শেল চলতে পারে। আপনি সেগুলোকে আনুভূমিক বা উল্লম্বভাবে ভাগ করতে, সরাতে, আকার পরিবর্তন করতে এবং প্রয়োজনে সবগুলোর মধ্যে ইনপুট সিঙ্কও করতে পারেন।

  • প্যান = একটি নির্দিষ্ট সেশনের উইন্ডোর মধ্যে চলমান একটি স্বতন্ত্র টার্মিনাল।
  • এগুলোকে আলাদাভাবে ভাগ করা, আকার পরিবর্তন করা, বড় বা ছোট করা এবং সরানো যায়।
  • আপনি প্রতিটি প্যানে এমনভাবে ব্যবহার করতে পারবেন যেন সেটি একটি স্বতন্ত্র টার্মিনাল।

এর মূল রহস্যটা হলো, এগুলো সবই একসঙ্গে কাজ করে: আপনি কাজের জন্য একটি সেশন, প্রজেক্ট বা টাস্কের জন্য একাধিক উইন্ডো রাখতে পারেন এবং আপনার কাজের ধারা অনুযায়ী প্রতিটি উইন্ডোকে বিভিন্ন প্যানে ভাগ করতে পারেন।

বাস্তব পরিস্থিতি: কেন tmux দারুণ

১. রিমোট ডেভেলপমেন্ট এবং এসএসএইচ

tmux-এর সবচেয়ে শক্তিশালী বৈশিষ্ট্যগুলোর মধ্যে একটি হলো রিমোট পরিবেশে এর স্থিতিশীলতা। কল্পনা করুন, আপনি SSH-এর মাধ্যমে একটি রিমোট সার্ভারে সংযুক্ত আছেন এবং দীর্ঘ প্রক্রিয়া বা বিল্ড চালাচ্ছেন। tmux ছাড়া, সংযোগ বিচ্ছিন্ন হয়ে গেলে আউটপুট হারিয়ে যাওয়ার বা কাজে বাধা সৃষ্টি হওয়ার সম্ভাবনা থাকে। tmux-এর সাহায্যে, আপনি কেবল আপনার সেশন থেকে বিচ্ছিন্ন হন এবং পরে (এমনকি কয়েক দিন পরেও) পুনরায় সংযোগ করে ঠিক যেখান থেকে ছেড়েছিলেন সেখান থেকেই আবার শুরু করতে পারেন—আপনার প্রক্রিয়াগুলো কোনো বাধা ছাড়াই চলতে থাকে।

২. একাধিক প্রকল্প এবং কর্মপ্রবাহ পরিচালনা করা

যেসব ডেভেলপার একসাথে অনেকগুলো প্রজেক্ট নিয়ে কাজ করেন, এবং প্রতিটির নিজস্ব ডিরেক্টরি, ডিপেন্ডেন্সি ও চলমান প্রসেস থাকে, তাদের জন্য tmux একটি চমৎকার টুল। উদাহরণস্বরূপ, আপনি 'clientA' নামে একটি সেশন তৈরি করতে পারেন, যেখানে 'frontend', 'backend', 'database' এবং 'logs'-এর জন্য আলাদা উইন্ডো থাকবে। প্রতিটি উইন্ডোকে এডিটর, টেস্ট এবং কনসোল আউটপুটের জন্য আলাদা প্যানে ভাগ করা যায়। 'clientB'-তে যেতে হবে? পরবর্তী সেশনে ডিটাচ এবং রিঅ্যাটাচ করুন।

৩. যুগপৎ টুল, এডিটর এবং মনিটর

tmux আপনার শেলকে একটি প্রোডাক্টিভিটি ককপিটে পরিণত করে। হতে পারে আপনি একই সাথে লগ ফাইল দেখতে, লাইভ কমান্ড চালাতে, একটি কুবারনেটিস ক্লাস্টার মনিটর করতে এবং কোড এডিট করতে চান। tmux-এর সাহায্যে, আপনি আপনার পছন্দমতো প্যানগুলো ভাগ করতে পারেন, এবং প্রতিটি প্যানকে আপনার ইচ্ছামতো স্বাধীন রাখতে পারেন। নিয়মিত ব্যবহারকারীরা তাদের দৈনন্দিন কাজের প্রতিফলন ঘটিয়ে কাস্টম লেআউট তৈরি করেন—একটি প্যানে এডিটর, অন্যটিতে সার্ভার আউটপুট, এবং তৃতীয়টিতে ডেপ্লয়মেন্ট টুলস।

৪. দল, যুগল প্রোগ্রামিং এবং শিক্ষাদান

যেহেতু tmux-এ একই সময়ে একটি সেশনে একাধিক ক্লায়েন্ট সংযুক্ত থাকতে পারে, তাই এটি পেয়ার প্রোগ্রামিংয়ের জন্য আদর্শ। দুই বা ততোধিক ব্যক্তি একই tmux সেশনে সংযুক্ত হয়ে সরাসরি সহযোগিতা করতে এবং রিয়েল টাইমে একে অপরের কার্যকলাপ দেখতে পারেন—যা রিমোট কোড রিভিউ, ডিবাগিং বা CLI কনসেপ্ট শেখানোর জন্য উপযুক্ত।

আরো দেখুন  উবুন্টুতে হোয়াটসঅ্যাপ ইনস্টল করার সম্পূর্ণ নির্দেশিকা: পদ্ধতি, টিপস এবং সেরা অনুশীলন

শুরু করা: ইনস্টলেশন এবং প্রথম পদক্ষেপ

tmux কীভাবে ইনস্টল করবেন

tmux প্রায় যেকোনো ইউনিক্স-সদৃশ অপারেটিং সিস্টেমে কাজ করে—লিনাক্স, ম্যাকওএস, *বিএসডি, এবং এমনকি WSL বা Cygwin-এর মাধ্যমে উইন্ডোজেও। বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে, আপনি এটি সরাসরি আপনার প্যাকেজ ম্যানেজার থেকে ইনস্টল করতে পারেন:

  • ডেবিয়ান/উবুন্টু: sudo apt install tmux
  • ফেডোরা/লাল টুপি: sudo dnf install tmux
  • আর্কিটেকচার লিনাক্স sudo pacman -S tmux
  • ম্যাকওএস (হোমব্রু সহ): brew install tmux

ইনস্টলেশনটি পরীক্ষা করতে চান? আদর্শ tmux -V ইনস্টল করা সংস্করণটি দেখতে।

একটি tmux সেশন শুরু করা

আপনার প্রথম tmux সেশন শুরু করতে, কেবল 'tmux' কমান্ডটি চালান:

tmux

আপনি এখন একটি ডিফল্ট সেশনে (যাকে প্রায়শই সেশন ০ বলা হয়) আছেন, যেখানে আপনার প্রথম উইন্ডো এবং পেইনটি আপনার সাধারণ শেল এনভায়রনমেন্ট হিসেবে কাজ করছে। আপনি স্বাভাবিকভাবে কমান্ড চালানো শুরু করতে পারেন।

বিচ্ছিন্ন করা এবং পুনরায় সংযুক্ত করা

tmux-এর আসল উপযোগিতা তখনই বোঝা যায়, যখন আপনি আপনার সেশন থেকে বিচ্ছিন্ন হয়ে পরে আবার তাতে ফিরে আসেন। বিচ্ছিন্ন করতে, প্রিফিক্স কী ব্যবহার করুন (ডিফল্টরূপে) Ctrl+b, যাকে কখনও কখনও 'tmux লিডার' বলা হয়) এর পরে d:

Ctrl+b d

আপনার tmux সেশনটি এখন ব্যাকগ্রাউন্ডে নিরাপদে চলছে এবং আপনার ফিরে আসার অপেক্ষায় রয়েছে।

পুনরায় সংযুক্ত হতে, উপলব্ধ সেশনগুলির তালিকা দিন:

tmux ls

তারপর, সাথে:

tmux attach -t session_number_or_name

যদি আপনার কেবল একটি সেশন থাকে, tmux attach অথবা এমনকি tmux a যথেষ্ট।

আপনার কাজ সংগঠিত করা: সেশন, উইন্ডো এবং প্যানগুলির বিশদ বিবরণ

সেশন তৈরি এবং পরিচালনা করা

আপনি এইভাবে একটি নতুন সেশন (নিজস্ব নাম দিয়ে) তৈরি করতে পারেন:

tmux new -s my_session

বর্তমান সকল সেশন তালিকাভুক্ত করুন:

tmux ls

একটি নির্দিষ্ট সেশনে সংযুক্ত করুন:

tmux attach -t my_session

একটি সেশন বন্ধ করুন (tmux-এর বাইরে বা ভিতরে থেকে):

tmux kill-session -t my_session

উইন্ডোজ: যোগ করা, নাম পরিবর্তন করা, নেভিগেট করা

একটি নতুন উইন্ডো তৈরি করুন:

Ctrl+b c

উইন্ডোগুলির মধ্যে স্যুইচ করুন:

Ctrl+b n   # Next window Ctrl+b p   # Previous window

সংখ্যা অনুসারে পরিবর্তন করুন:

Ctrl+b 0   # Window 0 Ctrl+b 1   # Window 1 ... up to 9

সহজ ব্যবস্থাপনার জন্য একটি উইন্ডোর নাম পরিবর্তন করুন:

Ctrl+b ,

প্যান: আপনার দৃশ্যকে বিভক্ত করা এবং পরিচালনা করা

বর্তমান উইন্ডোটিকে উল্লম্বভাবে ভাগ করুন (ডানদিকের প্যানে):

Ctrl+b %

অনুভূমিকভাবে বিভক্ত করুন (নীচের প্যানে):

Ctrl+b "

প্যানগুলির মধ্যে সরান (অ্যারো কী বা ব্যবহার করে) hjkl):

Ctrl+b (Arrow)  or  Ctrl+b h/j/k/l

প্যানগুলি অদলবদল বা সরান:

  • পূর্ববর্তী প্যানে যান: Ctrl+b o
  • প্যানগুলি ঘোরান: Ctrl+b Ctrl+o
  • প্যানটি বামে/ডানে সরান: Ctrl+b { এবং Ctrl+b }
  • বর্তমান প্যানটি বন্ধ করুন: Ctrl+b x

ডাইনামিকভাবে প্যানগুলির আকার পরিবর্তন করুন Ctrl+b অ্যারো কী-গুলোর সাথে (সূক্ষ্ম সমন্বয়ের জন্য):

  • ছোট পদক্ষেপ: Ctrl+b Ctrl+arrow
  • বড় পদক্ষেপ: Ctrl+b Alt+arrow

একটি প্যানকে পূর্ণ স্ক্রিনে জুম করতে এবং এটিকে পুরো উইন্ডো জুড়ে দেখাতে:

Ctrl+b z

দরকারি মান: tmux-এর কী কম্বিনেশন

tmux-এর সৌন্দর্য হলো কিবোর্ড শর্টকাটের মাধ্যমে দ্রুত নেভিগেশন এবং নিয়ন্ত্রণ। এখানে এমন কিছু শর্টকাট দেওয়া হলো যা আপনি প্রতিদিন ব্যবহার করবেন:

  • tmux চালু করুন: tmux
  • সেশনটি বিচ্ছিন্ন করুন: Ctrl+b d
  • সেশনগুলির তালিকা: tmux ls
  • একটি সেশনে সংযোগ করুন: tmux attach -t session_name
  • নতুন উইন্ডো: Ctrl+b c
  • পরবর্তী/পূর্ববর্তী উইন্ডো: Ctrl+b n / Ctrl+b p
  • উইন্ডোর নাম পরিবর্তন করুন: Ctrl+b ,
  • উল্লম্বভাবে/অনুভূমিকভাবে প্যান বিভক্ত করুন: Ctrl+b % / Ctrl+b "
  • প্যানগুলির মধ্যে নেভিগেট করুন: Ctrl+b arrows or Ctrl+b h/j/k/l
  • প্যান/উইন্ডো বন্ধ করুন: Ctrl+b x / Ctrl+b &
  • একটি প্যান জুম করুন: Ctrl+b z
  • সমস্ত শর্টকাট দেখান: Ctrl+b ?

সম্পূর্ণ তথ্যের জন্য ম্যানুয়াল অথবা অফিসিয়াল tmux উইকি দেখুন ।

স্ট্যাটাস বার এবং ভিজ্যুয়াল কাস্টমাইজেশন

tmux-এর ইন্টারফেসটি শুধু কার্যকরীই নয়—এটি এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি এক নজরেই সবকিছু বুঝতে পারেন এবং স্ট্যাটাস বারের মাধ্যমে আপনার ওয়ার্কস্পেসগুলোতে দ্রুত অ্যাক্সেস পান।

স্ট্যাটাস লাইন

ডিফল্টরূপে, tmux টার্মিনালের নীচে একটি স্ট্যাটাস বার দেখায়। স্ট্যাটাস লাইনে আপনার সেশন, উইন্ডোর নাম ও ইন্ডেক্স, সক্রিয় উইন্ডো (যা সাধারণত হাইলাইট করা থাকে), এবং প্রয়োজনীয় সিস্টেম তথ্য (হোস্ট, সময়, তারিখ) দেখানো হয়।

  • বাম দিকে সংযুক্ত সেশনটি দেখানো হয় (যেমন, ”)।
  • মাঝখানে সমস্ত উইন্ডোর নাম ও তাদের সূচক দেখানো হয় এবং সক্রিয় উইন্ডোটিকে বিশেষভাবে তুলে ধরা হয়।
  • ডান দিকে বর্তমান হোস্ট, সময় ও তারিখ দেখানো হয়।

স্ট্যাটাস বার কাস্টমাইজ করা

স্ট্যাটাস বারটি এর মাধ্যমে ব্যাপকভাবে কাস্টমাইজ করা যায়। .tmux.conf কনফিগারেশন ফাইল. আপনি আরও তথ্য প্রদর্শন করতে, রং পরিবর্তন করতে, ব্যাটারি ইন্ডিকেটর যোগ করতে, অথবা ডাইনামিক কন্টেন্টের জন্য এমবেডেড কমান্ড চালাতে পারেন। উদাহরণস্বরূপ:

  • বারের রঙ পরিবর্তন করুন: set -g status-style bg=cyan
  • নিষ্ক্রিয় উইন্ডোর রঙ সেট করুন: set -g window-status-style bg=yellow
  • বর্তমান উইন্ডো হাইলাইট করুন: set -g window-status-current-style bg=red,fg=white

tmux-এর বিল্ট-ইন ফরম্যাটিং এবং এমবেডেড শেল এক্সপ্রেশন ব্যবহার করে আপনি স্ট্যাটাস বার উইজেট থেকে শুরু করে উইন্ডোর শিরোনাম প্রদর্শনের পদ্ধতি পর্যন্ত প্রায় প্রতিটি ইন্টারফেস এলিমেন্টের জন্য স্ক্রিপ্ট ও স্টাইল তৈরি করতে পারেন।

মাউস ব্যবহার এবং উন্নত নেভিগেশন

সবাই যে কেবল কিবোর্ড ব্যবহারে কট্টর, তা নয়—tmux মাউসও ব্যবহার করতে পারে। যদিও কিবোর্ড শর্টকাট সবচেয়ে দ্রুততম উপায়, আপনি প্যান/উইন্ডো নির্বাচন, আকার পরিবর্তন বা ড্র্যাগ করতে, ট্যাব পরিবর্তন করতে এবং কনটেক্সট মেনুর সাথে ইন্টারঅ্যাক্ট করতে মাউস সাপোর্ট চালু করতে পারেন (tmux 3.x থেকে শুরু করে):

  • মাউস মোড সক্রিয় করুন (অস্থায়ীভাবে): tmux-এর ভেতর থেকে, Ctrl+b : অভ্যন্তরীণ কমান্ড লাইন অ্যাক্সেস করতে, তারপর:
  • set -g mouse on
  • এখন আপনি পেনের বর্ডার ক্লিক করে ড্র্যাগ করতে, উইন্ডো নির্বাচন করতে, অথবা রাইট-ক্লিক পপ-আপ মেনুর সাথে ইন্টারঅ্যাক্ট করতে পারবেন।

এটিকে স্থায়ী করতে, যোগ করুন set -g mouse on তোমার .tmux.conf ফাইল.

কনফিগারেশন: আপনার পরিবেশের নিয়ন্ত্রণ নিন

আপনার কাজের ধরনের সাথে মানানসই করে সাজিয়ে নিলেই tmux-এর আসল শক্তি উন্মোচিত হয়। tmux একটি কনফিগারেশন ফাইল ব্যবহার করে—~/.tmux.confকাস্টম শর্টকাট, স্ট্যাটাস বার লেআউট, কালার স্কিম, প্লাগইন এবং আরও অনেক কিছু সংরক্ষণ করতে।

মূল কনফিগারেশন বিকল্প

    • প্রিফিক্স কী পরিবর্তন করুন: If Ctrl+b অস্বস্তি বোধ হলে বা অন্যান্য টুলের সাথে সাংঘর্ষিক হলে, আপনি এটি পরিবর্তন করতে পারেন, উদাহরণস্বরূপ, Ctrl+a (GNU Screen-এর মতো) নিম্নলিখিতগুলির সাথে .tmux.conf:
set -g prefix C-a unbind C-b bind C-a send-prefix
  • পেনের আচরণ কাস্টমাইজ করুন: উদাহরণস্বরূপ, সিঙ্ক্রোনাইজেশন চালু করুন (একই সাথে সমস্ত প্যানে টাইপ করা) অথবা স্বয়ংক্রিয় লেআউট পরিবর্তন করুন।
  • উইন্ডো এবং পেনের মধ্যে নেভিগেশন কীগুলি কনফিগার করুন: আপনি মানচিত্র তৈরি করতে পারেন Alt+arrows আপনি চাইলে প্যানগুলির মধ্যে পরিবর্তন করতে পারেন।

উদাহরণ সেটিংস .tmux.conf

# Change status bar color set -g status-style bg=blue # Show only the time on the right set -g status-right '%H:%M' # Underline the current window set -g window-status-current-style 'underscore' # Enable mouse set -g mouse on

আপনার কনফিগারেশন লাইভে সংরক্ষণ ও পুনরায় লোড করুন:

tmux source-file ~/.tmux.conf

অন্বেষণ করার মতো অনেক কিছু আছে। অনুপ্রেরণার জন্য ওপেন-সোর্স কনফিগারেশন রিপোজিটরি বা উইকি দেখতে পারেন।

কমান্ড-লাইন ক্ষমতা এবং স্ক্রিপ্টিং

tmux শুধু ম্যানুয়াল বা ইন্টারেক্টিভ ব্যবহারের জন্যই নয়। এটি স্ক্রিপ্টিং এবং অটোমেশনের জন্য আদর্শ। আপনি শেল স্ক্রিপ্ট থেকে সেশন, উইন্ডো এবং প্যান চালু, সংযুক্ত, বন্ধ এবং নিয়ন্ত্রণ করতে পারেন, যা tmux-কে শক্তিশালী রিমোট অ্যাডমিনিস্ট্রেশন, CI/CD পরিকাঠামো বা পুনরুৎপাদনযোগ্য ডেভেলপমেন্ট এনভায়রনমেন্টের ভিত্তি করে তোলে (যেমন: কয়েক সেকেন্ডের মধ্যে টেস্ট, সার্ভার এবং এডিটরসহ ১০টি স্প্লিট প্যান তাৎক্ষণিকভাবে পুনরায় খোলা)।

  • প্রজেক্ট, সার্ভার বা ক্ষণস্থায়ী ডেভেলপমেন্ট এনভায়রনমেন্ট চালু করার জন্য স্ক্রিপ্ট সেশন।
  • সঙ্গে মেশা tmux-resurrect রিস্টার্টের পরে সম্পূর্ণ লেআউট সংরক্ষণ এবং পুনরুদ্ধার করতে।
  • প্যান আউটপুট ফাইল বা অন্যান্য প্রোগ্রামে পাঠান, অথবা রিয়েল টাইমে অন্যদের সাথে শেয়ার করুন।

কপি, পেস্ট এবং ইতিহাস

টার্মিনাল সেশনে কপি ও পেস্ট করার জন্য মাউস ব্যবহার করতে করতে যদি আপনি ক্লান্ত হয়ে পড়েন, তবে স্ক্রলব্যাক বাফার এবং ক্লিপবোর্ড পরিচালনার জন্য tmux-এর নিজস্ব শক্তিশালী সিস্টেম রয়েছে। কপি মোড চালু করুন:

Ctrl+b নামযুক্ত এবং নামবিহীন পেস্ট বাফার পরিচালনা করা যায়, এবং সঠিক কনফিগারেশনের মাধ্যমে, নির্বিঘ্নে কপি ও পেস্ট করার জন্য tmux সিস্টেম ক্লিপবোর্ডের সাথে সমন্বিত হতে পারে।

এই সিস্টেমটি গবেষণা, কোড পর্যালোচনা বা ডেটা প্রক্রিয়াকরণে সাহায্য করে, যার মাধ্যমে কোনো ঝামেলা ছাড়াই লগ আউটপুট বা ফলাফল কপি করা সহজ হয়।

আরো দেখুন  রিয়েল-টাইম অপারেটিং সিস্টেম (RTOS) কী? সম্পূর্ণ নির্দেশিকা

উন্নত বৈশিষ্ট্যসমূহ: ফ্লোটিং প্যান, লেআউট, ট্রি মোড এবং মেনু

ভাসমান প্যান (tmux 3.8+)

ফ্লোটিং পেইন একটি পেইনকে বর্তমান গ্রিড লেআউটের উপরে পৃষ্ঠতলে (একটি পপ-আপ উইন্ডোর মতো) বসতে দেয়। ব্যবহার Ctrl+b * একটি ভাসমান প্যান তৈরি করতে; এরপর আপনি এটিকে স্বাধীনভাবে সরাতে ও আকার পরিবর্তন করতে পারবেন, এমনকি মাউস দিয়েও।

লেআউট: এক ট্যাপে সাজিয়ে নিন

বিভিন্ন স্বয়ংক্রিয় লেআউটের মধ্যে পরিবর্তন করুন:

  • এমনকি অনুভূমিক বিন্যাস: Ctrl+b M-1
  • এমনকি উল্লম্ব বিন্যাস: Ctrl+b M-2
  • প্রধান অনুভূমিক (একটি বড় ফলক এবং অন্যগুলো বিভক্ত): Ctrl+b M-3
  • প্রধান উল্লম্ব: Ctrl+b M-4
  • টাইল্ড: Ctrl+b M-5

ট্রি মোড: একটি ভিজ্যুয়াল ব্রাউজার

ট্রি মোডের মাধ্যমে আপনার সেশন, উইন্ডো এবং প্যানগুলো দৃশ্যমানভাবে ব্রাউজ করুন:

  • এটা দিয়ে শুরু করুন Ctrl+b s (অধিবেশন) অথবা Ctrl+b w (উইন্ডোজ)। নেভিগেট করতে, চিহ্নিত করতে, নির্বাচন করতে বা একসাথে অনেকগুলো মুছে ফেলতে অ্যারো কী ব্যবহার করুন।
  • তালিকার নিচের প্রিভিউটি আপনাকে প্রতিটি প্যান/উইন্ডো/সেশনে কী আছে তা শনাক্ত করতে সাহায্য করে।

মেনু এবং ক্লায়েন্ট ব্যবস্থাপনা

tmux-এ একই সেশনে একাধিক সংযোগ পরিচালনার জন্য কনটেক্সট মেনু এবং একটি ক্লায়েন্ট মোড অন্তর্ভুক্ত রয়েছে। পপ-আপ মেনুর জন্য ডান-ক্লিক করুন, এবং ব্যবহার করুন Ctrl+b D ক্লায়েন্ট পরিচালনা করতে (বিচ্ছিন্ন করা, বন্ধ করা, সক্রিয় সেশনগুলির পূর্বরূপ দেখা ইত্যাদি)।

প্লাগইন: tmux-কে পরবর্তী স্তরে নিয়ে যান

tmux-এর দীর্ঘস্থায়ী জনপ্রিয়তার অন্যতম রহস্য হলো এর প্রাণবন্ত প্লাগইন ইকোসিস্টেম, যা প্লাগইন ম্যানেজার (tpm)- এর মাধ্যমে সহজেই পরিচালনা করা যায় । প্লাগইন ব্যবহার করে আপনি যা করতে পারেন:

  • ওয়ার্কস্পেসগুলি সংরক্ষণ এবং পুনরুদ্ধার করুন
  • রিস্টার্টের পরেও স্ক্রলব্যাক হিস্ট্রি বজায় রাখুন tmux-continuum
  • স্ট্যাটাস বারের উন্নত তথ্য, আবহাওয়া, ব্যাটারি এবং আরও অনেক কিছু পান।

এই সম্প্রসারণযোগ্যতা tmux-কে টার্মিনাল ওয়ার্কফ্লোর প্রতিটি নতুন প্রজন্মের সাথে তাল মিলিয়ে চলতে সাহায্য করে।

নেপথ্যে: tmux-এর সার্ভার, ক্লায়েন্ট এবং স্থাপত্য

tmux একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচারে কাজ করে। আপনি প্রথম কমান্ডটি চালালেই tmux সার্ভারটি স্বয়ংক্রিয়ভাবে চালু হয়ে যায়; আপনার সমস্ত সেশন, উইন্ডো এবং পেনের ডেটা সার্ভারে সুরক্ষিত থাকে এবং ক্লায়েন্টরা (অর্থাৎ, আপনার টার্মিনালগুলো) নির্বিঘ্নে সংযোগ ও বিচ্ছিন্ন করতে পারে।

  • সমস্ত সক্রিয় অবস্থা সার্ভার প্রসেস দ্বারা পরিচালিত হয়, ফলে টার্মিনাল পরিবর্তন করলেও (এমনকি কম্পিউটার পরিবর্তন করলেও, যতক্ষণ আপনি পুনরায় সংযোগ স্থাপন করছেন) আপনার কাজ কখনও নষ্ট হয় না।
  • ক্লায়েন্ট হলো সেই ইন্টারফেস যা ব্যবহার করে আপনি tmux-এর সাথে ইন্টারঅ্যাক্ট করেন। একই সেশনে একাধিক ক্লায়েন্ট সংযুক্ত থাকতে পারে—যারা সবাই রিয়েল টাইমে একই উইন্ডো এবং প্যান দেখতে ও সম্পাদনা করতে পারে।

কনফিগারেশন সম্পর্কে আরও বিস্তারিত: উন্নত পরামর্শ

tmux-এর কনফিগারেশন সিস্টেমটি খুবই বিশদ—এটি এনভায়রনমেন্ট ভেরিয়েবল, এমবেডেড কমান্ড এবং আরও অনেক কিছু পরিচালনা করে। কনফিগারেশন ফাইল (.tmux.confসার্ভার চালু হওয়ার সময় ডেটা পার্স করা হয়, যা আপনাকে নিম্নলিখিত কাজগুলো করতে দেয়:

  • কাস্টম প্রিফিক্স, রং এবং ফরম্যাট নির্ধারণ করুন
  • চাইল্ড প্রসেসগুলিতে এনভায়রনমেন্ট ভেরিয়েবল পাস করুন
  • অদলবদল vi এবং emacs কপি মোডে শর্টকাট
  • জটিল অটোমেশনের জন্য স্ক্রিপ্ট এবং হুক যোগ করুন (উদাহরণস্বরূপ, লোড হওয়ার সাথে সাথে নির্দিষ্ট প্রোগ্রাম চালু করা বা নির্দিষ্ট ট্রিগারে স্ট্যাটাস বার পুনর্বিন্যাস করা)।
  • টিমের সাথে বা গিটহাবে শেয়ার করার জন্য আপনার কনফিগারেশনটি মন্তব্যসহ সাজিয়ে নিন।

রিস্টার্ট না করেই একটি বিকল্প কনফিগারেশন লোড করতে চান? ব্যবহার করুন:

tmux source-file /path/to/file

যদিও tmux-এর কনফিগারেশন একটি পূর্ণাঙ্গ স্ক্রিপ্টিং ল্যাঙ্গুয়েজ নয়, এর বৈশিষ্ট্যগুলো (যেমন ভ্যারিয়েবল এক্সপ্যানশন, এমবেডেড কমান্ড এবং কন্ডিশনাল) উন্নত ব্যবহারকারীদের জন্য ব্যাপক নমনীয়তা প্রদান করে।

কপি মোড এবং পেস্ট বাফার নিয়ে কাজ করা

tmux-এ একটি শক্তিশালী কপি মোড সিস্টেম রয়েছে, যা সাধারণ স্ক্রলিং ও সিলেকশনের বাইরেও টার্মিনাল আউটপুটে নেভিগেট এবং ম্যানিপুলেট করার সুবিধা দেয়।

  • কপি মোডে প্রবেশ করুন Ctrl+b
  • বাফারগুলি পরিচালনা করুন, যার মধ্যে নামযুক্ত পেস্ট বাফারও অন্তর্ভুক্ত (এই ধরনের কমান্ডের মাধ্যমে): set-buffer, load-buffer, save-buffer)
  • গ্রাফিক্যাল অ্যাপ্লিকেশনগুলিতে সহজে কপি ও পেস্ট করার জন্য সিস্টেম ক্লিপবোর্ডের সাথে সংযুক্ত করুন (অতিরিক্ত কনফিগারেশন বা প্লাগইনের মাধ্যমে)।

এই সিস্টেমটি গবেষণা, কোড পর্যালোচনা বা ডেটা প্রক্রিয়াকরণে সাহায্য করে, যার মাধ্যমে কোনো ঝামেলা ছাড়াই লগ আউটপুট বা ফলাফল কপি করা সহজ হয়।

মূল পরিভাষা এবং tmux-এর ইকোসিস্টেম

tmux তার নিজস্ব স্বতন্ত্র পরিভাষা চালু করেছে:

  • সেশন: জানালা এবং কাঁচের শীর্ষ-স্তরের সংগ্রহ
  • জানালা: একটি সেশনের মধ্যে পূর্ণ-পর্দার টার্মিনাল, যাতে প্যান থাকে
  • প্যান: একটি উইন্ডোর উপবিভাগ, যার প্রতিটিতে নিজস্ব প্রোগ্রাম চলছে।
  • ক্লায়েন্ট: tmux সেশন বা সার্ভারের সাথে সংযুক্ত টার্মিনাল ইনস্ট্যান্স
  • উপসর্গ কী: শর্টকাট যা tmux কমান্ডগুলো চালু করে (ডিফল্টরূপে, Ctrl+b)
  • স্ট্যাটাস লাইন: আপনার টার্মিনালের নীচে (অথবা কনফিগার করা থাকলে উপরে) থাকা তথ্য
  • ট্রি মোড: সেশন, উইন্ডো এবং প্যানগুলির একটি দৃশ্যমান, নেভিগেবল ব্রাউজার।

সম্পূর্ণ বিবরণ এবং কমান্ড রেফারেন্সের জন্য উইকি দেখুন।

বিকল্প, শৈলী এবং বিন্যাস: আপনার tmux-কে নিখুঁত করে তুলুন

tmux-এর পরিচয় এর অপশনগুলোর মাধ্যমেই নির্ধারিত হয়—এবং শত শত অপশন থাকায়, আপনি ইন্টারফেসের প্রতিটি দিক নিজের পছন্দমতো কনফিগার করতে পারেন। কিছু দরকারি অপশন হলো:

  • ভিত্তি-সূচক — উইন্ডো নম্বর ১ থেকে শুরু করুন
  • মাউস মাউস সাপোর্ট চালু/বন্ধ করুন
  • অবস্থা-অবস্থান স্ট্যাটাস বারটি উপরে বা নীচে সরান
  • renumber-windows — উইন্ডোগুলো মুছে ফেলার পর স্বয়ংক্রিয়ভাবে সেগুলোর নম্বর পরিবর্তন করুন
  • ফোকাস-ইভেন্ট, সেট-টাইটেল, স্ট্যাটাস-কী — উইন্ডোর ফোকাস, শিরোনাম এবং বারের আচরণ সামঞ্জস্য করুন
  • স্টাইল কী — ডিসপ্লে অ্যাট্রিবিউট এবং রং সংজ্ঞায়িত করুন (থেকে) fg=red থেকে #ff8800 কাস্টম রঙের জন্য)

উন্নত ব্যবহারকারী এবং স্ক্রিপ্টিংয়ের জন্য tmux

উন্নত ব্যবহারকারীরা tmux-কে শুধু একটি ইউটিলিটি হিসেবে দেখেন না—এটি তাদের সম্পূর্ণ কর্মপরিবেশের ভিত্তি। স্ক্রিপ্টিংয়ের মাধ্যমে আপনি যা করতে পারেন:

  • প্রোজেক্টের জন্য পরিবেশ সেটআপ স্বয়ংক্রিয় করুন
  • CI, ড্যাশবোর্ড বা মনিটরিং-এ পুনরাবৃত্তিযোগ্য উইন্ডো এবং পেইন কনফিগারেশন চালান।
  • ইভেন্টের উপর ভিত্তি করে হুক ট্রিগার করুন (যেমন, সেশন অ্যাটাচ করার সময় ডায়াগনস্টিকস চালানো, স্ট্যাটাস বারের পরিবর্তন লগ করা)
  • ওয়ার্কফ্লো স্বয়ংক্রিয় করতে কমান্ডগুলো শৃঙ্খলিত করুন (সংমিশ্রণ) new-session; split-window; send-keys, ইত্যাদি)

জটিল স্ক্রিপ্টিং ও প্লাগইন নিয়ে কাজ শুরু করতে উইকির অ্যাডভান্সড সেকশনটি দেখুন।

tmux থেকে সর্বাধিক সুবিধা পাওয়ার সেরা উপায়

সেরা tmux অভিজ্ঞতার জন্য এখানে কিছু প্রস্তাবিত কৌশল দেওয়া হলো:

  • বিস্তৃত বিষয়বস্তুর ওপর ভিত্তি করে অধিবেশনগুলো সংজ্ঞায়িত করুন (যেমন 'কাজ', 'ডেভঅপ্স', 'ব্যক্তিগত'), এবং উপ-কাজগুলোর জন্য নির্দিষ্ট উইন্ডো ও প্যান।
  • দ্রুত খুঁজে পাওয়ার জন্য আপনার সেশন এবং উইন্ডোগুলোর সর্বদা নাম দিন। অর্থহীন সংখ্যা বা স্ট্রিং সংযুক্ত করা পরিহার করুন।
  • আপনার কনফিগারেশন ভার্সন কন্ট্রোলের অধীনে রাখুন যাতে আপনি এটি পুনরুদ্ধার করতে পারেন বা সহজেই আপনার দলের সাথে শেয়ার করতে পারেন।
  • প্লাগইন ইকোসিস্টেম অন্বেষণ করুন: আপনার সেটআপকে আরও উন্নত করতে TPM ইনস্টল করুন এবং GitHub থেকে তৈরি প্লাগইনগুলো দেখে নিন।
  • সবচেয়ে দরকারি শর্টকাটগুলো শিখে নিনএগুলো আপনার দ্রুত গতির গোপন অস্ত্র, যা মুখস্থ করে রাখা খুবই লাভজনক!
  • আধুনিক থাকো: tmux-এর সক্রিয় উন্নয়ন চলছে, এবং ফ্লোটিং পেইন, ট্রি মোড ও ক্লায়েন্ট ম্যানেজমেন্টের মতো নতুন ফিচারগুলো আপনার ওয়ার্কফ্লোকে আরও শক্তিশালী করে তুলতে পারে।

ব্যবহারিক ধারণার জন্য কমিউনিটি গাইড, ডটফাইল এবং স্ক্রিনকাস্টগুলো দেখুন —সব ধরনের শেখার পদ্ধতির জন্যই tmux কন্টেন্ট রয়েছে।

প্রয়োজনীয় তথ্য এবং আরও জানার উপায়

যদি কখনো পথ হারিয়ে ফেলেন অথবা সর্বশেষ সংস্করণে নতুন কী আছে তা দেখতে চান, তাহলে সবসময় গিটহাব (GitHub) দেখুন অথবা আপডেটের জন্য সাবস্ক্রাইব করুন।

অ্যান্ড্রয়েড ১৭-এর লিনাক্স টার্মিনাল: নতুন ফিচার, কাস্টমাইজেশন এবং পাওয়ার ইউজার আপডেটের সম্পূর্ণ নির্দেশিকা

মতামত দিন