新たにDebianをインストールしたあとで,他のマシンからのsshによるリモートログインができ,かつscreen+zshが利用可能になるまでの行動を,列挙してみました.
「A/B/C/D」は,GNOMEなどのメニューでA, B, C, Dと選んで最後にクリックすることを意味します.また,Emacs由来のキーストロークを書いているところがあります.「C-なんとか」は,Ctrlキーを押しながら,なんとかの文字を押すという意味です.
GNOME端末の起動まで
- 起動処理を終えたグラフィカルログイン画面で,一般ユーザとしてログインします.
- kernelのアップデート.ログインしてしばらく待つと,右上に,パッケージアップデートするようバルーンメッセージが出ます.クリックすると,kernelのアップデートが促されます*1.途中,rootのパスワードを入力し,keyringに追加しておきます.
- スクリーンセーバー停止.デスクトップ/設定/スクリーンセーバーで,スクリーンセーバーを設定するウィンドウが出ます.ブランク・スクリーンを選びます.ついでに,「スクリーンセーバー起動時に画面をロック」のチェックを外します.
- GNOME端末を使いやすくします.アプリケーション/アクセサリを選び,「GNOME端末」をドラッグして,上のメニューバーの適当なところにドロップします.その端末アイコンをクリックすると,GNOME端末が起動します.GNOME端末のメニューから,編集/プロファイルで,設定画面が出るので,「デフォルト」を選んで編集します.「システムの“端末のフォント”を使用する」のチェックを外し,フォントサイズはMonospace 16にします.閉じるを2回,クリックします.
GNOME端末でコマンド実行
- sudoを使えるようにします.
$ su - (rootのパスワードを入力) # visudo (nanoというテキストエディタが起動します.rootから始まる行の直後に,「ユーザ名 ALL=(ALL) NOPASSWD: ALL」と書いて,保存はC-x y RET) # exit $ sudo -i
- APTのリソース修正
# vim /etc/apt/sources.list (cdromを含む行の先頭に「#」をつけて保存します.viのコマンドで言うと,3 j i # ESC Z Z) # apt-get update
# apt-get install openssh-server (「続行しますか [Y/n]?」には RET) # exit
- 快適に使える別のマシンから,SSHでリモートログインできることを確認します.
SSHでリモートログインしてコマンド実行
- rootの別名定義
$ sudo -i # cat >> .bashrc alias upd='apt-get update' alias upg='apt-get upgrade' alias ins='apt-get install' alias sch='apt-cache search' (C-dで終了) # . .bashrc
- 時刻合わせ
# ins ntpdate # ntpdate (最寄りのNTPサーバ名) # ins ntp # /etc/init.d/ntp stop # nano /etc/ntp.conf (serverから始まる行の先頭をすべてコメントし,新たに行を作って「server 最寄りのNTPサーバ名」を書いて保存します.) # /etc/init.d/ntp start
# ins gnome-audio
- サウンド設定.ここの項目のみ,Debian実機で操作します.GNOMEからログアウト*3して再度ログインします.メニューから,デスクトップ/設定/サウンドを選び,「ソフトウェアによるサウンド・ミキシングを有効にする(ESD)」と「システムサウンドを演奏する」にチェックを入れます.さらに,画面右上のスピーカーのアイコンを右クリックして「音量コントロールを開く」を選び,ファイル/デバイスの変更で,OSS Mixerのほうを選びます.もう一度ログアウトそしてログインすれば,音が鳴りました.
- インストール,アンインストール*4
# apt-get remove netatalk # ins zsh screen # ins lftp rsync # ins g++ # ins ruby libruby irb eruby # exit
- 基本的なディレクトリを作成
$ mkdir bin src tmp $ mkdir .zsh
- 入力設定
$ cat >> .inputrc set meta-flag on set convert-meta off set input-meta on set output-meta on set bell-style visible (C-dで終了)
- 別のマシンから,lftpの設定ファイルをコピー
$ lftp fish://ユーザ名@サーバ名 (ユーザ名@サーバ名にsshで入るためのパスワードを入力) $ exit $ cd .lftp $ lftp fish://ユーザ名@サーバ名 (ユーザ名@サーバ名にsshで入るためのパスワードを入力) lftp ユーザ名@サーバ名:~> get .lftp/bookmarks lftp ユーザ名@サーバ名:~> exit
$ ssh ユーザ名@サーバ名 (The authenticity... RSA... Are you sure ...(yes/no)?には,yes RETを入力) (ユーザ名@サーバ名にsshで入るためのパスワードを入力) $ exit $ cd ~/.ssh $ lftp サーバ名 lftp ユーザ名@サーバ名:~> cd .ssh lftp ユーザ名@サーバ名:~> mget config id_rsa id_rsa.pub authorized_keys lftp ユーザ名@サーバ名:~> exit $ chmod 600 config authorized_keys id_rsa
GNU Screenを使う
- 設定ファイル
$ cp /etc/screenrc ~/.screenrc $ cat >> ~/.screenrc escape ^p^p msgwait 2 shell zsh (C-dで終了) $ cat >> .bashrc export ZDOTDIR=$HOME/.zsh alias ls='ls -aFl --color=auto' alias sx='screen -xR' (C-dで終了) $ . .bashrc
- 別のマシンから,zshの設定ファイルをコピー
$ cd ~/.zsh $ lftp サーバ名 lftp ユーザ名@サーバ名:~> cd .zsh lftp ユーザ名@サーバ名:~> mget .zshrc* lftp ユーザ名@サーバ名:~> exit $ cd
- GNU Screenで入る
$ sx
*1:netinstのisoファイルをもとにインストールしているので,たいていのパッケージはインストール時にネットワークからダウンロードされ,いわば最新なのですが,カーネルだけはそうはいかないのです.
*2:「exit」と打たなくても,コマンドラインの先頭であれば,C-d で終了します.lftpでも使用可能です.
*3:ログアウトの仕方は,メニューから,デスクトップ/(ユーザ名)のログアウト...
*4:netatalkパッケージを削除していないと,起動時に「AppleTalk」云々と出て,無意味な待ち時間になります.
*5:「lftp サーバ名」を実行する前に,~/.lftp/bookmarksに「サーバ名 fish://ユーザ名:パスワード@サーバ名」と書いてあるのを確認しておきます.lftpコマンドは,~/.sshの認証情報は参照しないようですね.