読者です 読者をやめる 読者になる 読者になる

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

UNIXコマンド | colordiff - diffコマンドに色を付けたラッパーコマンド

概要 colordiff - diffコマンドに色を付けたラッパーコマンド 詳細 diffコマンドを利用する際に、差分に色がついていたら見やすいのに・・と言うときに便利な ラッパーコマンド。cygwinで利用したい場合は apt-cyg install colordiff 試行 比較ファイル1 hog…

UNIXコマンド | clear - コンソールをクリア

概要 clear - コンソールをクリア 詳細 コンソールで作業している際に、以前の出力が邪魔な時があります。 その場合にclearコマンドによって過去の出力を画面外に追いやることが出来ます。 ※カーソルで上にもどれば、出力内容は残っている。cygwinで利用した…

UNIX | lsなどのスペース区切りの出力をTSV形式にする場合

概要 lsなどのスペース区切りの出力をTSV形式にする場合 詳細 lsなどのスペース区切りの出力をTSV形式にする場合について。一覧データをExcelに貼り付けたい、と言う場合にTSV形式だと そのままコピペ出来て便利です。 lsをTSV形式にする 下記が、lsの連続し…

UNIXコマンド | watch | 一定間隔ごとにコマンドの結果を監視する

概要 一定間隔ごとにコマンドの結果を監視する 詳細 一定間隔ごとにコマンドの結果を監視します。 watch -n 1 --differences command サンプル 一定間隔ごとにカレントディレクトリのファイルの状態を確認する場合は以下 differencesで、差分をハイライトし…

UNIXコマンド | xclipにaliasを設定してgetclip,putclipとして使う

概要 xclipにaliasを設定してgetclip,putclipとして使う 詳細 UNIXコマンド | xclip - コマンドからのクリップボードの操作Comments http://d.hatena.ne.jp/tbpg/20130527/1369672244 上記の記事で紹介したxclipはコンソール上でクリップボードのやり取りが …

UNIXコマンド | xclip - コマンドからのクリップボードの操作

概要 xclip - コマンドからのクリップボードの操作について 詳細 以下のコマンドでインストールします。 sudo apt-get install xclip サンプル $figlet hoge | xclip -i -selection clipboard $xclip -o -selection clipboard _ | |__ ___ __ _ ___ | '_ \ /…

UNIXコマンド | tree - フォルダツリーの表示

概要 tree - フォルダツリーの表示について 詳細 Windowsのtreeコマンドと同様の機能以下のコマンドでインストールします。 sudo apt-get install tree サンプル treeフォルダの配下に1-5のフォルダを作成し、 1の配下にさらに1-5を作成した状態でtreeを実行…

figlet | 入力文字列をアスキー文字で出力する

