シェルスクリプトマガジン

test

第5回 リモートアクセス環境の構築(ファイルの送受信)

投稿日:2017.09.29 | カテゴリー: 記事

前回はUbuntu Serverにリモートからアクセスする環境を構築しました。これでコマンドによる操作が可能になりました。今回は、Ubuntu Serverとリモートアクセス用パソコンとの間でファイルをやり取りする方法を紹介します。

SFTPやSCPでファイルを送受信する

Ubuntu Server内でSSHサーバーが稼働していれば、ファイル転送の「SFTP」(Ssh File Transfer Protocol)や、ファイルコピーの「SCP」(Secure CoPy)でファイルを送受信できます。ただし、リモートアクセス用のパソコン側にSCPやSFTPに対応したクライアントソフトが必要です。
Tera TermもSCPに対応しているため、SCPによるファイルの送受信ができますが使いやすいとはいえません。Windowsの場合、「WinSCP」という無料ソフトがあります。このソフトだと、ファイルやフォルダーをドラック&ドロップするだけで送受信が可能です。
WinSCPの公式サイトにあるダウンロードページの「Installation package」リンクをクリックし、WinSCPのインストーラーファイル(2017年9月28日時点の最新版は「WinSCP-5.9.6-Setup.exe」)を入手して導入してください(図1)。

図1 WinSCPのインストーラー画面

シェルスクリプトマガジンvol.50 Web掲載記事まとめ

投稿日:2017.09.25 | カテゴリー: 記事

 

シェルスクリプトマガジンvol.50のWeb掲載部分まとめです。

04 コボラーによるコボラーのためのユニケージ入門「COBOL入門」/野村祐三
12 TechLION再録「愛されコミュニティの作り方」/ゲスト 小島英揮・牧大輔・星野邦敏・平井則輔 MC 法林浩之・馮富久
18 アジャイル開発 Let’ Practice! 「アジャイル開発の本質」/熊野憲辰
22 スズラボ通信「Raspberry Pi 3 で湿温度計サーバを作ってみた」/すずきひろのぶ コード掲載
28 法林浩之のFIGHTING TALKS/法林浩之
30 機械学習のココロ「Scikit-learnを使ってみよう」/石井一夫
35 中小企業手作りIT化奮戦記「MACアドレス、データリンク層とデフォルトゲートウェイ」/菅雄一 訂正情報
42 人間とコンピュータの可能性/大岩元
44 漢のUNIX「テストフレームワークkyua その2」/後藤大地 コード掲載
52 姐のBENTO
54 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う! /濱口誠一
56 それプロのエバンジェリストから愛をこめて「WSL秋の更新をチェック! 」/山本美穂
60 ITエンジニアのためのマーケッティング入門「デジタルマーケティング その2」/水間丈博
65 ユニケージ開発手法コードレビュー/湯本豊 コード掲載
70 バーティカルバーの極意/飯尾淳 コード掲載
78 詩「たっちすくりーん」/桑原滝弥・イケヤシロウ
80 香川大学SLPからお届け! 「フレームワークPhoenixを触ってみる 後編」/清水赳(香川大SLP) コード掲載
84 40歳から始める、オレとRubyプログラミング #20/しょっさん コード掲載
92 UNIXネイティブの電子工作塾/大野浩之 コード掲載
96 Techパズル/gori.sh
98 幼稚さと甘やかしからの脱却は可能か/シェル魔人

 

シェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

UNIXネイティブの電子工作塾 vol.50掲載

投稿日:2017.09.23 | カテゴリー: コード

著者:金沢大学 教授 大野浩之

 さて、少し間があいてしまいましたが、UNIX ネイティブの電子工作塾 e-Badge 篇第3 回です。
 この記事で本連載を初めて目にした方もいらっしゃると思いますので、今回に至る経緯を振り返ってみましょう。

https://github.com/shmag/gc4unix 上のコードもご参照ください(編集部)

本記事掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

香川大学SLPからお届け!(vol.50掲載)

投稿日:2017.09.23 | カテゴリー: コード

著者:清水赳(香川大学SLP)

Elixir製のWebアプリケーションフレームワーク Phoenixを触ってみる 後編

