• Skip to main content
  • Skip to primary sidebar

プログラミング入門ナビ by Proglus(プログラス)

プログラミング学習初心者のための情報メディア

本ページにプロモーションが含まれる場合があります

You are here: Home / Archives for プログラミング入門ナビ編集部

プログラミング入門ナビ編集部

vimで編集・保存できない時の対処法を解説!swpファイル削除

2021-03-01 By プログラミング入門ナビ編集部

この記事では、swpファイルが作成されてvimでファイルが編集できない時の対処法について説明します。

この記事は、オンライン講座「はじめてのLinuxサーバー構築運用入門 – Linuxコマンドラインを基礎から学び、自分のウェブサーバまで構築できる」のサポート記事です。

YouTubeで学習する

チャンネル登録してね!

なお、アクセス時期によっては実際のサイトと記事中の画像で表示が異なる場合があります。

Vimとは

・CUIで利用できるエディタです。

・Viという世界でよく使われているエディタの拡張版です。

・GUIの無いサーバーなどでターミナルからファイルの編集を行う際によく用いられます。

Vimでファイルが編集できない場合

vimエディタを起動した時に、以下のような画面が表示されて上手くファイルが編集できないときがあります。

これはvimが何らかの原因で強制終了した時や、別のターミナルで同一ファイルを編集している際に作成されるswpファイルが原因です。

この画面は、前回の編集内容についてどのような操作を行うか聞かれている状態です。

以下の選択肢から選びます。

・[O] Open Read-Only

読み取り専用モードでファイルを開きます。ファイルの編集を行うことはできません。

・[E] Edit anyway

前回の編集内容は気にせずにそのまま編集・上書きを行います。

・[R] Recover

前回の編集内容の復元を行います。

・[D] Delete it

前回の編集内容を削除します。

・[Q] Quit

該当ファイルの編集を終了します。

・[A] Abort

vimアプリケーション自体を強制終了します。

この中から自分の実行したい選択肢に該当する記号を入力し、確定してください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: swap, vim

フレームワークとは?開発効率UPに役立つ理由を知っておこう!

2021-01-31 By プログラミング入門ナビ編集部

フレームワークのイメージ

はじめに

フレームワークのイメージ

プログラミング用語としての「フレームワーク」という言葉、知っていますか?

「フレームワークを使えばサクサク開発ができるよ」とか「Ruby on Railsを使えば簡単にWebサービスを作れる」といった文脈を耳にしたことがあるかもしれませんね。

「なんとなく便利なものというイメージはあるけれど、実際はどんなものなんだろう?」

そんな疑問に答えるべく、この記事では初心者の方にもわかりやすくフレームワークについて解説します。

フレームワークとは?

まず、フレームワークとは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」のことです。

この説明だけではピンと来ないと思いますので、詳しく見ていきましょう。

フレームワークは「お手軽料理キット」のようなもの

ミールキット

よくプログラミングは料理に例えられます。とある「ECサイトを作ること」を「酢豚を作ること」と例えてみましょう。

ECサイトには「ログイン機能」「商品一覧表示機能」「決済機能」等が必要です。(本来はもっといろんな機能が必要ですが今は気にしないでください。)

かたや、酢豚をざっくりパーツ化すると「揚げた豚肉」「一口大の野菜」「甘酢あん」となり、これらを炒め合わせて完成となります。

このように設計書(料理ならレシピ)に基づき全体をいくつかのパーツに分けてそれぞれを作り上げ、組み合わせて完成させるというところが似ていますね。

酢豚をイチから作る場合は「揚げた豚肉」ひとつをとっても、豚肉を必要な分買ってきてカットし下味をつけてから粉をまぶし、高温の油でカリッと揚げて…といった多くの作業が必要です。

最近は忙しい現代人のために「お手軽料理キット」(ミールキットとも呼ばれます)というものがあります。これは料理を作るために必要な分の材料がある程度調理された状態で提供され、最後の仕上げをするだけで完成するという代物です。

酢豚ならば「揚げた豚肉」「一口大の野菜」「甘酢あん」が完成した状態でパック化されていて、あとはフライパンでこれらを炒め合わせるだけですぐに食べられます。

フレームワークはまさにこのミールキットのように「ログイン機能」「商品一覧表示機能」「決済機能」といったパーツがすぐに使える形で提供されていて、開発者はこれらを適宜組み立てていくだけでWebサイトを作ることが可能です。

冒頭の繰り返しですが、改めてフレームワーク とは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」であるということがなんとなくイメージしやすくなったでしょうか。

ライブラリとの違い

調味料のアルミパウチ

ここで、ライブラリという言葉をご存知の方は「なんだかライブラリと似ているけれど、何が違うんだろう?」と思われたかもしれません。

ライブラリとは「汎用的な機能をまとめたもの」なので、まさにフレームワークの定義と似ていますが、フレームワークと比べて少し規模の小さいものを指します。

そのため、フレームワークはライブラリを集めたものと考えてください。

先ほどの酢豚の例えでいうと、「酢豚の素」くらいのレベル感になります。

ライブラリを使えばイチからプログラミングするよりは楽にできるけれど、フレームワーク(料理キット)よりは自分で手を動かす手間がかかるということです。

フレームワークを使うメリット

大人気のフレームワークですが、メリットもあればデメリットもあります。

まずはメリットを見てみましょう。

メリット

開発効率が上がる

これは言わずもがなですが、よく使用される機能が提供されているので開発効率が格段に上がります。

統一感のあるコードが書ける

大きなソフトやシステムを開発する時、複数人でコーディングをすることがあります。

一つのフレームワークに則って開発すれば、バラバラに書いたとしてもコードに統一感が出て、何をやりたい部分なのかが読みやすくなります。

バグが減る

上記の理由からレビューしやすくなるため問題のある箇所を見つけやすくなりますし、予め提供されている機能を使うため凡ミスも減らせてバグの数を軽減できます。

フレームワークを使うデメリット

便利なフレームワークですが、デメリットの方も確認しておきましょう。

デメリット

フレームワーク自体の学習が必要

フレームワークを使うにはその方法を学ばなければなりません。例えばRuby on Railsというフレームワークを使う場合、そのベースとなっているRuby言語の文法だけを知っていても使えません。

新たにRuby on Rails自体の文法を学ぶ必要があります。

初心者の学習の妨げになることもある

例えばRuby自体をよく知らないままにRuby on Railsから学習を始めてしまうと、楽に開発はできるものの自分が便利に使っている機能の内部ではどういった処理をしているのかわからないままになってしまいます。

初心者にとってはフレームワークからではなく、基礎の言語の方から学ぶことが望ましいです。

開発内容に制約がある

便利な機能がたくさんあり、Webサービスの完成までに必要な枠組みが揃っているということは逆に自由度が下がるということです。

用意された枠組みから外れるような機能は載せられないという制約があります。

人気のフレームワーク

ここで実際に人気のあるフレームワークをおすすめの入門講座とともにいくつか紹介します。

3人の喜ぶプログラマー

Ruby on Rails

Rubyという言語はWeb開発で非常に人気がありますが、このRubyで書かれたフレームワークとしてRuby on Railsがあります。

MVCモデルという設計思想に基づいていて、メンテナンス性の高いWebサービスを開発するのに有用です。

はじめてのRuby on Rails 7 入門|Proglus(プログラス)

Vue.js

JavaScriptでの開発を加速するフレームワークがVue.js(読み:ビュージェイエス)です。

手軽にリッチなWebサイトを作ることができます。

はじめてのVue.js 3入門|Proglus(プログラス)

Nuxt.js

Nuxt.js(読み:ナクストジェイエス)は先述のVue.jsをさらにまとめたフレームワークです。

サーバーサイドレンダリング(SSR)という機能を持つのが特長で、通常はブラウザ上で実行されるJavaScriptをサーバー側で実行することで表示を高速化することが可能です。

Nuxt JS入門|Proglus(プログラス)

Bootstrap

Webサイトのレイアウトやデザインを整えるための言語であるCSSのフレームワークとしてBootstrap(読み:ブートストラップ)は非常に人気があります。

特に、パソコンやスマホなど様々な画面サイズに対応するレスポンシブデザインのサイトを手軽に制作することが可能です。

