書籍概要

Software Design 20165月号

バックナンバー一覧

発売日
更新日

概要

第1特集
コード編集の高速化からGitHub連携まで
Vim[実戦]投入

フリーのテキストエディタの中では圧倒的な人気を誇る「Vim」。システム/インフラエンジニアの第一歩として,また自分のコーディングのさらなる高速化/効率化のために,新たにVimを選択する人は多いのではないでしょうか。本特集では,Vim業界で著名な5人が,初心者に向けた「Vimのはじめかた」,プログラマに役立つ「高速編集術」「正規表現」「GitHub連携」,さらには「Vim開発の最新事情」まで解説します。そして章末には,Vim初学者向けにコマンドを厳選した「Vimチートシート」も付属! 明日からの「実戦」に耐え得る大特集です。

第2特集
2年ぶりのLTS
安定のUbuntu 16.04の新機能

本特集では,Linuxディストリビューションの中でもデスクトップOSとして一番利用されているUbuntuの最新バージョン16.04の新機能,派生する各フレーバー,最新情報を紹介します。今回はLTS(Long Term Support:長期サポート版)で5年間サポートされます。前のLTSである14.04から2年が経過し,半年に1度のバージョンアップを追いかけていない方も,そろそろ本バージョンに乗り換えることを考えてみてはいかがでしょうか。

序章では,Ubuntuの概要や現在の立ち位置について解説します。そして第1章では,16.04での新機能や変更点について,第2章では,Ubuntuから派生する各フレーバー(Kubuntu,Xubuntu,Lubuntu,Ubuntu GNOME,Ubuntu MATE,Ubuntu Studio)と日本語入力メソッドについての解説,第3章では,サーバ用途として使われるUbuntu Serverについて独自機能(Juju,MAAS,LXD)を交えて紹介します。

特別付録&巻頭特集
SORACOM Air SD Special Version
特別SIMで始めよう! SORACOMでわかるIoT

ITエンジニアの間で非常に人気あるソラコム社が販売するSORACOM Air(データ通信専用SIMカード)の特別版を付録にしました。月刊雑誌付録ということで,アクティベーション期間が1ヵ月間と限定されるものの,商品版と同じサービスを使うことができます。

<「SORACOM Air SD Special Version」の機能>

  • アクティベーション期間(2016年4月18日~2016年5月18日)
  • データ通信専用,SMS(ショートメールサービス)は非対応
  • ナノサイズSIM(3G/LTE通信回線を利用)
電子版は特別付録「SORACOM Air特別版」は付いていません(通常価格)。

一般記事
セキュリティ対策はまずここから! フリーで始めるサーバのセキュリティチェック
【前編】Nmapによるポートスキャン

システムやアプリケーションの脆弱性(セキュリティ上の問題点)を探し出し,その検出された脆弱性に対する対策を報告する脆弱性診断というサービスがあります。予算やスケジュールなどの理由から脆弱性診断を実施せずにリリースを迎えてしまうケースがありますが,これは脆弱性を包含したままリリースしている可能性もあり危険です。

本稿では,セキュリティベンダに依頼しなくても簡易的なセキュリティチェックを自分たちで行い,少しでもリスクを軽減することの一助になればと思い,フリーツールを用いたセキュリティチェックの方法を紹介します。

目次

第1特集
コード編集の高速化からGitHub連携まで
Vim[実戦]投入

  • Part1:Vimとの長い付き合いのはじめかた…… 氏久 達博
  • Part2:Vimだからできる,一歩先行く編集術…… thinca
  • Part3:Vimの強力な正規表現を使いこなそう…… tyru
  • Part4:VimでGitHubをもっと使いやすくする…… 林田 龍一
  • Part5:Vimの今昔~Neovimと新しくなったVimについて…… mattn
  • Appendix:Vim[超]ベーシックチートシート…… mattn

第2特集
2年ぶりのLTS
安定のUbuntu 16.04の新機能

  • 序章:さまざまな分野で活躍する
    Ubuntuの魅力…… 水野 源
  • 第1章:GNOMEソフトウェア採用,Python 3への移行など多岐にわたる
    Ubuntu 16.04 LTSの新機能の概要…… 柴田 充也
  • 第2章:デスクトップで比較する
    Ubuntu 16.04 LTSとそのフレーバー …… あわしろいくや
  • 第3章:Juju,MAAS,LXDなどの独自機能で際立つ
    Ubuntu Server 16.04 LTSの特徴…… 吉田 史

特別付録
SORACOM Air SD Special Version

電子版は特別付録「SORACOM Air特別版」は付いていません(通常価格)。

