25 May 2013, 12:56

zshは至高の利便性?!Cygwinにzshをインストール&設定した導入方法まとめ

シェルのなかで、至高の利便性を誇ると言われているzshを試してみました。きっかけは、この本を読んだので。作業メモを兼ねて、簡単に使い方を書きます。

 

zshとは

zshとは、シェルの種類のひとつ。Bashやtcshなどの、全てのシェルのいいとこどりをして開発された至高のシェル。”z”というのは、これで” これでシェルは完成で終わりだよ” という意味。

Z Shell – Wikipedia

zsh導入まで

zshインストール方法

Cygwinパッケージに含まれているので、setup.exeかapt-cygで取得します。

$ apt-cyg install zsh
$ zsh --version
zsh 5.0.2 (i686-pc-cygwin)

zshと打ち込むとzshになります。入力のためのコンソールが%になりました。

# zshに切り替える
zsh

zshをログインシェルにする

ログインしたときに、zshが起動するように設定します。

# ログインシェルの確認
% echo $SHELL
/bin/bash

普通はchshを利用するけれども、Cygwinではそれがない!なので、/etc/passwdを直接書き換えます。

% emacs /etc/passwd

# 変更前
tsu-nera:unused:1000:513:U-TSUNEMICHI-VAIO\TSUNEMICHI,S-1-5-21-2209003112-325970183-628590984-1000:/home/TSUNEMICHI:/bin/bash

# 変更後
tsu-nera:unused:1000:513:U-TSUNEMICHI-VAIO\TSUNEMICHI,S-1-5-21-2209003112-325970183-628590984-1000:/home/TSUNEMICHI:/usr/bin/zsh

