ksaitoの日記

日々試したことの覚え書き

sshでインストールされていないコマンドを使う

自分の管理していないサーバで作業しなければならないときに、使い慣れたツールがインストールされていないので困ることがあります。
サーバにsshがインストールされていれば、自分のサーバからコマンドを借りてくることができます。
例えば、gunzipコマンドがインストールされていないマシンでtar.gzの中身を確認するには、下記のように実行することができます。
sshは、応用範囲が広いですね。

$ cat template.tar.gz | ssh debian10 gunzip - | tar tf -
ksaito@debian10's password:
./css/
./css/common.css
./images/
./images/spacer.gif
./images/foot_copy.gif
./index.html
./index_j.html
$

tramp

trampを使うとローカルのemacsでリモートサーバのファイルを編集するこができるようです。
Emacs+TRAMP+sshでリモートサーバのファイルを編集するで紹介されています。これは、便利

$ sudo aptitude install tramp
Password:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
タスクの記述を読み込んでいます... 完了
タグのデータベースを構築しています... 完了
以下の新規パッケージがインストールされます:
  tramp
以下のパッケージが推奨されていますがインストールされません:
  metamail sharutils
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
264kB のアーカイブを取得する必要があります。展開後に 918kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://ftp.us.debian.org etch/main tramp 1:2.0.54-2 [264kB]
264kB を 3s 秒でダウンロードしました (83.2kB/s)
未選択パッケージ tramp を選択しています。
(データベースを読み込んでいます ... 現在 31960 個のファイルとディレクトリがインストールされています。)
(.../tramp_1%3a2.0.54-2_all.deb から) tramp を展開しています...
tramp (2.0.54-2) を設定しています ...
install/tramp: Ignoring emacsen flavor emacs
install/tramp: Handling install for emacsen flavor emacs21
Wrote /usr/share/emacs21/site-lisp/tramp/base64.elc
Wrote /usr/share/emacs21/site-lisp/tramp/format-spec.elc
Wrote /usr/share/emacs21/site-lisp/tramp/md5.elc
Wrote /usr/share/emacs21/site-lisp/tramp/password.elc
Wrote /usr/share/emacs21/site-lisp/tramp/run-at-time.elc
Loading /usr/lib/emacs/21.4/arm-linux-gnu/fns-21.4.1-x.el (source)...
Wrote /usr/share/emacs21/site-lisp/tramp/tramp-ftp.elc
Wrote /usr/share/emacs21/site-lisp/tramp/tramp-smb.elc
Wrote /usr/share/emacs21/site-lisp/tramp/tramp-util.elc
Wrote /usr/share/emacs21/site-lisp/tramp/tramp-uu.elc
Wrote /usr/share/emacs21/site-lisp/tramp/tramp-vc.elc
Wrote /usr/share/emacs21/site-lisp/tramp/tramp.elc
Wrote /usr/share/emacs21/site-lisp/tramp/trampcache.elc
Wrote /usr/share/emacs21/site-lisp/tramp/trampver.elc
Wrote /usr/share/emacs21/site-lisp/tramp/uudecode.elc
Done

$

emacsを起動、下記のように入力するとリモートのファイルを開いて編集することができます。

C-x C-f /ssh:user@server:/path/to/file
Password for /ssh:server: