oshushichangのブログ

プログラマになるため、勉強した内容を日報として家庭用esaに記録し、旦那からFBを貰っている日々を綴っています。

0617日報

日報

今日やったこと

やったこと じかん ないよう
Terminalの基本を覚える 22:30 - 01:10 (2h40m) Part 4 - 9

参考 : Terminalの基本を覚える

困ったこと

  • $ command -a -b -c fooをTerminalで打ち込んだが、何も起きなくてどうしたらいいかわからなかった(どこまでが例で、どこまでが本当にあるコマンドがわからなかった)。
  • ファイルを指定する-fオプションがあった場合の$ command -f /tmp/fooという言葉の意味が理解できなかった。そもそもファイルには拡張子があるのが絶対で、fooディレクトリなのか、ファイルを指しているのかがわからない。
  • Terminalで実行したいファイルが保存されている場所に移動して実行したが動かす事ができなかった

わかったこと

  • $ command -a -b -c fooはあくまで複数オプションを指定できるという例であった(最後にfooがついている時点で気づけばよかった)
  • そもそもファイル名とは名前と拡張子という2つの要素が合体しているものだと思っていたが、拡張子を含んだ1要素だという事が理解できたので、例のコマンドの指定されたファイル名がfooである事に納得できた
  • curl-oオプションをmanコマンドで検索してみたところ、ロングネームオプションだと--outputだという事がわかったので、ファイルがダウンロードできることが理解できた
  • touchでファイル作成はしっていたがなぜ触るんだろうと思っていたが、説明を読んだら由来が理解できた。

touchコマンドは空のファイルを作成します。本来既にあるファイルに触って(touchして)最終更新日を更新するだけのコマンドですが、空ファイルを作るのにも使われます。

  • catは猫の目で中を覗いているような意味だと思っていた
  • ファイルを実行するときは、絶対パスで指定して実行するか、カレントディレクトリで./をつけて実行する必要があることがわかった。且つ、なぜそうしているのかも理解できた。

カレントディレクトリのプログラムが無条件に実行されるのは好ましくないからである。パスの通ったディレクトリにあるプログラムと同名のファイルがカレントディレクトリにあった場合、パスの順番によってはカレントディレクトリのプログラムが実行されてしまい、ユーザーの意図に反した結果になってしまう。 参考 - カレントディレクトリのプログラムを実行するには

ひとこと

  • foo,barディレクトリだったりファイルだったりその時によって違うので、読み解くまでに時間がかかってしまう事が多かった
  • 7年くらい前、何も知らない私に友人が絶対に実行してはいけないコマンドを、実行させようとした事を思い出して今更ながら腹がたった(実行直前で止めてくれたけど)

$ sudo rm -rf / # 絶対に実行してはいけない

旦那より

curlの-oオプションをmanコマンドで検索してみたところ、ロングネームオプションだと--outputだという事がわかったので、ファイルがダウンロードできることが理解できた

man えらい!わからなかったらまず man を読む癖をつけるとよいです。


最新版の絶対に実行してはいけないコマンドです (最近は事故防止のためにオプションつけないとルートディレクトリは削除できないようになっている)sudo rm -rf –no-preserve-root /

今日のまとめ

  • manだけに :ok_man: