Bagaimana cara mengakses bash tanpa emulator terminal?

37

Katakanlah saya sengaja dihapus setiap emulator terminal pada sistem saya: xterm, uxterm, gnome-terminal, guake, dll Apakah ada cara saya dapat mengakses bashtanpa emulator terminal?

Satu cara yang mungkin bisa saya pikirkan adalah membuat dan menjalankan skrip shell, tetapi selain itu, dapatkah saya mendapatkan shell interaktif?

Ini murni hipotesis, tapi terima kasih atas semua jawaban!

Kwik
sumber
2
Ada beberapa program yang dapat menjalankan shell, dan menyediakan beberapa tingkat interaktivitas, dengan (sebagian) meniru terminal, tetapi bukan emulator erminal per se . GVim adalah satu, misalnya.
muru
@muru jadi mengapa Anda belum mempostingnya sebagai jawaban? : D
Sergiy Kolodyazhnyy
@Serg karena alasan yang sama saya tidak memposting solusi IDE Anda, atau konsol Python gedit - tidak ada yang diinstal secara default (meskipun saya pikir kami dapat mengaktifkan konsol gedit Python tanpa menginstal apa pun tambahan).
muru
@uru Ah, begitu. Solusi yang tidak memerlukan instalasi tambahan selalu diutamakan. Pasti
Sergiy Kolodyazhnyy

Jawaban:

63

Ya, dengan menekan CtrlAltF21 . Itu memberi Anda akses ke konsol virtual TTY2. Dan Anda dapat menginstal ulang emulator terminal dari sana dengan sudo apt-get install terminal-name, di mana nama terminal, gnome-terminalmisalnya.

Untuk kembali ke GUI, ketik dulu exituntuk keluar dari konsol virtual, lalu tekan CtrlAltF7untuk kembali ke GUI. (Jika Anda ingin tetap membuka sesi TTY, lewati bagian pengetikan exit)

Edit: 17 Juni 2015

Saya telah memikirkan solusi lain: jika Anda memiliki IDE bahasa C, Anda dapat mengkompilasi kode berikut, dan konsol IDE sekarang akan memberi Anda akses ke bash

#include<stdio.h>
#include <unistd.h>

void main()
{
        system("bash");
}

Catatan: CtrlAltF2 bukan satu-satunya pilihan. Anda dapat menggunakan CtrlAltF1, CtrlAltF3, CtrlAltF4, CtrlAltF5dan CtrlAltF6juga, yang akan memberikan maya konsol tty1, TTY3, tty4, TTY5 atau tty6 masing-masing.

Sergiy Kolodyazhnyy
sumber
1
@ Thomas. Saya tahu, tetapi pada beberapa sistem seperti Fedora tty1 tidak ada, jadi saya terbiasa mengatakan F2
Sergiy Kolodyazhnyy
18
@Huey ini dapat diakses di semua sistem, failafe, kecuali Anda secara manual menonaktifkan ttys, dan pada dasarnya adalah bagaimana linux / unix secara default - konsol teks. GUI benar-benar opsional pada sistem * nix
Sergiy Kolodyazhnyy
8
@Huey Konsol virtual adalah yang pertama kali dilakukan oleh Linux. Yang lainnya adalah fitur yang ditambahkan kemudian. Dan itu hanya fitur yang terlalu berguna sehingga masuk akal untuk menghapusnya lagi.
kasperd
10
Sekali waktu, Anda biasanya masuk melalui konsol teks dan kemudian menjalankan xinitatau startxuntuk benar-benar masuk ke X11, jika Anda perlu menjalankan program GUI karena alasan tertentu. :)
fluffy
1
Saya sudah memikirkan solusi lain. Lihat hasil edit saya,
kawan
30

Jika Anda memiliki server ssh yang berjalan, maka Anda dapat terhubung melalui ssh dari sistem lain.

ssh <your_remote_user_name>@<your_remote_host>

Jika saya menginstal sistem, maka saya pertama kali menginstal dan memulai server SSH. Semacam asuransi jiwa. =)

AB
sumber
24

Ctrl+ Alt+ ( setidaknya F1melalui F4, mungkin hingga F6) menjalankan antarmuka terminal pada konsol virtual. Sesampai di sana, untuk kembali ke GUI, gunakan Ctrl+ Alt+ F7.

Jika Anda melakukan salah satu dari itu, Anda harus dapat mencapai terminal yang dapat Anda masuki dan kemudian mengakses terminal. Namun, skrip Bash akan terus berjalan, jika skrip otomatis dimasukkan ke dalamnya crondan diklik dua kali untuk menjalankannya (tetapi tidak di terminal). Emulator terminal yang 'memberi Anda' shell interaktif, tetapi akhirnya bash,, zshdll. Yang merupakan shell sebenarnya masih ada dan dapat dijalankan melalui cron, skrip, dan bahkan konsol virtual pada kombo keyboard di atas.

Perhatikan bahwa jika skrip Anda memerlukan antarmuka interaktif, Anda harus menggunakan konsol virtual, atau menginstal emulator lagi.

Thomas Ward
sumber
2
F1 hingga F6 di komputer saya.
Scimonster
14

Jika ini adalah pertanyaan dari tes, untuk kelengkapan saya akan menambahkan tty seri normal, di mana Anda akan terhubung ke komputer Anda dengan kabel serial. Anda akan memerlukan getty (atau apa pun pendengar serial tty disebut sekarang) yang sebelumnya dikonfigurasi sebelum Anda kehilangan terminal Anda, dan Anda akan membutuhkan komputer kedua untuk berbicara dengan yang pertama, sehingga sebagai darurat rumah ini tidak mungkin terjadi .

