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ą startx
polecenia. Jak wrócić do trybu wiersza poleceń?
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ą startx
polecenia. Jak wrócić do trybu wiersza poleceń?
Odpowiedzi:
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 sed
polecenia
sed
Polecenie to edytor strumień (stąd nazwa), należy użyć go do manipulowania strumieni danych, zwykle za pośrednictwem wyrażeń regularnych .sed
aby 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 sed
wyszukiwania i zamiany to s/pattern/replacement_pattern/
.-i
Opcja nakazuje sed
zastosować modyfikacje w miejscu. Gdyby tego nie było, sed
wyprowadził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.
sed
polecenia.
sed
plikó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).
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ń
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.
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 init
po 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 systemd
tego 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 startx
to, może również rozpocząć dodatkowe sesje, nadając mu nieużywany numer X wyświetlacza (numeracja zaczyna się od 0): startx -- :1
uruchomi 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).
inittab
ma znacznie większy sens, ponieważ zwykle chce się cały czas przywracać system do tego samego stanu.
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 n
1-7. F7przeniósłby cię do trybu graficznego tylko wtedy, gdy uruchomił się na poziomie uruchamiania 5 lub uruchomiłeś X za pomocą startx
polecenia; w przeciwnym razie wyświetli się pusty ekran F7.
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
Po zastąpić domyślny poziom pracy, aby id:3:initdefault:
w /etc/inittab
uż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!
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.
Posługiwać się
systemctl set-default multi-user.target
i zrestartuj maszynę wirtualną. Maszyna wirtualna przejdzie w tryb CLI.
startx
jak mogę wrócić do wiersza poleceń?