不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

Linux標準教科書(Ver.3.0.2):第3章 基本的なコマンド

2020-10-23 11:37:51 | LinuC
VirtualBoxにCentOSのインストールが完了したので、ここからはコマンドを復習がてら確認していく。

第3章 基本的なコマンド

3.1 ファイル操作

3.1.1 ファイルとディレクトリ

3.1.2 ファイルやディレクトリの参照(ls)

  • ls [オプション] [ファイル]:ファイル名やディレクトリ名を指定して情報を取得する
    • -a:.で始まる隠しファイル等もすべて(All)出力する
    • -l:長(long)形式で出力
    • -t:最終更新時間(Time)によって、ソートして出力
    • -r:逆順(Reverse)にソートして出力

3.1.3 ドットファイルの表示

  • ドットで始まるファイルは隠しファイルで、システム設定が書かれているファイルなどで主に使われる

3.1.4 オプションの同時指定と順序

  • オプションは、まとめてもまとめなくても同じ結果になる
  • また、順不同なので入れ替えても同じ結果になる
  • ただし、コマンドによっては順序と文法が細かく決まっている場合もある
  • コマンドオプションはハイフンを使って指定することが一般的だが、コマンドによってはハイフンを必要としないものもある

3.1.5 ファイルのコピー(cp)

  • cp [オプション] コピー元 コピー先
    • -i:処理を行うときに確認する。ファイルを上書きコピーするときなど。
    • -r:ディレクトリをコピー。ディレクトリの中にあるすべてのファイル・ディレクトリが対象。
    • -p:元ファイルの情報を保存。所有者・属性・更新日時など。

3.1.6 ファイルの移動(mv)

  • mv 移動元ファイル 移動先ファイル
    • -i:処理の確認。上書きなど。
    • -f:強制的に処理。

3.1.7 ファイルの削除(rm)

  • rm ファイル名
    • -i:処理の確認。
    • -f:強制的に処理。
    • -r:ディレクトリを対象とする
※ rはrecursive(再帰的)を示すオプション

3.2 ディレクトリの操作(pwd,cd,mkdir,rmdir)

3.2.1 現在のディレクトリの表示(pwd)

  • pwd:Print Working Directory

3.2.2 ディレクトリの変更(cd)

  • cd [ディレクトリ名]:Change Directory

3.2.3 ディレクトリの作成(mkdir)

  • mkdir ディレクトリ名
    • -p:指定されたディレクトリの上位ディレクトリも作成する

3.2.4 ディレクトリの削除(rmdir)

  • rmdir ディレクトリ名
    • -p:指定した改装までのディレクトリを一括で削除

3.2.5 特別なディレクトリ

  • カレントディレクトリ(.)
    現在いるディレクトリのこと
  • 親ディレクトリ(..)
    1階層上のディレクトリのこと
  • ホームディレクトリ(~)
    ユーザの作業開始位置となるディレクトリ
  • ルートディレクトリ(/)
    ディレクトリ階層の、最上位階層を示す

3.2.6 絶対(パス)指定と相対(パス)指定

  • 絶対パス:最上位のディレクトリ(/)からディレクトリ・ファイル名を指定する
  • 相対パス:カレントディレクトリからの相対的位置

3.3 ファイルの内容を表示

3.3.1 ファイルの内容を表示(cat)

  • cat ファイル名:ファイルの内容を表示
    • -n:行番号を付加して表示

3.3.2 ページャを使った表示

  • more ファイル名
    • moreコマンド
      スペース:次のページに進む
      b:前の一画面に戻る
      f:次の一画面に進む
      /単語:単語を検索。nキーで次
      q:終了
  • less ファイル名
    • lessコマンド
      スペース:次のページに進む
      b:前の一画面に戻る
      f:次の一画面に進む
      ↑:前の行に進む
      ↓:次の行に進む
      /単語:単語を検索。nキーで次
      q:終了

3.4 ファイルの検索(find)

  • find パス -name ファイル名:ファイルがどこのディレクトリ存在するか検索

3.5 コマンドのパス

3.5.1 コマンドのパスの表示(which)

  • which コマンド名:PATH環境変数に含まれるディレクトリ配下に配置されているコマンドのパスを表示する

