前回のよく使う基本コマンドの復習の続きです。
標準入出力
標準入力・標準出力・標準エラー出力を合わせて標準入出力と呼んでいる。
コマンドの入出力先を抽象化しているので入出力を柔軟に対応できる。
標準入力
キーボードを使用したプログラムの入力。
標準出力
ディスプレイに表示されるプログラムの出力。
標準エラー出力
ディスプレイに表示されるエラーメッセージの出力。
リダイレクト
入出力先を変更できるコマンド。
入力のリダイレクト
キーボードの代わりにファイルから入力する機能。
#/etc/hostsを入力元にしてcatコマンドを実行する
cat < /etc/hosts
出力先のリダイレクト
コマンドの実行結果を画面に表示するのではなく、ファイルに保存する機能。
#lsコマンドの出力先をls.txtにして保存する
ls > output.txt
cat > output.txt
エラー出力先のリダイレクト
ls /hoge 2> erro.txt
cat error.txt
リダイレクトを追記する
echo Hello! >> output.txt
パイプライン
複数コマンドが打てる。
例えば以下のように使う。
ls/bin | less
binの内容をlessでスクロール表示できるようにする。
パーミッション
ファイルの権利管理のこと。
ファイルごとに誰がどのような操作ができるか決められる。
ファイルのオーナー
ファイルを作成した者がファイルのオーナーになる。
グループ
オーナーが許可したアカウントとグループを作る。
ls -l
drwxr-xr-x@ 38 root wheel 1216 4 12 14:39 bin
この場合、root wheel がそれぞれオーナー名とグループ名になる。
所属グループの確認
id
uid=501(hukushima) gid=20(staff) groups=20(staff),12(everyone)
全ユーザーidの確認
cat /etc/passwd
権限管理(パーミッション)の方法
読み方、設定は以下の記事が参考になります。
【一通り理解】Linuxパーミッションの基本とその設定方法
ファイルモードの変換(chmodコマンド)
chmodコマンドで変換する。
パーミッションを設定するコマンド。
chmod [ugoa][+-=][rwx] ファイル名
下記記号のいずれかを一つずつ選んで設定する。
記号 | 意味 |
---|---|
u | 所有者の権限 |
g | グループの権限 |
o | その他のユーザーの権限 |
a | 全てのユーザーの権限 |
記号 | 意味 |
---|---|
+ | 権限を追加 |
- | 権限の削除 |
= | 記述した権限に変更する |
記号 | 意味 |
---|---|
r | 読み取り権限 |
w | 書き込み権限 |
x | 実行権限 |
例
chmod u+r file
スーパーユーザー
管理者権限を持つユーザー。
sudoコマンドを使うとスーパーユーザー権限で実行できる。
sudo ls
Password:*******
ユーザーパスワードが求められるので入力する。
プロセスとジョブの管理
プロセス
実行中のプログラムのこと。
psコマンドで確認できる。
ps
PID TTY TIME CMD
2625 ttys000 0:00.07 /bin/zsh -l
2839 ttys001 0:00.16 -zsh
auxオプションを使うと全ユーザーのプロセスが詳細表示される。(※-不要)
ps aux
バックグラウンドで走らせる場合は以下のように打つ。
コマンド &
ジョブ
コマンドをバックグラウンド(⇄フォアグラウンド)でまとめて実行できるようになる。
下記コマンドで現在実行している処理が確認できる。
jobs
[1] + suspended man bash
[1]の部分がジョブID。
fgコマンド
ジョブをフォアグラウンドに戻して対話的に操作する。
fg %ジョブID
bgコマンド
長い時間かかる処理をバックグラウンドで実行することでコマンドが終了するのを待たなくて良くなる。
bg %ジョブID
ちなみにコマンドの一時停止は、control + zでできる。
killコマンド
プロセスやジョブを終了させる。
kill (オプション) %ジョブID
kill (オプション) %プロセスID
強制終了は以下のオプションを使う。
kill -SIGKILL プロセスID
まとめ
以上でLinuxの基本コマンド終了となります。
AWSいじってる間は辛すぎましたが、こういった勉強が結果的にできたことは良かったです。
砂上の楼閣にならないためにも、基礎の徹底は大事にしていきたいですね。