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に戻る
inserted by FC2 system