3.6 ヘルプの使い方

  • コマンド --help

3.7 マニュアルの使い方

  • man [セクション] コマンド名
    • -k 単語:'単語'が含まれるエントリ一覧を出力

3.7.1 セクション

  • マニュアルのセクション:マニュアルの内容を分野ごとに分け、その分野を指定したもの
    • 1:ユーザコマンド
    • 2:システムコール
    • 3:システムライブラリや関数
    • 4:デバイスやデバイスドライバ
    • 5:ファイルの形式
    • 6:ゲームやデモなど
    • 7:その他
    • 8:システム管理系のコマンド
    • 9:カーネルなどの情報

3.8 章末テスト

  1. ls
  2. 3
  3. pwd
  4. mv, ls -l
  5. su
    find /etc -name 'resolve*'
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linux標準教科書(Ver.3.0.2):第2章 Linuxのインストール

2020-10-22 23:41:36 | LinuC
第2章を参考に、VirtualBoxにCentOS7をインストールしてみた。
PCが非力なせいか結構インストールに時間がかかってしまった。
あとLinux標準教科書と微妙にバージョンが異なるのか、ちょっと違う部分もあったので、自分の環境に合わせて適宜修正した。

第2章 Linuxのインストール

2.1 実習で利用するハードウェア

  • マシン本体:パソコンか「VirtualBox」のような仮想化ソフトウェア
  • 実装メモリ:少なくとも1024MBのメモリ推奨
  • DVD光学ドライブ
  • ハードディスク:約10GBの空き容量
  • その他周辺機器:キーボード、マウス、ディスプレイ
ここでは、VirtualBoxを使うことにする

2.2 利用するLinuxのディストリビューション

  • Cent OSのバージョン7.3、x86_64版
  • CentOS公式サイト
    • https://www.centos.org/
    • CentOSは、商用ディストリビューションであるRed Hat Enterprise Linuxの互換ディストリビューション

2.2.1 インストールDVDの入手方法

ここでは、「CentOS-7-x86_64-DVD-2003.iso」をダウンロードした

2.2.2 バージョン

  • より新しいバージョンのCentOSがリリースされていたら、新しいバージョンを使う
とあり、現時点ではバージョン8がリリースされているようであるが、ここでは上述の通り、7を使う

2.3 インストールの前に用意するもの

  • インストールDVD
  • マシンの設定:BIOSで「起動順序」の設定
    • 光学ドライブを優先
  • ハードディスク

2.4 インストールの開始

① インストールDVDを光学式ドライブにセットし、マシンを起動
自分の環境の場合、VirtualBoxで先程ダウンロードしたisoファイルを光学ドライブに割り当てて起動する

②起動画面が現れるので、「Test this media & install CentOS7」が選択された状態でEnterキーを押す。

③インストールメディアのチェックを行わない場合は、「Install CentOS 7」を選択
Testは要らないので、「Install CentOS 7」を選択した状態で、Enterした


④言語の選択画面が表示されるので、「日本語」を選択し、「続行」


⑤「インストールの概要」というメイン画面が表示される
ここでは、まず「インストール先(D)」を選択してハードディスクのパーティションを設定する。


⑥「インストール先」の画面を開くと既存のハードディスクが選択されているので、左上の「完了(D)」をクリック


⑦ハードディスクに十分な空き領域がない場合は「インストールオプション」が表示される
⑧「ディスク領域の獲得」という画面が表示されるので「すべて削除(A)」を選択し「領域の再利用(R)」をクリック

⑨ネットワークが利用可能な場合は「ネットワークとホスト名(N)」を選択。有効なネットワークインターフェイスが表示されるので必要に応じて「オン」にして「完了(D)」をクリック

⑩「ソフトウェアの選択(S)」を選び「開発およびクリエイティブワークステーション」を選択し、「完了(D)」をクリック

⑪メイン画面に戻り、「インストール開始(B)」を選択


⑫インストールが開始される

⑬「ROOTパスワード(R)」を選択してrootのパスワードを設定


⑭「ユーザーの作成(U)」を選択して、ユーザー作成画面を表示
ユーザ名(ここではlinuxtextとする)とパスワードを設定する


