UNIXコマンドの勉強 2
コマンドの勉強について、2回目です。
今回は、ドットインストールの#6~#16の内容について、自分なりにまとめます。
〇 わかったこと
・ mkdirコマンドには、-p(ペアレンツ)などのオプションがある。
オプションについて
-p → 親ディレクトリがない場合に子ディレクトリとともに作成してくれる。
mkdir -p test/test_dirのように指定する。
この時にtestという上位(親)ディレクトリが存在しない場合に、-pオプション
をつけたことで、testディレクトリと下位(子)のtest_dirディレクトリの両方を
作成してくれる。
ほかにも…
-v → ディレクトリ作成時にどのようなディレクトリが作成されたかを表示
してくれる。
-m → ディレクトリ作成時のアクセス権限を指定できる。
などがある。
・ ディレクトリの削除にはrmdirコマンドを使う。(remove directoryの略)
※ UNIXにはごみ箱機能のようなものがないためいったん削除したディレクトリは元
に戻すことはできないので注意。
・ ディレクトリの中にさらにディレクトリが入っている場合などの削除の仕方
rmdirに-rオプション(リカーシブル)を指定する。
・ catコマンドで中身を見れるが、一部のみ。きちんと中身を見たい場合は、
lessコマンドを使う。less ファイル名の指定で中身が見れる。
・ lessコマンドで表示した中身は、スペースキーかctrl+f(1画面先へ)もしくはctrl+b
(1画面後へ)で操作が可能。先頭へ行きたい場合はg、末尾に行きたい場合はshift+gで
操作ができる。lessコマンドの終了はqで。
・ mvは移動できるコマンドの他にも同じディレクトリ内のものを指定する場合は名前
の変更ができる。
・ bash → シェル(ユーザからの操作を受け付け、結果を表示する)機能の一つ。
また、それを実行するコマンド名のこと
・ cd myappと一度使った後に、cd mya+tabキーを押すと、myaの後にppと補完してく
れる。
・ cd myaと打った後にctrl+cを押すと、その入力を安全に取り消すことができる。
・ ctrl+r myaと打つと、コマンドの履歴が出てくる。これは矢印キーでも出せる。
コマンド履歴を出した後にctrl+rを押すと、ほかの履歴がいくつか見れる。
→使いたいコマンドに合わせてリターンキーもしくは中止するようならctrlキー+c
・ history+リターンキーでコマンド履歴がすべて見れる。
この後に、「!+コマンド履歴に表示されたコマンドの行番号」でコマンドを呼び出
せる。なお、直前のものは"!!"、2個前のものを呼び出したいときは"!-2"などの
指定でも呼び出すことができる。
・ ctrl+l → これも操作画面のクリアが可能
・ cd !$ → !$でコマンドに引数を渡す処理になる。(その前にls myapp等のコマンド実行
が必要)。結果として、cd myappが出てくる。
・ !pw → pwから始まるコマンドを実行する(以前に実行したコマンドがあれば、実行さ
れる)
・ !pw;p → pwから始まるコマンドでいいのかあやふやなので、実行はせずにpwから始
まるコマンドだけを表示する。
・ mkdir --help → mkdirというコマンドのヘルプを表示する。
・ man ls → lsというコマンドのマニュアルを表示する。
manualコマンドは、/検索語+リターンキーでマニュアル内の検索が可能。
検索に引っかかった言葉はnを押して次へ移動でき、shift+nで前に戻ることができ
る。
・ vim → エディターのこと。
vi hello.txtなどと指定して、vimでhello.txtを編集しますよと明示する。
vimにはコマンドモードと編集モードがある。コマンドモードのうちになにか変更を
加えると、コマンドが実行されてしまうので注意。
iを押すと左下にINSERTの文字が出る→編集モードに移行された。
escキーでモードが終了できる→左下の文字が消える。
その後に!wを指定すると保存され、;qでvimコマンド自体が終了される。
編集モードに入らずにキーを押してコマンドを実行してしまった場合は、
escキー+;q+!で変更を保存せずに終了ができる。
・ シンボリックリンク → 長いディレクトリ名(階層も多い)に別名をつけて管理でき
る。
ln -s もとの名前 別名で指定が可能。
・ シンボリックリンクを削除する → unln 別名で指定する。
・ パーミッション → アクセス権限のこと
rwx rw- r-- などの9文字で構成される
r:読み込み可能, w:書き込み可能, x:実行可能
なお、ディレクトリにおけるxの意味は閲覧可能
左3文字はuser、真ん中はgroup, 右はother(その他)に対しての
権限を表している。
・ chmod → パーミッション(アクセス権限)の変更をする。
chmod g+x sample → groupに対し、sampleディレクトリの閲覧を許可。
chmod go+x sample → groupとotherに対し、sampleディレクトリの閲覧を許可。
chmod a -x sample → すべてに対してsampleディレクトリの閲覧権限を与えない。
・パーミッションは、数値でも表現できる。
2進数を用いて、rwxをそれぞれr:2^2, w:2^1, x:2^0と考える。(-はなし)
rwxにすべて権限があれば4+2+1=7,rwだけならば4+2=6というように考え、
chmod 774 sampleやchmod 664 sampleのように指定する。
・ ファイル(ディレクトリ)の詳細確認
ls -lでユーザーの確認ができる。
d;rwxrw-rw-;所有ユーザ名 グループ名;4096:7 4 2018 16:44:31;config
左からd(ディレクトリのこと)、パーミッション、所有ユーザ名 グループ名、ファイルサイズ、最終更新日時。
一番左はディレクトリ:d、-:一般ファイル、l:シンボリックリンク等。
・ ユーザ一覧の確認
catコマンドを使う。cat 一覧が格納されているディレクトリ名。
ユーザの確認の場合
ユーザ名;x;500;500;コメント;home/sample;/bin/bash
左から、ユーザ名、パスワードの有無、ユーザID、グループID、
ホームディレクトリ、シェル実行用プログラムの順で結果が表示される。
グループの確認の場合
ユーザ名; x;500;グループ名で結果が表示される。
なお、groupsでも自分のいるグループの確認が可能。
・ type → コマンドの作成ができる
type hi → コマンドの有無の確認
vi hi → i(編集モードに) → #!bin/bash
(#!は実行しなさいというコマンド)
echo "hi!" → hiというコマンドを実行すると、hi!という言葉が返る。
escキー+;qでコマンドの作成が終了する。
chmod u+x hi → 作成しただけでは実行権限がないので実行権限を与える。
〇 まとめ
・ mkdirコマンドについて、オプション機能をしっかり覚える。
・ rmdirコマンドにも-rオプションが付くので、-rのオプションのイメージをしっかりと持つようにする。
・ helpオプション,manコマンドについては覚えておくと便利。
・ bashはコマンドと結果を結び付けて覚える。
・ パーミッション操作で2進数を用いるなどするので、基礎理論などの勉強もしておく。
〇 疑問点
今回は疑問というより、vimコマンドの操作の仕方や、ls -lでの詳細確認の見方などの細かいところが少し覚えにくいかもしれないので、今回の勉強分は詳しくほかのサイトなどで調べてまとめておいたほうがいいと思った。