Bootstrap5の基本を習得しよう|Proglus(プログラス)

まとめ

パソコンの前でこちらへ微笑む女性

フレームワークについて解説しました。

まずは基礎となるプログラミング言語の習得が優先ですが、ある程度基礎的なことがわかったらフレームワークについても学び始めることをおすすめします。

フレームワークを使うと圧倒的に開発スピードが上がるため、導入されていない現場はほぼ無いといえるからです。

この記事で挙げたフレームワークの講座はどれも入門レベルで、基礎の言語を学び始めた初心者の方からも人気の内容となっています。

基礎を学びつつ早い段階から現場力も身につけたい方はぜひチェックしてみてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: フレームワーク, プログラミング

WordPressとは?どんなことができるの?初心者にもわかりやすく解説!

2021-01-31 By プログラミング入門ナビ編集部

ブログの画面

はじめに

ブログを書く女性

WordPress(読み:ワードプレス)をご存知でしょうか。

Webサイトのコンテンツ管理(主にブログ)のために使われるソフトウェアですが、実際にどんなものなのかは知識があいまい…という方も多いはずです。

この記事では、WordPressについて初心者の方にもわかりやすいよう解説します。

WordPressとは?

WordPress公式サイトトップ

WordPressは2000年代初期に開発されたオープンソースのコンテンツ管理システムです。

WordPress公式サイト(日本語)

「Contents Management System」の頭文字を取ってCMSと略称で呼ばれることもあります。

コンテンツ管理システムは、簡単にいえばWebサイトに掲載するコンテンツ(デザインやブログ記事、写真等)のアップロードや編集をするためのソフトウェアです。

なお、このブログサイトもWordPressで記事を管理しています。

WordPressで作られているサイト

まずはWordPressを使うとどんなサイトが作れるのか、イメージを掴むためにいくつか適用事例を見てみましょう。

※いずれも2021年1月時点での情報です。

エン・ジャパン

エン・ジャパンのトップページ

採用関連の情報サイトであるエン・ジャパンはWordPressで作成されています。

記事がわかりやすくカードで示されていて見やすいですね。

エン・ジャパン株式会社

ラクスル

ラクスルのトップページ

印刷業界でイノベーションを起こしたラクスルのコーポレートサイトでもWordPressが使用されています。

サービスの紹介やプレスリリースがわかりやすく並んでいますね。

ラクスル株式会社

東京大学教育学部

東京大学教育学部のトップページ

東京大学教育学部のサイトもWordPressによるものです。

ターゲット(入学希望者・在学生・卒業生等)ごとにメニューが分かれた見やすい構造になっています。

東京大学|大学院教育学研究科・教育学部

その他(自分で調べる方法)

isitwpのトップページ

他にも気になるサイトがあれば、WordPressを使っているかどうか調べることができます。

下記のサイトで上図のように調べたいサイトのURLを入力して「ANALYZE WEBSITE」ボタンをクリックすれば確認可能です。

IsItWP|Free WordPress Theme Detector

WordPressでできること

前項で挙げたサイト例のように、リッチなコンテンツが作れることはイメージが沸いたかと思います。

ここからは具体的にどんなことができるのかを見ていきましょう。

テンプレートを使ってリッチなサイトデザインにできる

WordPressのテーマ例

WordPressには「テーマ」と呼ばれるデザインテンプレートがたくさん用意されており、好きなものを選んで自分のサイトに適用できます。

メイン画像を別のものに変えたり、多少であればコンテンツやボタンの配置も変更可能です。

ほとんどが無料で使用でき、公式ページでも紹介されているのでどんなものがあるか気になる方は見てみてください。新しいものもどんどん追加されます。

WordPressテーマ

コーディングなしでブログを投稿できる

WordPressの投稿画面例

HTMLやCSSを書いたことのある方ならばイメージがつくかと思いますが、ある程度デザイン性のあるWebページを作るには単にコンテンツの内容を書けばいいわけではなく、余白やレイアウトについてもコーディングでしっかりと指定しなければなりません。

WordPressではブログ記事を投稿する際、上図のように直感的なUIを通してコンテンツを記述することができます。