⑮インストールが終了したら、「再起動(R)」をクリック


2.5 インストール直後の初期設定

①インストールしたマシンを起動すると、ブートローダーが起動するOSの選択を求めるので、そのまま待つか、Enterキーを押す

②「初期セットアップ」画面で「LICENSE INFOMATION」をクリック


③「ライセンス情報」画面が表示されるので、ライセンス契約を確認し、問題なければ「ライセンス契約に同意します。(A)」を選択して、「完了(D)」をクリック


④「初期セットアップ」画面に戻り「設定の完了(F)」をクリック

2.6 ログインする

①ユーザ「linuxtext」をクリック
②「パスワード」を入力し、「サインイン」をクリック
③CentOSにログインできたらgnome-initial-setup画面が起動するので、言語が「日本語」になっていることを確認し「次へ(N)」をクリック
④入力メソッドが「日本語」になっていることを確認し「次へ(N)」をクリック

⑤「セキュリティ」画面で「位置情報サービス」を適宜オン・オフを切り替えて「次へ(N)」をクリック(この手順は標準教科書にはなかった)
⑥オンラインアカウント画面が表示されるので、「スキップ(S)」をクリック
※ 接続したい場合は画面に従って適宜接続
⑦「使用する準備が完了しました。」と表示されるので、「CentOS Linuxを使い始める(S)」をクリック
⑧「初めて使い方へ」の画面が表示されるので適宜参照し、「×」印をクリックして終了させる

⑨CentOSのデスクトップが表示される


2.7 コマンドの実行

  • 端末を起動するには以下の方法がある
    • 「アプリケーション」メニューから「ユーティリティ」、「端末」を選択
    • デスクトップ上を右クリックし、ポップアップメニューから「端末を開く」を選択する
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linux標準教科書(Ver.3.0.2):第1章 Linuxとは

2020-10-22 22:41:01 | LinuC
合格教本は購入し、既に1周読み終えたので、Linuxの勉強に違う教材を使うことにしよう。
ということで、今日からは、 LPI-JAPANにおいて無料で公開されている『Linux標準教科書』(Ver.3.0.2)を使って、LinuCレベル1に向けた勉強を進めていく。
『Linux標準教科書』は、Kindle版や製本版を購入することもできるが、ユーザー登録すれば、以下から無料でダウンロードすることができる。


ただ、同サイトによると

LinuCレベル1の101試験と102試験の内容の学習にも役立つ内容となっています。
本教材は試験対策教材ではありません

とのことなので、試験対策のためには市販本を購入する必要がある。
何はともあれ、第1章から読み進めることにしよう。

第1章 Linuxとは

1.1 基本ソフトウェアと応用ソフトウェア

  • ハードウェアとソフトウェア
  • 基本ソフトウェアと応用ソフトウェア
    • 基本ソフトウェア→Operating System(OS)
    • 応用ソフトウェア→アプリケーション

1.1.1 基本ソフトウェアの役割

  • 応用ソフトウェアが使う共通部品を提供する
  • ハードウェアという「資源」を管理する

1.2 UNIX

1.2.1 UNIXの誕生

  • 1960年台にUNIXは米国の通信会社AT&Tのベル研究所で誕生
  • ソースコードといったUNIXの設計に関する基本部分をそのまま配布していたので、手に入れたユーザは独自に研究・開発・変更等を行うことができた

1.2.2 さまざまな分離・統合

  • 配布されたUNIXは、メンテナーの手によって自由に改造が施されたので、UNIXとしてのまとまりがなくなった
  • その後、AT&T社が正式にライセンス契約を始め、UNIXを管理するようになた。
    • このAT&TのUNIXをSystem Vと呼び、以降、AT&Tと契約を結んだ組織のみが、自社の出したOSをUNIXと宣言できるようになった
    • それ以外をUNIX互換OSと呼ぶ

1.2.3 派生UNIX

  • バークレー版UNIX:BSD(Berkeley Software Distribution)

