テキストエディタがインストールされていない(noまたはor)リモートシステムに接続(sshを使用)する必要があるed
状況ex
にvi
ありますnano
。これは実行中の本番サーバーにあります。デフォルトでは、次の信念のため、テキストエディタをインストールまたは許可しません。
- 実際には必要ありません。
- これを除くと、セキュリティが強化される可能性があります。
ただし、時々デバッグして問題を解決する必要があります。
シェルはBashです。テキストファイルを編集する方法は、およびecho
を使用するだけですcat
。
この状況でテキストファイルを編集する方法の経験を共有できますか?たぶんファイルをローカルに転送する方法はありますかvim
?
更新:明確にするために、この質問は単なる理論的な例です。数回は、非常に最小限の設定でk8クラスターでポッドをデバッグする必要がありました。そのため、一部の構成を更新する必要があります。
答え1
この場合は、ファイルを別のコンピュータに転送して編集してから、もう一度転送してみてください。あなたが持っているssh
なら、あなたが持っている必要があるのでscp
(あなたが望む)ファイルをプッシュして取り除くことができるはずです。そうでない場合は、ftp
入出力ファイルを見つけることもできます。
そうでない場合の最善の方法はcat
、、、、およびI / Oリダイレクト(特に追加)を使用することです。一時ファイルもたくさんあります。grep
sed
echo
>>
答え2
Faxeyoが述べたように、ファイルを編集する最も簡単な方法はリモート編集です。ローカルコンピュータのVimは通常SFTPを介してファイルを編集できますが、他のエディタを使用してリモートで作業することもできます。
ただし、編集中のファイルは他のユーザーのみが変更でき、機能しない場合があります。リモートシステムがLinuxシステムの場合、busyboxがあるかもしれませvi
んed
。完全な機能ではありませんが、vi
ファイルを編集できるほど強力です。あなたはbusybox vi FILE
それらを使用したり電話したりできますbusybox ed file
。静的にリンクされたバイナリを渡すこともできますscp
。busybox
あなたのシステムには、他の場所でより多くの機能を持つed
バイナリがあるかもしれません。コロンコマンドvi
と非常によく似たラインエディタです。ex
多くのLinuxディストリビューションではオプションですが、より難解な機能に使用されることが多いため、存在する可能性がpatch
あります。 ed
また、このex
モードにはvi
TTYなしで作業できる楽しい機能もあります。
いくつかの非常に古い Debian システムには、ae
で実行できるこのモードがありますvi
。私が知っている他のすべての非Linuxオープンソースオペレーティングシステムは、基本システムに、vi
またはex
1つを持っており、ed
パッケージマネージャを介して削除することはできません。
実際には、テキストエディタがない場合cat
とheredocsを使用して一時ファイルにデータの塊を書き込みますsed
。エディタを 1 つまたは 2 つインストールできます。
答え3
インストールされている場合は、zsh
zsh行エディタを使用してファイルを編集できます。
zmodload zsh/mapfile
vared 'mapfile[myfile.txt]'
でも:
autoload zed
zed myfile.txt
答え4
これはあなたの質問に対する答えではありませんが、同じ問題を抱えている人にとってはまだ役に立ちます。このQ&Aの解決策を見つけましたが、結局は必要ありませんでした。時間を無駄にした後、これを共有したかったです。
部屋に象が見えません。 vimをインストールするだけですapt-get install vim
。私のコンテナでは、イメージにインストーラを追加することなく動作します。これはインストール権限を持つ他のすべての場所で機能します。