CLI -> 基本

Posted by muchag | MySQL,コマンドプロンプト | 2015-05-22 (金) 11:41:07

MySQL のコマンドラインからの操作。

【環境】
MySQL:5.5.27
XAMPP:1.8.3
開始

私は MySQL を XAMPP から利用しているので
MySQL も XAMPP 内にある。

コマンドプロンプトを開いたら、下記3種の利用方法がある。

  • そのまま記述(環境変数を登録している場合)
  • MySQL\bin まで cd
  • フルパスで記述
コマンドラインツールの起動
  1. $ mysql -u ユーザ名 -p

これでパスワードの入力を促されるので
パスワードを入力し、認証が通ったら
ツールを利用できるようになる。

  1. mysql>

プロンプトが上記のようになれば、起動成功。

パスワードも含めて起動
  1. $ mysql -u ユーザ名 -pパスワード

-p オプション指定の直後にパスワードを記述する。
スペースを開けずに記述する ところがミソ。

データベースを指定して起動
  1. $ mysql -u ユーザ名 -D データベース名 -p
データベースの選択
  1. mysql> use データベース名
テーブル一覧表示
  1. mysql> show tables
終了
  1. mysql> quit
  2.  
  3. または
  4.  
  5. mysql> \q
書式
文末

SQL 文の最後に ;(セミコロン)を付けること。
なぜって、下記のようにカスケード記述ができるから?

カスケード記述

長い SQL 文を分割して入力できる。

  1. mysql> SELECT a, b, c, d, e FROM table_a, table_b WHERE table_a.id = table_b.table_a_id AND table_a.id = 1;
  2.  
  3. // 途中で Enter キーを押下すると、継続して SQL 文を記述できる
  4. mysql> SELECT a, b, c, d, e(Enter)
  5.     -> FROM table_a, table_b(Enter)
  6.     -> WHERE table_a.id = table_b.table_a_id(Enter)
  7.     -> AND table_a.id = 1;

というわけで、文末にセミコロンを付けないと、永遠に -> が出てくる。 🙄

メモ
コマンドエイリアス
コマンド エイリアス
quit \q
MySQL,コマンドプロンプト | 2015-05-22 (金) 11:41:07 |

tree コマンド

Posted by muchag | Windows,コマンドプロンプト | 2015-03-18 (水) 23:51:59

ちょー便利なコマンドを発見!

【環境】
Windows:7 Home Premium 64bit SP1
状況

今まで、Wordpress へディレクトリ構成を投稿する度に
下記のような書き方をしていた。

(openpne)\plugins\opMyPlugin
◇┣ apps ← アプリケーション格納用
◇┣ lib ← プラグイン独自クラス格納用
◇┣ test
◇┃◇┣ bootstrap
◇┃◇┃◇┣ database.php
◇┃◇┃◇┣ functional.php
◇┃◇┃◇┗ unit.php
◇┃◇┣ fixtures
◇┃◇┃◇┗ test_data.yml
◇┃◇┣ functional
◇┃◇┃◇┣ mobile_frontend
◇┃◇┃◇┃◇┗ skeletonActionsTest.php
◇┃◇┃◇┗ pc_frontend
◇┃◇┃◇◇◇┗ skeletonActionsTest.php
◇┃◇┗ unit
◇┃◇┃◇┗ model
◇┃◇◇◇◇◇┗ SkeletonTest.php
◇┗ dependencies.yml.sample

非常に面倒くさい。。。
 

出力結果

あまりにも面倒なので、何かないか Google 先生へ質問したところ
tree コマンドなるものを見つけた♪

結果はこんな感じ。

  1. ├─config
  2. │      filters.yml
  3. │      routing.yml
  4. └─modules
  5.    └─like
  6.        ├─actions
  7.        │      actions.class.php
  8.        │
  9.        └─templates
  10.                deleteSuccess.php
  11.                listSuccess.php
  12.                postSuccess.php
  13.                searchSuccess.php

なんと便利な・・・。

ただ、Wordpress の場合は、スペースを抜かれてしまうので
iG:Syntax Hiliter に一役買ってもらって表示。
 

書式
当該ディレクトリ

取得したいディレクトリまで移動すれば、とてもシンプル。

  1. $ tree

これでコマンドプロンプト上に表示される。
 

ディレクトリ指定

ディレクトリを指定したい場合は、下記の通り。

  1. $ tree [path to directory]

 

ファイルも取得

ファイル名も取得したい場合は、オプションを付ける。

  1. $ tree /f

 

テキスト保存

テキストファイルに落としたい場合は、下記のように。

  1. $ tree > result.txt

 

保存場所を指定

テキストファイルの保存場所を指定したければ、フルパスで記述。

  1. $ tree > [path to textfile]

 

  1. $ tree C:\Users\MonarchLX\Downloads /f > C:\Users\(username)\Documents\result.txt

これで、ダウンロードディレクトリの中身(ディレクトリとファイル)のツリーを
マイドキュメントに result.txt というファイル名で保存。
 

参考サイト

インストラクターのネタ帳
フォルダの階層構造をツリー状に−TREEコマンド
フォルダ構造・ファイル一覧をツリー状に−TREEコマンド

Windows,コマンドプロンプト | 2015-03-18 (水) 23:51:59 |

シンボリック リンク

Posted by muchag | Windows,コマンドプロンプト | 2015-01-01 (木) 15:09:53

