UNIX コマンド¶
目次
- UNIX コマンド
相対パスと絶対パス¶
一番上の階層(windowsで言うところのC:\)からのパスを全部書くのが絶対パス。
今いる場所からの移動を考えるのが相対パス。
ワイルドカード¶
ファイルの検索などに使用することが出来る、正規表現のこと。
ワイルドカードまとめ↓
? | 任意の1文字 |
* | 任意の文字列 |
[...] | カッコ内の文字のうちのどれか1文字。[01234]は[0-4]、[bcdefg]は[b-g]のようにも書ける。 |
[^...] | カッコ内の文字以外の1文字。[...] の逆。 |
{... , ...} | コンマで区切られた文字列のうちのどれか。 |
~ | ファイル名先頭において、ユーザーのホームディレクトリへの絶対パス |
- 使用例 (javaファイルを検索)
find ./ -name '*.java'
リダイレクト¶
標準入出力に対してコマンドの入出力をファイルを使用して行うこと。
- コマンドの結果をファイルに出力するとき
[command] > [filename] :上書き保存
[command] >> [filename] :ファイル末尾に追記保存
- コマンドの入力をファイルから行うとき
[command] < [filename] :ファイルから入力
おまけ¶
ファイル出力について
エラー出力の表示先を設定することが出来る。
警告
> や >> をそのまま使うと、ターミナル上にエラーが出力される(標準エラー出力)ので、log(書き出しファイル)に記録が残らない!
- エラー表示方法
[command] >& [filename] ※sh, bash, csh, tcshに使用可能
または
[command] > [filename] 2>&1 ※sh, bashに使用可能
上記2種類のコマンドは、標準出力および標準エラー出力をファイルに書き出してくれる。
※2つ目のコマンドについて補足
sh, bashでは、標準出力と標準エラー出力は下記のように番号付けされています。
1 = 標準出力
2 = 標準エラー出力
コマンド各種¶
アクセス権設定¶
chmod (option) [a+w] [file name]
chmod (option) [644] [file name]
アクセス権に関しては、 パーミッション(権限) を参照。
ディスクの使用状況参照¶
df [-a] [-k] [-T] [-t FSType] [-l] [Linux]
df [-a] [-k|-m|-g] [-t FSType] [-l] [FreeBSD]
df [-a] [-k] [-F FSType] [-l] [Solaris]
よく使うのは
df -kP
-k : 1キロバイト単位で表示
-P : POSIX準拠の512バイトブロックで表示
ファイル検索¶
find [search directory] (option)
使用方法
find ./ -name '*.java'
『./』ディレクトリ(現在いるディレクトリ)のなかのファイル名が『*.java』のものを検索
ファイル・ディレクトリの情報を表示¶
ls (option) [directory name]
注釈
オプションに-laをつけると全ファイル詳細表示。-lrtもよく使う。
オプションの説明
- 『-l』:ファイルやフォルダを一行で表示する
- 『-a』:全てのファイルを表示
- 『-r』:逆順にソートして出力
- 『-t』:修正時刻でソート。最新の修正が先頭。
- 『-R』:再帰的に表示(フォルダのなかもみていく)
その他コマンド(ここから下は普通のコマンド集MEMO!課題とは関係ないよ!)¶
ファイルのバイト数/単語数/行数を出力する¶
wc [-c] [-l] [-w] [-L] [FILE...]
オプションめも
-c
FILE...に指定したファイルの総バイト数を出力します。改行コードやタブコードなどの制御コードも1バイトとします。
-l
FILE...に指定したファイルの総行数を出力します。
-w
FILE...に指定したファイルの総単語数を出力します。
-L
FILE...に指定したファイルの内容で、もっとも長い行のバイト数を出力します。改行コードのバイト数は含みません。
コマンドまとめ(TABLE形式)¶
cd | ディレクトリ移動 | |
chmod | アクセス権設定 | |
cp | コピー | |
df | ディスクの使用状況参照 | df -kP |
du | ディレクトリのディスク使用量を表示 | |
find | ファイル検索 | |
grep | ファイルからパターン検索(Grep) | |
history(!) | コマンド履歴の表示 | |
less | テキストを見る | |
ls | ファイル・ディレクトリの情報を表示 | ls -la |
mkdir | フォルダの作成 | |
mv | ファイル・ディレクトリ移動・名前変更 | |
ps | プロセス状態の表示 | |
pwd | 現在のディレクトリの場所を表示 | |
rm | ファイル・ディレクトリを削除 | |
sed | 文字列の置換を行う | |
sort | 行を並び替える(ソート) | |
su | ユーザーの切替、管理権限の取得 | |
tail | ファイルの末尾部分を表示する | |
exit | ログアウト(というか終了?) | |
wc | ファイルのバイト数/単語数/行数を出力する | ※課題範囲外 |
ファイル表示(more・less・cat)の違い¶
more | less | cat | |
---|---|---|---|
機能 | ファイルの中身を表示する。 | ファイルの中身を表示する。 | ファイルの中身を連結して表示する。 |
特記事項 | スクロールできるが、末行まで表示すると表示が終了。 | スクロールできる。qを入力するまで表示は終了しない。 | 一画面分しか見ることができない。(スクロールはできない) |
使い方例 | more aaa.php | less bbb.cgi | cat ccc.txt ddd.php > eee.txt |
シェルスクリプトで使用シェルを宣言¶
シェルの種類によってシェルのコマンドや記載方法に差異がある。
そのため、シェルスクリプト作成の際は、
先頭行にて使用するシェルを宣言し、動作を統一させる必要がある。
bash(シェルスクリプトで一般的なシェル)を使用する場合は、
シェルスクリプトファイルの先頭に↓を記載する。
#!/bin/sh
あるディレクトリ内のファイルをGrep¶
grep -nIR hoge ./dev
./devディレクトリのなかのファイルに対して”hoge”文字列を再帰的に検索する
オプションについて
- n : 対象文字列がある行数を表示する
- I : バイナリファイルを除いて検索する
- R : 再帰的に検索
複数行を検索する方法¶
grep -P 'bbb[\s\S]*?ddd' test.txt
「bbbで始まってdddで終わる文字列」
- -Pオプションは、Perl風の正規表現を使うという意味。
[\s\S]
は改行文字も含めたすべての文字1文字にマッチ。- *?で、
[\s\S]
の繰り返しのうちもっとも短いものにマッチ。
求める文字列を含む行ごとすべて表示されてしまっている。もし厳密にマッチする部分のみが欲しいのなら、grepに-oオプション(only-matchingの意味)をさらに追加すればよい。
grep -oP 'bbb[\s\S]*?ddd' test.txt