Msysコマンド入門
<基礎編>
良く使うコマンド
内容 | コマンド | 使用例 |
Msysの終了 | exit | $exit |
現在のディレクトリを調べる | pwd | $pwd |
別のディレクトリへ移動 | cd | $cd ディレクトリ名 |
コマンドのある場所を調べる | which | $which コマンド |
ディレクトリ内のファイル一覧 | ls | $ls
$ls ディレクトリ名 |
ディレクトリ内のファイルを下位ディレクトリまで一覧 | find | $find ファイル名 |
ディレクトリの作成 | mkdir | $mkdir |
空ディレクトリの削除 | rmdir | $rmdir ディレクトリ名 |
ディレクトリを全部削除 | rm -r | $rm -r ディレクトリ名 |
ディレクトリの移動 | mv | $mv ディレクトリ名 |
ファイル名 ディレクトリ名の変更 | mv | $mv 旧名 新名 |
ファイルの削除 | rm | $rm ファイル名 |
新しいファイルの作成 | touch | $touch ファイル名 |
ファイルの移動 | mv | $mv 旧名 新名 |
ファイルのコピー | cp | $cp 元名 新名 |
tar.bz2ファイルの展開 | tar xvjf | $tar xvjf xxxx.tar.bz2 |
tar.gzファイルの展開 | tar xvzf | $tar xvzf xxxx.tar.gz |
コマンド出力をスクロールしてみる。 | less | $コマンド|less
(qを押してぬける) |
ファイルの中身を出力 | cat | $cat ファイル名 |
ファイル内の文字を置き換えて出力 | perl | $perl -pe 's/検索文字列/置換後文字列/g' ファイル名
(正規表現) |
文字列を含むファイルを探す。 | grep | $grep 検索文字列 ファイル名 |
ライブラリのシンボルを全部出力する。 | nm | $nm libxxxx.a |
Msys内部では 区切り文字が\ではなく/なので注意が必要だ
c:\foo\bar → /c/foo/bar
<応用編>
[1]出力先の変更
ファイルに出力 | $コマンド>ファイル名 |
ファイルに追加 | $コマンド>>ファイル名 |
エラー出力も含めてファイルに出力 | $コマンド&>ファイル名 |
[2]コマンド行の展開
(1)ワイルドカード*はフォルダ内部にあるファイル名一覧に展開される。
ファイル内の文字列を探すコマンドはgrepだが 複数のファイルから探すときは以下のようにする
$grep 検索文字列 ファイル名1 ファイル名2 ......
これはワイルドカード*をつかって
$grep 検索文字列 * とかくことができる。
(2)実行結果の展開
バックスラッシュ"`"をつかえばコマンドの出力を コマンドラインに送り込むことができる。
上記の$grep 検索文字列 * は
$grep 検索文字列 `ls`
と書ける。
[3]コマンドの接続
複数のコマンドを (コマンド1)|(コマンド2) のように接続することができる(’|’はパイプという)。
ファイル内の文字列を置換するコマンドは$perl -pe 's/検索文字列/置換後文字列/g' (ファイル名)だがこれは以下のようにも書ける。
$cat (ファイル名)|perl -pe 's/検索文字列/置換後文字列/g' -
”-”はファイル名のかわりに前のコマンドの出力を使うという記号だ。
<応用例>
「1」ヘッダファイルの検索
ある関数やマクロが定義されてるヘッダファイルを探すには以下ののようにする。
$grep atoi `find /mingw/include`
[2]ライブラリ関数の検索
ある関数がどのライブラリで定義されてるか確認するには以下のようにする。
(1)あたりをつける
$cd /mingw/lib
$grep 関数名 *
で候補がでる
(2)探す
$nm ライブラリ名 | grep 関数名 | grep T
(Symbolには I や T 等の記号がついてる。 提供してる関数のSymbolはTからはじまる)
[3]exeファイルやdllファイルがどのdllに依存してるか調べる。
$objdump -p xxxx.exe |grep '\.dll'
このHPの内容に問題があれば sけいし(skeishi@yahoo.co.jp)まで連絡願う。
DevCPPの使い方に戻る
sけいし発HPに戻る