デザインやレイアウトについてコーディングする必要がなく、コンテンツの内容を書くことに集中できるわけです。

プラグインで機能拡張できる

WordPressのプラグイン例

WordPressにはプラグインという後付け機能が豊富に用意されています。

例えば、Webサイトのセキュリティを強化するもの、目次を表示させるもの、問合せフォームをつけるもの等です。

こういったプラグインを必要に応じて追加すれば、自分でコーディングしなくても手軽にサイトの機能を拡張することができます。

WordPressプラグイン

Webサービスも作れる

ここまで紹介したように、WordPressの基本的な用途としてはブログや記事をアップしていくための情報サイトとなりますが、コーディングして機能を追加すればWebサービスとして運用することも可能です。

実際に、先ほど紹介した「https://www.isitwp.com/」(指定したURLのサイトがWordPressを使っているかどうか調べるサービス)もWordPressで制作されています。

WordPressの使い方

女性の横顔

ここでは細かい手順は省略しますが、イメージを掴むためにWordPressの使い方をざっくりと説明します。

サーバーとドメインを用意

WordPressはあくまでCMS(コンテンツ管理システム)なので、それ単体では使用できません。サーバーにインストールして使う必要があります。

また、サーバー上でWordPressを使ったサービスを始めたらそこにユーザーに見に来てもらうためのアドレス(URL)が必要です。

ドメイン管理会社からドメイン(URLの先頭部分)を入手する必要があります。

WordPressをサーバーにインストール

サーバーとドメインが用意できたらそこにWordPressをインストールします。

後ほど必要になる管理者アカウントもこの時に作成します。

管理画面にログイン

WordPressの管理者ログイン画面

無事WordPressが立ち上がったら、管理者ログイン画面にアクセスしログインすることができます。

ダッシュボードからテーマ等を設定

ログインすると「ダッシュボード」という設定画面が使えるようになります。

ここでテーマを選んだり細かい設定をしたりすることが可能です。

ブログサービスとの違い

分かれ道

ここまでの間に「Amebaブログや楽天ブログといったブログサービスも無料なんだから、面倒なことをせずそちらを使えばいいのでは?」と思われたかもしれません。

用途によってはそれでも良い可能性があります。

WordPressを使ったブログサイトの運用では、ブログサービスの使用と比較し下記の違いがありますので、これらを重要とみなすかどうかで決定するようにしましょう。

独自ドメインで運用できる

Amebaブログや楽天ブログなどのブログサービスを使う場合は、自分のブログのURLが「https://ameblo.jp/XXXX」や「https://plaza.rakuten.co.jp/XXXX」といったように各サービスのドメイン名から始まることになります。

個人の情報発信が目的ならばそれでも大きな問題にはなりませんが、何かしらの商業的や社会的な目的で運用したい場合はやはり独自ドメインを用意して使うべきでしょう。

自由にカスタマイズできる

ブログサービスでもたくさんのテーマからデザインを自由に選べるものの、カスタマイズ性についてはどうしても乏しくなります。

細かい見せ方にこだわりたい場合はWordPressがおすすめです。

SEO対策できる

WordPressにはSEO対策に役立つプラグインが多く用意されています。

必要に応じこれらの対策を自由に取ることで他サイトとの差別化を図ることが可能です。

ブログサービスではその運営会社(Amebaや楽天等)が対策を取ってはいるものの、自分のコンテンツに最も適したものを選ぶ自由性はないといえます。

まとめ

ビジネス談議をする人々

WordPressについて解説しました。

自分のWebサービスとしてブログを運用したいユーザー向けに開発された、面倒なコンテンツ管理の手間を省くためのものだと理解できれば問題ありません。

無料で使用可能ですし、導入方法は公式サイトでも詳しく紹介されていますので興味のある方はぜひチャレンジしてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: WordPress

オブジェクト指向とは?プログラミング初心者にもわかりやすく解説!

2021-01-31 By プログラミング入門ナビ編集部

様々なつみき

はじめに

クエスチョンマーク

オブジェクト指向という言葉を聞いたことがあるでしょうか。

プログラミングを学習していると遅かれ早かれ耳にする用語ですね。

