Trình giả lập thiết bị đầu cuối mặc định trên Ubuntu là Terminal Gnome . Nó nằm ở /usr/bin/gnome-terminal
và có thể được chạy bằng gnome-terminal
lệnh.
Bạn thực sự muốn gì
Những gì bạn có thể muốn là một shell chạy dưới quyền root, như thể nó được tạo ra từ một đăng nhập gốc (ví dụ, với tất cả các biến môi trường được đặt cho root chứ không phải cho người dùng của bạn).
Giả sử đó là những gì bạn muốn, như Steeldo đã đề xuất , chỉ cần chạy:
sudo -i
Bạn sẽ có một vỏ gốc trong đó các lệnh bạn nhập sẽ được chạy dưới dạng root (mà không cần phải đặt trước chúng sudo
).
Nhưng nếu bạn thực sự muốn chạy ứng dụng giả lập thiết bị đầu cuối đồ họa như root, hãy đọc tiếp. Tôi trình bày hai cách: với gksu
/ gksdo
và với sudo
lệnh.
Vì bạn đã cài đặt gói gksu
, bạn có thể chạy gnome-terminal
bằng root với:
gksu gnome-terminal
gksudo gnome-terminal
(Vì gksu
được đặt thành chế độ sudo trong Ubuntu theo mặc định, các giá trị này phải tương đương.)
Chạy gnome-terminal
như root mà không có terminal không root kiểm soát:
Hầu như mọi môi trường máy tính để bàn đều cung cấp một phương tiện để chạy lệnh mà không phải mở thiết bị đầu cuối (khi đó, nếu đóng, thường sẽ khiến lệnh bị chấm dứt).
Điều này thường đạt được với Alt+ F2. Một hộp văn bản có nhãn Run lệnh (hoặc tương tự) sẽ xuất hiện và bạn có thể nhập lệnh của mình.
Ví dụ: có vẻ như thế này trong Unity:

Và như thế này trong MATE (Gnome Flashback / Fallback, Xfce, LXDE tương tự nhau):

Lưu ý rằng điều này hoạt động với gksu
và gksudo
bởi vì họ sử dụng hộp thoại xác thực đồ họa. Nếu bạn nhấn Alt+ F2và chạy sudo ...
, thì bạn sẽ không thể tương tác với dấu nhắc mật khẩu.
Với sudo
Nếu bạn không có gói gksu và bạn sẽ không muốn cài đặt nó, bạn có thể sử dụng:
sudo -H gnome-terminal
Các -H
lá cờ rất quan trọng vì nó đặt HOME
biến môi trường để /root
thay cho thư mục home của người dùng của riêng bạn. Bạn không nên sử dụng sudo gnome-terminal
vì nó có thể phá vỡ cấu hình gnome-terminal thuộc về người dùng không root. Để biết thêm thông tin về điều này, xem:
( sudo -i gnome-terminal
cũng ổn.)
Loại bỏ các thiết bị đầu cuối không root kiểm soát:
Nếu bạn (1) mở một thiết bị đầu cuối đồ họa, (2) chạy một cái gì đó giống như sudo -H gnome-terminal
trong nó, để tạo một thiết bị đầu cuối gốc đồ họa mới và (3) thoát khỏi thiết bị đầu cuối đồ họa không gốc ban đầu ... thì thiết bị đầu cuối đồ họa gốc cũng thoát khỏi .
Điều này là do thiết bị đầu cuối đồ họa gốc được gửi SIGHUP khi thiết bị đầu cuối sở hữu nó bị thoát.
Để ngăn chặn điều này, bạn có thể nghĩ rằng bạn có thể khởi chạy thiết bị đầu cuối gốc đồ họa với:
sudo -H gnome-terminal &
Nhưng điều này sẽ chỉ hoạt động nếu sudo
không phải nhắc nhập mật khẩu. Nếu vậy, bạn sẽ không thấy dấu nhắc mật khẩu.
Một cách để giải quyết vấn đề này là sử dụng:
sudo -v
sudo -H gnome-terminal
sudo -v
tồn tại cho mục đích này. Như đã giải thích man sudo
, nó "cập nhật [s] thông tin đăng nhập được lưu trong bộ nhớ cache của người dùng, xác thực người dùng nếu cần thiết."
Lưu ý rằng điều này sẽ vẫn không hoạt động nếu chạy trực tiếp từ hộp Alt+ F2"lệnh chạy" của môi trường máy tính để bàn của bạn , bởi vì bạn vẫn cần một thiết bị đầu cuối để nhập mật khẩu của mình sudo -v
.
Hoặc bạn có thể làm theo cách có thể được gọi là cách truyền thống, bằng cách tạm dừng công việc sau khi nó bắt đầu:
- Chạy
sudo -H gnome-terminal
từ thiết bị đầu cuối đồ họa không gốc.
- Nhập mật khẩu của bạn như được nhắc bởi
sudo
. Thiết bị đầu cuối đồ họa sẽ bắt đầu.
- Vẫn trong thiết bị đầu cuối không root , nhấn Ctrl+ Zđể tạm dừng thiết bị đầu cuối gốc. Trong khi thiết bị đầu cuối gốc bị treo, bạn không thể sử dụng nó; giao diện của nó sẽ không đáp ứng với hành động của bạn.
- Thoát khỏi thiết bị đầu cuối không kiểm soát với
exit
. Công việc thiết bị đầu cuối gốc đồ họa sẽ tự động không bị bỏ qua và bị từ chối bởi thiết bị đầu cuối không gốc.
Nói ngắn gọn:
sudo -H gnome-terminal
^Z
exit
Nhưng giả sử bạn muốn tiếp tục sử dụng thiết bị đầu cuối gốc, không root. Sau đó, bạn có thể chạy , số công việc của thiết bị đầu cuối đồ họa, để tiếp tục công việc ở chế độ nền. Bạn có thể chạy để tìm nhưng có lẽ bạn sẽ không phải - số đó được hiển thị như khi bạn nhấn + . Ví dụ:bg N
N
jobs
N
[N]
CtrlZ
ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek:
^Z
[1]+ Stopped sudo -H gnome-terminal
ek@Ilex:~$
gnome-terminal
. Vì vậy, hãy thửsudo gnome-terminal
.