SSブログ

Linux のパイプ機能 [コマンド]

パイプ (|) は、コマンドの標準出力 (ディスプレイに表示される内容) を、他のコマンドの標準入力 (キーボードで入力した内容) に渡して実行したいときに使う演算子です。
command1 | command2

たとえば、ls の結果から「D」の文字がついた結果だけを出力したいといったときは、ls コマンド パイプ grep コマンドと使います。
$ ls | grep 'D'

(例)
$ ls
AAA BBB CCC DDD ABCD
$ ls | grep 'D'
DDD
ABCD

[本]オススメの書籍

Linux教科書 LPICレベル1 Version4.0対応

Linux教科書 LPICレベル1 Version4.0対応

  • 作者: 中島 能和
  • 出版社/メーカー: 翔泳社
  • 発売日: 2015/06/16
  • メディア: 単行本(ソフトカバー)



タグ:Linux Command

Linux のリダイレクト機能 [コマンド]

リダイレクト機能とは、デフォルトの入力元や出力先を切り替える機能です。デフォルトの入力元はキーボード、デフォルトの出力先はディスプレイになっていますが、たとえば出力先をディスプレイからファイルに切り替えたい場合に使います。よく利用するものを下記に記載します。

■標準入力
入力元の内容をコマンドへ送る
$ command < 入力元
(例)
$ cat file-in
abcxyzdefg
hijklmnopq
rstuvwxyz

$ grep 'xyz' < file-in
abcxyzdefg
rstuvwxyz


■標準出力 (上書き)
コマンドの結果を出力先に書き込む
$ command > 出力先
(例)
$ echo abcdefg > file-out
$ cat file-out
abcdefg


■標準出力 (追記)
コマンドの結果を出力先に追記する
$ command >> 出力先
(例)
$ echo hijklmn >> file-out
$ cat file-out
abcdefg
hijklmn


■標準エラー出力
コマンドのエラーを出力先に書き込む
$ command 2> 出力先
(例)
$ ls abc
ls: cannot access abc: そのようなファイルやディレクトリはありません

$ ls abc > file-err
ls: cannot access abc: そのようなファイルやディレクトリはありません
$ cat file-err
(出力なし)

$ ls abc 2> file-err2
ls: cannot access abc: そのようなファイルやディレクトリはありません
$ cat file-err2
ls: cannot access abc: そのようなファイルやディレクトリはありません


■標準出力と標準エラー出力
コマンドの結果とエラーを出力先に書き込む
$ command > 出力先 2>&1
(例)
$ ls abc
ls: cannot access abc: そのようなファイルやディレクトリはありません

$ ls abc > file-out2 2>&1
$ cat file-out2
ls: cannot access abc: そのようなファイルやディレクトリはありません

[本]オススメの書籍

Linux教科書 LPICレベル1 Version4.0対応

Linux教科書 LPICレベル1 Version4.0対応

  • 作者: 中島 能和
  • 出版社/メーカー: 翔泳社
  • 発売日: 2015/06/16
  • メディア: 単行本(ソフトカバー)



タグ:Linux Command

CentOS 6.5 のキーボードを日本語キーボードに変更する [インフラ]

VMWare Player の簡易インストール機能を利用してインストールした CentOS 6.5 のキーボードを変更します。簡易インストール機能でインストールした場合、キーボードは英語キーボードになっていました。「半角/全角」キーを押すと「'」が入力されてしまい非常に使いづらかったため、日本語キーボードに変更することにしました。日本語キーボードに変更するため、CentOS のデスクトップから変更しました。

キーボードを日本語キーボードに変更する手順
※ロケールを日本語化した後なので、日本語のメニューになっています。
(1) メニューの「システム」→「設定」→「キーボード」を選択
(2) キーボードの設定画面の中のレイアウトタブを開く
(3) 「レイアウトの選択」の下の追加ボタンをクリック
(4) 国別タブの「国」選択ボックスから「日本」を選択し、追加ボタンをクリック
(5) レイアウトから「日本語」のラジオボタンをクリックし、デフォルトに設定
(6) 閉じるボタンをクリック

ちなみに、日本語キーボードに設定をする前に vi を使ってファイル編集をしようとしましたが、「:」(コロン) が出せなくて困っていました。Shift+Qキーで出せるようです。

タグ:CentOS

MyBatis の Mapper をサービスに DI する方法 (2) [開発]

今回も MyBatis の Mapper をサービスに DI するサンプルを作成します。
前回はセッターインジェクションを使いましたが、今回は Autowired アノテーションを使います。
Autowired アノテーションを使うことで Spring 設定ファイルを簡略化できます。

MyBatis と Spring Framework の環境構築方法は下記を参照してください。
10/1 ブログ (MyBatis のサンプルを作ってみる)

(1) データベースの準備
MySQLをインストールし、テスト用に以下のようなテーブルを準備しました。
tbl_hello_20141011.png

(2) Springの設定ファイル (applicationContext.xml) を編集します。
前回からの変更分は赤字で記載しています。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://mybatis.org/schema/mybatis-spring
    http://mybatis.org/schema/mybatis-spring.xsd">

<!-- DataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost/mybatis" />
  <property name="username" value="mybatis" />
  <property name="password" value="mybatis" />
</bean>

<!-- SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
  <property name="dataSource" ref="dataSource" />
</bean>

<!-- Mapper -->
<bean id="helloMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
  <property name="mapperInterface" value="sample.HelloMapper" />
  <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<mybatis:scan base-package="sample" />

<!-- サービス -->
<bean id="helloService" class="sample.HelloServiceImpl" />
  <property name="helloMapper" ref="helloMapper" />
</bean>

</beans>

(3) Mapper を作成します。(変更なし)
package sample;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

public interface HelloMapper {
  @Select("select * from tbl_hello where id = #{id}")
  Hello getById(@Param("id") int id);
}


(4) HelloService インタフェースを作成します。(変更なし)
package sample;

public interface HelloService {
  public Hello hello(int msgId);
}

(5) HelloServiceImpl を作成します。
前回からの変更分は赤字で記載しています。
package sample;

public class HelloServiceImpl implements HelloService {
  @Autowired
  private HelloMapper helloMapper;

  public void setHelloMapper(HelloMapper helloMapper) {
    this.helloMapper = helloMapper;
  }

  @Override
  public Hello hello(int msgId) {
    Hello ret = this.helloMapper.getById(msgId);
    return ret;
  }
}


(6) 動作確認用コードを作成します。変更なし。
public class SampleMain {
  public static void main(String[] args) {
    String resource =
        "src/main/webapp/WEB-INF/applicationContext.xml";
    ApplicationContext ac =
        new FileSystemXmlApplicationContext(resource);
    HelloService helloService = (HelloService) ac.getBean("helloService");
    Hello hello = helloService.hello(1);
    System.out.println(hello.getMessage());
  }
}

実行すると「おはよう」と表示されます。


オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)

オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)

  • 作者: アラン・シャロウェイ
  • 出版社/メーカー: 丸善出版
  • 発売日: 2014/03/11
  • メディア: 単行本(ソフトカバー)

nice!(0)  コメント(0) 
共通テーマ:blog

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。