Linuxのコマンドとシェルとユーザー
suとsudo
suコマンド
一般的なsuの使い方の場合ユーザはroot権限を一時的に使えるようになる
プロンプトは「#」になりexitするまで持続する
su使用時にきかれるパスワードは「rootのパスワード」
sudoコマンド
sudoはコマンド単位で一時的にroot権限を使う方法
コマンド単位で「誰にどのコマンドをrootで実行させることを許可するか」を指定できる
rootパスワードを知られることなく、必要なコマンドをroot権限で実行できる
rootは一人だけ
管理者の権限は設定次第で変わる
シェルの種類
sh 最古参の最も基本的なシェル、Bシェルとも
csh シーシェル shに比べて対話型操作が便利。一方で文法が違うためスクリプトが書きづらい。後継がtcsh
bash バッシュ shと後方互換があり最も人気。多くのLinuxの標準ログインシェルとして使われている
tcsh ティーシーシェル cshの後継。スクリプトを書くには向いていない。
zsh 比較的新しいシェル。機能面で他のシェルを圧倒している。
ターミナルとシェルの関係
ターミナルエミュレータとシェルは全く別のソフトウェア
VM上のLinuxにリモートログインしてLinuxを使う場合を考える
ターミナルはMacで動いている
シェルはLinuxマシン上で動いている
そもそもコマンドとはなんなのか
実体はファイル→実行内容が書かれている、はず(バイナリファイルなので不明)
フルパスをみるとイメージしやすい
catコマンドの実体は、ls -lF /bin/cat で調べられる
-rwxr-xr-x. 1 root root 54160 Oct 30 2018 /bin/cat*
$PATHという環境変数に設定された場所から自動でコマンドを探してくれる
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin
:区切りでパスを探す順番を定義している