Có 7 thiết bị đầu cuối có thể được sử dụng trong hệ thống của chúng tôi. tty7
là dựa trên GUI.
Làm thế nào tôi có thể biết rằng tôi đang sử dụng tty nào?
thích, tty1, tty2 .... tty6?
Có 7 thiết bị đầu cuối có thể được sử dụng trong hệ thống của chúng tôi. tty7
là dựa trên GUI.
Làm thế nào tôi có thể biết rằng tôi đang sử dụng tty nào?
thích, tty1, tty2 .... tty6?
Câu trả lời:
Có một số cách để tìm ra điều này. Tôi sẽ đi với lệnh who am i
(không who
):
$ who am i
ravexina tty2 2017-04-10 11:19 (:0)
Khi tôi ở trong một thiết bị đầu cuối đồ họa, nó sẽ trả về một cái gì đó như:
ravexina pts/0 2017-04-10 1:19 (:0)
Trong phiên ssh sử dụng kết quả thiết bị đầu cuối đồ họa là như nhau, nhưng thay vì (: 0), tôi sẽ nhận được IP máy của mình (192.168.xx). lệnh khác như w
, who
, pgrep
, ps
, vv là hữu ích quá.
Ví dụ: để tìm ra tty
giao diện đồ họa của tôi đang chạy:
ps $(pgrep Xorg)
Trong trường hợp của tôi, vì tôi không sử dụng bất kỳ trình quản lý hiển thị nào như gdm hoặc slim, nó sẽ tạo ra:
PID TTY STAT TIME COMMAND
1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
who am i
không trả về gì và whoami
trả về zanna
, (trong khi who
trả về tất cả các phiên (tôi nhớ một câu hỏi liên quan (điều đó chứng tỏ không thể trả lời được) khi chúng tôi nhận thấy rằng các trình giả lập khác nhau tạo ra đầu ra khác nhau who
)).
who am i
sẽ luôn hoạt động tốt trong một vt, và pgrep
rất thông minh (bạn có thể muốn sử dụng $()
cú pháp cho lệnh phụ - backticks có thể gây ra một chút khó hiểu khi đánh dấu) vì vậy câu trả lời của bạn rất hay và bất cứ ai hạ thấp nó đều không nên làm như vậy ...
Sử dụng tty
lệnh.
Nếu tôi đúng thì đây là tài liệu tham khảo:
/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
pts
có nghĩa là bạn đang sử dụng thiết bị đầu cuối từ GUI hoặc thông qua SSH
Hãy lùi lại một bước và bắt đầu với sự nhầm lẫn: tty là gì? Ban đầu tty là tên viết tắt của teletype đã trở thành teletype thủy tinh trở thành bất kỳ thiết bị đầu cuối hoặc kết nối với một cổng, cụ thể là một cổng nối tiếp (Chúng vẫn còn xung quanh, phổ biến nhất là / dev / ttyS0, / dev / ttyUSB0 và đôi khi / dev / ttyacm0). Sau đó, bạn có ttys giả và ttys ảo. các tay unix cũ quen thuộc với các giả giả, chúng được sử dụng cho các thiết bị đầu cuối từ xa (ssh và telnet), thiết bị đầu cuối ảo (xterm và tương tự), và bộ ghép kênh đầu cuối (màn hình và tmux). Ptyudo ttys đã có nhiều cách đặt tên khác nhau theo thời gian nhưng hiện tại sử dụng các tên như / dev / pts / 0. Mặt khác, các tty ảo được liên kết với các bảng điều khiển ảo, cụ thể là khi bạn sử dụng các phím chức năng alt điều khiển, bạn đang chuyển đổi các bảng điều khiển ảo, mỗi bàn được ghép với một tty ảo.
Vì vậy, nếu bạn cần tìm giả giả (hoặc tty ảo khi sử dụng chế độ văn bản), có tất cả các loại giải pháp như who am i
hoặc ps ax|grep $$
điều này tương đối dễ thực hiện vì có nhiều cách để tìm ra điều này vì giả giả được mở trên io tiêu chuẩn trong hầu hết các trường hợp và có các phương pháp khác hoạt động ngay cả khi io được chuyển hướng. điều này cũng có lợi thế là cũng làm đúng khi sử dụng cổng nối tiếp và ttys ảo miễn là bạn không sử dụng trình giả lập thiết bị đầu cuối đồ họa hoặc bộ ghép kênh đầu cuối.
Nhưng nếu bạn muốn xác định giao diện điều khiển ảo thì sao? sudo fgconsole
có thể hữu ích cho các trường hợp tương tác. Hoặc những gì tôi làm chỉ là đi bộ điều khiển vì chuyển đổi thường đủ nhanh. Tôi không biết về một phương pháp lập trình hoạt động đáng tin cậy trong các trường hợp không tương tác hoặc không liên quan.
Hãy xem xét một ví dụ được đảm bảo là không thể trả lời một cách đáng tin cậy bảng điều khiển ảo bao giờ. Máy tính tôi đang ngồi trước (alpha) có Xserver đang chạy trên tty2 (: 1), tôi có ba cửa sổ mở hai xterms và vncviewer (kết nối với bravo: 2). Một xterm đang chạy màn hình, cái còn lại đang chạy ssh charley. Màn hình có hai cửa sổ mở, ssh delta và ai (người xác định chính xác giả giả trong cột hai và cung cấp gợi ý (:1:S0)
trong cột năm cho chúng ta biết rằng giả giả được kết nối với phiên màn hình đầu tiên được kết nối với máy chủ X thứ hai, nhưng không cung cấp bất kỳ thông tin giao diện điều khiển ảo nào). Chạy ai qua phiên ssh cho gợi ý(alpha)
trong đó xác định máy mà phiên ssh xuất phát từ đó tương đối tốt cho các phiên từ xa. Mặc dù có rất ít thông tin về những gì được kết nối với giả giả (và hoàn toàn không có bảng điều khiển ảo hoặc thậm chí có sẵn thông tin tty từ xa), ít nhất là máy chủ từ xa được xác định. thông tin về màn hình có thể sai vì các phiên màn hình có thể tháo rời và vnc không cung cấp thông tin hữu ích nào cả vì sự khác biệt duy nhất giữa phiên vnc và phiên cục bộ là số hiển thị. Trong nhiều trường hợp, bạn có thể giả sử rằng: 0 là trên tty7 nhưng không phải lúc nào cũng vậy và không bao giờ thuộc về tôi vì bravo hoàn toàn không có card đồ họa và: 0 là phiên vnc (gây nhầm lẫn cho ai vì nghĩ rằng đó là bảng điều khiển cục bộ) và không ai trong số các máy sử dụng tty7 như một phiên đồ họa, bởi vì tôi (không chỉ trái ngược) kết xuất các bản ghi vào tty7 (và tty5, tty6 và tty8 cũng) di chuyển các phiên đồ họa ở nơi khác. Nhưng màn hình chờ cũng có thể hoạt động như một chương trình đầu cuối cho phép bạn thiết lập phiên qua cáp nối tiếp. Báo cáo phiên như vậy khi ai đang chạy? Tại sao lại vô dụng nhưng cổng nối tiếp cho dù đó là thông qua vnc, xterm, ssh, màn hình và bộ chuyển đổi nối tiếp usb cùng một lúc hoặc được kết nối với televideo của tôi.
Khi bạn đã đăng nhập vào một tty, nó sẽ tự động hiển thị tty nào bạn đang sử dụng trên dòng đầu tiên.
Nếu nhấn tổ hợp bàn phím Ctrl+ Alt+ F3chỉ hiển thị màn hình đen, như bạn đã viết trong một nhận xét, có một cách khác để truy cập vào vỏ gốc khi khởi động máy tính mà không cần nhấn Ctrl+ Alt+ F3để hiển thị tty.
Ngay sau màn hình giật gân BIOS / UEFI trong khi khởi động, với BIOS, nhanh chóng nhấn và giữ Shiftphím, sẽ hiển thị menu GNU GRUB. (Nếu bạn thấy logo Ubuntu, bạn đã bỏ lỡ điểm bạn có thể vào menu GRUB.) Với UEFI nhấn (có thể vài lần) Escphím để vào menu GRUB. Đôi khi, màn hình giật gân của nhà sản xuất là một phần của bộ tải khởi động Windows, vì vậy khi bạn bật nguồn máy, nó sẽ chuyển thẳng đến màn hình GRUB, sau đó nhấn Shiftlà không cần thiết.
Từ màn hình GNU GRUB màu tím đầu tiên, chọn Tùy chọn nâng cao cho Ubuntu bằng các phím ↑ và and và nhấn Enter. Sau đó, bạn sẽ được nhắc bởi một menu menu GNU GRUB màu tím khác có danh sách các tùy chọn kernel trong đó.
Nhấn phím mũi tên xuống cho đến khi bạn chọn mục nhập thứ hai từ trên cùng (mục có chế độ khôi phục trong mô tả) rồi nhấn Enter.
Bây giờ bạn sẽ thấy menu khôi phục này:
Sử dụng các phím mũi tên cuộn xuống gốc và sau đó nhấn Enter.
Bây giờ bạn sẽ thấy một dấu nhắc gốc, một cái gì đó như thế này:
root@ubuntu:~#
Ở giai đoạn này, bạn nên có một hệ thống tập tin chỉ đọc. Bạn phải truy cập lại nó với quyền ghi:
mount -o rw,remount /
Bây giờ bạn có thể chạy các lệnh giống như trong một thiết bị đầu cuối.
Tôi đoán bạn đang chăm sóc một cái gì đó khác hơn các câu trả lời khác được cung cấp. Chạy sudo fgconsole
để tìm ra tty thực sự đang hoạt động.
Sử dụng lệnh tty, nó hoạt động trên Linux và macOS và cung cấp một đầu ra khá đơn giản để đọc, chỉ tên của tty bạn đang ở.
Thí dụ:
$ tty
/dev/pts/0
Thật dễ dàng để kịch bản này hoặc đưa nó vào lời nhắc, ví dụ:
$ PS1='`tty`: '
/dev/pts/0: _
Bằng cách này, bạn sẽ luôn biết bạn đang ở trong nhà ga nào.