วิธีรับชื่อเทอร์มินัลปัจจุบัน


17

ฉันจะดึงชื่อเทอร์มินัลปัจจุบันได้อย่างไร

ฉันหมายถึงชื่อที่psแสดงในคอลัมน์ TTY เช่น:

root@dor-desktop:/home/dor/Documents/LAMP_setup/webs_install/do/install# ps aux | egrep 'mysql|(^USER)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dor       2238  0.2  1.9 448052 79796 ?        S    17:27   0:17 gedit /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.install /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.setup
root      4975  0.1  0.5 324984 22876 ?        S    18:12   0:04 gedit /usr/local/mysql/bin/mysqld_safe
root      8160  0.0  0.0   4108   664 pts/2    S    19:08   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-networking --skip-grant-tables --user=mysql --basedir=/usr/local/mysql --ledir=/usr/local/mysql/libexec
mysql     8279  0.0  0.4 146552 19032 pts/2    Sl   19:08   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --skip-networking --skip-grant-tables --log-error=/usr/local/mysql/var/dor-desktop.err --pid-file=/usr/local/mysql/var/dor-desktop.pid --socket=/usr/local/mysql/mysql.sock --port=3306
root      8342  0.0  0.0   7632  1024 pts/2    R+   19:14   0:00 egrep --color=auto mysql|(^USER)

ในตัวอย่างข้างต้นฉันต้องดึงข้อมูลpts/2ซึ่งอาจเป็นชื่อของเทอร์มินัลปัจจุบันที่ดำเนินการคำสั่งเหล่านั้น


คำตอบ:


26
tty

ตอนนี้ฉันต้องป้อน 30 ตัวอักษรโดยที่ 3 จะเพียงพอ ... :-)


apropos ttyอาจมีการให้คำแนะนำด้วย (-:
tripleee

1
@tripleee ถ้าคุณรู้ว่าผลที่ได้รับมันมักจะดูเหมือนง่าย แต่นี่เป็นเรื่องยากจริงๆ ฉันควร upvote คำถามเพื่อเตะเขาเหนือจุดตัวแทน 125 จุดเพื่อที่เขาจะได้รับรางวัลที่สมควรได้รับสำหรับความพยายามอันยิ่งใหญ่ของฉัน ...
Hauke ​​Laging

2
คำตอบของคุณมีฉันสงสัยที่ ttyได้รับชื่อของ PTY หรือ TTY ฉันวิ่งstrace -o spork ttyไปหาว่ามันทำ readlink ในไฟล์ / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 มันยอดเยี่ยมที่ / proc สามารถใช้ทำสิ่งที่ดีเช่นนั้นได้ แต่สิ่งที่ Unixes รุ่นก่อนหน้านี้ทำโดยไม่มีระบบไฟล์ที่ยืดหยุ่น / proc ทำเพื่อให้ได้ชื่อ tty?
Bruce Ediger

คุณสามารถอธิบายได้ว่าคำสั่งนั้นคืออะไรมันทำอะไรและอะไรอีกที่คุณสามารถทำอะไรกับมันและโห่นั้นมันจะเป็นคำตอบที่ดีกว่า
Bobby

@ บ๊อบบี้ทุกคำตอบสามารถทำได้ดีกว่า ผู้ถามได้แก้ไขปัญหาของเขาหลังจากนั้นสองนาที IMHO ไม่เลวเลย ttyอย่างจริงจังผมมีความคิดอะไรที่คุณสามารถทำอะไรกับไม่มี มันทำอะไรตรงกับคำถาม ฉันไม่ได้รับความแตกต่างระหว่าง "สิ่งที่คำสั่งนั้น" และ "สิ่งที่มันทำ" คำสั่ง "คืออะไร" แต่เดี๋ยวก่อนฉันไม่ต้องการ upvotes เพื่ออะไร หากคุณเขียนคำตอบที่ชัดเจนยิ่งขึ้น (ซึ่งอาจป้องกันได้) ฉันจะให้ค่าหัว 50 อันแก่ตัวแทน (โดยเร็วที่สุดเท่าที่จะเป็นไปได้เช่นในอีกสองวัน)
Hauke ​​Laging

3

Re: "คุณสามารถอธิบายได้ว่าคำสั่งนั้นคืออะไรมันทำอะไรและคุณสามารถทำอะไรกับมันและโห่ร้องอะไรมันจะเป็นคำตอบที่ดีกว่า - Bobby"

ชื่อ Unix ของเทอร์มินัลปัจจุบัน (หรือคอนโซลในขณะที่เราแก่ใช้ในบางครั้งเรียกว่า) คือ: / dev / tty ซึ่งสามารถใช้เพื่อสร้างไฟล์หลายบรรทัดใหม่ได้ง่ายจากพรอมต์คำสั่งดังนี้: cp / dev / tty README.md (กดปุ่มแล้ววางเคอร์เซอร์บนบรรทัดว่างใหม่ที่คุณสามารถป้อนข้อความกดปุ่ม return อีกครั้งใส่บรรทัดที่สองเป็นต้น ฯลฯ เมื่อป้อนบรรทัดเสร็จให้ทำ control-d ซึ่งทำให้คำสั่ง cp ออกจาก และคุณจะสร้างไฟล์หลายบรรทัดด้วยคำสั่งเดียว)


"name" tty มาจาก TeleType (อุปกรณ์ปลายทางดั้งเดิม) ซึ่งอธิบายว่าทำไมมันถึงอยู่ใน / dev dir
user120016

ดูเพิ่มเติมที่unix.stackexchange.com/questions/187319/…
120000
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.