Server web saya dirusak oleh seseorang yang menggunakan shell zsh. Saya merasa lebih nyaman menggunakan bash shell, karena itulah default yang datang dengan Ubuntu dan OS X (dua sistem operasi utama yang saya gunakan). Tetapi pertanyaan ini difokuskan pada server Ubuntu. Saya memiliki 4 situs web yang berjalan di server web ini, saya menggunakan byobu, saya menggunakan tmux, saya menggunakan ruby / ruby pada rails, node.js, apache, beberapa daemon. Jika saya mengganti shell root saat ini dari zsh ke bash, mungkinkah ada efek samping negatif yang mungkin dihasilkan dari switch ini? Misalnya, apakah proses akan dibunuh karena proses induknya (shell) telah diaktifkan?
command-line
bash
zsh
JohnMerlino
sumber
sumber
Jawaban:
Mengubah shell Anda, via
sudo chsh --shell=/bin/bash $USER
akan mengubah bidang shell di/etc/passwd
. Nilai ini hanya dikonsultasikan pada waktu login, ketika sistem tidak tahu shell mana yang digunakan untuk Anda.Menjalankan proses, apakah dimulai oleh
zsh
,bash
apache
atauevil_overlord's_program
tidak akan terpengaruhsumber
login
Program berjalan dalam proses, seperti segala sesuatu. Ketika memungkinkan Anda masuk, ia menciptakan proses lain dengan UID Anda, dll, dan menjalankan / bin / bash (dari / etc / passwd). Bash shell membaca dari STDIN (diatur olehlogin
), dan akan melakukan fork / exec perintah non-builtin, menunggu mereka untuk mengakhiri, dan loop untuk perintah lainnya. Gagasan "mengendalikan terminal" tidak berguna di Unix / Linux.Jawaban dari Stack Overflow ( beralih dari zsh ke bash ):
sumber
Buka terminal Anda dan gunakan perintah berikut:
sumber
which bash
akan memberikan jalur absolutbash
, jadi akan sama jika di/bin/bash
manabash
letaknya.Di Mac OS Catalina
Ubah ke zsh:
Ubah ke bash:
sumber