Jak uruchomić Linuksa w trybie wiersza poleceń zamiast GUI?


26

Używam 32-bitowego systemu Red Hat Linux na mojej maszynie wirtualnej. Chcę uruchomić go w trybie wiersza polecenia, a nie w trybie GUI. Wiem, że stamtąd mogę przejść do trybu GUI za pomocą startxpolecenia. Jak wrócić do trybu wiersza poleceń?

Odpowiedzi:


23

Aktualizacja: Poniższa odpowiedź jest już nieaktualna

W przypadku wielu dystrybucji domyślną opcją jest raczej systemowe niż sysvinit. Poniższa odpowiedź została napisana z myślą o sysvinit. Bardziej aktualna odpowiedź (i ta, której powinieneś użyć, jeśli masz system jako system init) jest odpowiedzią golema .

odpowiedź sysvinit (przestarzała w większości obecnych dystrybucji):

Chcesz ustawić poziom uruchamiania 3 jako domyślny. Z terminalu przełącz się na root i wykonaj następujące czynności:

[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

Cokolwiek po (i włącznie) drugim #w każdej linii jest dla ciebie komentarzem, nie musisz wpisywać go w terminalu.

Więcej informacji można znaleźć na stronie Wikipedii dotyczącej poziomów pracy.

Wyjaśnienie sedpolecenia

  • sedPolecenie to edytor strumień (stąd nazwa), należy użyć go do manipulowania strumieni danych, zwykle za pośrednictwem wyrażeń regularnych .
  • Mówimy tutaj, sedaby zastąpić wzorzec id:5:initdefault:wzorkiem id:3:initdefault:w pliku /etc/inittab, który jest plikiem kontrolującym twoje poziomy uruchomieniowe. Ogólna składnia sedwyszukiwania i zamiany to s/pattern/replacement_pattern/.
  • -iOpcja nakazuje sedzastosować modyfikacje w miejscu. Gdyby tego nie było, sedwyprowadziłby wynikowy plik (po podstawieniu) do terminala (bardziej ogólnie na standardowe wyjście).

Aktualizacja

Aby wrócić do trybu tekstowego, wystarczy nacisnąć CTRL+ ALT+ F1. To nie zatrzyma twojej sesji graficznej, po prostu przełączy cię z powrotem na terminal, na którym się zalogowałeś. Możesz wrócić do sesji graficznej za pomocą CTRL+ ALT+ F7.


Dziękuję za odpowiedź. Ponadto, kiedy przełączam się na GUI, startxjak mogę wrócić do wiersza poleceń?
Don't You Worry Child

1
@ 0xF1 Dodano wyjaśnienie sedpolecenia.
Joseph R.

1
Ogólnie odradzam używanie sedplików konfiguracyjnych, chyba że dokładnie wiesz, co robisz. Wiersz, o którym mowa, może być także komentarzem, a mimo to zostałby zmieniony. Dlatego wyrażenie regularne powinno być bardziej precyzyjne, przynajmniej wymagać, aby ciąg znaków id:...znajdował się na początku wiersza. Ponieważ strona podręcznika nic nie mówi o tym, jak traktowane są białe spacje, prawdopodobnie prawdopodobnie zechcesz jej użyć s/^ *id:5:initdefault:(która Tab, nawiasem mówiąc, nie zawiera znaku).
peterph

1
Ta odpowiedź nie jest już ważna, przynajmniej w moim obecnym systemie operacyjnym. Spójrz na odpowiedź @ golem poniżej. To działało dla mnie. Używam fedora 27.
Lance

1
@Lance Bardzo dobry punkt. Dzięki za powiadomienie. Zaktualizowałem swoją odpowiedź, aby to odzwierciedlić.
Joseph R.

25

Aktualizacja dla RedHat / CentOS 7, która przeszła z sysvinit na systemd.

Aby przełączyć się z GUI na CLI: systemctl isolate multi-user.target

Aby przełączyć się z CLI na GUI: systemctl isolate graphical.target

Aby ustawić CLI jako domyślnego poziomu działania ( cel w Systemd terminologii) systemctl set-default multi-user.target. Analogicznie dla GUI:systemctl set-default graphical.target

* CLI = Interfejs wiersza poleceń = tryb wiersza poleceń



2
Dziękujemy .. Każde forum wciąż odrzuca starą wiedzę na temat / etc / inittab, mimo że jest przestarzała.
Shashank Vyas

11

Najpierw przełącz użytkownika na root.

su -
Password:

Wpisz hasło roota.

Użyj swojego ulubionego edytora, aby zmodyfikować ten wiersz w /etc/inittab:

id:5:initdefault:

Zmień 5 na 3. Kiedy ponownie uruchomisz komputer, przeniesie Cię on do wiersza poleceń, a nie do GUI.


Podaj instrukcje dotyczące tego, jak PO powinien to zrobić jako root i do którego pliku. Ta odpowiedź w obecnej formie nie jest w stanie pomóc komuś, kto jest nowy w Linuksie.
Joseph R.

1
Dziękuję za zwrócenie uwagi na mój nadzór. Odpowiednio zredagowałem odpowiedź.
Timothy Martin

Czy to oznacza, że ​​GUI nie działa, czy jest ukryty?
Aaron Franke,

@AaronFranke W systemach Redhat na poziomie uruchomienia 3 GUI nie jest włączone (lub wyłączone w przypadku systemu, który został przełączony z poziomu uruchamiania 5 na 3 bez ponownego uruchomienia).
Timothy Martin

3

Oprócz zmiany /etc/inittab, możesz także powiedzieć jądru w jego linii poleceń, do którego docelowego poziomu uruchamiania powinien zostać przekazany initpo uruchomieniu. Odbywa się to po prostu dodając pożądany poziom działania do wiersza poleceń (uważam, że to ostatni argument).

Możesz to zrobić jako jednorazową czynność podczas rozruchu, pod warunkiem, że bootloader pozwala na zmianę wiersza poleceń jądra, lub możesz zduplikować wpis w konfiguracji bootloadera i wybrać właściwy podczas uruchamiania (przydatne, gdy uruchamiasz się w różnych poziomy pracy często).

W systemach korzystających z systemdtego procesu proces jest podobny, ale oznacza więcej pisania, ponieważ magiczny ciąg dołączony do wiersza polecenia jądra ma postać systemd.unit=desired.target.

Jeśli chodzi o startxto, może również rozpocząć dodatkowe sesje, nadając mu nieużywany numer X wyświetlacza (numeracja zaczyna się od 0): startx -- :1uruchomi X serwer na wyświetlaczu: 1, lokalizując go na pierwszym nieużywanym VT (często VT8, ponieważ pierwsze 6 to zwykle Linux konsole i 7 są używane przez pierwszą uruchomioną sesję X). Zauważ, że serwer X zwykle potrzebuje uprawnień roota, więc albo musisz to zrobić jako root(co nie jest dobrym pomysłem), albo plik binarny musi być rootem setuid (potrzeba jest zwykle usuwana za pomocą menedżera wyświetlania).


+1 Świetna odpowiedź. Jednak niezbyt przyjazny dla początkujących.
Joseph R.

Tak, zmiana inittabma znacznie większy sens, ponieważ zwykle chce się cały czas przywracać system do tego samego stanu.
peterph

2

Na marginesie, jeśli już uruchomiłeś tryb graficzny i chciałbyś przejść do trybu tekstowego, możesz po prostu nacisnąć Ctrl+ Alt+ F1i wrócić do trybu graficznego przez Ctrl+ Alt+ F7.

Linux ma domyślnie 6 terminali tekstowych i 1 terminal graficzny. Możesz przełączać się między tymi terminalami, naciskając Ctrl+ Alt+ Fn. Zamień na n1-7. F7przeniósłby cię do trybu graficznego tylko wtedy, gdy uruchomił się na poziomie uruchamiania 5 lub uruchomiłeś X za pomocą startxpolecenia; w przeciwnym razie wyświetli się pusty ekran F7.


pokazać tę pracę w RHEL 7?
javapowered

1

Może nawet być dość starym wątkiem. W systemie z użyciem systemd, / etc / inittab nie jest już w użyciu. Metoda jest dość prosta:

Tryb terminalowy

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

Tryb graficzny

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

0

Po zastąpić domyślny poziom pracy, aby id:3:initdefault:w /etc/inittabużyciu preferowanego edytora tekstu (jak wspomniano wcześniej), to bardzo ważne, należy sprawdzić, czy istnieje jakiś Plymouth (ekran powitalny) zainstalowanych w systemie. W takim przypadku konieczne będzie usunięcie instalacji lub usunięcie słowa kluczowego splash z twojego pliku /boot/grub/grub.cfg za pomocą preferowanego edytora tekstu (vim, pico lub innych). Aby usunąć Plymouth:

sudo apt-get remove --purge plymouth

Edytuj swój grub.cfg:

sudo vim /boot/grub/grub.cfg

Na koniec zaktualizuj konfigurację grub:

sudo update-initramfs -u

Przy następnym uruchomieniu pojawi się ekran logowania w trybie tekstowym. to jest to!

Ciesz się Linux-em!


-1

Instalacja oracle-linux 7 domyślnie wymaga minimalnej opcji instalacji. Musisz zmienić go na instalację z trybem GUI w momencie instalacji. To rozwiązało mój problem z niemożnością korzystania z graficznego trybu użytkownika.


Wygląda na to, że masz prośbę OP do tyłu. Wygląda na to, że OP stara się dostać do CLI, a nie do GUI.
HalosGhost

-1

Próbowałem systemctl, update-rc.d, a nawet edytowałem konfigurację GRUB, ale nic nie działało. Potem skomentowałem domyślnego menedżera wyświetlania w / etc / X11 / default-display-manager, zrestartowałem i wreszcie: terminal !!!! To takie proste!


-1

Posługiwać się

systemctl set-default multi-user.target

i zrestartuj maszynę wirtualną. Maszyna wirtualna przejdzie w tryb CLI.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.