スタンスとして資格よりも知識重視で勉強してきましたが、範囲も広く複雑なのであまり使用しないオプションなどは省いて勉強しようと思います。
以下、問題集をやった時に忘れていたものからわかっていそうで理解していなかったコマンドなどをメモ書きしています。
###############コマンド操作###############
#cd ホームディレクトリ
#cd~ ホームディレクトリ
#cd . カレントディレクトリ
#cd .. 1つ上のディレクトリ
#date +%H 日時の時間のみが表示される(hour)
#date +%M 日時の分のみが表示される(minute)
●manコマンドが実行時に参照するドキュメントファイルが置かれている場所
ディストリビューションに含まれるパッケージをインストールした場合
#/usr/share/man
ディストリビューションに含まれないパッケージをインストールした場合
#/usr/local/share/man
●履歴番号が100のコマンド履歴を削除する
#history -d 100
●中間ディレクトリを同時に作成する(mkdirオプション)
#mkdir -p /test/hogehoge
●mv、cp、rm 共通オプション
-i 移動先に同名ファイルがある場合確認(削除するときに確認)
-f 移動先に同盟ファイルがある場合でも確認しない(削除するとき確認しない)
(cp、rm共通)-R、-r ディレクトリを指定する場合に必要
●複数のファイルを一つにまとめたものをアーカイブファイルと呼ぶ。tarコマンドはアーカイブファイルの管理に使用する。
#tar [オプション] ファイル名またはディレクトリ名
-c アーカイブファイルを作成する (create)
-t アーカイブファイルの内容を表示する (table of contents)
-x アーカイブファイルを展開する (extract)
-f アーカイブファイル名を表示する (filename)
-j bzip2を経由してアーカイブをフィルタする
-z gzipを経由してアーカイブをフィルタする
※tarコマンド事項時にzやjといったオプションを併せて使うことで圧縮を同時に行うことができる。
●ディスクを作成するときに使用するコマンド
#dd
●ファイル記述子
1 → 標準出力
2 → エラー出力
(例 存在するファイル→test1 存在しないファイル→test2)
[root@localhost ~]# ls test1;test2
test1
bash: test2: コマンドが見つかりません
[root@localhost ~]#
test1については正しく実行されたので標準出力されている。しかし、test2については存在しないファイルなのでエラー出力が表示されている。
ls test1;test2 2> error.txt
※エラー出力があった場合は、error.txtファイルに書き込む
[root@localhost ~]# ls test1;test2 2> error.txt
test1
[root@localhost ~]# ls
anaconda-ks.cfg error.txt install.log install.log.syslog ping.log test1
●ファイルの内容に行番号をつけて表示
#nl ファイル名
※cat -n では空行も含めて行番号を表示するが、nlでは空行に行番号を振らない。
●標準入力から読み込んだデータを標準出力とファイルの両方に出力する
#tee [オプション] ファイル名
-a 上書きせず追記する
●文字の変換
#tr [オプション] [文字群]
※trコマンドは引数にファイルの指定ができないため、ファイルからデータを読み込む場合は、リダイレクションを使用する。
(例)
tr 'a-z' 'A-Z' < test.txt
※test.txt内の文字列a-zをA-Zに変換する
●単語単位の返還や削除にはsedコマンドを使用
#sed [オプション] [編集コマンド] ファイル名
(例)
sed 's/abc/ABC/g' test.txt
・ファイル無い全体を対象 s/パターン/置換後/g
・各行を対象に最初にパターンにマッチしたものだけ置換 s/パターン/置換後/
●ファイルないの特定部分のみ取り出す
#cut [オプション] ファイル名
-c 指定された位置の各文字だけを表示する
(例)
※プロセスIDだけ抜き出している
[root@localhost ~]# ps ax | cut -c '1-5'
PID
1
2
3
4
5
6
7
8
9
10
11
12
13
…
●ファイルの内容を8進数で表示するコマンド
#od (Octal dump)
●タブをスペースに変換する
#expand [オプション] [ファイル名] ※逆はunexpand
-i 行頭のタブのみスペースへ変換する
-t 置き換える桁数を指定
●正規表現
^ 行の先頭
$ 行の末尾
* 繰り返しが0回以上
? 文字の繰り返しが0回か1回の繰り返しに一致
. 任意の文字に一致(一文字)
※ \ はメタキャラとしてではなく文字として扱いたい場合に使用
●fgrepコマンド
fgrepコマンドは引数で指定された文字列を基に検索する。しかし、grepコマンドと異なり正規表現は使用しない。
●vi操作
h j k l ← ↓ → ↑
ctrl+b ファイルの先頭に向かって一行ずつスクロール (begin?)
ctrl+f ファイルの末尾に向かって一行ずつスクロール (final?)
:!ls -l ファイル名 viから抜けずにファイルのパーミッションを確認する
/文字列 現在のカーソルの位置から末尾に向かって検索
?文字列 現在のカーソルの位置から先頭に向かって検索
###############プロセス###############
●initプロセスのPID
システムが起動すると最初にinitプロセスが生成されるので、initプロセスのPIDは1となる
●実行中のプロセスの湯鮮度を変更するコマンド
・top実行後 r でreniceできる
・renice
●ログアウトしてもプログラムを実行し続けるコマンド
#nohup コマンド [引数]
●killコマンド
2 SIGINT 割り込みによるプロセスの終了(ctrl+C)
15 SIGTERM プロセスの終了(デフォルト)
※kill -l でコマンド確認可
###############ファイルシステムの管理###############
・基本パーティション
1台のディスクに必ず一つ以上存在するパーティション。最大で4つ作成することができ、1から4までの番号が割り当てられる
・拡張パーティション
基本パーティションのうち、1つのみ拡張パーティションとして使用可能。直接ファイルシステムを作成するのではなく、論理パーティションを作成するために使用される
・論理パーティション
拡張パーティションの中に複数作成することができるパーティション。パーティション番号は5以上が割り当てられる。
●ハードディスクにパーティションを作成する
#fdisk [オプション] ファイル名
※ -l オプションを使うと、作成済みのパーティションテーブルを表示する
●ファイルシステムを作成する
#mkfs -t ファイルシステムタイプ デバイスファイル名 (オプションのtはtype?)
(例)
mkfs -t ext3 /dev/hda6 (ext3ファイルシステムをhda6に作成)
mkfs -j /dev/hda6 (jオプションはジャーナルが有効となるのでこの場合も、ext3ファイルシステムが作成される)
●スワップ領域を初期化
#mkswap [オプション] デバイスファイル名
※mkswapでスワップ領域を初期化後、swaponコマンドで有効にする
swapon [オプション] デバイスファイル名 ⇔swapoff