すると、CygwinやCygtermはみごとzshで起動。しかし、母艦terminalのminttyだけがbashのまま・・・・(´・ω・`)。

いろいろと頑張ること1時間・・・ついにわかった!(・∀・)

ユーザ環境変数で、$SHELLがbashだった。

コントロールパネル – > システム -> システムの詳細設定 -> 環境変数からユーザ環境変数の設定画面へ。/bin/bashをを/usr/bin/zshに変更することで、minttyもzshで起動するようになった(^O^)

.zshrcの作成

.zshrcを作成すると、ログイン時に読み込まれる。$HOMEディレクトリにまずは作成。

touch .zshrc

.zshrcに書く内容は、いろんなサイトを参考に作ってみた。

自分の.zshrcファイルを公開 – 世界中の羊をかき集めて

あと、zsh最強シェル入門の本も参考にした。以下、便利そうなのをつまんで紹介。

screenで端末間のヒストリ機能の共有

zshは強力なヒストリ機能が魅力。特に、screenコマンドを使っていると、端末で実行したコマンドを全て共有したい場合がある。zshならば、端末ごとの共有だってできてしまう。以下2つの設定で有効になる。

## Screenでのコマンド共有用
## シェルを横断して.zshhistoryに記録
setopt inc_append_history
## ヒストリを共有
setopt share_history

他にも、重複排除などの機能もたくさん。

カレントディレクトリの表示

zshを利用すると、コンソール上にカレントディレクトリも表示することができる。もうpwdなんていらないのである。設定は以下。

SnapCrab_NoName_2013-5-24_17-47-24_No-00

# 色有効
autoload -U colors
colors

# 色を定義
local GREEN=$'%{\e[1;32m%}'
local BLUE=$'%{\e[1;34m%}'
local DEFAULT=$'%{\e[1;m%}'

# 通常のプロンプト
PROMPT=$BLUE'[%n]%# '$WHITE
# 右側のプロンプト。ここでカレントディレクトリを出す。
RPROMPT=$GREEN'[%~]'$WHITE
setopt transient_rprompt

グローバルエイリアスの設定

グローバルエイリアスを設定することで、コマンドの任意の場所で展開できるようになる。zshだけの機能。

例えば、ls -l L と入力すると、ls -l | less というように変換される。

alias -g L='| less'
alias -g H='| head'
alias -g T='| tail'
alias -g G='| grep'
alias -g GI='| grep -i'

Cygwinでwindowsパス形式のWaringを抑止する

zshでの操作の途中でこんなエラーが出る。

  MS-DOS style path detected: ./.zshrc\~
  Preferred POSIX equivalent is: ./.zshrc/~
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

これは、CygwinがWindowsパス形式をWaringとするため。コントロールパネル – > システム -> システムの詳細設定 -> 環境変数からシステム環境変数の設定画面へ。

CYGWIN=nodosfilewarningというように、環境変数追加するとよい。

SnapCrab_環境変数_2013-5-22_8-21-18_No-00

gnupack Users Guide – 技術情報

 

他にも便利そうな機能はたくさんあるけれども、とりあえずはこのへんでやめておく。

25 May 2013, 12:45

Cygwinでgit push時にパスワード入力を省略する方法

Cygwinでgit pushするとき、いちいちパスワードをうつのが面倒だ。なにか回避方法がないものか?

普通の(Linux)の場合、$HOME/.netrcに以下を追加すればよいらしい。

machine github.com
login tsu-nera
password ****************

 

ただし、Cygwinではうまくいかず、_netrcという名前にしろとあったり。

これでもうまくイカなかった。しかたがないので、expectコマンドを使って、パスワード入力を自動化した。

追記

名前は.netrcにして、アクセス権限を変更したらうまくいくようになった!!

chmod 600 ~/.netrc

git clone https://ID@HOST/… できない場合の暫定対策 – iWA’s 雑記@はてな出張所

25 May 2013, 10:40

iPadのSplashtop XDisplayを使ってWindowsをデュアルディスプレイにする方法とモバイルルーターで接続できない場合の対処法
20130525200911.jpg

 

会社にも、プライベートにも、どこにいくにもVAIOとiPadをもちあるいているアタクシですが、今日はiPadをデュアルディスプレイとして利用できるアプリがあることを知り、鼻血がでるほど興奮したので、紹介します。

環境

  • Windows 7 64bit
  • iPad 3

Splashtop XDisplayの紹介

利用するには、iPadアプリ Splashtop XDisplayを入れます。これを入れることで、iPadをデュアルディスプレイにすることができます。

 

無料なのは10分間のみ。それからはプラグインを購入する必要がある。

(追記 2013/10/22 )

結局はSplashtop XDisplayではなくて AirDisplayに乗り換えた)

以下、Windowsパソコンとの連携ですが、MacやLinuxももちろん行けるはず。

Splashtop XDisplayの設定方法

順に説明します。

Windowsでの設定

PCに専用ソフトStreamerを入れる。ダウンロードは以下から。

トップリモートデスクトップアプリ | iPad からコンピューターにアクセス | Splashtop 2 | Splashtop

ダウンロードしたら、インストーラを起動するとインストールされます。ここからは、Streamerの設定。

まずはアカウントの作成。

ScreenClip.png

次に、セキュリティキーを設定します。これで変な人からアクセスされることを防ぐ。

ScreenClip.png

iPad側の設定

iPadにSplashtop XDisplayのAppをインストール。

Splashtop XDisplay

iTunesで見る

 

これで、アプリを起動すれば同一wifi内にあるパソコンを自動検出するはずが・・・

接続できない!!(ノД`)

不思議なエラーコードが出て、接続は確立できない。

s=00 E=84000121

イーモバイルのPocket wifiでハマったこと

Pocket wifiなどのモバイルwifiの場合、「プライバシーセパレータ(プライベートセパレーター)」を無効にする必要がある(デフォルト有効)以下、説明を引用。

プライバシーセパレータ

無線ルータとしての利用時、無線LANで接続されるPC間などのファイル共有、および無線LAN対応プリンタとの接続をする場合、以下にて 「プライバシーセパレータ」 の機能を無効 にする設定を行う必要があります

イーモバイルでの設定方法は、以下。

  1. ブラウザを起動し、http://192.168.1.1/へ接続
  2. GL01P設定ツールにログイン。ここは自分は購入時からなにも設定していなかった。デフォルトではadmin/adminで入れる。
  3. 初めて設定するばあいは、「かんたん設定」から、そうでない場合は、設定 -> 無線LAN基本設定 を選択。
  4. プライベートセパレータの設定を 有効から無効にして適用。
skitch.png

 

これでOK。

ついにデュアルディスプレイ

