Làm cách nào để khởi động Linux sang chế độ dòng lệnh thay vì GUI?


26

Tôi đang sử dụng Red Hat Linux 32 bit trong máy ảo của mình. Tôi muốn khởi động nó sang chế độ dòng lệnh, không phải chế độ GUI. Tôi biết rằng từ đó tôi có thể chuyển sang chế độ GUI bằng startxlệnh. Làm cách nào để chuyển về chế độ dòng lệnh?

Câu trả lời:


23

Cập nhật: Câu trả lời dưới đây đã lỗi thời

Đối với nhiều distro bây giờ, mặc định là systemd chứ không phải sysvinit. Câu trả lời dưới đây được viết với sysvinit trong tâm trí. Câu trả lời cập nhật hơn (và câu trả lời bạn nên sử dụng nếu bạn có systemd làm hệ thống init của bạn) là câu trả lời của golem .

câu trả lời sysvinit (lỗi thời trên hầu hết các bản phát hành hiện tại):

Bạn muốn làm cho runlevel 3 runlevel mặc định của bạn. Từ một thiết bị đầu cuối, chuyển sang root và làm như sau:

[user@host]$ su
Password:
[root@host]# cp /etc/inittab /etc/inittab.bak #Make a backup copy of /etc/inittab
[root@host]# sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab #Make runlevel 3 your default runlevel

Bất cứ điều gì sau (và bao gồm) thứ hai #trên mỗi dòng là một nhận xét cho bạn, bạn không cần phải nhập nó vào thiết bị đầu cuối.

Xem trang Wikipedia trên runlevels để biết thêm thông tin.

Giải thích về sedmệnh lệnh

  • Các sedlệnh là một trình soạn thảo dòng (vì vậy tên), bạn sử dụng nó để điều khiển dòng dữ liệu, thường là thông qua biểu thức thông thường .
  • Ở đây, chúng tôi đang nói sedthay thế mẫu id:5:initdefault:bằng mẫu id:3:initdefault:trong tệp /etc/inittab, đây là tệp kiểm soát đường chạy của bạn. Cú pháp chung cho một sedtìm kiếm và thay thế là s/pattern/replacement_pattern/.
  • Các -itùy chọn nói sedđể áp dụng các thay đổi tại chỗ. Nếu điều này không có mặt, sedsẽ xuất ra tệp kết quả (sau khi thay thế) cho thiết bị đầu cuối (nói chung là đầu ra tiêu chuẩn).

Cập nhật

Để chuyển về chế độ văn bản, chỉ cần nhấn CTRL+ ALT+ F1. Điều này sẽ không dừng phiên đồ họa của bạn, nó chỉ đơn giản sẽ chuyển bạn trở lại thiết bị đầu cuối mà bạn đã đăng nhập. Bạn có thể chuyển về phiên đồ họa với CTRL+ ALT+ F7.


Cảm ơn câu trả lời. Ngoài ra, khi tôi chuyển sang GUI bằng cách sử dụng, startxlàm thế nào tôi có thể chuyển trở lại dòng lệnh?
Đừng lo lắng Trẻ em

1
@ 0xF1 Đã thêm một lời giải thích cho sedlệnh.
Joseph R.

1
Tôi thường khuyên bạn không nên sử dụng sedtrên các tệp cấu hình, trừ khi bạn biết chính xác những gì bạn đang làm. Dòng trong câu hỏi cũng có thể là một nhận xét và vẫn sẽ được thay đổi. Do đó biểu thức chính quy phải chính xác hơn, ít nhất là yêu cầu chuỗi id:...phải ở đầu dòng. Vì trang người đàn ông không nói gì về cách xử lý khoảng trắng, nên bạn có thể muốn sử dụng s/^ *id:5:initdefault:(nhân tiện không bao gồm Tabký tự).
peterph

1
Câu trả lời này không còn hợp lệ, ít nhất là trên hệ điều hành hiện tại của tôi. Hãy xem câu trả lời của @ golem dưới đây. Điều đó làm việc cho tôi. Tôi đang sử dụng fedora 27.
Lance

1
@Lance Điểm rất tốt. Cảm ơn đã thông báo. Tôi đã cập nhật câu trả lời của tôi để phản ánh điều đó.
Joseph R.

25

Cập nhật cho RedHat / CentOS 7 đã chuyển từ sysvinit sang systemd.

Để chuyển từ GUI sang CLI: systemctl isolate multi-user.target

Để chuyển từ CLI sang GUI: systemctl isolate graphical.target

Để đặt CLI làm runlevel mặc định ( mục tiêu theo thuật ngữ systemd) : systemctl set-default multi-user.target. Tương tự cho GUI:systemctl set-default graphical.target

* CLI = Giao diện dòng lệnh = chế độ dòng lệnh



2
Cảm ơn bạn .. Mọi diễn đàn vẫn đang bỏ đi những kiến ​​thức cũ về / etc / inittab mặc dù nó đã lỗi thời.
Shashank Vyas

11

Đầu tiên chuyển người dùng sang root.

su -
Password:

Nhập mật khẩu root.

Sử dụng trình chỉnh sửa yêu thích của bạn để sửa đổi dòng này trong /etc/inittab:

id:5:initdefault:

Thay đổi 5 thành 3. Khi bạn (khởi động lại) máy tính, nó sẽ đưa bạn đến dòng lệnh thay vì vào GUI.


Vui lòng bao gồm các hướng dẫn về cách OP nên làm điều này với quyền root và tập tin nào. Câu trả lời này, vì nó đứng, không phù hợp để giúp ai đó mới biết về Linux.
Joseph R.

