Linux 標準教科書
Linux とは
- UNIX --- AT&T, Ken Tompthon, System-V, BSD
- Linux --- UNIX と似て非なる GPL の OS
- カーネル --- OS の中核。ハードとソフトの橋渡しをする。
- ユーザランド --- OS のカーネル以外の部分。コマンドはここで動作する。
- シェル --- 対話型コマンド入力環境。コマンドの受付、シェルスクリプトの実行が 2 つの大きな役割。
基本的なコマンド
ls
-t
最終更新時間で並べ替え-r
逆順ls *.conf
ワイルドカードls ???.conf
文字数指定のワイルドカード
cp
-i
interactive-r
recursive フォルダも-p
所有者、属性、更新日時などを消さずに保持する
mv
-i
-f
force 強制的に
rm
-i
-f
-r
pwd
カレントディレクトリのパスを表示
mkdir
-p
上位フォルダもあわせて作成
cat
-n
行番号を指定
less
スペース
進むb
戻る/
検索q
終了
find
find PATH -name FILENAME
man
コマンドのみならず、システムファイルやカーネルなど様々なもののマニュアルを表示できる
man passwd
man 5 passwd
ジャンルを指定して検索
touch
- 最終更新日時を変更する
- ファイルが存在しない場合は新規に作成する(こちらの目的で使われることが多い)
head
, tail
-n
先頭|末尾から n 行分を表示-c
先頭|末尾から c バイト分を表示
tail
には特別なオブション-f
がある。これを使うとそのファイルをウォッチ(読み込み続けること)できる。ログを読む際などに使う。
sort
テキストファイルの中身をソートする。
-r
逆順でソートする-k n
n 列目のデータを使ってソートする(列はスペース区切りで判定される)-n
数値として認識してソートする
uniq
uniq FILENAME
前の行と重複している行を出力しない
tr
標準入力からの文字列を置き換える(translate する)
cat SOMEFILE | tr 文字列1 文字列2
例えば
Android
iPhone
Windows Phone
をtr on ON
すると
ANdrOid
iPhONe
WiNdOws PhONe
になる
diff
差分を出力する。2 つのファイルを比べたり、パッチを作ったりする時に使う。
-c
context diff 形式で出力-u
unified diff 形式で出力(git と一緒)
grep
- ファイルの中からデータを探す。
grep ".*\.png$" FILENAME
- 標準入力からのデータを検索対象にすることもできる。
- regex が使える
-e
or 検索をしたいときに使うgrep -e ".*\.png$" -e "my.*\.jpg$" FILENAME
-i
大文字小文字の違いを無視する-v
マッチしない行を選択する
正規表現とパイプ
標準入出力
- 標準入力 - デフォルトでキーボード
- 標準出力 - デフォルトでディスプレイ
- 標準エラー出力 - デフォルトでディスプレイ
リダイレクト
標準入出力の向き先を変えること。
1>
は標準出力をリダイレクト(1
は省略可)2>
は標準エラー出力をリダイレクト&>
は標準出力及び標準エラー出力をリダイレクト>&1
は標準出力「への」リダイレクト(&1
は省略可)>&2
は標準エラー出力「への」リダイレクト
# 入力
command < file # ファイルの内容をコマンドの標準入力に渡す
#-----------------------------------------------------------
# 出力
command >&2 # 標準出力を標準エラー出力にリダイレクト
command > file # 標準出力をリダイレクト
command >> file # 標準出力をリダイレクト(追記)
command 2> file # 標準エラー出力をリダイレクト
command &> file # 標準出力/エラー出力を同一ファイルにリダイレクト
command &>> file # 標準出力/エラー出力を同一ファイルにリダイレクト(追記)
command > file 2>&1 # 同上
command >> file 2>&1 # 同上
command > file1 2> file2 # 標準出力,エラー出力を別々のファイルにリダイレクト
command >> file1 2>> file2 # 標準出力,エラー出力を別々のファイルに追加書き込み
vi エディタ
コマンド
:q
終了:w
保存:wq
保存して終了:q!
保存せずに終了
移動
w|b
ワード送り0
行頭$
行末Ctrl-D|U
半ページ送りCtrl-F|B
ページ送りgg
文書頭G
文書末H|M|L
ページの上部・中部・下部へカーソルを移動:123
指定行へ移動
編集
dd|yy
カット、コピー5dd|5yy
複数行カット・コピーp|P
現在の行の後ろ or 前にペーストu
カット、ペーストを取り消し
検索
/文字列
検索n|N
前後の検索結果に移動
置換
s は sed の s
:123s/old/new
123 行目の最初の old を new に置き換え:123s/old/new/g
123 行目の全ての old を new に置き換え:%s/old/new
ファイル全体の最初 old を new に置き換え:%s/old/new/g
ファイル全体の全ての old を new に置き換え:%s/old/new/gc
ファイル全体の全ての old を new に置き換え(確認つき)