ฉันใช้ Red Hat Linux 32 บิตใน VM ของฉัน ฉันต้องการบูตมันเป็นโหมดบรรทัดคำสั่งไม่ใช่โหมด GUI ฉันรู้ว่าจากที่นั่นฉันสามารถเปลี่ยนเป็นโหมด GUI โดยใช้startx
คำสั่ง ฉันจะสลับกลับไปเป็นโหมดบรรทัดคำสั่งได้อย่างไร
ฉันใช้ Red Hat Linux 32 บิตใน VM ของฉัน ฉันต้องการบูตมันเป็นโหมดบรรทัดคำสั่งไม่ใช่โหมด GUI ฉันรู้ว่าจากที่นั่นฉันสามารถเปลี่ยนเป็นโหมด GUI โดยใช้startx
คำสั่ง ฉันจะสลับกลับไปเป็นโหมดบรรทัดคำสั่งได้อย่างไร
คำตอบ:
อัปเดต: คำตอบด้านล่างล้าสมัยแล้ว
สำหรับ distros จำนวนมากในตอนนี้ค่าเริ่มต้นคือ systemd มากกว่า sysvinit คำตอบด้านล่างนี้เขียนขึ้นโดยมี sysvinit อยู่ในใจ คำตอบอื่น ๆ ขึ้นไปวันที่ (และคนที่คุณควรใช้หากคุณมี systemd เป็นระบบ init ของคุณ) เป็นคำตอบของจุดหมาย
คำตอบ sysvinit (ล้าสมัยใน distros ปัจจุบัน):
คุณต้องการทำให้ runlevel 3 เป็น runlevel เริ่มต้นของคุณ จากเทอร์มินัลสลับไปที่รูทและทำสิ่งต่อไปนี้:
[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
อะไรก็ตามหลังจาก (และรวมถึง) ที่สอง#
ในแต่ละบรรทัดเป็นความคิดเห็นสำหรับคุณคุณไม่จำเป็นต้องพิมพ์ลงใน terminal
ดูหน้า Wikipediaเกี่ยวกับ runlevels สำหรับข้อมูลเพิ่มเติม
คำอธิบายของsed
คำสั่ง
sed
คำสั่งเป็นบรรณาธิการกระแส (เพราะฉะนั้นชื่อ), คุณใช้มันในการจัดการกับการไหลของข้อมูลที่มักจะผ่านการแสดงออกปกติsed
ให้แทนที่รูปแบบid:5:initdefault:
ด้วยรูปแบบid:3:initdefault:
ในไฟล์/etc/inittab
ซึ่งเป็นไฟล์ที่ควบคุม runlevles ของคุณ ไวยากรณ์ทั่วไปสำหรับการค้นหาและแทนที่sed
s/pattern/replacement_pattern/
-i
ตัวเลือกที่บอกsed
จะใช้การปรับเปลี่ยนในสถานที่ หากสิ่งนี้ไม่มีอยู่sed
จะมีเอาต์พุตไฟล์ผลลัพธ์ (หลังการทดแทน) ไปยังเทอร์มินัล (โดยทั่วไปจะเป็นเอาต์พุตมาตรฐาน)ปรับปรุง
เปลี่ยนกลับไปใช้โหมดข้อความเพียงกดCTRL+ +ALT F1นี่จะไม่หยุดเซสชันกราฟิกของคุณเพียงแค่สลับคุณกลับไปที่เทอร์มินัลที่คุณลงชื่อเข้าใช้ คุณสามารถสลับกลับไปที่เซสชั่นกราฟิกด้วยCTRL+ +ALTF7
sed
คำสั่ง
sed
กับไฟล์การกำหนดค่าเว้นแต่คุณจะรู้ว่าสิ่งที่คุณกำลังทำ บรรทัดที่มีปัญหาอาจเป็นความคิดเห็นก็ได้ แต่จะยังคงมีการเปลี่ยนแปลง ดังนั้นการแสดงออกปกติควรมีความแม่นยำมากขึ้นอย่างน้อยต้องมีสตริงid:...
ที่จุดเริ่มต้นของบรรทัด เนื่องจากหน้าคนไม่ได้พูดอะไรเกี่ยวกับวิธีการรักษาพื้นที่สีขาวคุณอาจต้องการใช้s/^ *id:5:initdefault:
(ซึ่งไม่รวมถึงTab
ตัวละครโดยวิธี)
อัพเดตสำหรับ RedHat / CentOS 7 ที่เปลี่ยนจาก sysvinit เป็น systemd
วิธีเปลี่ยนจาก GUI เป็น CLI: systemctl isolate multi-user.target
วิธีเปลี่ยนจาก CLI เป็น GUI: systemctl isolate graphical.target
ในการตั้ง CLI เป็นค่าเริ่มต้นrunlevel ( เป้าหมายในคำศัพท์ systemctl set-default multi-user.target
systemd): อะนาล็อกสำหรับ GUI:systemctl set-default graphical.target
* CLI = Command Line Interface = โหมดบรรทัดคำสั่ง
ก่อนอื่นให้เปลี่ยนผู้ใช้เป็นรูท
su -
Password:
ป้อนรหัสผ่านรูท
ใช้โปรแกรมแก้ไขรายการโปรดของคุณเพื่อแก้ไขบรรทัดนี้ใน/etc/inittab
:
id:5:initdefault:
เปลี่ยน 5 เป็น 3 เมื่อคุณบูตคอมพิวเตอร์จะพาคุณไปที่บรรทัดคำสั่งแทนที่จะเป็น GUI
นอกเหนือจากการเปลี่ยนแปลง/etc/inittab
แล้วคุณยังสามารถบอกเคอร์เนลบนบรรทัดคำสั่งของมันว่าควรจะส่งต่อ runlevel เป้าหมายไปยังinit
อะไรเมื่อเริ่มต้น สิ่งนี้ทำได้โดยการต่อท้าย runlevel ที่ต้องการไปยังบรรทัดคำสั่ง (ต้องเป็นอาร์กิวเมนต์สุดท้ายที่ฉันเชื่อ)
คุณสามารถทำสิ่งนี้ได้ทั้งแบบครั้งเดียวในระหว่างการบู๊ตหาก bootloader ของคุณอนุญาตให้คุณเปลี่ยนบรรทัดคำสั่งเคอร์เนลหรือคุณสามารถทำซ้ำรายการในการกำหนดค่า bootloader และเลือกอันที่ถูกต้องเมื่อทำการบูท runlevels บ่อยครั้ง)
สำหรับระบบที่ใช้systemd
กระบวนการจะคล้ายกัน แต่วิธีการอื่น ๆ systemd.unit=desired.target
อีกมากมายตั้งแต่การพิมพ์สตริงมายากลท้ายบรรทัดคำสั่งเคอร์เนลเป็นในรูปแบบของ
สำหรับstartx
มันยังสามารถเริ่มต้นเซสชันเพิ่มเติมโดยให้หมายเลขแสดงผล X ที่ไม่ได้ใช้ (หมายเลขเริ่มต้นจาก 0): startx -- :1
จะเริ่มเซิร์ฟเวอร์ X บนจอแสดงผล: 1 ค้นหาตำแหน่งที่ VT ที่ไม่ได้ใช้ครั้งแรก (มัก VT8 เนื่องจาก 6 แรกมักเป็น Linux คอนโซลและ 7 ถูกใช้โดยเซสชัน X ที่ทำงานครั้งแรก) โปรดทราบว่าเซิร์ฟเวอร์เอ็กซ์มักจะต้องการสิทธิ์ root ดังนั้นคุณอาจจะต้องทำเช่นนี้root
(ซึ่งไม่ได้เป็นความคิดที่ดี) หรือไบนารีจะต้องมีราก setuid (ความจำเป็นในการนี้จะถูกลบออกตามปกติโดยใช้การจัดการการแสดงผล)
inittab
มีเหตุผลมากกว่านี้เนื่องจากเรามักต้องการให้ระบบอยู่ในสภาพเดียวกันตลอดเวลา
สังเกตด้านบนถ้าคุณได้เด้งแล้วเข้าสู่โหมดกราฟิกและต้องการที่จะเปลี่ยนไปใช้โหมดข้อความคุณก็สามารถกดCtrl+ Alt+ F1และกลับมาอีกครั้งไปยังโหมดกราฟิกโดยCtrl+ +AltF7
Linux มีเทอร์มินัลข้อความ 6 รายการและเทอร์มินัลกราฟิก 1 รายการ คุณสามารถสลับระหว่างขั้วเหล่านี้โดยการกดCtrl+ +Alt Fnแทนที่n
ด้วย 1-7 F7จะนำคุณไปสู่โหมดกราฟิกเฉพาะเมื่อบูตเข้าสู่การรันระดับ 5 หรือคุณได้เริ่ม X โดยใช้startx
คำสั่ง F7มิฉะนั้นมันก็จะแสดงหน้าจอว่างเปล่าบน
แม้จะเป็นเรื่องที่ค่อนข้างเก่า แต่ก็มีประโยชน์ ในระบบโดยใช้systemd
, / etc / inittabไม่ได้อยู่ในการใช้งาน วิธีนี้ค่อนข้างง่าย:
โหมดเทอร์มินัล
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
โหมดกราฟิค
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
หลังจากแทนที่ runlevel เริ่มต้นเป็นid:3:initdefault:
ในการ/etc/inittab
ใช้โปรแกรมแก้ไขข้อความที่คุณต้องการ (ดังที่ได้กล่าวไว้ก่อนหน้านี้) มันเป็นสิ่งสำคัญมากที่จะตรวจสอบว่ามีการติดตั้ง plymouth (หน้าจอเริ่มต้น) ในระบบของคุณหรือไม่ ในกรณีนี้จะต้องลบการติดตั้งหรือเพียงลบคำหลักสแปลชจากคุณ /boot/grub/grub.cfg โดยใช้โปรแกรมแก้ไขข้อความที่คุณต้องการ (vim, pico หรืออื่น ๆ ) วิธีลบพลีมั ธ :
sudo apt-get remove --purge plymouth
แก้ไข grub.cfg ของคุณ:
sudo vim /boot/grub/grub.cfg
ในที่สุดอัพเกรดการกำหนดค่าด้วง:
sudo update-initramfs -u
ในการบูตครั้งถัดไปคุณจะมีหน้าจอเข้าสู่ระบบแบบข้อความ แค่นั้นแหละ.
เพลิดเพลินไปกับกล่อง Linux!
การติดตั้ง oracle-linux 7 โดยค่าเริ่มต้นจะมีตัวเลือกการติดตั้งน้อยที่สุด คุณต้องเปลี่ยนเป็นการติดตั้งด้วยโหมด GUI ในเวลาที่ทำการติดตั้งวิธีนี้แก้ไขปัญหาของฉันเมื่อไม่สามารถใช้โหมดผู้ใช้แบบกราฟิก
ฉันได้ลอง systemctl, update-rc.d และแก้ไขการตั้งค่า GRUB แล้ว แต่ไม่มีอะไรทำงาน จากนั้นฉันแสดงความคิดเห็นผู้จัดการเริ่มต้นใน / etc / X11 / default-display-manager รีบูตและในที่สุด: terminal !!!! มันง่ายอย่างนั้น!
ใช้
systemctl set-default multi-user.target
และรีบูต VM VM จะเข้าสู่โหมด CLI
startx
ฉันจะเปลี่ยนกลับไปเป็นบรรทัดคำสั่งได้อย่างไร