findコマンドでファイルを探す

linuxのfindコマンドの使い方

基本
$ find <検索の起点ディレクトリ> <オプション> <条件指定>

具体例

$ find . -name '*.txt'
意味: カレントディレクトリ以下に存在している、拡張子が.txtのファイルをすべて表示させる

オプション
-iname で大文字小文字を区別しないで検索する
-type f,d,l でそれぞれファイル・ディレクトリ・シンボリックリンクを検索する


$ find . -type d
意味: カレントディレクトリ以下にあるディレクトリを列挙

-a(and) -o(or) オプションで複数の条件指定

$find . -type d -a -name 'local'
意味: カレントディレクトリ以下にある、名前にlocalが含まれるディレクトリを検索

Pythonのlambda関数

Pythonのlambda関数(無名関数)は、一文で表現される、名前のない関数のこと。

具体例
例えば引数の和を取って返す関数を普通に書くと、

def add(a,b):
    return a+b

これが、lambda関数を用いると

lambda a,b:a+b

となる。
コロンの左側が引数、右側が戻り値。

わざわざ名前をつけて管理するまでもないちょっとした処理をさせるのに便利。

ありがちなルータの管理画面のアドレス

ネットワークの設定を弄りたい時、ブラウザで自分が契約しているルータの管理画面を呼び出す必要がある。
管理画面への入り方は主に取扱説明書に書いてあるが、手元にないときが多いので、各社でありがちなルータの管理画面のアドレスをメモしておく


入り方は以下のアドレス(192.168…)をwebブラウザの検索窓(urlを入力するところ)に入力してエンターキーを押すだけ。


IPアドレス
- 192.168.0.1 (バッファローNEC,I.Oデータ)
- 192.168.0.210
- 192.168.1.1 (corega,PLANEX)
- 192.168.1.220
- 192.168.1.230
- 192.168.1.249
- 192.168.1.250
- 192.168.2.1 (Logitec)
- 192.168.11.1 (バッファロー)
- 192.168.11.100 (バッファロー)
- 192.168.12.1 (バッファロー)
- 192.168.100.1 (UQwaimax)
- 192.168.111.1
- 192.168.128.1 (huawei 504HW)

パスワード

  • admin
  • password
  • なし

等がありがち。
数撃ちゃ当たるで頑張ってください
(説明書等見るのが確実です)

vimのTips

vimの便利な操作方法を見つけたら忘れないようにメモする

  • [s]でカーソル位置にある文字を削除&挿入モードに移行
  • [f] → <アルファベット一文字> でその文字を検索 [;]で次[,]で前に移動
  • [I]で行頭から、[A]で行末からの追記モードに移行
  • [Shift] + [c] — カーソルの右側にある文字列をカットする
  • ビジュアルモードで範囲を指定して[>]or[<] — 指定した範囲を1ブロックだけインデント
  • [*] でカーソルが指している単語を検索(下方向)
  • [#] でカーソルが指している単語を検索(上方向)

ゼロから始める(た) Travis CI

Travis CIって?

Travis CIを使うと、GitHubにコードをプッシュするだけで自動的にコードのテストを行ってくれる。
さらにテスト結果がメールで届いたりする。
SignUpからテストの実行まで,一通り行ったので手順をメモっておく。

このページを読むと…

Travis CIを使って、プログラムの簡単なテストが出来るようになる。

前提知識

“ゼロから"と言っても、やはり多少の準備は必要

  1. GitHubのアカウントを持っている
  2. git commit,git push等ができる
  3. シェルの基本的なコマンドの意味がわかる (echo hoge > hoge.txt とか)

逆に言えば、これぐらいの知識でも使いはじめることはできるということ

準備編

練習用のリポジトリを作ろう

GitHubの自分のページに、練習用のリポジトリを作成しよう。
practice_Travis_CIでもなんでもOK。

Travis CIに登録しよう

Travis CIのページにアクセスし、Sign Up ボタンを押す。
GitHubのアカウントとパスワードを入力するだけで登録完了。

リポジトリTravis CIに登録しよう

Travis CIのページの左側に、[My Repositories]ボタンがあるのでクリックすると、自分のリポジトリ一覧が見れる。
f:id:katorinax:20170328155620p:plain
リポジトリ名の左側にチェックスイッチがあるので、テストしたいリポジトリのスイッチをONにしておく。


これで準備完了。

実践編

実際にテストを行うには最低でも以下の4つのファイルが必要になる。

  1. テスト対象となるプログラム
  2. テスト内容について記述してある.yml(やむる)ファイル .travis.yml*1
  3. .travis.ymlによって呼び出される、テストを実行するシェルスクリプト
  4. プログラムの望ましい出力結果が記述してあるリファレンスファイル

スイッチオンにしたリポジトリに更新をgit pushすると、.travis.ymlファイルにある記述に従って、自動的にテストが実行される。

それぞれ実際に作成してみる

1 テスト対象のプログラム(target.py)

何でもいい。今回は0~10までの値を標準出力に書き出すpythonプログラム、target.pyにした。

#!/usr/bin/env python
#coding:utf-8
#0から10まで標準出力する

for i in range(11):
    print i

2 .travis.yml

テスト内容について記述してある.ymlファイル。

script:
    sh -e ./test.sh

意味

  • カレントディレクトリにある test.shを-eオプションで実行してね*2

3 テスト用のシェルスクリプト(test.sh)

#!/bin/sh

python target.py > result
diff result ref
echo $?

意味

  • プログラムtarget.pyを実行して、結果をresultってファイルに書き込んでね
  • resultとリファレンス用のファイルrefの内容を、diffコマンドで比較してね(一致すると終了ステータスは0になる)
  • 終了ステータスを吐いてね

4 リファレンス用ファイル(ref)

プログラムの望ましい実行結果が書いてあるファイル
中身

0
1
2
3
4
5
6
7
8
9
10

こんだけ*3

テスト実行

先述の4つのファイル(target.py, .travis.yml, test.sh, ref)を作成し、git add -> git commit -> git push すればOK。
今後はリポジトリの内容を更新してgit pushするたびに勝手にテストが実行される。
結果はTravis CIのページで確認できる。メールで報告も来る。

テスト結果

成功すると(するんだけど)こんな感じ
f:id:katorinax:20170328162625p:plain

target.pyかrefを適当に書き換えると、テスト失敗が帰ってくる。こんな感じ
f:id:katorinax:20170328163006p:plain

もっと

これ↓とか詳しい
knowledge.sakura.ad.jp

おしまい。

*1:このファイルは必ずリポジトリのルートディレクトリに置いておく

*2:-eオプションをつけると実行時エラーが出た時点で処理を中断する

*3:もちろん追加できる内容は他にいくらでもある。これはあくまでも最低限の内容