テキストエディタなしでテキストファイルを編集するには?

テキストエディタなしでテキストファイルを編集するには?

テキストエディタがインストールされていない(noまたはor)リモートシステムに接続(sshを使用)する必要があるed状況exviありますnano。これは実行中の本番サーバーにあります。デフォルトでは、次の信念のため、テキストエディタをインストールまたは許可しません。

  • 実際には必要ありません。
  • これを除くと、セキュリティが強化される可能性があります。

ただし、時々デバッグして問題を解決する必要があります。

シェルはBashです。テキストファイルを編集する方法は、およびechoを使用するだけですcat

この状況でテキストファイルを編集する方法の経験を共有できますか?たぶんファイルをローカルに転送する方法はありますかvim

更新:明確にするために、この質問は単なる理論的な例です。数回は、非常に最小限の設定でk8クラスターでポッドをデバッグする必要がありました。そのため、一部の構成を更新する必要があります。

答え1

この場合は、ファイルを別のコンピュータに転送して編集してから、もう一度転送してみてください。あなたが持っているsshなら、あなたが持っている必要があるのでscp(あなたが望む)ファイルをプッシュして取り除くことができるはずです。そうでない場合は、ftp入出力ファイルを見つけることもできます。

そうでない場合の最善の方法はcat、、、、およびI / Oリダイレクト(特に追加)を使用することです。一時ファイルもたくさんあります。grepsedecho>>

答え2

Faxeyoが述べたように、ファイルを編集する最も簡単な方法はリモート編集です。ローカルコンピュータのVimは通常SFTPを介してファイルを編集できますが、他のエディタを使用してリモートで作業することもできます。

ただし、編集中のファイルは他のユーザーのみが変更でき、機能しない場合があります。リモートシステムがLinuxシステムの場合、busyboxがあるかもしれませvied。完全な機能ではありませんが、viファイルを編集できるほど強力です。あなたはbusybox vi FILEそれらを使用したり電話したりできますbusybox ed file。静的にリンクされたバイナリを渡すこともできますscpbusybox

あなたのシステムには、他の場所でより多くの機能を持つedバイナリがあるかもしれません。コロンコマンドviと非常によく似たラインエディタです。ex多くのLinuxディストリビューションではオプションですが、より難解な機能に使用されることが多いため、存在する可能性がpatchあります。 edまた、このexモードにはviTTYなしで作業できる楽しい機能もあります。

いくつかの非常に古い Debian システムには、aeで実行できるこのモードがありますvi。私が知っている他のすべての非Linuxオープンソースオペレーティングシステムは、基本システムに、viまたはex1つを持っており、edパッケージマネージャを介して削除することはできません。

実際には、テキストエディタがない場合catとheredocsを使用して一時ファイルにデータの塊を書き込みますsed。エディタを 1 つまたは 2 つインストールできます。

答え3

インストールされている場合は、zshzsh行エディタを使用してファイルを編集できます。

zmodload zsh/mapfile
vared 'mapfile[myfile.txt]'

でも:

autoload zed
zed myfile.txt

答え4

これはあなたの質問に対する答えではありませんが、同じ問題を抱えている人にとってはまだ役に立ちます。このQ&Aの解決策を見つけましたが、結局は必要ありませんでした。時間を無駄にした後、これを共有したかったです。

部屋に象が見えません。 vimをインストールするだけですapt-get install vim。私のコンテナでは、イメージにインストーラを追加することなく動作します。これはインストール権限を持つ他のすべての場所で機能します。

関連情報