1.2.4 Linuxの誕生

  • フィンランドの大学生であるLinus Torvalds氏が、System Vの流れもBSDの流れも持たない独自のUNIX互換OSであるLinuxを誕生させた
  • Linuxの一番特徴的なところは、そのライセンス形式で、GPL(GNU General License:GNU 一般公衆利用許諾)が採用されている
    • GPLはGNUプロジェクトのリチャード・ストールマンにより作成されたもので、以下の特徴を含むフリーソフトウェアの一つ
      • プログラムを実行する自由
      • ソースの改変の自由
      • 利用・再配布の自由
      • 改良したプログラムをリリースする権利

1.3 Linuxの特徴

1.3.1 カーネルとユーザランド

  • 基本ソフトウェアは2つの領域に分けられる
    • カーネル:オペレーティングシステムの中核となる部分で、ハードウェアと直接やりとりするなどもっとも中心的な機能を受け持つ部分。カーネルはハードウェアの違いを吸収して、プログラムがどのようなハードウェア上でも同じように動作する役割がある。
    • ユーザランド:OSが動作するのに必要な、カーネル以外の部分。ファイルシステムやファイル操作コマンド、シェルなどの基本的なソフトウェア群。

1.3.2 Linuxを使う

  • Linuxは、基本的にコマンドで操作する。
    • コマンドはユーザランドで動作する
  • LinuxにX Window SystemとGNOME、KDE、Xfceなどのデスクトップ環境を導入することで、マウス入力によるグラフィカルな操作が行える

1.3.3 シェル

  • Linuxにはシェルという対話型のコマンド入力環境が用意されており、シェルが入力されたコマンドを理解し、実行する。
  • シェルの機能
    • コマンドの入力を受け付けること
    • シェルスクリプトの実行

1.3.4 ログイン

  • Linuxでは、利用開始時にユーザ名とパスワードを入力する
    • この組み合わせをアカウントといい、アカウントを使ってLinuxを使い始めることを「ログインする」という。

1.4 ディストリビューション

1.4.1 ディストリビューションの誕生

  • 当初のLinuxはインストール作業が非常に困難であったため、さまざまな団体がLinuxを使う上で必要なプログラムをまとめ、簡単な手順でインストールできるようにしたのが、Linuxディストリビューションの始まり
  • 代表的なLinuxディストリビューター
    • Red Hat
    • Debian Project
    • Ubuntuを開発しているCanonical

1.4.2 パッケージ

  • パッケージはLinuxに対して追加機能を提供するもの
    • 従来、応用ソフトウェアの実行をLinux上で行うにはソースをダウンロードして自らビルドする必要があった
    • 応用ソフトウェアを簡単に導入できるように、ディストリビューターの手によりビルドしたパッケージが作られるようになった

1.4.3 パッケージマネージャ

  • 応用ソフトウェアの導入には、複数の応用ソフトウェアやこの動作を補佐するライブラリが必要な場合がある
  • バグの修正や機能改善、セキュリティ脆弱性の修正の度に、新しいプログラムをインストールする際、既存の古いプログラムを削除する必要がある
  • そこで、パッケージを簡単にインストールしたり、アップデートしたりするパッケージマネージャというものが標準で用意されるようになった

1.5 章末テスト

  1. 3,4
  2. 1,2
  3. ・応用ソフトウェアの動作に必要な共通部品の提供
    ・ハードウェアという「資源」の管理
  4. 3
  5. プログラムの依存性を自動的に判別してインストールしたり、アンインストールしたりするのが容易になる

回答例とかはないのかな?
その辺りが試験対策ではないよってことか。😁 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

paizaラーニング『 JavaScript入門編4: 配列の基礎 (全9回) 』を受講してみた

2020-10-18 21:38:06 | paiza
最後に『 JavaScript入門編4: 配列の基礎 (全9回)  』を受講。


01:配列とは何かを学ぼう

  • 配列とは
    • データ構造の一種。まとまったデータを扱う
    • 配列のインデックス(添字)は0から始まる

02:配列を作ろう

  • 配列の定義
    • 配列は[]で定義する
    • 要素はカンマ区切りで記述する

03:配列の要素を取り出してみよう

  • 配列要素へのアクセス
    • 配列の要素には、`配列名[インデックス]`でアクセスできる
    • [!] 配列のインデックスは0から始まる

