ステップアップ備忘録

学習用備忘録

UNIXのコマンド学習

UNIXのコマンドについて、ドットインストールとprogateというプログラミング学習サイトで勉強を始めました。

 

今回ドットインストールのUNIXコマンド入門(一般ユーザ向け)の#1~#5とprogateのUNIXコマンドとGitコマンドを学習。その中でドットインストールの学習内容と、progateのUNIXコマンドの学習内容をまとめてみる。

 

〇 理解したこと

UNIXのdistribution(配布形式)にはRedHat(CentOS等)系とDebian(Ubuntu等)系の2つがある。

・ 操作画面の中の[ ]の後に続くのは、一般ユーザなら($)、管理ユーザなら(#)となる。

・ それぞれのディレクトリにはきちんと意味がある。

 bin → 基本コマンドの実行ファイルを格納

 home → ユーザのホームディレクト

 sbin → システム管理用コマンドの実行ファイルを格納

 usr → 一般アプリケーションを格納

 var → ログファイルなど頻繁に書き換わるファイルを格納

 .(ドット)ファイル → 設定ファイル(隠しファイル)

 ※ 隠しファイルは表示機能で表示の可不可の切り替えが可能

〇 覚えておきたいリファレンス

pwd → print working ditrectoryの略。アクティブディレクトリを表示する

・ clear → 操作画面のリセットをする。リターンキーもしくはctrlキー+Lで実行可能

・ cd → change directoryの略。ディレクトリを移動する。

 ※ cdの絶対パス相対パス

  絶対パス → cd home/user/unix_dir/等のようにルートディレクトリ(最上位)からの

        ディレクトリ階層をすべて指定。

  相対パス → cd unix_dirのように、カレントディレクトリ(今現在の場所)からの

        ディレクトリ階層を指定する。

・ mkdir → make directoryの略、ディレクトリを作成する。

・ cp → copyの略、cp -r unix_dir unix_dir2 のように指定する。

    現在のディレクトリ名 コピー後のディレクトリ名の順。

・ ls → listの略、現在いるディレクトリ内にあるディレクトリや、ファイルの名前を

     表示する。

・ cat → catenate/concatenateの略、連結するという意味で、cat lesson1.txt等と

     指定して、 そのファイルの中身を表示する。

・ rm → removeの略、削除するの意味。rmdirはremove directoryの略。

・ mv → moveの略、ディレクトリやファイルを移動する。

    また、ファイルの名前の変更にも使える。

・ touch → ファイルのタイムスタンプを変更することと存在しないファイルを

     新規作成することができる。

〇 すべての入力は半角が基本、全角は認識されない

 

☆ まとめ

UNIXコマンドは文字操作で簡単に指示ができ、かつ視覚的に結果がわかりやすいため、入力短縮や操作時間の短縮につながる。

・ cdにおける絶対パス相対パスのメリット、デメリット

 / 絶対パス

 メリット → 複数のディレクトリ間を移動するときは入力回数が短縮できる。

 デメリット → 同じディレクトリ内だと相対パスに比べて、文字数が多くなる。

 /相対パス

 メリット → 絶対パスに比べて文字数は比較的少ない

 デメリット → 複数のディレクトリ間の移動だと、入力回数が増える。

 

☆ 疑問点

・ cpコマンドの-rについて、調べたところrecursive(再帰的)という意味の単語の略だった。この再帰的という意味は『プログラミング言語においてあるサブルーチンの処理中に自分自身を呼び出すこと』という風に説明されていた。

ここで、試しに仮想環境で-rを使わずにcpコマンドを実行するように入力してみたところ、『カレントディレクトリが省略されています』と出た。この省略というのは説明の中でいう『自分自身を呼び出すこと』を省略しているという意味ととっていいのかが疑問に思った。いまいちこの『再帰的』という意味を自分が理解できていないように感じた。

 

・ catコマンドは『連結する』という意味のコマンドで、文字通り複数ファイルを指定することで連結させることもできるということも書いてあったが、ファイルの中身を表示するのが主なコマンドであるということだった。この場合の『連結する』の意味が、少しイメージがしにくいので覚えづらい。コマンドの操作画面とファイルの中身をホームページでいう『リンクさせる』というような意味ととっていいのかが疑問。

 

ーーーーーーーーーーーーー

このコマンドで実行すれば、結果はこれというのはなんとなく理解ができたけれど、それを具体的にイメージして頭の中で関連性などをひもづけして覚えていけたら理解も深まるのと、すぐにコマンドを思い浮かべることができるかと思うので、コマンドを覚えるのと意味の理解を並行してやっていきたいと思う。

この記事を書いているときに、途中でPCが固まり記事が消えるというあるあるな現象が起こりました。これを実際のプログラミングの時の保存ミスに置き換えると背筋が凍るので、こまめな保存にも気を付けたいですね(笑)。