こんにちは。香川大学工学部 学部3 年の清水です。今回は、前回に引き続き、Elixir 製のWebアプリケーションフレームワーク Phoenix を紹介します。Elixir はRuby によく似た文法を持っています。更にPhoenix は、MVC
フレームワークを採用するなど、Ruby on Rails に大きく影響を受けています。その他にも影響を受けた点は多く、非常に近い感覚でコーディングが行えます。
前回はPhoenix の紹介として、モデルが1 つだけの簡単な掲示板アプリケーションを作成しました。今回はもう一歩踏み込んでみます。自分の蔵書を管理できるアプリケーションを作りながら、2 つ以上のモデルを関連付ける方法を紹介します。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

<%= for book <- @books do %>   <% end %>

<%= book.title %> <%= link ” 削除”, to: book_path(@conn, :delete,book.id), method: :delete %>

蔵書の新規登録

<%= form_for @book, book_path(@conn, :create), fn f ->%>

タイトル <%= text_input f, :title, placeholder: ” タイトル”,class: “form-control” %>

 

ISBN <%= text_input f, :isbn, placeholder: “ISBN”, class:”form-control” %>

 

蔵書の場所 <%= text_input f, :store_loc, placeholder: ” 蔵書の場所”, class: “form-control” %>

 

<%= select f, :genre_id, @genre %>

 

<%= submit ” 登録” %>

<% end %>

<%= for genre <- @genres do %>   <% end %>

<%= genre.name %> <%= link ” 削除”, to: genre_path(@conn, :delete, genre.id), method: :delete %>

 

ジャンルの作成

<%= form_for @genre, genre_path(@conn, :create), fn f-> %>

<%= text_input f, :name, placeholder: ” ジャンル名”,class: “form-control” %>

 

<%= submit ” 作成” %>

<% end %>

ユニケージ開発手法 コードレビュー vol.39(本誌vol.50掲載)

投稿日:2017.09.23 | カテゴリー: コード

著者:湯本豊

今回は、固定長ファイルの変換について説明します。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

スズラボ通信 35 (本誌vol.50掲載)

投稿日:2017.09.23 | カテゴリー: コード

著者:すずきひろのぶ

今回はRaspberry Pi 3 ( 以下 RPi3 ) で湿温度計サーバを作ってみました。製作目標は次の通りです。
1. 湿温センサーから湿度と温度の値を取り込む。
2. その値をデータベースに記録する。
3. Web インタフェースで過去の情報や変化などにアクセスできるようにする。
IoT 的な例題としてはちょうどいいサイズの内容です。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

バーティカルバーの極意 第四回 (vol.50掲載)

投稿日:2017.09.23 | カテゴリー: コード

著者:中央大学 教授 飯尾淳

今回のテーマは、前回に引き続き、自然言語処理を応用したデータ分析です。サンプルデータの距離 | x | を利用してクラスタリングを行います。近い距離にあるデータを樹形図でまとめ、デンドログラムに表します。
さて、前回の記事では、インターネットのコラム記事をまとめてダウンロードし、各記事のファイル名を扱いやすい形式に変更するところまで説明しました。
今回は、そのデータから必要な部分を切り出してテキストファイルに変換、変換したデータを形態素解析で分析します。形態素解析の結果から単語を抽出し、出現頻度ベクトルを求めてデータ間の距離を計算します。最終的な成果物はその距離に基づいたデンドログラムです。そのデンドログラム上で最後にスパッとバーティカルバーを引くことで、データのクラスタリングが完成します。
はてさて、適切に分類することはできたでしょうか。

前回記事掲載コードもご参照ください(編集部)

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

 

第4回 リモートアクセス環境の構築(SSHとターミナルマルチプレクサー)

投稿日:2017.09.22 | カテゴリー: 記事

前回サーバーの初期設定までを終えたので、今回は普段使っているパソコンからUbuntu Serverを操作するためのリモートアクセス環境を構築します。リモートアクセスの通信には「SSH」(Secure Shell)を利用します。このSSHではクライアントとサーバー間で通信内容を暗号化できます。そのため、盗聴などを防ぐことが可能です(図1)。

図1 SSHによる暗号化通信

SSHサーバーを導入・起動する

本連載でインストールしたUbuntu Serverには、SSHサーバーが導入されていません。Ubuntu Serverをインストールしたパソコンの電源を投入してログインしたら、次のコマンドを実行します。

