Just as a Learner

  さまざまなことを学習していくサイトです

UNIX/Linux command

表現

  • 引数
    • コマンドに渡すなんらかの値のこと
  • オプション
  • 引数の中で、コマンドの動作を変更する指令のようなもの
  • ハイフンに続いてアルファベット人文字で一つのオプションを指定する形式

gzip –version

gzip -V

  • パス

    • 絶対パス:ルートディレクトリからたどってパスを表現する
    • 相対パス:カレントディレクトリを起点に、ディレクトリをたどる
  • ワイルドカード

    • *:シェルの場合、0文字以上の任意の文字列とマッチする
    • ?:任意の1文字とマッチする
    • [ ]:かっこ内で指定した文字の並びの中の任意の1文字とマッチする
  • ブレース展開

基本コマンド

uname

OSの情報を表示する

uname -m

uname -mn

cal

date

exit あるいは Ctrl+D

echo (Linux)

文字列を画面に表示する

echo $SHELL

ls (Linux)

ファイルやディレクト例の一覧を表示する

ls -F ファイルとディレクトリを区別して表示する

ls -a 隠しファイルを表示する

ls -l 詳細情報を表示する

ls -lh ファイルのサイズを単位付きで表示する

ls -dlh ディレクトリ自体の詳細情報を表示する

オプション 説明
-a 前述
-A …以外のすべてのファイルを表示する
-d 前述
-F 前述
-G ファイルやディレクトリを色分けして表示する
-h 前述
-l 前述
-r 逆順に表示する
-S サイズ順にソートして表示する
-t 最終更新順にソートして表示する
-s サイズを表示する
-k -sオプションと同時に指定するとサイズをkバイトで表示する

コマンドラインで複数行を入力

  • 引数を改行で区切って入力する場合は、改行したい位置で**をタイプする

cd (Linux)

カレントディレクトリを移動する

pwd (Linus)

カレントディレクトリの絶対パスを表示する

cat (Linux)

ファイルの中身を表示する

  • -nオプションで行番号表示

history

過去に実行したコマンドの一覧を表示する

Ctrl+P(↑) , Ctrl+N(↓)

過去に実行したコマンドを呼び出す

Ctrl+R

過去に実行したコマンドを検索する(インクリメンタルサーチ)

tab

入力補完機能

[^]

かっこ内の任意の1文字とマッチしない否定

{,,,}

ブレース展開;シェルがそれらの文字列をそのまま展開する


ファイル操作コマンド

cp (Linux)

ファイルをコピーする

  • -rオプション ディレクトリを丸ごとコピーする
  • -iオプションで上書き確認

mv (Linux)

ファイルを移動する。ファイル名を変更する。

  • -i上書き確認

ln (Linux)

リンクを作成する

  • -sオプションを指定するとシンボリックリンク
  • リンク元のパス指定は、リンク先のファイルから相対的に指定

mkdir (Linux)

ディレクトリを作成する

  • -pオプションで途中のディレクトリを作成

rmdir (Linux)

ディレクトリを削除する

rm (Linux)

ファイルを削除する

  • -i削除確認
  • -rオプションでディレクトリ以下すべて削除
  • -fオプションで確認なしに削除

xattr

拡張属性を操作する

dot_clean .

カレントディレクトリ以下の._ファイル名を削除

open (Mac)

GUIアプリでファイルを開く

less (Linux)

テキストファイルをページ単位で表示する

キー 説明
return 1行進む
space 次のページを表示する
B 一つ前のページを表示する
Y 1行戻る
D 半ページ進む
W 半ページ戻る
R 画面を再描画
Ctrl+G 現在の表示位置を表示する
G 先頭行に移動
行番号G 指定した行に移動する
shift+G 最後の行に移動
H ヘルプを表示する
/ 文字列を検索する
q 終了

ファイルの先頭部分を表示する

  • -nオプションで表示させる行数指定

tail

ファイルの最後の部分を表示する

  • -nオプションで表示させる行数指定

man (Linux)