オブジェクト指向については、概念的なものであるためか理解するのにちょっと手間取る方が多いようです。

この記事では、初心者の方にもわかりやすいように噛み砕いてオブジェクト指向について解説します。

オブジェクト指向の理解する一助になれば幸いです。

プログラミング言語の分類

マインドマップ

まず、プログラミング言語は、プログラミングの考え方や記述方法によっていくつかに分類されます。

主なものでは手続き型言語、命令型言語、関数型言語、論理型言語などがあり、その分類の1つがオブジェクト指向言語です。

ここに挙げた中で従来比較的ポピュラーだったのが手続き型言語で、その代表例にC言語があります。

その他の言語については説明を省略しますが、オブジェクト指向言語はこの手続き型言語の欠点を補える点で注目を集めました。よく挙げられる代表言語例はJavaです。

ここからは、わかりやすさのために手続き型言語と比較しながらオブジェクト指向言語について解説していきます。

手続き型言語 vs オブジェクト指向

睨み合うビジネスマン

オブジェクト指向言語とは、簡単にいうと「処理対象をオブジェクトと呼ばれる単位に分割しオブジェクト同士のやりとりとして処理を記述する」ものです。

この説明ではいまいちピンときませんよね。

比較対象としてわかりやすい手続き型言語と比べながらどういうことか見ていきましょう。

ここでは、簡単なコード例として動物(犬、猫、鳥)を順番に鳴かせるプログラムを書いてみます。細かい文法は気にしなくてかまいませんので、雰囲気を味わってください。

手続き型言語(例:C言語)の場合

まず、手続き型言語はその名の通りコンピューターに実行してもらいたい手続きを上から順に書き連ねていく形式です。

#include <stdio.h>

void dog_speak(void) {
  printf("ワンワン/n");
  return;
}

void cat_speak(void) {
  printf("ニャンニャン/n");
  return;
}

void bird_speak(void) {
  printf("ピヨピヨ/n");
  return;
}

int main(void)
{
  dog_speak();
  cat_speak();
  bird_speak();
  return 0;
}

C言語では必ず「main」という関数が実行されます。

main関数の前にそれぞれdog_speak、cat_speak、bird_speakの関数があってそれぞれ鳴き声を表示させる機能をもっており、main関数からこれらの関数が呼び出されていることに注目してください。

このように、手続き型言語では必要な手続きが上から順に書かれていて実行されます。

オブジェクト指向言語(例:Java)の場合

それではオブジェクト指向言語の場合はどうでしょうか。

public class Main {
  public static void main(String[] args) {
    Dog dog1 = new Dog();
    Cat cat1 = new Cat();
    Bird bird1 = new Bird();

    dog1.speak();
    cat1.speak();
    bird1.speak();
  }
}

class Animal {
  private String voice = null;
  public void setVoice(String str) {
    this.voice = str;
  }
  public void speak() {
    System.out.println(voice);
  }
}

class Dog extends Animal {
  public Dog(String str) {
    super.setVoice("ワンワン");
  }
}

class Cat extends Animal {
  public Cat() {
    super.setVoice("ニャンニャン");
  }
}

class Bird extends Animal {
  public Bird() {
    super.setVoice("ピヨピヨ");
  }
}

「なんだか、ややこしくなったなぁ…」と思われたかもしれません。

しかしこれは後述するオブジェクト指向のメリットを享受するためのひと手間なのです。

オブジェクト指向では、コードにもあるように犬、猫、鳥といった処理単位を「クラス(class)」として記述します。

このクラスから犬、猫、鳥のオブジェクトを生成(3、4、5行目)し、鳴かせる処理(speak)を呼び出していますね。

この部分は関数として実装していた手続き型言語との一番の違いはここです。

違いはわかったけれど、書き方が異なるだけで結局同じではないか?と思われるでしょう。

ここからはオブジェクト指向だとどんないいことがあるのかを解説していきます。

オブジェクト指向のメリット

オブジェクト指向のプログラミング言語では次のような3大メリットがあります。

これらの用語はオブジェクト指向の教科書にも必ず出てきますので、この機会にぜひ覚えてください。

