これはばかげて聞こえるかもしれませんが、shをアンインストールして(研究目的)、自分のシェルに置き換えたいと思います。これは実際に可能ですか?
多くのスクリプトやプログラムにはハードコードが組み込まれているようですので、その実行可能性については疑問です。
⚠️警告!コマンドを実行する前に読んでください!⚠️
この回答は、onlyであり、Ubuntu Linuxの研究およびさらなる知識のために提供されています。この回答でコマンドを実行すると、システムが完全に破壊される可能性があります。あなたがVMまたはバックアップにいることを確認してください。システムを壊したとしても、私は責任を負いません。
コマンドsh
は、シンボリックリンク経由でdash
によって提供されます。
$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jun 1 08:33 /bin/sh -> dash*
$ which sh
/bin/sh
$ dpkg -S /bin/dash
dash: /bin/dash
$ dpkg -S /bin/sh
diversion by dash from: /bin/sh
diversion by dash to: /bin/sh.distrib
dash: /bin/sh
削除するには、次のコマンドを実行します。
Sudo apt remove dash
APTは、次のエラーメッセージであなたを蹴り返します。
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
システムを本当に破壊したい場合は、それを入力して押します Return。
その後、Ubuntuはbash
、lightdm
、およびubuntu-desktop
メタパッケージ(およびこれら3つに依存するすべてのパッケージ)をアンインストールします。これらはすべてdash
に依存しているためです。現在のシェルが完全に機能しない限り、bash
またはdash
の最後のインスタンスを強制終了すると、システムは使用できなくなります。
実際にこのコマンドを実行する場合、適切なファイルを復元する唯一の方法は、Live CDから起動し、chroot
edリカバリセッションでパッケージを再インストールすることです。
本当に運が良ければ、ルートシェルが開いている限り、パッケージを再インストールすることでシステムをライブで修復できる可能性があります。 システムはより悪い状態から回復しました 以前、しかし運は本当にあなたの側にある必要があります。
代わりに、/bin/sh
シンボリックリンクを再作成して、シェルを指すようにすることをお勧めします。その場合、何かが本当に本当にうまくいかない場合は、dash
に戻すことができます。これを行うには、次のコマンドを実行します。
Sudo -s
cd /bin
rm sh
ln -s /path/to/your/Shell sh
chmod 777 sh
これらの手順を繰り返してdash
に復元しますが、独自のシェルの代わりにdash
を指定します。または、Sudo apt install --reinstall dash
を実行します。これを行うには、 カスタムinit
を指定 が必要になる場合があります。
SHと一緒に独自のシェルをインストールします。 SHをアンインストールすることは非常に悪い考えです。SHは多くのプログラムとスクリプトに依存しているためです。