Anda juga mungkin memiliki beberapa konsol webmin yang memberi Anda (pada dasarnya) akses shell, meskipun tidak secara teknis shell interaktif. pada saat itu Anda lebih baik melakukan perintah mudah, seperti apt-get some-terminal-emulator.

Jika Anda memiliki jendela browser terbuka, secara teori Anda bisa mencari emulator terminal java tetapi saya duga adalah Anda harus menginstal terlebih dahulu, dan hanya memiliki jendela browser tidak akan membiarkan Anda mengakses hak pty yang mendasarinya, tapi saya tidak punya waktu untuk menguji.

jadi, pertanyaan di atas adalah "apa saja cara yang mungkin", tidak selalu berguna dalam kehidupan nyata untuk rumah, meskipun sebagian besar ruang server mungkin memiliki akses serial.

hmm, banyak alat lain (emacs, vim, dll) memungkinkan beberapa tingkat penembakan keluar. mari berharap xemac Anda terbuka

Homolka yang kaya
sumber
+1 untuk catatan dalam emacs Anda dapat menggunakan shell Mx ; di gvim ada ESC :shell; sementara geany memiliki "widget emulator terminal virtual (VTE)" di tab panel pesan asalkan libvte.sotersedia
steeldriver
6

Meskipun semua jawaban di atas sempurna, dan karena Anda menggunakan Linux, maka Anda memiliki banyak solusi lain yang mungkin:

  • Virtual ttys seperti dijelaskan dalam jawaban @serg yang merupakan solusi sempurna
  • SSH seperti yang dijelaskan dalam solusi @AB yang merupakan trik yang bagus, tetapi Anda harus mempertimbangkan untuk menjalankan openssh server.
  • Solusi lain yang mungkin (ini bukan yang sempurna tetapi hanya untuk menunjukkan kemungkinan lain): LiveCD , Recovery Mode
Maythux
sumber
3
Solusi berlebihan.
Thomas Ward
@ Thomas. Mengapa!? Itu hanya pilihan lain? Mengapa Anda menganggapnya sebagai solusi berlebihan?
Maythux
2
@ Maythux sementara secara teknis benar, itu memang agak berlebihan, ketika kita sudah memiliki TTY tersedia dan ssh. Solusi LiveCD lebih berlaku ketika Anda menginstal coreutils (ya, saya pernah melakukannya sebelumnya secara tidak sengaja) atau sesuatu yang benar-benar kacau.
Sergiy Kolodyazhnyy
1
@Serg tetapi masih merupakan kasus, ditambah Ini hanya solusi lain, saya katakan selain menggunakan tty seperti yang Anda jelaskan dia memiliki opsi liveCd, juga dia memiliki opsi mode pemulihan ... KAMI berbicara tentang linux, banyak solusi untuk permasalahan yang sama. Saya tidak berpikir merekomendasikan liveCd adalah masalah!
Maythux
1
@ Maythux Jika mereka sudah bisa masuk dan memiliki 'konsol virtual' di TTY, itu adalah kerja keras dan kerja ekstra untuk hanya boot ke LiveUSB / LiveCD untuk melakukannya. Terutama karena ini bukan kasus "Aku Tidak Dapat Mengakses Apa Pun" sehingga tidak perlu untuk senjata besar (seperti Serg singgung dalam komentar)
Thomas Ward
2

Jadi saya akan menjadi pedantic di sini:

Apakah ada cara saya dapat mengakses bash tanpa emulator terminal?

Tentu saja skrip yang dimulai #!/bin/bashakan melakukan itu.

Apakah ada cara saya bisa mendapatkan bash prompt tanpa emulator terminal?

Melanjutkan dengan tema saya yang bertele-tele, mari kita cungkil beberapa jawaban lain.

Katakanlah saya tidak sengaja menghapus semua emulator terminal di sistem saya:

Ini sebenarnya sangat sulit dilakukan karena

dengan menekan CtrlAltF2

Anda beralih ke konsol virtual lain yang menjalankan emulator terminal virtual kernel linux, yang sangat sulit untuk dihapus dan memerlukan kompilasi ulang kernel dengan opsi yang tidak standar. Jadi mari kita hancurkan lubang pada opsi ssh / telnet / serial-port, yang membutuhkan emulator terminal jarak jauh; sedangkan untuk webmin, ia juga memiliki terminal emulator (hanya yang jelek).

Hanya ada satu cara untuk menggunakan fungsi terminal tanpa emulator terminal: gunakan terminal nyata. Saya dulu punya Televideo dan teletype (bukan TeleType, ini tiruan) Saya bisa mengedit file dengan keduanya (vi di Televideo, ed pada teletype (betapa sakitnya di belakang)) melakukan panggilan keluar ke a bb lokal menggunakan minicom dan seyon dari televideo. Anda tahu satu-satunya hal yang saya lewatkan tentang mereka adalah hak menyombongkan diri, tetapi saya mengambil beberapa terminal konfigurasi untuk printer industri yang memiliki tampilan dua baris 20 kolom, keyboard dan antarmuka rs232 yang akan bekerja untuk perbaikan konfigurasi darurat setelah saya menemukan di mana manual ed saya.

Hildred
sumber
0

Mirip dengan jawaban @AB , jika Anda memiliki server web yang berjalan (saya percaya Ubuntu standar datang dengan apache), Anda bisa menjalankan shell di browser Anda sendiri dengan sesuatu seperti phpshell .

Secara pribadi, saya baru saja menjalankan emacs dan M-x shell RETURN.

pengguna420930
sumber
Ubuntu standar tidak datang dengan server web.
muru
2
@muru Muncul dengan server web di repositori . Cukup buka terminal dan ketik sudo apt-get install apache. Oh tunggu.
Tuan Lister