継承

花を親から子へ

さきほどのJavaコードにAnimalというクラスがあったのに気づいたでしょうか。

気づかなかった方は、戻って見てみてください。

そして犬(Dog)、猫(Cat)、鳥(Bird)の各クラスは下記のような形で宣言されており、これを「Animalクラスを継承している」というふうに呼びます。

class Dog extends Animal {
…
}

Animalクラスには鳴き声を表す「voice」と、鳴かせる処理を表す「speak」が宣言されています。

一方、Dog・Cat・Birdsにはこれらがありません。

「鳴き声があって、それを鳴かせる」というやりたいことが共通しているため、ひとくくりにした「動物クラス(Animal)」の中で記述し、各動物はこれらの機能を継承して使えるようにしているわけです。

こうすれば、各動物のクラスではそれぞれに特化した内容だけを記述し、共通する内容はAnimalクラスに集約することができます。

今後別の機能(走る・食べる・遊ぶ等)を追加したり、今回の鳴く機能に修正を入れたりしたい時に一つのクラスだけを編集すればいいため管理が非常にしやすくなるのが利点です。

カプセル化

カプセル

Animalクラス内の鳴き声「voice」の宣言の頭に「private」という単語がついています。

「setVoice」には「public」がついていますね。

これは、外部から呼び出したり変更したりできるかどうかを表しています。
コード例を見たほうがわかりやすいため、下記を見てください。

Cat cat2 = new Cat();  //2匹目の猫オブジェクトを生成
cat2.speak();  // ニャンニャン
// ここで、鳴き声を変えてみる
cat2.voice = "ゴロニャン";  //voiceがprivateなのでエラー
cat2.setVoice("ゴロニャン");  //setVoiceはpublicなので成功
cat2.speak(); // ゴロニャン

このように、鳴き声(voice)に直接アクセスして勝手に変更しようとするとprivateであるためエラーとなります。

しかるべき操作方法として用意されたsetVoiceならばpublicなので成功することに注目してください。

結局外部から変更できてしまうんだから意味がないのでは?と思われたかもしれません。

しかし、例えばsetVoiceの処理の中に「いつ、どんなタイミングでvoiceが変更されたのかログに記録する」といったことを追加しておくことができます。

このように、外部からむやみやたらに変更できないようにすることをカプセル化と呼び、予期せぬバグを軽減できるのが利点です。

ポリモーフィズム

いろんな犬

聞き慣れない言葉かもしれませんが、ポリモーフィズムとは多態性という意味です。

Javaの方では、犬・猫・鳥とも「speak」を呼び出すことで鳴かせることができました。

かたや手続き型言語であるC言語の方では、犬ならば「dog_speak」、猫ならば「cat_speak」という風に動物によって関数名が異なっていました。

例えばここに他の種類の犬や猫、また猿・狐・牛・馬…と様々な動物が追加されていくとしたらどうでしょうか。

動物の数だけ関数を用意し、かつその関数名を間違えないようにしっかり気をつけながらコーディングしないといけません。

オブジェクト指向言語ならば、例えばなんの動物かもはやわからないオブジェクトが100個(obj1、obj2、…、obj100)ある時ですら一律「.speak();」で処理を呼び出せば鳴かせることができます。

このようにある処理の呼び出し方を統一し、オブジェクトごとに異なる処理をさせることをポリモーフィズムといい、整合性の取れたコードが書けるのが利点です。

まとめ

いいね!の親指

オブジェクト指向について、手続き型言語との違いを交えながら解説しました。

ここで紹介したJavaに加え、C++・JavaScript・Python・Ruby等もオブジェクト指向言語です。

使ってみるのが一番早く理解できますので、ぜひチャレンジしてみてくださいね。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: オブジェクト指向, プログラミング言語

macのターミナルは何ができる?主な使い方も解説!

2021-01-31 By プログラミング入門ナビ編集部

キーボードの手元

はじめに

オフィス

プログラミングのためにパソコンを選ぶ時「ターミナルが使えるからmacの方がいいよ!」と言われたことはありませんか?

初心者のプログラミング学習には13インチのMacBook Proがおすすめ!その理由も解説!|プログラミング入門ナビ