巻頭特集
<特別SIMで始めよう! SORACOMでわかるIoT>

  • 第1章:さっそく使ってみよう
    SORACOM Air SD Special Versionの使い方…… 平 愛美
  • 第2章:おうちで楽しむ家庭内IoT
    Raspberry Pi+クラウドでこんなことができる!…… 平 愛美
  • 第3章:APIを使ってSORACOMの便利さを体感!
    “SORACOM Air”メタデータサービスで通信をコントロールしてみよう…… 小熊 崇
  • 第4章:myThingsとSORACOM
    ―― myThingsを使ってノンプログラミングでSORACOMをより便利に使おう…… 山本 学
  • 第5章:SORACOMとさくらのIoT Platform
    モノのインターネットとモバイル通信の未来…… 松本 直人

一般記事

  • セキュリティ対策はまずここから! フリーで始めるサーバのセキュリティチェック【前編】
    Nmapによるポートスキャン…… 小河 哲之

Special Report

  • エンジニア特化型Q&Aサイト「teratail」のトップランカーたちが語る,確実な力を付けるための“質問力”…… 編集部

連載

  • ITエンジニア必須の最新用語解説
    【89】Eclipse Che……杉山 貴章
  • digital gadget
    【209】VR世界のユーザインターフェース
    ……安藤 幸央
  • 結城浩の再発見の発想法
    【36】DSL……結城 浩
  • [増井ラボノート]コロンブス日和
    【7】Gyaim……増井 俊之
  • 宮原徹のオープンソース放浪記
    【3】OSC東京春と金沢での勉強会……宮原 徹
  • ツボイのなんでもネットにつなげちまえ道場
    【11】クラウドサービスにつないでみる……坪井 義浩
  • 【新連載】使って考える仮想化技術
    【1】仮想化の知識,再点検しませんか?……笠野 英松
  • RDB性能トラブルバスターズ奮闘記
    【3】DBサーバとAPサーバの役割分担を知っておこう……生島 勘富,開米 瑞浩
  • Androidで広がるエンジニアの愉しみ
    【5】Picassoとキャッシュの上手な使いこなし……重村 浩二
  • るびきち流Emacs超入門
    【25】シェルコマンドを活用しよう(前編)……るびきち
  • 書いて覚えるSwift入門
    【14】型にまつわるプロトコルとLiteral Convertible……小飼 弾
  • Mackerelではじめるサーバ管理
    【15】mackerel-agentのカスタムメトリックプラグインを書いてみよう…… 松木 雅幸
  • ひみつのLinux通信
    【27】宮田さん……くつなりょうすけ
  • Sphinxで始めるドキュメント作成術
    【14】Sphinxで楽々ドキュメント翻訳……清水川 貴之
  • セキュリティ実践の基本定石
    【32】BlackEnergyによるリアルな世界への攻撃……すずきひろのぶ
  • 【新連載】Unixコマンドライン探検隊
    【1】Unixコマンドを探す旅……中島 雅弘
  • Be familiar with FreeBSD~チャーリー・ルートからの手紙
    【30】bhyveでOpenBSDファイアウォール on FreeBSDを構築(その5)……後藤 大地
  • Debian Hot Topics
    【35】10年かけて解決 DebianのFirefox問題……やまねひでき
  • Ubuntu Monthly Report
    【73】UbuntuとIoT・スマートデバイスの状況…… 柴田 充也
  • Linuxカーネル観光ガイド
    【50】仮想マシン用の準仮想化デバイスドライバのフレームワーク~virtioドライバのしくみ……青田 直大
  • Monthly News from jus
    【55】寒中シェル芸勉強会……法林 浩之,りゅうちてつや
  • Hack For Japan~エンジニアだからこそできる復興への一歩
    【53】NPOが抱える課題に ITはどこまで協力できるか……清水 俊之介
  • 温故知新 ITむかしばなし
    【54】MASM~x86のアセンブラ障壁を越えられるか~……速水 祐

サポート

正誤表

本誌の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2016年4月29日更新)

P.36 「量指定子:0個または1個 ?、=」の正規表現例