概要 入力文字列をアスキー文字で出力する コマンド figlet [オプション] 入力文字列 オプション Usage: figlet [ -cklnoprstvxDELNRSWX ] [ -d fontdirectory ] [ -f fontfile ] [ -m smushmode ] [ -w outputwidth ] [ -C controlfile ] [ -I infocode ] […

UNIXという考え方

概要 書籍 UNIXという考え方に関するメモ。 内容 UNIXの定理 No 題目 内容 1 小さいものは美しい 小さいプログラムは分かりやすく、保守しやすく、システムリソースに優しい。また他のツールと組み合わせやすい 2 1つのプログラムには1つのことをうまくやら…

UNIX | cut 入力から特定の文字範囲、列を取り出す

概要 cut 入力から特定の文字範囲、列を取り出す コマンド cut [オプション] オプション -b, --bytes=LIST バイトで数えた LIST を選択する -c, --characters=LIST 文字で数えた LIST を選択する -d, --delimiter=DELIM フィールドの区切り文字として TAB の…

sedでログの特定日時の行範囲を取得する(おまけでRubyによるサンプル日時データ生成)

概要 sedでログの特定日時の行範囲を取得する 内容 大容量のログファイルがあり、日時の昇順で内容が書き込まれていることが前提。 特定の日時範囲のログのみを取得する際にsedを利用する。 コマンド 「2012/11/12 00:27:48」が出力された行から最後の行まで…

diff | ファイルの内容を比較

概要 diffでファイルの内容を比較 構文 diff / / diff 条件 下記の構成を前提とする。 current directory ┣target1 ┃ ┃test1.txt ┃ ┗test2.txt ┗target2 ┃test1.txt ┗test2.txtファイルの中身(target2\test1.txt以外は全て同じ内容) hoge foo barファイル…

bashで特定のフォルダ配下の任意のファイル名一覧を取得

条件 下記の構成を前提とする。 target ┣level1 ┃ ┃level2_sample.txt ┃ ┗level2_sample_.txt ┃level1_sample.txt ┗level1_sample_.txtこの条件で現在のフォルダ配下にある、sample.txtという名前で終るファイルを全て抽出して、 ファイル名のみの一欄で表示…

テキストファイルの内容でディレクトリを作成

概要 テキストファイルの各業の内容でディレクトリを作成します。 前提 作成するディレクトリ名は以下のファイル(create_file.txt)の各行に記述してあるcreate_file.txtの内容は以下 テキストエディタvi 基本的な編集作業 素早くジャンプする方法 viの中級コ…

hostname ホスト名の表示・選択をする

概要 hostnameコマンド カレンダーを表示する コマンド hostname [NAME] または hostname OPTION オプション --help この使い方を表示して終了する --version バージョン情報を表示して終了する サンプル $hostname XXXXX(ホスト名)

cal | カレンダーを表示する

概要 カレンダーを表示する コマンド cal [オプション] オプション 3 = 前月、今月、来月を表示 s = 日曜日を週の頭にして表示 m = 月曜日を週の頭にして表示 y = 1年表示 サンプル $cal 3月 2012 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15…

ps | プロセス名からプロセスIDを一覧表示する

概要 プロセス名からプロセスIDを一覧表示します コマンド pgrep [オプション] [パターン名] オプション f = マッチさせるパターンをコマンドライン全体を対象とする l = プロセスIDとプロセス名を同時に表示する サンプル $pgrep bash 7820 $pgrep -l bash …

特定のフォルダ配下の全ファイルを別フォルダにコピー

概要 あるフォルダA配下にある全てのファイルを別のフォルダにコピーします フォルダ構成 コピー元 from_folder | ┣─folder1 | file1_1 | file1_2 | file1_3 | ┣─folder2 | file2_1 | file2_2 | file2_3 | ┗─folder3 file3_1 file3_2 file3_3to_fol…

wc | ファイル、標準入力の内容をカウント

概要 指定ファイルの文字数、改行数、単語数などをカウントします。 wc -オプション ファイル名 オプション c = バイト数 l = 改行数 m = 文字数 w = 単語数 L = 指定したファイルの中の最大長の行を表示オプションを指定しない場合は、行数・単語数・バイト…

unexpand | スペースをタブに変換

概要 スペースをタブに変換します。unexpand ファイル名 サンプル 変換前 test.txt 1 2$unexpand -t 1 test.txt > test_expand.txt変換後 test_expand.txt 1 2

tr | 標準入力の内容を置換、削除する

概要 標準入力の内容を置換、削除します tr オプション d = 置換をせずに削除する s = 複数連続マッチした場合に1つにまとめて置換する t = FROMからTOまで切り詰める SET1の置換、削除ルール(正規表現) SET2 tオプション時に利用。 指定内容について \NNN…

tee | 標準入力を全てのファイルに書きこむ

概要 標準入力を全てのファイルに書きこみます。 tee オプション ファイル名 サンプルコード $ls new_test.txt old_test.txt test.txt $cat *test.txt new_test old_test test $echo "hogehoge" | tee -a *test.txt hogehoge $cat *test.txt new_test hogeho…

test | 各種検証

概要 ファイルやフォルダの状態など各種検証をする。 test オプション ファイル名や文字列 オプション e ファイル = ファイルが存在していれば真 文字列 = 文字列が1文字以上あれば真 サンプルコード $test -e test.txt;echo $? 0 $test -e test.gif;echo $?…

free | メモリーの使用状況を表示する

概要 メモリーの使用状況を表示します。 free オプション b = 容量をバイト単位で表示 k = 容量をKバイト単位で表示 m = 容量をMバイト単位で表示 g = 容量をGバイト単位で表示 s 数字 = 指定した秒数感覚で再表示し続ける c 数字 = 指定した回数繰り返し表…

stat | ファイルの詳細情報を表示

概要 ファイルの詳細情報を表示します。 stat ファイル名 サンプル $stat test.txt File: `test.txt' Size: 5 Blocks: 1 IO Block: 65536 通常ファイル Device: 84509a52h/2219874898d Inode: 12384898975493847 Links: 1 Access: (0644/-rw-r--r--) Uid: (1…

expand | タブをスペースに変換

概要 タブをスペースに変換します。expand ファイル名 サンプル 変換前 test.txt test test test$expand -t 10 test.txt > test_expand.txt変換後 test_expand.txt test test test

colrm | 指定範囲の文字列を削除

概要 指定範囲の文字列を削除します。 colrm from to fromのみを指定した場合は、fromから文字列の最後まで削除されます。 サンプルコード $echo 1234567890 | colrm 2 5 167890 $echo 1234567890 | colrm 7 123456

factor | 素因数分解をする

概要 素因数分解をします。 factor 数値 サンプルコード $factor 10 10: 2 5 $factor 11 11: 11 $factor 1055 1055: 5 211

banner | 文字を大きく表示する

概要 以下の構文で文字をX表記で大きく表示できます。 ASCII文字のみを対象とする。 banner "文字列" オプション c 文字 デフォルトのX表記から別の文字による表記に変更 w 数字 どこまで表示するかを設定。デフォルトは80。 サンプルコード $banner "defaul…

expr | 整数計算を行う

概要 整数計算を行う。 expr 数式 サンプル expr 2 + 2 expr 2 - 2 expr 2 \* 2 expr 2 / 2 expr 2 % 2 expr 2 = 2 expr 2 = 3 出力 $expr 2 + 2 4 $expr 2 - 2 0 $expr 2 \* 2 4 $expr 2 / 2 1 $expr 2 % 2 0 $expr 2 = 2 1 $expr 2 = 3 0

rev | 標準入力またはファイルの内容を逆に出力する

概要 標準入力,ファイルの内容を逆に出力します。 サンプルコード $echo "test" | rev tset $echo "hoge" > hoge.txt $ls hoge.txt hoge.txt $rev hoge.txt egoh

特定の月のァイルのみ削除

$ls -l | gawk '$6 ~ /2月/ { print $9 }' | xargs rm

basename | フルパスから拡張子有り・無しのファイル名を抽出

概要 フルパスから拡張子有り・無しのファイル名を抽出するには以下のコマンドを利用します。 basename ファイルパス 拡張子 拡張子の指定をすると、拡張子を除外したファイル名を取得できます。 拡張子を指定しない場合は、拡張子も含むファイル名を取得で…

whereis 指定したコマンドのソース、バイナリ、マニュアルのパスを取得

概要 whereis = 指定したコマンドのソース、バイナリ、マニュアルのパスを取得 オプション s = ソースのパスを取得 b = バイナリのパスを取得 m = マニュアルのパスを取得 サンプル $whereis pwd pwd: /bin/pwd.exe /usr/bin/pwd.exe /usr/include/pwd.h /us…

bashで深い階層にある複数フォルダの一括削除

条件 下記の構成を前提とする。 /root ┣next1 ┃┗target ┃ ┗file.txt ┣next2 ┃┗target ┃ ┗file.txt ┣next3 ┃┗target ┃ ┗file.txt ┗next4 ┗target ┗file.txtこの条件でtargetフォルダを含み配下のファイルも一括削除したい。 コマンド $find ./*/target/ -type…

xargs | 標準入力からコマンドラインを作成する

コマンド名 xargs オプション e = ファイル終了文字を指定 p = コマンドごとに問い合わせる r = 空白しかない場合は実行しない 概要 標準入力からコマンドラインを作成する サンプルコード aaaa.txtとaaaa.shを作成後、 findコマンドでaaaaで始まるファイル…

> リダイレクトでファイル出力

概要 リダイレクトによりコマンドの実行結果をファイルに出力可能。 上書きリダイレクト構文 コマンド > ファイル名 追記リダイレクト構文 コマンド >> ファイル名 リダイレクトサンプルコード $echo test > test.txt $cat test.txt test $echo test > test.…

前のコマンドが成功してから次のコマンドを実行

2つのコマンドを&&で繋ぐと、前のコマンドの成功時のみ後続のコマンドを実行します。例えばカレント配下にテストフォルダがあるとします。 この際、rmでtestフォルダを作成する際に-rオプションを付けずに実行すると エラーになります。 この場合パイプで後…

<< 入力の終端

概要 入力の終端を以下の構文で指定することで 終端文字を入力するまでの内容を入力としてコマンドを実行できる。 入力リダイレクト構文 コマンド 入力リダイレクトサンプルコード 使用コマンドはsort 入力内容は987654321の降順数字 終端文字はhogeとする。…

< 入力のリダイレクト

概要 入力のリダイレクトによりファイルからの入力でコマンドを実行する 入力リダイレクト構文 コマンド 入力リダイレクトサンプルコード sort < desc.txt >asc.txt 入力ファイル 9 8 7 6 5 4 3 2 1 出力結果の確認 1 2 3 4 5 6 7 8 9

& バックグラウンドで実行

コマンドの最後に&をつけることでバックグラウンドで実行が可能。 長時間の実行が必要なジョブなど他のジョブと並行して実行させたい場合に有用。

nkfのインストール

nkfのインストール 日本語変換ソフトであるnkf(Network Kanji Filter)をインストールします。 http://sourceforge.jp/projects/nkf/からnkfをダウンロードする 解凍する(tar xvfz nkf-2.1.2.tar.gz) makeの実行 make testの実行 ファイルを配置する cp -av…

shunit2でシェルもテストファースト

概要 シェル用テストフレームワークのshunit2の導入について。 インストール手順 ・以下のURLのダウンロードリンクからshunit2を取得する ※2012/02/24時点での最新版2.1.3を選びました http://sourceforge.jp/projects/sfnet_shunit2/・該当ファイルを解凍す…

コマンド例一覧

任意のコマンドの履歴を抽出 history | grep "command" カレントフォルダ配下の全ファイルをgrep grep "検索対象文字列" `find . -name "*.*"` 任意の文字列を含まない行を抽出 grep -v "text" fileName カレントフォルダの201202_todo.txtファイル(SJIS)…

UNIXコマンドライン

概要 UNIXのコマンド一覧です コマンド一覧 コマンド名 内容 リンク In シンボリックリンク、ハードリンクの作成 -- banner 文字を大きく表示する http://d.hatena.ne.jp/tbpg/20120306/1331047112 basename フルパスから拡張子あり、なしのファイル名を取得…