1
Cảm ơn bạn đã chỉ ra sự giám sát của tôi. Tôi đã chỉnh sửa câu trả lời cho phù hợp.
Timothy Martin

Điều này có nghĩa là GUI không chạy, hay nó bị ẩn?
Aaron Franke

@AaronFranke Đối với các hệ thống Redhat ở cấp 3, GUI không được bật (hoặc tắt trong trường hợp hệ thống được chuyển từ runlevel 5 sang 3 mà không khởi động lại).
Timothy Martin

3

Ngoài việc thay đổi /etc/inittab, bạn cũng có thể cho hạt nhân biết trên dòng lệnh của nó những gì runlevel đích sẽ được chuyển đến initkhi nó được bắt đầu. Điều này được thực hiện bằng cách đơn giản nối thêm runlevel mong muốn vào dòng lệnh (nó phải là đối số cuối cùng tôi tin).

Bạn có thể thực hiện việc này như một lần trong khi khởi động, với điều kiện bộ tải khởi động của bạn cho phép bạn thay đổi dòng lệnh kernel hoặc bạn có thể sao chép mục nhập trong cấu hình bộ nạp khởi động và chọn đúng khi khởi động (hữu ích khi bạn khởi động vào nhiều runlevels thường xuyên).

Đối với các hệ thống sử dụng systemdquy trình là tương tự, nhưng có nghĩa là nhập nhiều hơn vì chuỗi ma thuật được nối với dòng lệnh kernel ở dạng systemd.unit=desired.target.

Về phần startx, nó cũng có thể bắt đầu các phiên bổ sung bằng cách cung cấp cho nó số hiển thị X chưa sử dụng (đánh số bắt đầu từ 0): startx -- :1sẽ khởi động máy chủ X trên màn hình: 1, định vị nó tại VT không sử dụng đầu tiên (thường là VT8, vì 6 đầu tiên thường là Linux bảng điều khiển và 7 được sử dụng bởi phiên X đầu tiên đang chạy). Lưu ý rằng máy chủ X thường cần đặc quyền root, do đó bạn phải thực hiện điều này dưới dạng root(đó không phải là ý tưởng hay) hoặc nhị phân phải là root setuid (nhu cầu này thường được loại bỏ bằng cách sử dụng trình quản lý hiển thị).


+1 Câu trả lời tuyệt vời. Không thân thiện với người mới, mặc dù.
Joseph R.

Vâng, thay đổi inittabcó ý nghĩa hơn nhiều, vì người ta thường muốn đưa hệ thống về cùng một trạng thái mọi lúc.
peterph

2

Mặt khác, nếu bạn đã khởi động vào chế độ đồ họa và muốn chuyển sang chế độ văn bản, bạn chỉ cần nhấn Ctrl+ Alt+ F1và quay lại chế độ đồ họa bằng Ctrl+ Alt+ F7.

Linux mặc định có 6 thiết bị đầu cuối văn bản và 1 thiết bị đầu cuối đồ họa. Bạn có thể chuyển đổi giữa các thiết bị đầu cuối bằng cách nhấn Ctrl+ Alt+ Fn. Thay thế nbằng 1-7. F7sẽ đưa bạn đến chế độ đồ họa chỉ khi nó khởi động vào cấp 5 hoặc bạn đã bắt đầu sử dụng startxlệnh X ; nếu không, nó sẽ chỉ hiển thị một màn hình trống trên F7.


cho thấy công việc này trong RHEL 7?
javapowered

1

Thậm chí là một chủ đề khá cũ, có thể hữu ích. Trên hệ thống sử dụng systemd, / etc / inittab không còn được sử dụng. Phương pháp khá đơn giản:

Chế độ đầu cuối

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Chế độ đồ họa

ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target

0

Sau khi thay thế các runlevel mặc định id:3:initdefault:trong /etc/inittabsử dụng soạn thảo văn bản yêu thích của bạn (như đã nói trước đây), nó kiểm tra rất quan trọng nếu có một số plymouth (splash screen) được cài đặt trong hệ thống của bạn. Trong trường hợp này, sẽ cần phải xóa cài đặt của nó hoặc chỉ cần xóa từ khóa giật gân khỏi bạn /boot/grub/grub.cfg bằng trình soạn thảo văn bản ưa thích của bạn (vim, pico hoặc người khác). Để loại bỏ plymouth:

sudo apt-get remove --purge plymouth

Chỉnh sửa grub.cfg của bạn:

sudo vim /boot/grub/grub.cfg

Cuối cùng, nâng cấp cấu hình grub:

sudo update-initramfs -u

Trong lần khởi động tiếp theo, bạn sẽ chỉ có màn hình đăng nhập chế độ văn bản. Đó là nó.

Thưởng thức hộp Linux!


-1

Cài đặt oracle-linux 7 theo mặc định có tùy chọn cài đặt tối thiểu. Bạn phải thay đổi nó thành cài đặt với chế độ GUI tại thời điểm cài đặt. Điều này đã giải quyết vấn đề của tôi về việc không thể sử dụng chế độ người dùng đồ họa.


Có vẻ như bạn có yêu cầu của OP ngược. OP dường như đang vật lộn để đến CLI chứ không phải GUI.
HalosGhost

-1

Tôi đã thử systemctl, update-rc.d và thậm chí chỉnh sửa cấu hình GRUB, nhưng không có gì hoạt động. Sau đó, tôi nhận xét trình quản lý hiển thị mặc định trong / etc / X11 / default-display-manager, được khởi động lại và cuối cùng: thiết bị đầu cuối !!!! Nó đơn giản như vậy!


-1

Sử dụng

systemctl set-default multi-user.target

và khởi động lại VM. VM sẽ vào chế độ CLI.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.