のんびりした人の日記 -20ページ目

のんびりした人の日記

仕事の愚痴とアニメ関連のことを書いていきます。

最近、大学の専門とは全然関係のない勉強をし過ぎている気がするw

最近はC#、Linux、電子工作そして数学と英語。

数学とか英語はいいけどほとんど理系やないかいw


そんで、英語の勉強をしている時に「単語帳を作りたいなぁ」と思ったわけです。

たぶんプログラミングを勉強していなかった時代の僕は「ノートに書く」ということをおこない、おそらく1カ月経たずに挫折したと思います。

んで、最近では「プログラミングも勉強できるしデータベースで作ってみようかな」と思ったわけです。馬鹿かとか思わんといてくださいw

そんなわけで、また勉強するものが増えました。

今回はリレーショナルデータベースについて勉強します!


んで毎度のことながら、参考書の紹介をば。

以前にもデータベースの勉強はしていたのですが、途中でつまらなくなったというか目的もなく勉強していたので意欲がわかなくなり途中で挫折しましたが(使っていた参考書が分厚かったのも1つの原因)、今回はちゃんと目標があるのでイケると思います!!

んで今回の参考書は、密林さんとかでも結構評価が高かった「プログラミング学習シリーズ ゼロからはじめるデータベース操作 SQL  ミック著」です。

なんか、ミックさんという人はこの世界では結構すごいひとっぽいですね。

なのでその恩恵にあずかろうと思います。

使うデータベースはMySQLです。日本ではあまり広がっていないみたいですが、外国では結構メジャーなものらしいです。


さて、この勉強にはどのくらい時間を割けるか!そして、大学院の入学式があと5日と迫っているのにそっちの勉強はしなくていいのかw

乞うご期待(ぉw

結構自分でもX端末を自由に操作できるようになってきました。
んで、現在自分が参考書としている「新Linux/UNIX入門」ではついにシェルについての勉強に突入しました。話、、、というか本とかでは結構目にすることは多かったのですが、実際にはどんなもんかということは全くと言っていいほど知らなかったです。唯一「シェルスクリプトという言葉だけは聞いたことがある」ぐらいです。


まず、UNIXのOSの中心になる基本的な機能を備えているものをカーネルといいます。カーネルはkernel(核)というらしいです。英和辞書で調べたらトウモロコシの実という意味もあるらしいですww
このカーネルというものが備えている基本的な機能というのは、プロセス管理、メモリー管理、ファイルシステムです。
このような機能をユーザーが直接操作するのは不便だ、と書いてあるのですが自分の感覚ではよくわかりません。けど、上記の基本機能を自分で操作して管理するというのは結構面倒な感じがするのはわかる気がします。
そんなわけで、カーネルと私たちユーザーの橋渡しをしてくれるのが「シェル」ということらしいです。
イメージとしては、コンパイラとかそこらへんなのでしょうかね。「コンピューターは機械語しか理解できないが、ユーザーは機械語を理解できない。なので、ユーザーが書いたプログラムを機械語に翻訳してコンピューターに実行してもらう」ということと似ている感じがするのですが。コンパイラについてとか勉強をしたことがないので厳密にはよくわからないのですが、これもコンパイラを通してコンピューターとユーザーが「対話している」ということなのでは?ってなわけでこのイメージでいきたいと思います。
まぁ、そんなこんなでシェルというのはユーザーが入力したコマンドを通訳してカーネルに渡すという仕事をします。この仕事をシェルがしてくれているおかげで、リダイレクトやエイリアス等の機能をユーザーが使うことができるのです。


具体的なシェルの機能というのは①ユーザーインターフェース機能と②プログラミング機能というものです。・・・・が具体的にどのような機能かを分けて書いていないので、これも自分流に。
取り合えず簡単に言ってしまうと「自分にとって便利だと思う機能があるとしたら、それを工夫して自分だけのオリジナルの機能を作ることができる。また、そのオリジナルの機能を作る際には、シェルをプログラムとしてつかいその機能を実装する」といった感じでしょうか。自分だけの機能を、シェルを使って実現できるということですよね。けどこのシェルをプログラムとして使う(シェルプログラム)ときにはまたプログラミングの勉強しないといけない感じなんでしょうかね。んで補足ですが、シェルプログラムで記述したテキストファイルのことをシェルスクリプトというそうです。


これで自分の悩みがだいたい解消されました。まだまだシェルについては疑問符のつくところが多いですが、これからの勉強でそれを少しずつ解消していければと思います。

自分にとっては「ファイルを別のディレクトリに移動するコマンド」という風にしか思っていなかったこのコマンド。
mv オプション ファイル名(複数指定可) ディレクトリ名 
このコマンドで「指定したディレクトリに指定したファイルを移動する」という処理を行いますよね。
通常mvコマンドといえばこっちがまず思い浮かぶと思います。
けど、以下のような使い方もあるんですよね。

mv オプション ファイル名1 ファイル名2
このコマンドでは「ファイル名1をファイル名2に名前を変更する」という処理を行います。
ではなぜ同じmvコマンドなのに2つ目のオペランド(でいいのでしょうか)をファイル名にすると名前の変更になるのか。

mvの処理というのは、1番目の処理でいうと「指定したファイルを指定したディレクトリにコピーして、そのあとにコピー元のファイルを削除する」というプロセスで処理が行われます。
この「コピー」と「コピー元のファイルを削除」というプロセスをおさえれば2番目の処理もわかると思います。
2番目の処理では「ファイル名1のファイルをファイル名2にコピーして、コピー元であるファイルを削除する」といった感じです。


今まで、ずっと名前変更のほうのコマンドはつかったことがなかったので、これから結構

頻繁に使うようになるかもしれないですね。