\vfunction(\s+\w+)\(


\vfunction(\s+\w+)?\(



function\(\s\+\w\+\)(


function\(\s\+\w\+\)\?(

補足情報

(2016年5月18日更新)

P.144 Unixコマンドライン探検隊 第1回の補足情報
PAGER(ページャー)

manは,標準で対象のmanページをコンソール画面に出力します。コンソール画面1ページでは表示できない内容も多いので,ページャーという外部のコマンドを通して出力することで,1画面に1ページがちょうどおさまるように表示しています。

<STEP UP!>
manが使うページャーは,環境変数PAGERかMANPAGERで指定してあるプログラムが使われます。もしくは,“-P”オプションで明示的にページャープログラムを指定することもできます。
$ man -P more ls

ページャーは,ほとんどの場合lessかmoreが使われます。lessコマンドは,moreの発展形(moreに対する洒落のネーミング)で,エディタの“vi”コマンドライクな操作によって,ページの前後移動,行単位での移動,検索などができます。

OS Xでは,moreというコマンドは存在していますが,中身はlessになっているようです。

less, moreの簡単な使い方(画面下に“:”が表示されている状態で,次のコマンドなどが有効です)
qページャーをぬける
f1ページ先に進む
b1ページ戻る
j1行進む
k1行戻る
/続けてキーワードを入力して前方検索する
?続けてキーワードを入力して後方検索する
Ctrl+G全体での現在位置などの情報を最下段に表示する
hHELPを表示する

manページのある場所

さて,manページ(元データ)はどこにあるのでしょうか。プログラムの中にハードコードされているのでしょうか。そんなはずはないですよね。

manページは,OS XやLinuxでは,
/usr/share/man,/usr/local/share/manに格納されています。lsコマンドで,ディレクトリの中を覗いてみます。

Ubuntuでの例
$ ls /usr/share/man
ar   bo           da     eo  fo            gd  id  ko    man3  mhr  nn  pt_BR  sk  te  vi
ast  bs           de     es  fr            gl  io  ku    man4  ml   oc  ro     sl  th  zh_CN
az   ca           el     et  fr.ISO8859-1  he  it  lt    man5  ms   pa  ru     sq  tr  zh_HK
be   ca@valencia  en_AU  eu  fr.UTF-8      hi  ja  lv    man6  my   pl  se     sr  ug  zh_TW
bg   cs           en_CA  fa  fr_CA         hr  kk  man1  man7  nb   ps  shn    sv  uk
bn   cy           en_GB  fi  fy            hu  km  man2  man8  nl   pt  si     ta  uz

man1〜man8が英語のmanページで,それぞれ1〜8セクションが分類されて収納されているディレクトリです。jaなどのほかのディレクトリは,各言語(ローケール)に対応した言語に翻訳されたmanページが,同様(たとえばja/man1〜ja/man8)に格納されています。

個々のmanページは,たとえばlsであれば“コマンド名.セクション[.gz]”という名称のファイルは,

ls.1.gz → 圧縮された状態

もしくは,

ls.1 → 非圧縮の状態

で存在しています。

Linux系の環境では,これらのディレクトリには圧縮されたものが入っていて,ディスクスペースを節約しています。

<STEP UP!>
manページのファイルは,groffというマークアップランゲージを使った文書整形ツールの形式です。groffは“roff”(roffの名前は,Run OFFから)コマンドファミリーのフロントエンドプログラムで,manページはそのファミリーの中でも“nroff -manマクロ形式”です(nroffは,現在ではshellスクリプトになっていて,groffを内部から呼び出しています)。

manコマンドを使うのと同様に,nrofffを使って
Linux
$ zcat ls.1.gz | nroff -man
OS X
$ nroff -man ls.1
とすれば,整形された状態で表示できます。

日本語のページはどこに?

日本語のmanページがある場合は,通常日本語のロケールjaにに対応した/usr/share/man/ja,/usr/local/share/man/jaディレクトリに入っているはずです。

現在のロケールが何になっているかは,環境変数LANGを確認しましょう。

$ printenv LANG
ja_JP.UTF-8

であれば,日本語がデフォルトです。en_US.UTF-8であれば,英語(米国)です。日本語になっていなくても,次のように環境変数を設定して,日本語環境にすることができます。

$ export LANG=ja_JP.UTF-8

この場合には,jaディレクトリにmanページのファイルがなければ,デフォルト(通常英語)のページが表示されます。jaディレクトリがあっても,すべてのマニュアルが翻訳されているわけではありませんので,ページによって日本語であったり英語になることもあります。

いちいち環境変数を変更してしまうと,後に実行するコマンドのロケールへも影響してしまいますので,次のようにすれば,manの実行時だけロケールを変更できます。

英語(システムデフォルトとして指定した例)
$ env LANG=C man man
日本語
$ env LANG=ja_JP.UTF-8 man man

<STEP UP!>
日本語のmanページがインストールされていない場合,次の方法で簡単に導入できるかもしれません。root権限か,sudoersに利用者が登録されている必要があります。
Ubuntu
$ sudo apt-get install manpages-ja
CentOS
$ sudo yum install man-pages-ja
OS X
OSXには,日本語のmanページは標準では入っていません。日本語のマニュアルを使えるようにするには,日本語に対応したgroffをインストールし,日本語のmanページをインストール(OS XはFreeBSDベースなので,http://www.jp.freebsd.org/man-jp/search.htmlからFreeBSDのものを取得するのが良いでしょう)するなどの対応が必要です。

商品一覧