04:配列を操作しよう

  • 配列の長さ
    • 配列名.length
  • 配列の要素を変更する
    • `配列名[変更したい要素のインデックス] = 新しい要素`で変更できる
  • 配列の末尾に要素を追加する
    • `配列名.push(要素)`で末尾に要素を追加できる

05:ループで配列の要素を処理しよう1

  • for in
    • `for (var 変数名 in 配列名) {`で配列に存在するすべてのインデックスを取得できる
    • [!] 必ずしも0から順番に取得できるとは限らない
for (var index in team) {
 console.log(team[index]);
}
  • for of
    • `for (var 変数名 in 配列名) {`で配列の要素をすべて取得できる
    • ECMA Scriptが使える環境でのみ可能
for (var value of team) {
 console.log(value);
}

06:ループで配列の要素を処理しよう2

  • forEachでの繰り返し
    • `配列名.forEach(変数名 => {`で配列の要素を一つずつ取り出すことができる
    • => は「アロー関数」
team.forEach(value => {
 console.log(value);
});

07:splitで文字列を分割しよう

  • カンマ区切りで文字列を分割する
    • `split(",")`でカンマで区切って配列に変換できる

08:複数行のデータを読み取ろう

  • 標準入力からの複数行の受け取り
    • `reader.on('line', (line) => {`の中で、配列に入力値をpushしていく

09:配列を使ったランダムくじ

  • ランダムな数値の作成
    • `Math.random()`で0〜1未満のランダムな数が生成できる
    • `Math.floor()`で小数点以下切り捨て

感想

特に問題はなさそうだな。
後はちゃんとHTMLの中で使えるかだな。

次はどの講座受講しようかな?
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

paizaラーニング『 JavaScript入門編3: ループ処理を学ぶ (全8回) 』を受講してみた

2020-10-18 14:26:09 | paiza
『 JavaScript入門編3: ループ処理を学ぶ (全8回) 』を受講


01:条件によるくり返し処理1 - while

  • while文の基本形
// 条件式に使う変数の初期化処理
var count = 0;
while (count
 // 繰り返し処理
 console.log(count);
 // 条件式に使う変数の値の更新
 count = count + 1;
}

02:条件によるくり返し処理2 - while

  • 初期値や条件式の変更
process.stdin.resume();
process.stdin.setEncoding('utf8');

var count = 2;
while (count <= 6) {
 console.log(count);
 count = count + 2;
}
console.log("last:" + count);

03:RPGの攻撃シーンを作る

  • RPG風
process.stdin.resume();
process.stdin.setEncoding('utf8');

var hp = 30;
while (hp > 0) {
 let damage = Math.floor(Math.random() * 10);
 console.log("スライムに" + damage + "のダメージを与えた");
 hp -= damage;
}
console.log("スライムを倒した!");

04:条件によるくり返し処理3 - for

  • for文の基本形
for (var count = 0; count
 console.log(count);
}

05:データの入力方法を理解しよう

  • Node.jsという環境を使い、Webサーバー上で実行
  • プログラム実行の流れ
    • データを入力→プログラムで処理→処理結果を出力
  • データ入力の種類
    • Webサービス/API
    • データベース
    • ファイル
    • キーボード(実行時に指定)

06:標準入力で1行データを受け取ってみよう

  • Node.jsを利用した標準入力からのデータ入力
process.stdin.resume();
process.stdin.setEncoding('utf8');

var input_string = "";
var reader = require('readline').createInterface({
 input: process.stdin,
 output: process.stdout
});
reader.on('line', (line) => {
 input_string = line;
});
reader.on('close', () => {
 var input_int = parseInt(input_string);
 var result = input_int + 100;
 console.log(result);
})

07:標準入力で複数行データを受け取ってみよう

  • Node.jsを利用した標準入力からの複数行データ入力
    • 配列を使用している
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
 input: process.stdin,
 output: process.stdout
});
reader.on('line', (line) => {
 lines.push(line);
});
reader.on('close', () => {
 console.log("hello " + lines[0]);
 console.log("hello " + lines[1]);
})

08:西暦年と平成年の対応表を作る

  • 繰り返し処理を使って、西暦年と平成年の対応表を作る
    • 1989年から2018年まで全ての年を出力

感想

難しくはない。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする