सभी /dev/tty*
प्रविष्टियाँ device file
यूनिक्स दर्शन के अनुसार कुछ के रूप में जानी जाती हैं । वे उपयोगकर्ता और वास्तविक डिवाइस के बीच एक कड़ी के रूप में काम करते हैं, लेकिन उनका उद्देश्य थोड़ा भिन्न हो सकता है।
आभासी शान्ति
डिवाइस की तरह फ़ाइलों /dev/tty123
को नियमित शेल के माध्यम से सिस्टम के साथ इंटरैक्ट करने के लिए इस्तेमाल किया जा सकता है। ये वर्चुअल टर्मिनल हैं। उबंटू प्रणाली को 6 के माध्यम से डिफ़ॉल्ट TTY 1 द्वारा खोलने के लिए कॉन्फ़िगर किया गया है, लेकिन एक मैन्युअल रूप से अधिक खोल सकता है, उदाहरण के लिए:
sudo openvt -c 9 -s "bash"
यह bash
रूट / dev / tty9 पर रूट के रूप में खुलेगा और तुरंत आपको उस TTY (यदि स्थानीय टर्मिनल पर किया जाता है, लेकिन यदि आप दूरस्थ ssh
सत्र के माध्यम से ऐसा करते हैं, तो आपको उस स्थिति में उपयोग करने की आवश्यकता हो सकती है chvt 9
, जहां 9 /dev/tty9
इस उदाहरण में है)। sudo
गैर-रूट के बिना भी ऐसा करने के लिए , आपको उस tty का स्वामित्व बदलना होगा जिसे आप खोलना चाहते हैं। उदाहरण के लिए,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
यह मुझे tty8 पर मेरे डिफ़ॉल्ट शेल के साथ लॉग इन करेगा। मेरे परीक्षणों में, हालांकि, ऐसा लगता है कि यह केवल TTY के माध्यम से काम करता है, इसलिए यदि आप टर्मिनल एमुलेटर के माध्यम से ऐसा कर रहे हैं, तो वह काम नहीं कर सकता है (मुझे Couldn't get a file descriptor referring to the console
त्रुटि हो रही थी और केवल sudo openvt -c 8 -l
एमुलेटर से मेरे लिए काम किया था)
ऐतिहासिक दृष्टिकोण से, सभी फैंसी टर्मिनल मल्टीप्लेक्सर्स बनाए जाने से पहले, यह एक उपयोगी विशेषता थी - आप उन कंसोल पर 62 कमांड (शायद सर्वर) तक जा सकते हैं और 63 वें में काम करते हुए उन्हें चला सकते हैं। आजकल, यह आवश्यक नहीं हो सकता है।
डिफ़ॉल्ट रूप से कई डिवाइस फ़ाइलें बनाई गई हैं। सक्रिय 6 में से 1 हैं, लेकिन कोई भी संपादन करके अपनी संख्या बदल सकता है/etc/default/console-setup
, विशेष रूप से यह हिस्सा:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
ttyS * डिवाइस
ये सीरियल कंसोल के लिए उपयोग की जाने वाली डिवाइस फाइलें हैं, उर्फ़ UART (जिसे RS-232 के रूप में भी जाना जाता है)। अतीत में कई कंप्यूटर सिस्टम सीरियल पोर्ट के साथ आते थे। आजकल, यह ज्यादातर सर्वर प्रकार के कंप्यूटरों पर पाया जा सकता है। कई ttyS डिवाइस RS-232 हब के साथ उपयोगी हो सकते हैं, जो कई उपकरणों को USB या ईथरनेट के माध्यम से प्रबंधित करने की अनुमति देता है।
इलेक्ट्रिकल इंजीनियरों के लिए (जो कि मैं कॉलेज में पढ़ाई कर रहा हूं), हम माइक्रोकंट्रोलर और डेवलपमेंट बोर्ड (उदाहरण के लिए अरुडिनो) के साथ बातचीत करने के लिए सीरियल पोर्ट का उपयोग करते हैं। रास्पबेरी पाई जैसे सिंगल पोर्ट कंप्यूटर भी इसका उपयोग करते हैं। आजकल, धारावाहिक कनेक्शन को USB से UART केबल के माध्यम से स्थापित किया जाता है, और टर्मिनल में कंसोल को इस screen
तरह से खोला जाता है :
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
ध्यान दें, कि Arduino और रास्पबेरी सीरियल कनेक्शन के लिए अपनी डिवाइस फ़ाइल बनाएंगे, /dev/ttyUSB0
या/dev/ttyACM0
vcs * डिवाइस
इनके अनुसार man vcs
कंसोल मेमोरी डिवाइस हैं। सरल शब्दों में, यदि आप करते हैं तो sudo cat /dev/vcs1
आप देखेंगे कि स्क्रीन पर क्या है /dev/tty1
, कम से कम उस टर्मिनल की अधिकतम मात्रा तक।
शान्ति की संख्या में कमी
tty.h
पुस्तकालय में फेरबदल और कर्नेल ( संदर्भ और एक अन्य ) को फिर से देखे बिना वास्तविक डिवाइस फ़ाइलों की संख्या कम करना संभव नहीं है । हालाँकि, उन उपकरणों को हटाना इस कमांड के माध्यम से मैन्युअल रूप से किया जा सकता है:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
यह, हालांकि, कुछ हद तक बेकार है - डिवाइस फ़ाइलें किसी भी स्थान को नहीं लेती हैं और सिस्टम प्रदर्शन को प्रभावित नहीं करती हैं।