マニュアルを表示する

キー 説明
return 1行進む
space 次のページを表示する
B 一つ前のページを表示する
Y 1行戻る
D 半ページ進む
W 半ページ戻る
R 画面を再描画
Ctrl+G 現在の表示位置を表示する
G 先頭行に移動
行番号G 指定した行に移動する
shift+G 最後の行に移動
H ヘルプを表示する
/ 文字列を検索する

apropos

コマンドを検索する


リダイレクションとパイプ

標準入出力

リダイレクトやパイプで切り替えられるような入出力

  • 標準入力 stdin 初期状態:キーボード
  • 標準出力 stdout 初期状態;ターミナル画面
  • 標準エラー出力 stderr 初期状態:ターミナル画面

リダイレクション

標準入力、標準出力、標準エラー出力をファイルに切り替える

出力リダイレクト

コマンド > ファイルのパス

すでに存在するファイルにリダイレクトすると内容が上書きされる

追加のリダイレクション

コマンド >> ファイルのパス

入力リダイレクト

コマンド < ファイルのパス

標準出力と標準入力を同じファイルにリダイレクトしない
  • そのファイルが空になる

エラー出力

例)ls text 2> text2 :エラー出力をリダイレクト

例)ls text > text2 2>&1 :標準出力とエラー出力をリダイレクト
2> :標準出力の切り替え
>& :標準出力と標準エラー出力の切り替え

パイプで複数のコマンドを組み合わせる

コマンドの標準出力を別のコマンドの標準入力につないで、複数のコマンドを組み合わせることができる。

tee

データを標準出力とファイルに書き出す

フィルタコマンド

パイプで組み合わせて使うことを前提にしたシンプルなコマンド。s フィルタコマンドは標準入力からデータを読み込み、標準出力に結果を出力する。

コマンド 主な機能
wc 文字数、単語数、行数を数える
head ファイルの先頭部分を表示する
tail ファイルの最後の部分を表示する
sort ファイルの行をソートする
uniq 隣接する重複行を削除する
tr 文字を置換する、削除する。標準入力からしか入力を受け付けない。=処理したいファイルのパスを引数に取ることはできない。
grep 指定した文字列を含む行を取り出す
sort
  • sort オプション ファイルのパス
    • オプション:-k 最初のフィールド番号,最後のフィールド番号
    • オプション:-t 区切り文字を指定
    • オプション:-n 数値の順に並べる
    • オプション:-r 数値の逆順に並べる
uniq

uniq -c:隣接する重複回数を表示する

tr
  • tr -d:指定した文字を削除する
grep

grep オプション 検索条件(正規表現) 指定ファイル -c:マッチした行数を表示する
-i:英文字と小文字の区別をしない
-n:行番号を表示する
-v:マッチしなかった行を表示する
-x:行全体とマッチする行のみを表示する

正規表現

記号 説明
^ 行の始まり
$ 行の終わり
. 任意の一文字
* 直前の文字の0回以上の繰り返し
[ ] 文字の並び内のいずれかの文字
[^] 文字の並び以外の文字
\b 単語の区切り
< 単語の始まり
> 単語の終わり
\w すべての英数文字
\W 英数文字以外
  • *:直前の文字(あるいは直前の正規表現)の0回以上の繰り返し
  • .*:0文字以上の任意の文字列。*がシェルによって展開されないように引数を必ずダブルクォーテーションで囲む

ファイルの検索コマンド

find

ファイルを検索する

find パス -name ファイル名

-exec コマンド {} \;

検索結果を別のコマンドに渡す-execオプション

xargs [オプション] コマンド

指定したコマンドの引数を標準入力から受け取る


参考文献

  1. 『これから学ぶmacOSターミナル』大津真著
  2. 『入門者のLinux』奈佐原顕郎著
  3. 『Linux標準教科書(Ver.2.0.0)』LPI-JAPAN著
  4. 『UNIXの教科書 基礎編』Hewlett Packard Enterprise著
  5. 『UNIXの教科書 応用編』同上