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

それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mysql で無精するとCREATE TABLE がなんかいっぱいnot null が付く

sql

SQL 作った drop table if exists A; create table A ( id int primary key, title varchar(256) ); show create table A; 実行した A CREATE TABLE `A` ( `id` int(11) NOT NULL, `title` varchar(256) DEFAULT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=lati…

at_STARBUCKS_Wi2 のぱぱっと

セッションが切れまくるので自動化する。 30分くらいで切れちゃうので、バックグラウンドで、接続をチェックして切れてたら自動ログインするために、XHRを見てmechanizeに書いた。あらっぽい。。。 require 'mechanize' m = Mechanize.new m.get 'https://…

SQLでecho/print するための代替方法

sql

SQL で記述しているとecho が無い。 あれこれSQLを書いてまとめて流しているとコメントを出力したいことがある。 SELECT * from A; SELECT * from B; SELECT * from C; などとしていると、途中で改行を挟んだり、クエリがなんだっけとなるのです。 コメント…

LVMのlvreduce でファイルシステム(ext)を縮小する

LVMで管理しているボリュームを縮小する。 lvm2 で管理しているLVのボリュームを縮小して、容量を開放するための手順 作業手順は次のようになります。 ターゲットのLVとそのファイルシステムを確認する FSを縮小する lv を縮小する resize2fs はlvreduceの後…

LVMの lvextend でLVを拡張する

LVMで作ったLVのパーティションを拡張する。 手順としては、物理HDDのパーティションを拡張するときや、HDDを大容量に換装した時の手順とほぼ同じですね。 pv の確認 vg の確認 lv の確認 lv の容量を追加する lv の上のファイルシステムを拡張する pv の確…

LVMでボリュームを切り出して使う - 使い方とメリット

LVM 出来ることを試していくシリーズ LVMでボリュームを切り出して使う。 今回は、大きなディスクから、小さなディスクを作ってみる。 LVM的に表現すれば、VGから複数のLVを生み出す。この作業になります。 LVM でボリュームを分割する LVM でLV(論理ボリュ…

LVMの作成と削除のやり方の例-基本コマンド

基本的なLVMの作成例 LVM の作成計画 LVM の作成 LVM の削除 作ったものは後始末するということで、LVMを作って削除するまでをメモしておきます。 用意するもの LVM の管理下に置きたいHDD/SSD/パーティション LVM の名前 LVM の容量計画 LVM の容量計画 ど…

LVM上にLVMを構成する

LVM で切り出したボリュームをLVMのPEにすることが出来る ボリュームグループとボリュームグループを結合するのに何か手はないかなと考えていた。 ボリュームグループから切り出したボリュームを、別のボリュームグループに参加させたいなと思ったらあっけな…

imageMagickのconvertコマンドで進捗をモニタリングする

convert コマンドが遅い時がある PDFとJPGを扱ってると、時間がかかって後どれくらいだ?と気になることがあるので。 convert -monitor と monitor オプションをつけると、progress をモニタリングできて便利。 実際やってみるとこんな感じ takuya@$ convert…

macのfdisk コマンドでUSBメモリを初期化する。

Mac の fdisk コマンドを使ってUSBメモリを初期化する。 fdisk コマンドは man fdisk すればBSD manual が出てくるので、 BSD コマンドらしい。 fdisk コマンドでディスクを消去する MBRのディスクパーティション・テーブルを初期化することで行けたっぽい s…

macのコマンドでUSBメモリを初期化する。

mac の コマンドでUSBメモリを初期化する diskutil を使うのが、シンプルな回答。 sudo diskutil eraseDisk FAT32 MY_NAME MBRFormat /dev/diskN MY_NAME は自由に決められるが、FAT32の場合は「大文字」でないとエラーになった。 実際にやってみた例 taku…

bashの似てて紛らわしいもの . / source について

似てて紛らわしいものシリーズ . / source について bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く。 . / source について . と source は、どちらも同じ意味と効果を…

macのrbenv でインストールにコケたのでメモ

rbenv でruby 2.3.3 を入れようとしたらエラーになった。 takuya@Desktop$ CC=/usr/bin/gcc CONFIGURE_OPTS="--with-readline-dir=/usr/local/opt/readline --with-openssl-dir=/usr/local/opt/openssl" rbenv install 2.3.3 Downloading ruby-2.3.3.tar.bz2…

bashの再起動execとbashrc を無視する起動オプション

bash の再起動方法 exec bash --login bash の起動オプション 以下のオプションは、すべて同じ意味だと思っていい。 bash を起動してInteractiveShellとして起動する。設定ファイルなどはいつもどおりの順番で処理します。 bash --login bash -l bash - exec…

ホンダのスマートキーの電池の交換について(N-BOX)

N-BOX のスマートキーの電池が切れた。 N-box のカギの電池切れたみたいなんですよね。なんかランプ点いた。 こんなの初めてなので、交換方法やランプの意味を調べておいた。 表示灯が突然点滅した。 運転中に、警告灯が点灯して焦った。 点滅する警告灯。 …

bashの使い方のまとめ記事のインデックス

bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べ…

fio でHDD/SSDのブロックデバイスのベンチマークを取る

ブロックデバイスのベンチマークを取りたいと思いました。 ぱぱっとやる方法だと、 dd hdparm 等があるのですが、キャッシュなどいろいろ考えることも多いいので。今回は fio を試してみました。 まぁ普段の速度測定は dd でやっちゃうんだけどね。。。ネッ…

bashの似てて紛らわしいもの ``バッククオートと $() について

似てて紛らわしいものシリーズ `バッククオートと $() について bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く `` と $( ) の違いのついて コマンドの実行結果で置換…

bashの条件判断の関数名を美しくする

Bashの関数名に?を使う bash の関数名には ? が使えます。つまりまぁまぁ美しい関数名が作れます if の中が美しくない例 # sf-pwgenが存在したら alias をいれる if type sf-pwgen > /dev/null 2>&1 ; then alias sf-pwgen-alphanum-12char="sf-pwgen -a alp…

bashの正規表現マッチで後方参照

bash の正規表現マッチで後方参照。 bash の [[ コマンドで、正規表現マッチが使える話は以前書きました。 そのときには、意図的に書きませんでしたが、bashの正規表現マッチでは後方参照が使えます。 bash の正規表現マッチと後方参照 とりあえず、動作例を…

bash の for と パイプ(xargs) の一番大きな違い

bash の似たものシリーズ 初心者が躓きそうなbash で似て紛らわしいものの違いをはっきりさせようとさせるシリーズ。 bash に於ける xargs / for には違いがあるのか? あります。結構大きな違いが有ります。 それぞれのループの回しかたを復習しておきまし…

bashの似てて紛らわしいもの [[ / [ / test  はどこが違うの?

似てて紛らわしいものシリーズ [[ / [ / test bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く [ / [[ の違い 結論から言います [[ / [ は同じものです。 [[ が新しい書…

bashの似てて紛らわしいもの =/==と= 代入&比較の注意点

似てて紛らわしいものシリーズ =/==と= bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く =/==と= の違い =はいくつかのパターンで出てきます。 比較演算子として = で比…

bashのジョブ(bg/fg)とお手軽kill

bash のジョブの概念とコントロール bash のジョブの話とkill の話。 Ctrl+zでプロセスはどこへ行くのか? takuya@~$ ログアウト 停止しているジョブがあります。 takuya@~$ 停止してるジョブってなんだよ!!!ってなる人が多い。 ジョブはどこに行った。…

bashの複数タブ間コマンド履歴(ヒストリ)共有とPROMTO_COMMAND変数について

bash でもコマンド履歴の即時反映をしたい 複数タブでターミナルを使ったり、複数ウインドウでターミナルを使うと、bashの履歴が共有されて無くて、悲しいことがある。 zsh の機能で紹介されることも多いですが。それ bash でも出来るよ。 共有方法 export P…

bashの何もしない特殊コマンド : コロン

: はコマンドです。 え?コマンド? と思うかもしれません。はい、コマンドです。記号一文字がコマンドです。 : がコマンド(関数)の証拠 takuya@~$ type : : はシェル組み込み関数です : コマンドを実行した結果 takuya@~$ : ; echo $? 0 : は何に使うの?…

bashの似てて紛らわしいもの [[ / ((

似てて紛らわしいものシリーズ [[ / (( bash の記述で初心者泣かせの、似てて紛らわしかったり、どう使っていいかわからなかったり、読み方を間違えてパニックになる記号について。今回は [[ / ((について [[ / (( の違い [[ / (( は if 文の条件判断の中で…

bashの似てて紛らわしいもの (( / $((

似てて紛らわしいものシリーズ (( / $(( bash の記述で初心者泣かせの、似てて紛らわしかったり、どう使っていいかわからなかったり、読み方を間違えてパニックになる記号について (( / $(( の違い (( / $(( は数字を計算する方法です。どちらも同じ機能を持…

bashの似てて紛らわしいもの ( / ((

似てて紛らわしいものシリーズ bash の記述で初心者泣かせの、似てて紛らわしかったり、どう使っていいかわからなかったり、読み方を間違えてパニックになる記号について (( と ( 全然意味が違うので、間違えると大変。また見た目は似ているので似たようなも…

bashのwhile/until ループ構文について

bash の while 文について bash で書ける while文について触れておきます。 while 文の基本構文 while <COMMANDS> ; do <COMMANDS> done; ここでの <COMMANDS>は 複数行のコマンドリストのことを指しています。 COMMANDSに含まれるものは次のとおりです COMMANDS ( COMMANDS; ) { COMMANDS </commands></commands></commands>…

bashの関数定義には「リダイレクト」も含まれる

bash の関数定義について bashの関数定義の記事で触れていないことが有ります。というか意図的に省きました。 bash の関数定義には「リダイレクト」が含まれます。 リダイレクトを含めたbash関数定義 bashにおける関数定義は、正しくは実は次のようになって…

bashでのif/while条件判断 に使える[[ / (( 条件の一覧

bash ではいろいろな条件で分岐が出来る。 ifで使えるいろいろな条件を見てみたいと思う。 数値判断系 数字を比較するときは以下を覚えておけばいい。 (( 1 > 0 )) (( 1 >= 0 )) (( 1 < 0 )) (( 1 <= 0 )) (( 1 == 0 )) (( 1 != 0 )) (( 0 )) # 終了ステータ…

bashで条件分岐 - if

bash で if の分岐について bash で if の条件分岐は、C言語系プログラマが if 構文を一見して理解できるように書かれています。が、ちょっとコツが実は必要なのです。 bash における条件分岐 前回は、bash は条件分岐を「コマンドの終了ステータス・コード…

bashでコマンドの終了ステータスの意味と見方

終了ステータスは重要。 じつはあまり顧みられない、終了ステータスですが「条件分岐」の条件になってる。そのことは以前書きました。今回はこの「異常終了」のコードを詳しく見ていきます。 bashでは次のように定義されています。 $? == 0 が正常終了 $?> 0…

bashの条件分岐 : if 以前の話

bashの使い方:条件分岐の話 if / while / until / case の話をしようと思っています。とても大変なので、できるだけシンプルにストーリーにしてわかりやすく書こうと思っています。 最初は条件分岐の話です。条件分岐はbashの理解に大きな影響を与える話な…

bash引数を使う位置パラメータについてのまとめ

位置パラメータについて。 bashの使い方 のシリーズ。今回は、位置変数(位置パラメータ)について見ていきたいと思います。 位置パラメータとは 位置パラメータは、bashには positional parameter と書かれています。位置変数・位置パラメータ・ポジショナ…

bashのcd/pwd/pushd/popdのまとめ

cd コマンドを見直す cd : change directory のコマンドを少し見直してみたいと思います。 cd コマンドの基本的な使い方 cd コマンドでは非常によく使う書式があって、それは以下のとおりだと思います。 コマンド 意味 cd 何も入力しない cd ~ と同じ cd $HO…

bashの配列のまとめ

bash も配列を扱える シェルスクリプトで配列を扱えるので 配列を扱ってみる。 今回は、サンプルのために、変数名を大文字にしています。もちろん小文字も使えます。 大文字は、おもに環境変数やスクリプト間やプロセス間で値を渡すときに使うことが多いよう…

bashの強制終了(CTRL+C)検出と後処理/trap

bash でコマンドを実行して強制終了するとき ターミナルでコマンドを実行して応答がないときに強制終了したい。こようなときは次のコマンドを使います。 Ctrl + C 強制終了 ときどき見かける。どこかで間違った知識が流布している。Ctrl+z を押す人が多い …

jq で 条件にマッチするオブジェクトを取り出す where 句的なこと

jq 便利ですよね。 jq 使ってます。みんなあれ整形程度にしか使ってなかったり、絞込にしか使ってない気と思うんですよね jq である条件を満たすオブジェクトを取り出したい SQLのselect where みたいに select {} where [].name = 'takuya' みたいな jq が…

bashで関数の定義と実行と削除

bashの関数 bash は 組込コマンド(組込み関数) は $PATH の通っている コマンドの実行 の他に、自分で定義した関数 function を使うことが出来ます。 シェルスクリプトを記述する プログラミング言語としておなじみの機能です。 bashの関数の定義方法 bash …

bash のシンタックスチェック

bash にもシンタックスチェック機能があります。 シンタックスチェックをすることでエラーを未然に防ぐ事ができます。 たとえば、長文のシェルスクリプトを書いているときシンタックス・チェックが有ると、事前にミスが見つかるので便利です。 bash のシンタ…

ヘルプ(help) コマンドで関数マニュアルを調べる使い方

bash の help 機能について bash の組込の機能については man / info でもいいのですが多すぎて大変。 help コマンドを使います。help でダイレクトに調べられます。 bash のシェルスクリプトとしての機能やSHELLとしての機能を見たいときには help を使えば…

bashで連想配列(assoc array / hash ) を使う。

bash の配列にも 連想配列が加わりました。 追加されたバージョンは、bash 4.2 からです。 はじめに連想配列とは何なのか 連想配列(PHPでの略語)は associative array と呼ばれる機能です。js や php を始めスクリプト系言語ではおなじみですね。 # javasc…

bashで可変変数(抽象化)をする。

bash でも変数名の変数を使えます。 php では variable variable (可変変数)、javascript では obj[name]() などとやります。 関数名や変数名を、変数に確保しておき後で使ったり、動的に変数名をつくって変数を参照するなどするときに使われます。java な…

bashの文字列の追記(append)演算子の紹介

文字列の追加が簡単になっています。 bash 3.1 から 使えます。 a='Hello' a+=' World' echo $a # Hello world PATH などの追記が簡潔になります たとえばPATHの末尾に文字列を追加するときは次のように書くことが出来ます。 PATH+=:/home/takuya/.bin いま…

bashでif に正規表現を使った文字列マッチ条件分岐

bash で正規表現マッチのif も出来ます。 Version 3.2 くらいから、=~ によるマッチ判断ができるようになっています。 正規表現マッチで条件分岐の例 とてもかんたんなマッチングの例を見ておきましょう。 name='<h1>takuya</h1>' if [[ $name =~ takuya ]] ; then ec…

bash の組込 let による数値計算とインクリメント

bash で数字を計算する let bash で数字を計算するときに、どのような方法を使いますか? 数字を計算するときに、いくつか選択肢があります。 expr let C style 主に、この3つのどれかだと思います。 今回はこの3つのうち、let について 見ていきたいと思…

bashのif文で数字の比較を評価条件ぱぱっとやる方法(C言語スタイル

bash の if で数値比較をするには シェルスクリプトやbash のターミナルで、数値と数字の比較をしたいとき。 どのような方法を取りますか? a = 1 if (( a )) ; then echo 1 ; fi 私は、C言語スタイルの比較演算子を使うことが多いです。 数値を比較するには…

bash の for ループ : for in スタイル

bash の for ループは for ..in スタイル bash では、for ループを for .. in スタイルで記述することが一般的です。 もちろん、C言語スタイルのbash のfor ループを記述することも可能です→参考 一般的に使われるのは for ... in スタイルではないでしょう…