上記の記事の通り、それ以外にもmacをおすすめする理由はいくつかあるのですが「そもそもターミナルってなんだろう?」と疑問に思われているかもしれません。

この記事では、ターミナルについて初心者の方にもわかりやすく解説します。

使い方についても簡単に説明しますので、ぜひ読んで試してみてください。

ターミナルとは?

macOSのターミナル

わかりやすくいうと、ターミナルとはコンピューターと会話するための窓口です。

上図のような画面からユーザーが「コマンド」を打ち込むことでコンピューターに命令し、それを受け取ったコンピューターがその通りに作業(ファイルのコピーや移動など様々なことができます)を実行し結果を表示する、というのが一連の流れになっています。

ここで「ファイルのコピーや移動だったら、Finderでファイル一覧を開いてマウスを使ってできるんじゃない?」と思われたかもしれません。

まさにその通りで、目で見て直感的に理解しやすいグラフィカルなユーザーインターフェース(GUI:Graphical User Interfaceと呼ばれます)でも同じことをしています。

ユーザーがマウスを使って行った操作は、GUIによりコンピューターが理解できる命令に変換されてコンピューターに渡され実行されるわけです。

一方、ターミナルではユーザーがキーボードのみを使ってコマンド(文字列)を使って命令をするのでCUI(Character User Interface)と呼ばれます。

ここでもユーザーが打ち込んだ命令がCUIによりコンピューターが理解できる命令に変換されコンピュータに渡され実行される流れです。

ざっくりとまとめると、コンピューターにやらせたい作業をウィンドウ表示やマウス操作で行うのが通常なのに対し、キーボードを使って文字だけで指示するためにあるのがターミナルだと捉えてください。

ターミナルを使うメリット

笑顔のビジネスパーソン

「文字だけで指示しなければならないなんて、わかりにくいし余計に面倒なのでは?なんのためにターミナルがあるの?」と疑問がわくはずです。

これにはきちんと理由があります。

素早く操作できる

エクセルやパワーポイント等を使う時にショートカットキーを使ったことはありますか?

いちいちマウスでクリックしてメニューを開き、やりたい作業のところまでカーソルを持って行ってまたクリックしてさらにメニューを開いて…

といった一連の作業をするよりも、キーボードでショートカットキーを打ち込む方が断然速く作業できますよね。

これと同じで、慣れてくるとマウス作業よりもキーボードでタイプする方が素早く操作できるようになってきます。

かゆいところに手が届く

GUIに比べてより細かい命令が可能なので、かゆいところに手が届きます。

例えばファイルの検索をしたい時などに有効です。

macの検索ではファイル名でしか検索できませんが、ターミナルを使えば「○○から始まるファイル名」で「3ヶ月前くらいに作ったファイル」のようなあいまいな検索もできます。

一括処理が可能

ターミナルでは複数のファイルに対して一括処理をすることができます。

たとえば「このフォルダにあるファイルを全て削除する」といった作業も可能です。

全部削除するだけならばGUIでも比較的簡単にできますが、先ほどの「かゆいところに手が届く」利点も活かし、細かい条件を指定し当てはまるものだけを一括削除することができるため、目で見てマウスで一つ一つ作業していくよりもかなり速くできます。

ターミナルの主な使い方

議論するエンジニアたち

ターミナルを使う利点を把握したところで、使い方を見ていきましょう。

起動方法

ターミナルはFinderから下記の通りに起動できます。

Finder → アプリケーション → ユーティリティ → ターミナル.app

また、macの右上にある虫眼鏡アイコンからSpotlight検索を起動し「ターミナル」と打ち込んで起動するのでも問題ありません。

主なコマンド

無事ターミナルが起動できたら早速コマンドを打ってみましょう。

下記はよく使用される主なコマンドです。

ターミナルでは「$」マークの後にユーザーがコマンドを入力することができます。

逆に「$」で始まっていない行は全てターミナルからの返答です。

また「ディレクトリ」という言葉が出てきますがこれは階層構造を指しており、「フォルダ」と同じような意味合いと捉えてください。

pwd