長らくプロジェクトディレクトリと作業ディレクトリを分けていて、面倒だな~と思っていた。
今日、突然、「そうだ! シンボリック リンク を張ればいいんでないかしら」と思った。(遅

【環境】
[Windows] 7 Home SP1

グーグル先生に質問をしてみたところ

  • ハードリンク
  • ソフトリンク
    • ジャンクション
    • シンボリック リンク

という種類があるとのこと。

Windows では mklink というコマンドを使うらしい。

1回読んだだけでは、ピンとはこなかったけど
一応ちこっとだけ書き込み。
後々追記。
 

ハードリンク

1つの実態に複数のパスを登録するもの。
1つ目はもちろんデフォルトのパス。
その他に疑似パスを Windows へ登録しておくものみたい。

同一ボリューム上のファイルにのみ有効。
 

ソフトリンク
ジャンクション

同一PC上のフォルダにのみ有効。
 

シンボリック リンク

この機能が実装されたのはWindows Vista/Windows Server 2008以降。
管理者権限 で実行すること。

  1. // ファイルの場合
  2. $ mklink リンク ターゲット
  3.  
  4. // フォルダの場合
  5. $ mklink /D リンク ターゲット

※リンク=虚体、ターゲット=実体

注意点

リンク側を、先に Windows 上で作成してしまうとエラーになる。
ファイルを先に作るようなことはないかもしれないけど、フォルダも作っておいてはいけない。

 

スペース文字

パスを記述する際に、Program Files など、半角スペースの入ったディレクトリ名やらファイル名があると、コマンド実行時にエラーになる。
その時は、パスを “”(ダブルクォーテーション)で括ってやれば OK !

Linux 風

参考サイトを読む限り、下記で上手くいくと思ったんだけど
残念ながら、ダメ だった。。。

寧ろ、Windows 書式のままで読み込んだ。
ん~、前の時は、Windows 書式だとダメだった気がするんだけどな~。

サーバーOS:Linux
ローカルOS:Windows
というときに、パスの書式が異なるので困ることがある。

そういうときは、シンボリックリンクを利用して、Windows 書式を Linux 書式に変換することができる。
便利~♪

  1. // OK
  2. # mklink /d hoge C:\hoge
  3.  
  4. // NG
  5. # mklink /d hoge/moge C:\hoge

但し、/(スラッシュ)は使えないので、対象ディレクトリに名前を付けるイメージ。

参考サイト

+++ 上野メモ帳 +++:WindowsだけどLinux風のパスを使いたい(2010-10-20)

参考元サイト

Windowsでシンボリックリンクを作る
@IT:シンボリック・リンクとジャンクションとハードリンクの違い
 

2015-01-23 追記
削除
  1. // ファイルの場合(未検証)
  2. $ del リンク
  3.  
  4. // フォルダの場合
  5. $ rmdir リンク

※リンク=虚体

でも、普通にGUIで削除してよいらしい。。。(未検証)

Windows,コマンドプロンプト | 2015-01-01 (木) 15:09:53 |

Subversion .svn ディレクトリの削除

Posted by muchag | コマンドプロンプト | 2012-04-02 (月) 12:45:12

知り合いからソースをもらったはいいけど
中には .svn がいっぱい・・・。

というわけで、.svn ディレクトリだけを
再帰的に削除する方法をグーグル先生に質問してみた。

相変わらずありがたいサイトにすぐ出会え
参考にして実行したところ、上手くできたみたい。

【環境】
[OS] Windows 7
Windows

コマンドプロンプトで当該トップディレクトリまで移動して
以下を実行。

  1. for /R %i in (.svn) do rd /Q /S "%i"

 

Mac、Linux

こちらは試していない。

  1. rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`

 

参考元サイト

WEB制作者の苦悩:[Subversion] .svnファイルを一括削除する
uthorofotus iruc:subversion の “.svn” を削除するワンライナー

コマンドプロンプト | 2012-04-02 (月) 12:45:12 |

バッチファイルの作成

Posted by muchag | コマンドプロンプト | 2011-04-22 (金) 12:16:48

ん~、恐ろしく長い年月(恐らく20年以上)を経て
やっとこの話に着手することができた。

まぁ、避けてきただけなんだけど・・・。

でも、やってみたらなんていうことはない。
まぁ、ほんの基礎の基礎の基礎の基礎の基礎くらだとしても
わかりやすくて、簡単であった。

要は、コマンドプロンプトで入力することを
ファイルにまとめて記述するだけ。

  1. @echo off
  2. cd "C:\Documents and Settings\username\My Documents\Downloads\ASM_2_30\"
  3. java -jar asm.jar -a

(Java へのパスは通し済み)

Android 端末のスクリーンショットを撮影するための
Java プログラム「ASM」を走らせるコマンド。

テキストエディタにこれだけ記述し
「.bat」という拡張子で保存するだけ。
楽ちーん♪
 

注意点
@echo off

1行目は実行ログを表示させない命令。

そして、その命令自身も表示させないために @ をつける。
 

ファイル名、パス

ファイル名やパスを記述するに当たって
それらにスペースが含まれる場合は、
それらを (ダブルクォーテーション)で括る。

と、あちこちのサイトで解説されていた気がするのだが
ダブルクォーテーションなしでも動作した・・・。
最近のは進化したのかな。

また、パスはフルパスでないと反応しなかった。
 

pause

上記サンプルだと、バッチファイル実行後
コマンドプロンプトは処理が終わり次第勝手に閉じる。

もし勝手に閉じさせたくないなら
末尾に pause という命令を付け加える。
 

バッチファイルの置き場所

デスクトップに配置したバッチファイルは機能した。
My Documents/Batch Files/asm.bat も機能した。

ところが、別ドライブに配置したバッチファイルは機能しなかった。

現在のところ原因不明。

コマンドプロンプト | 2011-04-22 (金) 12:16:48 |