コマンドラインの操作
シェル
入力されたコマンドを受け付け、対応するプログラムを実行しているプログラムをシェルといいます。
シェル変数
変数を設定したシェル上でのみ有効な変数です。
exportコマンド
シェル変数を環境変数に変更します。
操作 | シェル変数 | 環境変数 |
---|---|---|
設定 | 変数名=値 | export 変数名 export 変数名=値 declare -x 変数名=値 |
表示 | set | env |
削除 | unset 変数名 | unset 変数名 |
環境変数
シェル上に加えてそのシェル上で起動した子プロセス(アプリケーション、コマンド)でも有効です。
シェルの種類やコマンド検索のパス等、動作に影響する設定値です。
HISTFILE | コマンド履歴保存ファイルのパス |
HISTSIZE | 現在のシェルでのコマンドの保存数 |
HOME | ログインしているユーザのホームディレクトリ |
PATH | コマンドやプログラムを検索するディレクトリのリスト |
PWD | カレントディレクトリのパス |
引用符
「’」シングルクォーテーション
文字列と解釈
「”」ダブルルクォーテーション
文字列と解釈し、変数を展開します。
またバッククォーテーションが使われている場合、その中も展開されます。
「\」バックスラッシュ
バックスラッシュ直後の文字は文字列と解釈され、展開されません。
バックスラッシュは文字とよばれます。
「`」バッククォーテーション
コマンドは実行結果が展開されます。
メタキャラクタ
シェルによって特別に解釈される文字をメタキャラクタといいます。
メタキャラクタ | |
---|---|
* | 0文字以上の文字列 |
? | 任意の1文字 |
[] | [~] 内の任意の1文字 [!~] 以外の任意の1文字 |
フィルタを使ったテキストストリームの処理
cat
ファイルの内容を標準出力に出力します。concatenate ( つなぐ、連結する )
-n –number | 各行の左に番号を付与 |
od
バイナリーファイルを8進数や16進数で表示します。(デフォルトは8進数)
-t -format 出力ファイル | 出力するフォーマットを指定 |
出力タイプ | |
---|---|
c | ASCⅡ文字 |
o | 8進数(デフォルト) |
t | 16進数 |
paste
1つ以上のファイルを読み込み、行ごとに水平方向に連結します。
区切り文字はデフォルトでタブ
-d 区切り文字 | 区切り文字を指定(デフォルトはタブ) |
paste [ オプション ] ファイル名1 ファイル名2 …
join
2つのファイルを読み込んで、共通のフィールドを持つ行どうし連結します。
join [ オプション ] ファイル名1 ファイル名2
-j フィールド | 連結するフィールドを指定 |
fmt
テキストを1行あたり決められた桁数に整形します。
-w | 1行の文字数を指定 |
ストリーム、パイプ、リダイレクトの使用
リダイレクト
通常コマンドの実行結果は画面上に表示されますが、リダイレクトは実行結果をファイルに保存したり、用意しておいたファイルに使用する場合に使います。
コマンド>ファイル | コマンドの標準出力をファイルに書き込む |
コマンド<ファイル | ファイルの内容をコマンドの標準入力に送る |
コマンド>>ファイル | コマンドの標準出力をファイルに追記 |
コマンド<<終了文字 | 終了文字が現れるまで標準入力へ送る |
コマンド1|teeファイル|コマンド2 | コマンド1の出力結果をコマンド2の標準入力に渡し、併せてファイルに書き込む |
tee
teeコマンドは標準入力の内容を、Tの字のように、標準出力先とファイルの両方に出力するコマンドです。
通常、|(パイプ)と使用します。コマンドの標準出力をteeコマンドの標準入力に渡します。
コマンド | tee ファイル
xargs
あるコマンドの出力を、別のコマンドの引数として実行します。
正規表現を使用したテキストファイルの検索
正規表現
. | 任意の1文字 |
* | 直前の文字列の0回以上の繰り返し |
[] | []内の1文字、-は範囲指定、^は後続の文字列以外 |
^ | 行頭 |
$ | 行末 |
\ | 次の文字をエスケープ(通常の文字として処理) |
+ | 直前の文字を1回以上繰り返し |
? | 直前の文字を0、1回の繰り返し(拡張正規表現) |
| | 左右どちらかの文字列(拡張正規表現) |
grep
検索文字列があるかどうか調べます。
-c –count | マッチした行数を表示 |
-f –file | 検索パターンをファイルから読み込む |
-i –ignore-case | 大文字小文字区別しない |
-n –line-number | 併せて行番号も取得 |
-v –invert-match | マッチしない行を表示 |
-E –extended-regexp | 拡張正規表現を使用(egrepと同様) |
-F | 固定文字列とする(fgrepと同様) |
sed
stream editor
オプション | |
---|---|
-f ファイル | コマンドに書かれたスクリプトファイルを指定 |
-i | 処理した内容でファイルを上書き |
-e | 編集コマンドを指定(1つの場合省略可能) sed オプション -e 編集コマンド1 -e 編集コマンド2 ファイル名 |
sコマンド(置換) | |
---|---|
s/文字列1/文字列2/ | 各行の最初に現れる文字列1を文字列2に置換 |
s/文字列1/文字列2/g | すべての文字列1置換 |
s/文字列1/&を含む文字列2/ | &に文字列1を再利用 |
dコマンド(置換) | |
---|---|
/文字列/d | 文字列が含まれる行を削除 |
行番号1,行番号2d | 行番号1から行番号2までの行を削除 |
エディタを使った基本的なファイル編集の実行
viエディタ
テキストファイルを編集するときに使います。
viの起動直後はコマンドモードになっています。
vi [-R] [ファイル名]
-Rオプションは読み取りモード、ファイル名を指定しなければ空の新規ファイルを作成します。
入力モード
i | カーソルのある位置の左から入力 insert |
a | カーソルのある位置の右から入力 append |
I | カーソルのある行の先頭から入力 |
A | カーソルのある行の末尾から入力 |
0 | カーソルのある行の上に空白行を挿入し、その行で文字を入力します。 |
o | カーソルのある行の下に空白行を挿入し、その行で文字を入力 open line |
カーソル操作
h | ← |
l | → |
k | ↑ |
j | ↓ |
O | 行の先頭へ移動 |
$ | 行の末尾へ移動 |
H | 画面の一番上の行頭へ移動 |
L | 画面の一番下の行頭へ移動 |
gg | ファイルの先頭行へ移動 |
G | ファイルの最終行へ移動 |
nG :n | ファイルのn行目に移動 |
編集コマンド
yy Y (yank) | 行をバッファにコピーします。コマンドの直前に数字を付けると、その回数分viコマンドが繰り返されます。 |
yw(word) | カーソル位置の単語をコピーします。 |
dd | カーソル位置の行を削除し、バッファにコピー |
dw(dlelete word) | カーソル位置から次の単語までを削除し、バッファにコピー |
x | カーソル位置の文字を削除し、バッファにコピー |
X | カーソル位置の左の文字を削除し、バッファにコピー |
p(paste) | バッファの内容を挿入します。文字はカーソルの右、行はカーソルの下に挿入されます。 |
P | バッファの内容を挿入します。文字はカーソルの左、行はカーソルの上に挿入されます。 |
u | 直前の操作をキャンセル |
:r 指定したファイルの内容をカレント行の後に読み込んで挿入する
viエディタの終了、保存
:q(quit) | viを終了します、内容が変更されている場合警告が表示されます。 |
:q! | 強制終了します。 |
:w | 編集内容を保存 |
:wq 😡 ZZ | 編集内容を保存し、終了 |
:wq! | 編集内容を保存し、強制終了 |
:e ファイル名 | viを終了せず、現在のファイルを閉じて別ファイルを開く 内容が変更されている場合はファイルを開くことができない |
:e! ファイル名 | viを終了せず、現在のファイルを閉じて別ファイルを開く ファイル名を省略した場合、最後に保存した状態に戻す |