20130525185513.jpg

これはやべぇ、誰かあたしの鼻血を止めてください(*’∀’人)

[http://www.youtube.com/embed/nw1ZdZ57sp4?rel=0]

20130525200911.jpg

 

会社にも、プライベートにも、どこにいくにもVAIOとiPadをもちあるいているアタクシですが、今日はiPadをデュアルディスプレイとして利用できるアプリがあることを知り、鼻血がでるほど興奮したので、紹介します。

環境

  • Windows 7 64bit
  • iPad 3

Splashtop XDisplayの紹介

利用するには、iPadアプリ Splashtop XDisplayを入れます。これを入れることで、iPadをデュアルディスプレイにすることができます。

 

無料版と450円の有料版があります。無料版は10分間で接続が解除される制限があるため、お試しで使ってみるのはよいと思う。

以下、Windowsパソコンとの連携ですが、MacやLinuxももちろん行けるはず。

Splashtop XDisplayの設定方法

順に説明します。

Windowsでの設定

PCに専用ソフトStreamerを入れる。ダウンロードは以下から。

トップリモートデスクトップアプリ | iPad からコンピューターにアクセス | Splashtop 2 | Splashtop

ダウンロードしたら、インストーラを起動するとインストールされます。ここからは、Streamerの設定。

まずはアカウントの作成。

ScreenClip.png

次に、セキュリティキーを設定します。これで変な人からアクセスされることを防ぐ。

ScreenClip.png

iPad側の設定

iPadにSplashtop XDisplayのAppをインストール。

Splashtop XDisplay
iTunesで見る

 

これで、アプリを起動すれば同一wifi内にあるパソコンを自動検出するはずが・・・

接続できない!!(ノД`)

不思議なエラーコードが出て、接続は確立できない。

s=00 E=84000121

イーモバイルのPocket wifiでハマったこと

Pocket wifiなどのモバイルwifiの場合、「プライバシーセパレータ(プライベートセパレーター)」を無効にする必要がある(デフォルト有効)以下、説明を引用。

プライバシーセパレータ

無線ルータとしての利用時、無線LANで接続されるPC間などのファイル共有、および無線LAN対応プリンタとの接続をする場合、以下にて 「プライバシーセパレータ」 の機能を無効 にする設定を行う必要があります

イーモバイルでの設定方法は、以下。

  1. ブラウザを起動し、http://192.168.1.1/へ接続
  2. GL01P設定ツールにログイン。ここは自分は購入時からなにも設定していなかった。デフォルトではadmin/adminで入れる。
  3. 初めて設定するばあいは、「かんたん設定」から、そうでない場合は、設定 -> 無線LAN基本設定 を選択。
  4. プライベートセパレータの設定を 有効から無効にして適用。
skitch.png

 

これでOK。

ついにデュアルディスプレイ

20130525185513.jpg

これはやべぇ、誰かあたしの鼻血を止めてください(*’∀’人)

[http://www.youtube.com/embed/nw1ZdZ57sp4?rel=0]

19 May 2013, 11:56

縦分割ができる開発版screen(version 4.1.0)をCygwinに入れるメモ

SnapCrab_~_2013-5-19_20-46-31_No-00

最近イタク感動を覚えた記事が以下です。

卜部昌平のあまりreblogしないtumblr – 俺の .screenrc が火を吹くぜ

 

スッゲー!Σ(゚Д゚ノ)ノ

いつかはこんな画面を目指して自分も精進しようと決意しました。screenはデフォルトでは横分割しかできないけれども、開発版のscreenはなんと縦分割が可能!ということで、開発版のscreen(version 4.1.0)をソースからコンパイルしてみました。

縦分割はtmuxも実現可能。最近はtmuxが熱いらしい。screenは終わったとかうわさをきいたが、Google検索調査ではこんなかんじだった。

 

screenとは

screenとは、GNU プロジェクトのひとつ。今は、

GNU Screen – GNU Project – Free Software Foundation

仮想端末作り出し、端末を切り替えながら作業することを助けるツール。一つのコンソール上で、バーチャルなコンソールをいくつも作成して、それらをコマンドラインから切り替えられる。Emacsでも画面分割ができるが、あれをコンソールで実現する感じ。

コンソール画面を10個くらい開いている自分にとっては神ツールだ。

最新版 GNU screeenをインストールする

最新版は、ソースからコンパイルして、インストールする。

事前準備

以下のツールがコンパイルに必要なので、まだCygwinに入っていない場合はインストールすること。

  • gcc4
  • autoconf
  • automake
  • libncurses-devel
  • git
  • libcrypt-devel
  • ncurses(make installするとき、tieというコマンド実行で必要っぽい。これでえらーした)
$ apt-cyg install gcc4 autoconf automake libncurses-devel

gccのバージョンは4である必要があるので、一応確認。

$ gcc --version
gcc (GCC) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.

ソースの取得

githubより取得して、github用のスクリプトを実行します。

$ git clone git://git.sv.gnu.org/screen.git
$ cd screen/src
$ ./autogen.sh

./configureを実行。デフォルトでは/usr/bin配下にインストールされるので、自分でインストール場所を変えたい場合は、./configure –prefix=“hogehoge/hogehoge”で指定する。また、–enable-colors256を指定すると、256色が利用できる。

これでMakefileが生成されたらmakeする。

$ ./configure
$ make
$ make install

インストール完了!ミッションコンプリート!!━━v(o´∀`o)v━━

$ screen -v
Screen version 4.01.00devel (GNUc2cd059) 2-May-06

GNU screen最新の縦分割を試す

縦分割について

縦分割を実行するには、(デフォルトでは) Ctrl + a, |でいけます。

横分割は Ctrl + a, Sです。

グレイトな結果ですね。

[http://www.youtube.com/embed/p18lXnKlg9E?rel=0]

256色の設定について

minttyで256色を有効にするには、.screenrcに以下を追記するとよい。

 TERM=xterm-256color screen

Cygtermだとこのリンクが参考になる。

.screenrcの設定や開発版の新機能の探検はまた今度で。

オススメ書籍

余談だけれども、screenについては以下の本で解説されている。zshの本なのに。。。

参考

SnapCrab_~_2013-5-19_20-46-31_No-00

最近イタク感動を覚えた記事が以下です。

卜部昌平のあまりreblogしないtumblr – 俺の .screenrc が火を吹くぜ

 

スッゲー!Σ(゚Д゚ノ)ノ

いつかはこんな画面を目指して自分も精進しようと決意しました。screenはデフォルトでは横分割しかできないけれども、開発版のscreenはなんと縦分割が可能!ということで、開発版のscreen(version 4.1.0)をソースからコンパイルしてみました。

縦分割はtmuxも実現可能。最近はtmuxが熱いらしい。screenは終わったとかうわさをきいたが、Google検索調査ではこんなかんじだった。

 

screenとは

screenとは、GNU プロジェクトのひとつ。今は、

GNU Screen – GNU Project – Free Software Foundation

仮想端末作り出し、端末を切り替えながら作業することを助けるツール。一つのコンソール上で、バーチャルなコンソールをいくつも作成して、それらをコマンドラインから切り替えられる。Emacsでも画面分割ができるが、あれをコンソールで実現する感じ。

コンソール画面を10個くらい開いている自分にとっては神ツールだ。

最新版 GNU screeenをインストールする

最新版は、ソースからコンパイルして、インストールする。

事前準備

以下のツールがコンパイルに必要なので、まだCygwinに入っていない場合はインストールすること。

  • gcc4
  • autoconf
  • automake
  • libncurses-devel
  • git
  • ncurses(make installするとき、tieというコマンド実行で必要っぽい。これでえらーした)
$ apt-cyg install gcc4 autoconf automake libncurses-devel

gccのバージョンは4である必要があるので、一応確認。

$ gcc --version
gcc (GCC) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.

ソースの取得

githubより取得して、github用のスクリプトを実行します。

$ git clone git://git.sv.gnu.org/screen.git
$ cd screen/src
$ ./autogen.sh

./configureを実行。デフォルトでは/usr/bin配下にインストールされるので、自分でインストール場所を変えたい場合は、./configure –prefix=“hogehoge/hogehoge”で指定する。また、–enable-colors256を指定すると、256色が利用できる。

これでMakefileが生成されたらmakeする。

$ ./configure
$ make
$ make install

インストール完了!ミッションコンプリート!!━━v(o´∀`o)v━━

$ screen -v
Screen version 4.01.00devel (GNUc2cd059) 2-May-06

GNU screen最新の縦分割を試す

縦分割について

縦分割を実行するには、(デフォルトでは) Ctrl + a, |でいけます。

横分割は Ctrl + a, Sです。

グレイトな結果ですね。

[http://www.youtube.com/embed/p18lXnKlg9E?rel=0]

256色の設定について

minttyで256色を有効にするには、.screenrcに以下を追記するとよい。

 TERM=xterm-256color screen

Cygtermだとこのリンクが参考になる。

.screenrcの設定や開発版の新機能の探検はまた今度で。

オススメ書籍

余談だけれども、screenについては以下の本で解説されている。zshの本なのに。。。

参考

19 May 2013, 10:20

CentOS 6.4にJavaとJenkinsをインストールして設定する
SnapCrab_NoName_2013-5-19_19-6-4_No-00.png

CentOSにJenkinsサーバを導入する手順をまとました。この公式手順にしたがいます。

Installing Jenkins on RedHat distributions – Jenkins – Jenkins Wiki

環境

  • CentOS 6.4(ただし、Windows上のVMware Playerで動作している)
  • Jenkins 1.515
  • Java 1.7.0

Javaのインストール

JenkinsはJavaで動作するので、Javaが入っていない場合は、先に入れます。自分の場合は、入ってなかったので、入れました。

ちなみにここで注意が必要。CentOSのデフォルトjavaではJenkinsは動作しないらしい。Sun公式Javaと互換性のあるもの(Sun-compatible)が必要か。

すでにCentOS用のJavaが入っている場合は、削除してJavaを入れなおす。Sunと互換性のあるJavaを入れなおす。一番簡単な方法はjava-1.6.0-openjdkを入れること、と書いてある。記事が古そうなので、1.7を入れる。

sudo yum install java-1.7.0-openjdk

インストールできたか確認。

java -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-i386)
OpenJDK Client VM (build 23.7-b01, mixed mode, sharing)

関係ないけど、Windowsに導入した以下の記事も参考。いろいろ雑学がのってます。

Java JDK インストール方法まとめ(Windows) | Futurismo

Jenkinsのインストール

公式HPにそってコマンドを叩くだけの簡単なお仕事。wgetも入れておくこと。

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum -y install jenkins

簡単かとおもったが、エラーした。。。

 Downloading Packages:
http://pkg.jenkins-ci.org/redhat/jenkins-1.515-1.1.noarch.rpm: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.


Error Downloading Packages:
  jenkins-1.515-1.1.noarch: failure: jenkins-1.515-1.1.noarch.rpm from jenkins: [Errno 256] No more mirrors to try.

以下のサイトを頼りに解決方法を探す。

CentOS6.2にJenkinsをインストールする手順 | mawatari.jp

rpmで直接インストールします。これでOK.

wget http://pkg.jenkins-ci.org/redhat/jenkins-1.515-1.1.noarch.rpm
sudo rpm -ivh jenkins-1.515-1.1.noarch.rpm

さあ、Jenkinsさん。Welcome to CentOS!

sudo /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

# 起動とともにJenkins起動するおまじない
sudo /sbin/chkconfig jenkins on

Windows上のブラウザからアクセスしようとするが・・・アクセスできないお(´・ω・`)

http://192.168.118.130:8080/

Jenkinsの設定

Jenkinsのデフォルトポートは8080なので、ファイアウォールの設定でポート8080を開ける。設定ファイル /etc/sysconfig/iptablesを編集する。

$ sudo emacs /etc/sysconfig/iptables

以下の一行を追加する。ただし、COMMITの上に追加すること。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

ファイアウォールの再起動を実施

$ sudo service iptables restart
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]

Jenkins氏、北朝鮮より、間違えた、CentOSより来訪。

SnapCrab_NoName_2013-5-19_19-6-22_No-00.png

参考

19 May 2013, 03:58

CentOSインストール後の設定メモ(minimal)

前回、minimalモードでCentOSをインストールしましたので、今回はそのあとの設定についてまとめました。

CentOSを最小構成(minimal)でVMware Playerにインストールした | Futurismo

ネットワーク設定

minimalだと、デフォルトではネットワークが使えないので、ネットワークの設定をします。

まずは、ネットワークサービス停止

# /etc/rc.d/init.d/network stop

次に設定ファイルを開いて修正します。/etc/sysconfig/network-scripts/ifcfg-eth0

vi /etc/sysconfig/network-scripts/ifcfg-eth0

なんとviしか入っていない!emacsしか使えない自分にとってはいきなり大ピンチだった。以下の部分を修正する。

# NICの有効化

ONBOOT=”yes”

# DHCPサーバとして起動

BOOTPROTO=”dhcp”

このへんは、このページを参考にした。

◇ネットワークの詳細設定(CentOS5)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆

修正が終わったら、ネットワークをスタート。

# /etc/rc.d/init.d/network start

ツールのアップデート

kernelを含め、ツール類を全てアップデートする。-yは全て質問にYesするおまじない。

# yum -y update

ユーザの追加

作業用のユーザを作成する。rootだとなんでもできてしまうため。

# useradd hogehog

# passwd hogehoge

# chmod 701 /home/hogehoge

作成したユーザにはsudoを実行できるようにする。

echo ‘hogehoge ALL=(ALL) ALL’ >> /etc/sudoers

一般ユーザでもroot権限が必要なコマンドを実行できるようにする 窶錀 sudo | Linuxで自宅サーバ構築

telnetできるようにする

telnetもデフォルトでは使えません。設定方法は別記事にまとめました。

CentOSでtelnetできるようにするまでの手順(クライアント・サーバ) | Futurismo

とりあえず、最小限サーバなのでこんなところか?必要に応じてまた追記する。

参考

19 May 2013, 03:29

CentOSでtelnetできるようにするまでの手順(クライアント・サーバ)

CentOSでtelnetを実施するための手順を調べてみたのではメモします。

telnetクライアントの設定

コマンド一つで入る。これはラクチン。

# yum -y install telnet

telnetサーバの設定

telnetサーバインストール

まずはサーバをインストール。

# yum -y install telnet-server

IP設定

emacs -nw /etc/host.allowに

同一のネットワーク内のクライアントを許可する場合は、以下を追記。

in.telnetd: 192.168.XXX

telnetサーバ有効化

インストール直後では、Telnet-Serverは無効になっています。以下の変更を加える事で有効にできます。

# vi /etc/xinetd.d/telnet

# default: on

# description: The telnet server serves telnet sessions; it uses

# unencrypted username/password pairs for authentication.

service telnet

{

flags = REUSE-

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.log_on_failure += USERID

disable = no # ここをyesからnoに変更

}

サーバを起動

# /etc/init.d/xinetd start

telnet実験

まずは、ローカルホストに入れるのかテスト。

# telnet localhost

次に、Windowsからtelnetしてみるができない。。。(´・ω・`)

ファイアウォール設定

ファイアウォールの設定が必要。telnetはポート23で通信するが、デフォルトではポート23は閉じているので、開ける必要がある。以下のコマンドで、23が空いているか確認。

# less /etc/sysconfig/iptables

23という数字が見当たらなければ設定が必要。/etc/sysconfig/iptablesに以下の行を追記する。見にくいのだが、–stateと–dportの- は – が 2つ連続。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23-j ACCEPT

iptablesを再起動して設定を適用すれば、telnetできるようになる。

# service iptables restart

参考

CentOSでtelnetを実施するための手順を調べてみたのではメモします。

telnetクライアントの設定

コマンド一つで入る。これはラクチン。

# yum -y install telnet

telnetサーバの設定

telnetサーバインストール

まずはサーバをインストール。

# yum -y install telnet-server

IP設定

emacs -nw /etc/host.allowに
同一のネットワーク内のクライアントを許可する場合は、以下を追記。

in.telnetd: 192.168.XXX

telnetサーバ有効化

インストール直後では、Telnet-Serverは無効になっています。以下の変更を加える事で有効にできます。

# vi /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no # ここをyesからnoに変更
}

サーバを起動

# /etc/init.d/xinetd start

telnet実験

まずは、ローカルホストに入れるのかテスト。

# telnet localhost

次に、Windowsからtelnetしてみるができない。。。(´・ω・`)

ファイアウォール設定

ファイアウォールの設定が必要。telnetはポート23で通信するが、デフォルトではポート23は閉じているので、開ける必要がある。以下のコマンドで、23が空いているか確認。

# less /etc/sysconfig/iptables

23という数字が見当たらなければ設定が必要。/etc/sysconfig/iptablesに以下の行を追記する。

-A INPUT -m state –state NEW -m tcp -p tcp –dport 23-j ACCEPT

iptablesを再起動して設定を適用すれば、telnetできるようになる。

# service iptables restart

参考

19 May 2013, 02:40

『よいコードを書く技術』とよいクラス名のつけ方について

『良いコードを書く技術』を読んだので、読書メモです。

 

この本の内容は題名の通りですね。以下のサイトの連載が書籍かされたようで、同じ内容をサイトからも読むことができます。

良いコ-ドへの道―普通のプログラマのためのステップアップガイド:連載|gihyo.jp … 技術評論社

 

以前リーダブルコードを読んでいたのだが、内容的にはまあまあ同じ。良いコードを書く技術は共通しているのだ。この本の後半の方になると、メタプログラミングやフレームワークといった内容についてもページが割かれていた。。普段聞き慣れない概念なので、新鮮だった。

初心者プログラマ、中級プログラマ、熟練プログラマの三人の対話形式で話がすすんでいく。コミカルなところもあり、読んでいて楽しめる。リーダブルコードよりもやさしめに書かれている印象を受ける。

また、実例を通して解説していくところが多い。言語はJava。WebやGUIを題材にしたものが多い。組み込みな自分にとっては若干とっつきにくかった。

いろいろとためになったのだが、一つ特筆すると『習熟度別よく利用されるクラス名』というピラミッド。これは、作者オリジナルらしい。図は、以下のリンクから確認。

第2回 名前付け重要。または,良いコードは良い名前から生まれるんです。―その4 良いクラス名:良いコ-ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社

いろいろとわからない意味があるが、気になった時に調べてみようと思う。ここから検索するのがよさそう。

索引「あ」 – コンピューター用語 – Weblio英和和英

習熟度別よく利用されるクラス名のまとめ

レベル1 業務Webアプリ開発

  • Action
  • Controller
  • Dto
  • Logic
  • Service
  • Util
  • DBのテーブル名と一対一のEntity
  • Helper
  • Support
  • Dao
  • Manager
  • Bean
  • Form
  • Exception
  • Validator
  • Test
  • impl

レベル2 GUI/フレームワーク拡張

  • Listener
  • Handler
  • Runnner
  • Commmand
  • Observer
  • Node
  • Adapter
  • Proxy
  • Holder
  • Context
  • Monnitor
  • State
  • Builder
  • Factory
  • Viisitor
  • Decorator
  • Strategy

レベル3 フレームワーク/ライブラリ開発

  • Scope
  • Looader
  • Engine
  • Provider
  • Conversion
  • Beeehaviour
  • Descriptor
  • Cache
  • Resolver
  • Processor

19 May 2013, 01:04

会社でつかえそう?!ローカル管理・ Evernoteライクなメモ管理ツール NixNoteを試してみた

Evernoteを会社で使いたいのだけれども、セキュリティの問題でそういうツールは利用を禁止されている。(´・ω・`)

Evernoteをローカルだけで使う方法もたしかにあるが、アカウント同期のためにネット上に情報をださなければならない。チキンでマックでチキンクリスプマフィンばかり食べている自分にはそんなことは滅相もない。(´・ω・`)

そんなこんなで、3年くらい暮らしていたのだが、今日はふとネットサーフィンをしていたら、Evernoteライクなメモ管理ツールを発見!(^O^)

早速試してみた。

NixNoteでローカルメモ管理

NixNote(旧NeverNote)は、Evernote用のオープンソースなクライアントソフト。

Nevernote – An Open Source Evernote Clone

なので、Evernoteと機能は全く同じ!EvernoteはLinuxに対するクライアントソフトを用意していないようで、LinuxからEvernoteを利用するには、このツールが決定版の必須らしい。Windowsユーザは Evernote for Windowsがあるので、このようなソフトとは無縁。

ダウンロードは以下から最新版を落とす。Windowsの場合は、インストーラが用意されているので、それを落とす。もちろん、Macでもインストールできる。

インストールはインストーラを実行するだけ。どや!

SnapCrab_NixNote_2013-5-19_9-47-28_No-00.png

 

完璧にEvernoteだ。そして、ログインせずともなんでも自由に操作できる。PDFのインライン表示だってできる。

ただ、軽く使ってみたところ、PDFの文字列検索が引っかからなくて、検索が重い気が。。まあいいや。もう少し遊んでみよう。

19 May 2013, 00:06

Cygiwnでの操作ログをevernoteにライフログする方法

ライフログ大流行の昨今、やっぱりコンソールの履歴もライフログしたいです。

ブログを書くときとか、操作したことを自動的に記録出来ればいいとおもった。さらには、Evernoteに自動転送してログできればいいなと思ったので、方法を調べてみた。

Evernoteに自動転送する方法

Evernoteに自動転送するには、インポートフォルダの設定をすればよい。

  1. 任意の場所にログを保存するフォルダを作成。
  2. Evernoteにログを保存したフォルダを作成。
  3. Evernoteのツールバーから、ツール -> インポートフォルダを選択。
  4. 追加を選択して、作成したWindows上のフォルダを指定する。
  5. 「ノートブック」欄を選択して、Evernoteフォルダを選択する。

evernote_mintty

Cygwin上でログを記録をする

起動と終了をシェルでまとめました。

ログ開始

ログを取るには、scriptコマンドを利用します。script  -a で追記モードで起動。ついでに、起動したときの日付をファイル名にします。

#!/bin/bash

LOG_TEMP_DIR=$HOME/log/evernote/temp
DATE=`date +%y%m%d`

script -af $LOG_TEMP_DIR/$DATE.txt

ログ終了

Evernoteへはログ終了時に転送します。まずはコマンドラインからscriptを終了させることが前提。

制御文字をcolコマンドで削除します。Evernoteの文字コードがShift-Jisなため、Shift-JISでなければ、変換が必要。nkfコマンドで変換します。なお、拡張子はtxt形式にしないと、evernote上で開けない。

#!/bin/bash
LOG_DIR=$HOME/log/evernote
LOG_TEMP_DIR=$HOME/log/evernote/temp
DATE=`date +%y%m%d`

# 制御文字削除
col -bx < $LOG_TEMP_DIR/$DATE.txt > $LOG_TEMP_DIR/$DATE.col.txt

# 文字コード変換 Shift-JIS
nkf -s $LOG_TEMP_DIR/$DATE.col.txt > $LOG_TEMP_DIR/$DATE.sjis.txt

# Evernoteへ移動
mv $LOG_TEMP_DIR/$DATE.sjis.txt $LOG_DIR/$DATE.txt

# 一時ファイル削除
rm $LOG_TEMP_DIR/$DATE.col.txt

画面制御文字は妥協した

ちなみに、画面制御文字はどうしても取り除けなかかった。33m~や0;など。これは、minttyを色なしで表示すればいいが、それはやりたくないので妥協。

Cygtermを使う

シェルでガンパラなくても、Cygtermのログ機能を使えば、画面制御文字も取り除ける。

minttyでの出力結果をcygtermからtail -f で表示させるとか。まあ、いろいろと方法を探したけれども、Cygtermを利用するのが一番簡単そうだ。minttyを捨てて、Cygtermにするかどうか、悩むところだ。。。

ツールバーの設定 -> その他の設定 -> ログを選択。

標準ログファイル名で、strftimeフォーマットに従った名前を書く。ここでは、%y%m%d.txtとした。これで今日の日付が入る。

保存先ディレクトリでevernoteと連携しているフォルダを指定。

自動的にログ採取を開始するにチェックをいれると、Cygterm起動時にログが開始される。

SnapCrab_Tera Term その他の設定_2013-5-19_15-5-22_No-00

その他

これを、ログインシェルとログアウトシェルに書いて自動的にログするかは検討中。そんなにログは必要かな?