最初の二つは前回も実行しましたが、英語表示に切り替えるコマンドと、パッケージ情報を更新するコマンドです。最後がSSHサーバーを含む関連パッケージをインストールするコマンドになります。
インストール完了後に、SSHサーバーが自動で起動します。これでリモートからの操作が可能になり、少し使いづらかったUbuntu Serverの(端末)画面を直接操作せずに済みます。

40歳から始める、オレとRubyプログラミング(vol.50掲載)

投稿日:2017.09.20 | カテゴリー: コード

著者:しょっさん

 梅雨も明けて、さぁ夏本番、と思ったら雨がしとしと続く2017年夏です。梅雨が戻ってきたかのようですね。夏場は暑いから外出は控えてきたものですが、今年は、雨で外に出られない涼しい夏を過ごしています。こんな時は、部屋に引きこもってプログラミングですね。体調崩さないよう、今回も頑張ってプログラムを学んでいきましょう。
記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

漢のUNIX テストフレームワームKyua その2(Vol.50掲載)

投稿日:2017.09.20 | カテゴリー: コード

著者:後藤大地

 前回はコマンド開発においてテストフレームワークを使うことの重要性を説明するとともに、そうした目的で利用できるフレームワークとして「Kyua」(https://github.com/jmmv/kyua)を紹介した。Kyuaは、特にコマンドの動作チェックに適したフレームワークなので、この連載で取り上げるには最適なものの一つといえる。
 こうしたテストフレームワークを活用してコマンドを開発していくには、最初に開発用の場所をちゃんと用意しておく方がよい。あとからフレームワークを導入しようとしても中途半端なものになったり、面倒くさくなって使わないままになったりするからだ。コーディングの初期段階からKyauを利用できる状況にしておくことで、シームレスにテストフレームワークを利用しながら開発を進めることができる。
 今回はそうしたテストフレームワークを活用した開発を実現できるように、どのようにディレクトリやファイルを配置し、初期段階からテストを取り込んだ開発をどのように実施していくのかを説明する。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

第3回 Ubuntuの導入(アップデートと初期設定)

投稿日:2017.09.15 | カテゴリー: 記事

パソコンの電源を投入して、前回インストールしたUbuntu Serverを起動します。インストール時に設定したユーザー名とパスワードを入力してログインします(図1)。ログインできたら、Ubuntu Serverのアップデートと初期設定を実施しましょう。

図1 ログインした画面

日本語の文字化けを直す

図1のログインした画面を見てみると、「◆」になっている箇所があります。これは日本語が正しく表示されていないのが原因です。次のコマンドを実行して、一時的に英語表示に変更します。一時的にした理由は、次回説明するリモートアクセス環境なら日本語を正しく表示できるからです。

上のコマンドでは「LANG」という言語の環境変数に、デフォルトのロケール(言語や地域を表すもの)である「C」を代入しています。デフォルトのロケールは英語圏なので英語表示に切り替わります。「export」はコマンドで、プロンプトから実行するすべてのコマンドに対してこの環境変数を適用します。

もしインターネットの1秒が1年だったら 第3回(vol.49掲載)

投稿日:2017.09.12 | カテゴリー: 記事

written by hakatashi・Mine02C4

編注:本記事は「SunPro 2016 技術書典」で発表された記事に説明・イラストを追加し、シェルマガvol.49に掲載したものです。
以下リンク先で、オリジナル版の全文が公開されています。
https://sunpro.io/techbookfest/

インターネットが日本中のあらゆる人間に行き渡るようになってから、すでに10年単位の時間が経過しています。今日においてインターネットを支えるネットワーク技術が重要であることは言うまでもありませんが、実際にネットワークでどのタイミングで何が起こり、どれくらいの時間が費やされるのかということを身を持って体感している人は、たとえネットワークに精通している人でも少ないのではないでしょうか? この記事では、1 秒というわずかな時間を1年にまで拡大し、ネットワーク上で何が起こっているかを人間スケールでざっくりと解説していきます。

はじめに

こんにちは。博多市(@hakatashi) です。前回、前々回に引き続き、2016年の技術書典にて発表した「インターネットの1 秒がもし1 年だったら」という記事を、シェルスクリプトマガジン向けに再構成してお届けします。この記事は、インターネット通信においてクライアントがサーバーとコミュニケーションする様子を、1秒を1年というスケールに引き伸ばし、クライアントとサーバーをそれぞれ「クライアントちゃん」と「サーバーちゃん」として、人間スケールに置き換えて順に見ていこうという企画です。
前回まで記事では、長くて面倒なTLSハンドシェイクの手続きを終え、サーバーちゃんとクライアントちゃんの間で暗号通信を行うための準備が完了しました。これで本題となる通信の内容を送るための用意は終了し、いよいよインターネットを通した2人の文通が始まります。クライアントちゃんにとっては100日以上も待ち続けた念願のやり取りです。果たして2人は無事に文通を行い、そして年内に終了することができるのでしょうか。引き続きお楽しみください。

サーバーちゃん   クライアントちゃん

HTTPリクエストとレスポンス

4月19日 午前9時26分 HTTPリクエスト送信

1ヶ月半に渡るやりとりによって、サーバーちゃんとクライアントちゃんとの間で暗号通信を行う準備が整いました。もはや2 人の世界を妨げるものは何もありません。これで少々神経過敏なクライアントちゃんも安心してサーバーちゃんに質問を投げかけることができます。
HTTPは、原則としてクライアントがサーバーに対してリクエストを投げて、サーバーがそれに対する応答を返すという、先程までのTCPハンドシェイクやTLSと比べてシンプルな仕組みで動作します。ネットワークの中でもかなり高レイヤーなプロトコルなので、リクエストの内容やヘッダーはプレーンテキストで表現され、人間が見てそのまま理解しやすいようになっています。
今回はクライアントアプリケーションとしてcURLを用いたので、HTTPバージョン1.1のシンプルなGETリクエストでパケットを送信しました。
クライアントちゃんは勇気を振り絞って、年が明けてからずっと聞きたかったことを質問しました。その内容はヘッダも含めて4行、文字数に直すと99バイトですが、TLSで暗号化することによって130バイト、イーサネットフレーム全体では184バイトと、実際に転送される情報としては倍近くになりました。ハガキは裏面しか使えませんからね。

 

4月28日 午前9時27分 HTTPリクエスト受信

クライアントちゃんから暗号化された秘密の手紙が届きました。サーバーちゃん側から見ても、最初にSYNパケットを受け取ってから2ヶ月という時間が経過しています。その間、Webサーバーとしての諸々の雑務をこなしながら、クライアントちゃんからの手紙を待ち続けていました。HTTPリクエストを受け取ったサーバーは、その内容を元にリクエストの解釈を行い、文脈に応じて何らかの適切な応答を返します。今回の測定ではデフォルトのApacheへのリクエストだったので、GETリクエストはシンプルにファイルの内容を取得するという処理となります。 手紙の内容を見て、さっそくサーバーちゃんは部屋の中(=ファイルシステム) から目的のデータを探し始めました。サーバーちゃんはファイルサーバーなので、探しものはお手のものです。

「アレでもない、コレでもない。どこいったの?!」

第2回 Ubuntuの導入(Ubuntu Serverのインストール)

投稿日:2017.09.8 | カテゴリー: 記事

まず、サーバーに利用するパソコンを用意します。Linuxサーバーを試すだけなら、高機能なものは必要ありません。メモリーが1Gバイト、ハードディスクドライブ(HDD)などの内蔵ストレージが100Gバイト程度搭載していればよいでしょう。なお、内蔵ストレージの中身が消えてしまっても構わないパソコンにしてください。
前回DVD-RやUSBメモリーで作成したインストールメディアを、用意したパソコンに挿入する前に、パソコンのファームウエアでDVD-Rの場合は光学ドライブから、USBメモリーの場合はUSBデバイスから優先的に起動するように設定しておきます。

Ubuntu Serverのインストール

パソコンにインストールメディアを挿入し、ネットワークケーブルを接続してインターネットにつなげられる状態にしたら、パソコンの電源を投入します。パソコンのファームウエアがBIOSとUEFIでは起動画面が異なります。BIOSの場合は、図1の言語選択画面になります。カーソルキーと[Enter]キーを使って「日本語」を選んでください。

図1 言語選択画面(BIOSの場合)

図2の画面で「Ubuntu Serverをインストール」を選択してインストーラーを起動します。

図2 インストーラーを起動する(BIOSの場合)

シェルスクリプトマガジンvol.47 Web掲載記事まとめ

投稿日:2017.09.5 | カテゴリー: 記事

シェルスクリプトマガジンvol.47のWeb掲載部分まとめです。

4 バーティカルバーの極意/飯尾淳 コード掲載
8 もしインターネットの1秒が1年だったら/hakatashi・Mine02C4 本文掲載
16 UNIXネイティブの電子工作塾 e-Badge篇/大野浩之
22 逆に、Tukubaiコマンドをシェルスクリプトで実装してみる/今泉光之 本文掲載
28 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う!/濱口誠一
30 中小企業手作りIT化奮戦記/菅雄一
36 アジャイル開発 Let’s Practice!/熊野憲辰
40 法林浩之のFIGHTING TALKS/法林浩之
42 それプロのエバンジェリストから愛をこめて/山本美穂
46 縁の木、育てよう/白羽玲子
50 スズラボ通信/すずきひろのぶ
53 姐のBENTO
54 ITエンジニアのためのマーケティング入門/水間丈博
57 lookup ~見上げる~/桑原滝弥
52 人間とコンピュータの可能性/大岩元
60 技術者哲学 ピリカのつくりかた 本文掲載
66 ユニケージ開発手法コードレビュー/岡田健 コード掲載
74 香川大学SLPからお届け!/石井怜央(香川大学SLP) コード掲載
78 漢のUNIX/後藤大地 コード掲載
92 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載
100 Tech数独
102 ソースとコード/シェル魔人

シェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

シェルスクリプトマガジンvol.48 Web掲載記事まとめ

投稿日:2017.09.5 | カテゴリー: 記事

シェルスクリプトマガジンvol.48のWeb掲載部分まとめです。

4 スズラボ通信/すずきひろのぶ
8 法林浩之のFIGHTING TALKS/法林浩之
10 UNIXネイティブの電子工作塾 e-Badge篇/大野浩之 コード掲載
17 ITエンジニアのためのマーケティング入門/水間丈博 本文掲載
20 逆に、Tukubaiコマンドをシェルスクリプトで実装してみる/今泉光之 本文掲載
28 アジャイル開発 Let’s Practice!/熊野憲辰
32 ユニケージ開発手法コードレビュー/新美勇一 コード掲載
42 姐のBENTO
44 それプロのエバンジェリストから愛をこめて/山本美穂
48 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う!/濱口誠一
50 漢のUNIX/後藤大地 コード掲載
58 香川大学SLPからお届け!/石井怜央(香川大学SLP)
62 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載
72 TechLION再録「エンジニアの生存戦略」
78 国際化と標準化/桑原滝弥・イケヤシロウ
80 もしインターネットの1秒が1年だったら/hakatashi・Mine02C4 本文掲載
88 バーティカルバーの極意/飯尾淳 コード掲載
94 中小企業手作りIT化奮戦記/菅雄一
100 人間とコンピュータの可能性/大岩元
102 Tech数独/gori.sh
104 ユニケージの目指すところ/シェル魔人

シェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

第1回 Ubuntuの導入(インストールメディアの作成)

投稿日:2017.09.1 | カテゴリー: 記事

Linuxには「ディストリビューション」と呼ばれる複数の種類があります。ディストリビューションによって操作方法が少し異なりますので、Linuxサーバーを構築する第一歩としてディストリビューションの選定から始めましょう。

サーバーに最適なディストリビューション

LinuxサーバーのOSとして利用するディストリビューションの場合、以下の四つを満足するものがよいでしょう。

これらのことから、Linuxでは人気が高いディストリビューション「Ubuntu」のサーバー版「Ubuntu Server」を選択します。このUbuntuは、インターネット上に存在するサーバーのOSとして多くのユーザーに利用されています。そのため、情報が豊富です。また、多くのアプリケーションが「パッケージ」と呼ばれる形式で用意されています。このパッケージなら導入も簡単です。
Ubuntuには、最初のリリースから5年間のサポートが付いた「LTS」(Long Term Support)というバージョンがあります。ここでいうサポートとは、主に不具合対処やセキュリティ対策用の更新ソフトウエアの提供のことです。2017年9月1日時点において、LTSの付いた最新Ubuntuのサーバー版は「Ubuntu Server 16.04.3 LTS」です。最初のリリースは2016年4月21日なので、2021年4月まで安心して使えます。
Ubuntu Serverは、サーバーOSとして動作させるために最低限必要なソフトだけを導入した状態でインストールできます。そのため、不要なアプリが導入されたり、必要のないサービスが動作していたりすることはほとんどありません。

  • shell-mag ブログの 2017年9月 のアーカイブを表示しています。

  • -->