Gunakan layar GNU sebagai login "shell"


22

Apa cara terbaik untuk menjalankan layar secara otomatis ketika Anda membuka shell baru, apakah dengan login, xterm, atau yang lainnya?

Saya melihat rekomendasi yang paling umum adalah memasukkan exec screenrc atau login / file profil shell biasa Anda, tetapi untuk, misalnya, tcsh, shell login menjalankan .login terakhir, sedangkan shell non-login membaca .cshrc terakhir. Jika saya memasukkan exec screen.cshrc, shell login tidak akan mencari file .login, dan jika saya meletakkannya di .login, shell non-login tidak akan menjalankan layar. Saya berasumsi bahwa ada masalah serupa dengan shell lainnya.


1
Ini tidak menjawab pertanyaan, tetapi patut disebutkan: tmux adalah langkah revolusioner dari layar dan mencoba untuk menjadi dekat dengan keyboard yang kompatibel dengan layar. Halaman ini mendokumentasikan cara memulainya secara otomatis dari .bashrc.
datashaman

Jawaban:


19

Salah satu caranya adalah:

# if $STY is not set...
if [ -z "$STY" ]; then
    exec screen -ARR
fi

Perhatikan bahwa ini ditulis untuk bash, tetapi juga harus serupa csh. Masukkan untuk .cshrcdieksekusi untuk semua shell.


Cara lain: Anda hanya dapat mengatur screensebagai shell login Anda di /etc/passwdsendiri, dan menempatkan baris ini ke Anda ~/.screenrc: (Perbaiki jalan, tentu saja.)

defshell / bin / csh

Tetapi ini dapat merusak program yang menjalankan shell login yang ditentukan /etc/passwduntuk berbagai perintah.

( Edit: Jangan lupa untuk menambahkan layar ke /etc/shells)


1
Tidak tahu tentang variabel STY sebelumnya, dan ketika mencari di layar manual, saya juga menemukan bahwa Anda dapat menjalankan layar dengan layar untuk menjalankan perintah di jendela baru (misalnya, "layar vi" akan membuka vi dalam jendela baru, tanpa cangkang pengontrol). BTW, untuk csh, Anda akan memasukkannya ke dalam file .login bukan .cshrc, Anda tidak ingin dijalankan untuk "semua" shell. Samething berlaku untuk bash, letakkan di .profile atau .bash_login, bukan di .bashrc.
haridsv

4

Pertanyaan lama, tetapi googling untuk hal yang sama membawa saya ke sini jadi inilah jawaban untuk orang lain yang menemukan halaman ini.

Hal terbaik yang saya temukan sejauh ini adalah byobu jika distro Anda memilikinya. Hadir dengan opsi untuk berjalan saat masuk dan mengontrol beberapa layar sekaligus.

Anda dapat melepaskan dan keluar di satu lokasi kemudian masuk ke sesi yang sama di lokasi lain.

Saya menemukan layar bagus untuk digunakan untuk menjalankan proses server tetapi byobu bagus untuk hal-hal sehari-hari.


-2

Bagaimana dengan menggunakan chsh:

chsh /usr/bin/screen

Ini menetapkan shell login default di / etc / passwd. (Anda bisa melakukannya di sana juga)


Maka menjadi sulit untuk melakukan apa pun dengan akun Anda selain login. Juga, sysadmin Anda mungkin tidak memiliki layar di / etc / shells. Juga, lihat jawaban yang diterima.
wfaulk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.