「print working directory」の頭文字で、現在いるディレクトリのパスを表示します。

$ pwd
/System/Library

ls

ディレクトリにあるファイルやディレクトリを表示します。
「ls」単体ならば現在のディレクトリ、「ls」のあとにスペースをはさんでディレクトリを指定すればそのディレクトリについて表示されます。

$ ls /Applications
App Store.app		Image Capture.app	Preview.app
Books.app		Mail.app		Reminders.app
Calculator.app		Maps.app		Siri.app
Dictionary.app		News.app		TV.app
FaceTime.app		Notes.app		TextEdit.app

cd

「change directory」の頭文字で、ディレクトリを移動します。
スペースを挟んで移動したい先のディレクトリパスを指定しましょう。
なお「.」は現在のディレクトリ、「..」と入力すれば一つ上の階層のディレクトリとなります。

$ cd ..

mkdir

「make directory」の略で、ディレクトリを作成します。
スペースを挟んでディレクトリ名を指定しましょう。

$ mkdir test

touch

ファイルを作成します。
スペースを挟んでファイル名を指定しましょう。

$ touch test.txt

find

ファイルを検索します。
スペースで挟んで探したいファイル名を指定しましょう。
ファイル名にその文字列を含むファイルが見つかればそのパスが表示されます。
見つからない場合は下記の通りです。

$ find aa
find: aa: No such file or directory

rm

ファイルを削除します。
スペースで挟んで削除したいファイル名を指定しましょう。

$ rm test.txt

mv

ファイルを移動させます。
スペースで挟んで移動させたいファイル名と移動先のパスを指定しましょう。

$ mv test.txt ../temp

cp

ファイルをコピーします。
スペースで挟んでコピーしたいファイル名とコピー先のパスを指定しましょう。

$ cp test.txt ../temp

cat

ファイルの内容を表示します。
スペースで挟んでファイル名を指定しましょう。

$ cat test.txt
Hello, World!

まとめ

いいね!する男性

macのターミナルについて概要や使い方を解説しました。

コマンドはたくさんあるのですが、まずはここに挙げたコマンドを覚えれば一通りのことはできるはずです。

物足りなくなってきたらぜひ他のコマンドやオプションについても調べてみてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: mac, ターミナル

  • « Go to Previous Page
  • Go to page 1
  • Interim pages omitted …
  • Go to page 9
  • Go to page 10
  • Go to page 11
  • Go to page 12
  • Go to page 13
  • Interim pages omitted …
  • Go to page 48
  • Go to Next Page »

Primary Sidebar

Proglus(プログラス)

Twitter

Follow @programmingnavi Tweets by programmingnavi

最近の投稿

  • 【05/02更新】Udemyプログラミング入門講座等の割引クーポン配布
  • AWSのパブリックIPv4アドレス有料化について 2024/2より
  • 【CSS】Google Fontsの利用方法について解説します!新UIに対応2023年11月更新
  • 【SQL】XAMPPのMySQLがXAMPPがポートの競合で起動できない問題について解決方法を解説します!
  • 【Colab】–NOMAL– と表示されて、ショートカットキー(ctrl+c)でコピーができない場合の解決方法を解説します!

カテゴリー

  • AIの使い方
  • Arduino入門
  • AWS
  • その他
  • エンジニアのしごと
  • エンジニアへの道
  • ツールの使い方
  • ニュース
  • プログラミング入門
  • 電子工作入門

タグクラウド

AI AWS AWS Cloud9 Cloud9 CodeWing CSS Emmet GCP Git GitHub Heroku HTML JavaScript li Linux macOS MySQL MySQL Workbench node.js Nuxt.js ol Proglus Python Ruby Ruby on Rails SQL Udemy Visual Studio Code Vue.js Web開発 Windows インストール エラー エンジニア オンライン学習 サーバー スクリーンショット セール プログラミング プログラミング入門 プログラミング学習 ユーデミー 初心者 未経験 機械学習

アーカイブ

  • 2025年5月
  • 2024年1月
  • 2023年11月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年5月
  • 2023年4月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年11月
  • 2019年9月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月

検索

Copyright © 2025 · programmingnavi.com ・About・プライバシーポリシー