入門者のLinux 4章 まとめ

奈佐原顕郎さん「入門者のLinux」より

ディレクト

・ファイルが保存されている場所
・データやプログラムはファイルという単位で必ずどこかのディレクトリに格納される
・入れ子になって存在する(ディレクトリの中にディレクトリさらにそのディレクトry)本の図がめっちゃわかりやすいからおすすめ
ディレクトリの階層構造のことをディレクトリ・ツリーという

ルートディレクト

/

・すべてのディレクトリに最上流に位置する

カレントディレクト

・シェルを操作するユーザーは常にディレクトリ・ツリーの中のどこかのディレクトリにいることになっている。それのこと

pwd

・カレントディレクトリがどこなのかを表示する

ディレクトリの移動

cd (change directory)

・様々な仕事をするときその仕事に必要なデータやプログラムのあるディレクトリに行く(そこをカレントディレクトリにする)ためのコマンド

ホームディレクト

/home/ユーザー名

・ユーザーが自由にデータを置くことができるディレクト
・ユーザーの利用環境に関する設定情報も保管されている

特別なディレクトリの表現方法

.

・カレントディレクト

..

・一つ上のディレクト

/

・ルートディレクトリあるいはディレクトリ同士の包含関係

~

・ホームディレクト

プロンプトの変化

・現在自分がどこのディレクトリにいるかわかりやすくしてくれる
Linuxの標準機能ではなく、Ubuntuなどの特定のディストリビューションで初期設定にされているので非表示にすることもできるしもともとその機能がないディストリビューションもある

ディレクトリの中身を見る

ls

・調べたいディレクトリを引数で指定して実行すればそのディレクトリの内容を見ることができる

オプションによる機能拡張

lsコマンドに -l というオプション

・より詳細な情報が出る

例えば

ls -l /usr の結果

・drwxr-xr-xの先頭のdはカレントディレクトリですよというしるし。もしファイルならdは表示されない
・rwx以下はパーミッションと呼ばれるもの(次章)

2列目:リンク数
3列目:所有者名
4列目:グループ名
5列目:サイズ(バイト数)
6~8列目:最終更新日時
9列目:ファイルやディレクトリの名前

man ls

・lsコマンドのマニュアル表示

ls --help

・シンプル版のマニュアル

ディレクトリの作成

mkdir (make directory)

ディレクトリの名前変更

mv (move)

ディレクトリの削除

rmdir (remove directory)

・空っぽでないディレクトリを消すには「rm -rf」コマンド

パス

・個々のディレクトリやファイルがディレクトリ・ツリーの中のどこにあるかという情報のこと

絶対パス

/home/maruko/test

・このようにルートディレクトリからたどってパスを表現する
・カレントディレクトリから遠く離れたディレクトリやファイルを指定するときよい
・カレントディレクトリがどこであれ、常に同じディレクトリやファイルを指定できる

相対パス

./maruko/test

・カレントディレクトリを起点にどのようにディレクトリをたどればそのファイルまたはディレクトリにたどり着くかというやりかた(.は省略可)
・カレントディレクトリのすぐ近くにあるディレクトリやファイルを指定するとき簡潔に表せる
・カレントディレクトリが違えば無意味なパスになる

冗長性

・同じことをするのにいくつもやり方があること
・システムの整合性や柔軟性を確保してくれる

余談

・「bin」「sbin」はコマンドを走らせるプログラムのファイルが入っているディレクトリ(binはbinariの略。Unixでは実行可能なプログラムの実体をbinary fileと呼ぶ)
・「include」「lib」「src」はプログラムを開発するときに必要なものが入っている
・「local」はユーザーが独自に入れるソフトなどのためのディレクト

入門者のLinux 3章 まとめ

奈佐原顕郎さん「入門者のLinux」より

 

ターミナル出現

Ctrl + Alt + t 

プロンプト

$

 *コマンド入力待ち 

今日の日付と現在の時刻

date

ハードディスクやUSBメモリの使用状況を表示

df

カレンダーを表示

cal

・半角スペースを空けて添える情報を引数と(パラメータとも)いう
・calは年や月日を引数にとることができる
・-に何かの記号を続ける(オプション)ことにより挙動が変わる

コンピュータのメモリに関する情報

free

コマンド履歴

history

コマンド再利用

↑(上矢印)

ソフトのインストール

sudo apt-get install ソフト名

処理中断

ctrl + c

x秒間、停止せよ

sleep x

大切

・エラーメッセージをよく読み、試行錯誤を繰り返して問題解決をすること
・エラーメッセージの意味がよくわからなくてもいいからスルーしないこと
・習うより慣れろ

入門者のLinux 2章 まとめ

奈佐原顕郎さん「入門者のLinux」より

 

Linuxを自分のpcで動かす方法

ハードディスクを付け替える

・バックアップをちゃんととって!

デュアルブート

・一台のパソコンに複数のOSを同居させ起動するたびにどちらかを選択する
・リスクが大きいので自己責任で

仮想環境

VirtualBoxQEMUなどのオープンソースの仮想環境を実現するソフトにLinuxを入れて動かす(私はVirtualBoxでやりました)
デュアルブートと違い同時に複数のOSを走らせることができる

ディストリビューション(Ubuntu使用)

Ubuntu Linux

・ユーザー層が厚く日本語サポートや各種アプリケーションソフトが充実している
・バージョン番号は西暦の下二桁と月二桁をドットをはさんで並べたもの
・ソフトは最新だと新たな試みが詰まっている分不具合が多い(枯れていないという)
・「革新的」と「枯れている」は両立しない
・頻繁に新バージョンを出すのと並行して特定のバージョンについて長期間サポートすることにしている(Long Term Support,LTS)

入門者のLinux 1章 まとめ

Oracleマスターブロンズ12c資格試験合格しました。

ということでこれからLinuxの勉強をしていきます。

 

まず奈佐原顕郎さんの「入門者のLinux」という本から。

あ。この本めっちゃよいですよ。

しばらく簡単な備忘録を。

今回は1章

世の中のコンピュータの共通点

基本ソフトを載せないと動かない

・コンピュータを動かすための縁の下の力持ち的なソフトウェア
Linuxは基本ソフトの一種
・世の中のほとんどのコンピュータに載る

UnixLinux

・1970年ごろ米国でUnixという素晴らしい基本ソフトが誕生
・同じ頃、オープンソースソフトウェアという思想が広まる
オープンソース版のUnixを作る中で最終的に最も普及したのがLinuxである
Linuxオープンソースであり、世界中の人たちによって作られている

操作方法

GUI (graphical user interface)

・ウィンドウやアイコンをマウスやタッチパネルで操作

CUI (character user interface)

・コマンドをキーボードで打ち込んで操作
UnixLinuxは本来こちらを使用する

Linuxキーワード

コミュニティ

・何か特定のソフトの開発者とユーザーからなる自発的な集まり

カーネル

Linuxの中枢部をなすソフト

ファイル

・コンピュータで扱われる情報のひとまとまりの単位

パッケージ

・一つのソフトをインストールしやすい形にまとめたもの
カーネルもパッケージとして提供される

ディストリビューション

カーネルにいろいろなソフトを組み合わせて使いやすくしたもの
・いろんな種類がある

ディレクトリ

・フォルダ的なファイルや別のディレクトリを入れる入物

マウント

・ハードディスクやUSBメモリはまず「デバイスファイル」というファイルとして認識される。それを一つのディレクトリとして認識させることをいう

シェル

LinuxCUIを提供するシステム

MacにVirtualBoxをインストールし、CentOSをインストールする

VirtualBoxのインストール

・Downloads – Oracle VM VirtualBox からMac用のPackageをダウンロードしてインストール

CentOSのダウンロード

VirtualBox仮想マシンを作成

・インストールした VirtualBox を起動して「新規」ボタンをクリックします。「名前」を適当に入力して「タイプ」を Linux、「バージョン」を Red Hat (64bit) にする。
*名前に Cent と入力するとタイプとバージョンが自動で変更される

・メモリーサイズを指定。メモリは実際のPCのメモリを使用するため7割以内(緑色の部分)でおさめるように。メモリが少ないと重くなるのでMacのメモリは最低でも8GB、理想は16GB以上はあった方がよい

・仮想ハードドライブを作成するが選択されてることを確認して作成をクリック

・ファイルタイプも他の仮想ソフトウェアで使用する必要がなければ、VDIのままにしておく

・ストレージを可変サイズか固定サイズか選択。容量に余裕があれば固定サイズの方が高速

・最後にファイルの場所とサイズを確認される。問題なければ作成をクリック。ファイルは~/VirtualBox VMsに作成される

ホストオンリーネットワークの追加

仮想マシンを作成した段階ではネットワークアダプターは「NAT」のみになっている。この場合、インターネットなどのネットワークとは通信ができるが、ホストマシン(自分のMac)と通信することができない。仮想マシンとは言え、別のリモートサーバーにあると考えること。そこで、仮想マシンに「ホストオンリーアダプター」を追加し、ホストマシンと通信できるようにできる。「VirturalBox -> 環境設定」を開いて「ネットワーク -> ホストオンリーネットワーク」を作成

・作成されたネットワークをダブルクリックするとIPなどが確認でき、このIPアドレスを後ほど使う

・設定をクリックして「ネットワーク -> アダプター2」でネットワークアダプターを有効化して、作成したネットワークを割り当てる

仮想マシンにCentOS7をインストール

・CentOS7を仮想マシンにインストール。公式サイト Download CentOS からISOファイルをダウンロード。

ISOは3種類あり、DVD ISOは一般的な用途でよく使われるので、どれを使えばいいのか分からない場合はとりあえずこれ。Everything ISOはCentOS7で提供される全てのパッケージが含まれている。Minimal ISOは最低限のパッケージが含まれている。今回はMinimal ISOを使用。

Minimal ISOを選択するとダウンロードページに移動する。どのリンクでもいいが Actual Country が日本のサイトからダウンロードされる。

・ダウンロードが完了したら作成した仮想マシンを起動

・まだOSがインストールされていないので、ダウンロードしたCentOS7のISOファイルを指定する

・矢印キーで Install CentOS 7 を選択して Enter を押す

・言語を選択。右下に続行ボタンがあるのでクリック

・インストール先に警告マークが付いてるのでクリックして、何も変えずに完了をクリック。警告が消えるので右下にあるインストールの開始をクリック。

・インストール中に root のパスワードを設定してユーザーを作成しておく

・このユーザーを管理者にするにチェックを入れる

ネットワーク設定

・CentOS7からはネットワークの設定は「NetworkManager」を使用することが推奨されている。nmtuiコマンドを実行。

# nmtui

・メニュー画面が表示されたら「Edit a connection」を選択し「Enter」キー

・操作は矢印キーとEnterで行なう。まずは「enp0s3」を選択し「Enter」キーを押す

IPv6は使用しないので「Ignore」に変更して、Automatically connect(OS起動時にNICを有効化させる)にチェック(スペースキー)

・次は「enp0s8」。これは「ホストオンリーアダプター」になる。IPアドレスを固定にしたいので、Manual に変更してIPアドレスを設定。ホストオンリーネットワークのIPアドレス(192.168.56.1以外)を入力。IPv6を「Ignor」に変更して、Automatically connect にチェックを入れて完了

・Quit で終了

・Networkを再起動して設定を反映させる。

# systemctl restart NetworkManager

・これでMacのターミナルなどから SSH でログインできるようになる。要求されるパスワードはインストール時に設定したパスワード。

CentOS7に後からGUI(X Window System)を追加する

デスクトップ環境が欲しい場合

yum groupinstall で "GNOME Desktop" をインストールする。

$ sudo yum -y groupinstall "GNOME Desktop"
あるいは "Server with GUI" でも構わない。

$ sudo yum -y groupinstall "Server with GUI"

・インストールが終わったら、起動モードを graphical.target に変更する。

$ sudo systemctl set-default graphical.target
$ systemctl get-default graphical.target

・再起動する

$ sudo shutdown -r now

 

引用元

MacでVirtualBoxにCentOS7をインストールしてSSH接続をするまでの方法 - TASK NOTES

CentOS7 に後から GUI (X Window System) を追加する - CUBE SUGAR CONTAINER

この記事ほぼ引用です。リンク先がいつ消えるかわからないのでメモを。

わかりやすくて助かりました。

 

CentOS7にOracle12cをインストールする 準備編

 

ただいまOracleMasterBronz12cDBAの合格目指してお勉強中。

 

Linuxのお勉強はそれが終わってからなんだけど

白本に載ってる環境を構築してみることになったので

VirtualBoxでCentOS7を起動してOracle12cをインストール

 

その経過と困ったこと

わすれるのでメモメモ

 

まず必要なパッケージをインストール

[root@testuser ~]# yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++l7.i686 libstdc++-devel libstdc++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libXtst libXtst.i686 make sysstat 

 

なんだけどそもそもいまこれ[testuser@localhost ~]#

rootユーザーって、どうすればいいの・・・

suでユーザー切り替えすればいいっていろんなところに書いてあるからしたけど
passwordしらない・・・

調べ方が悪いのか良い記事に出会えない・・・

最終的に

Ubuntuは初期状態ではrootが使えない(パスワード未設定)ようになっている」

という記事をみつけてUbuntuとか知らないけど試しにやってみたらいけた(´•ω•̥`)

```
$ sudo su -
Pssword:(自分のパスワード)
# passwd
[rootのパスワードを設定]

```

ここだけでめっちゃ時間かかった。

ちなみにUbuntuLinuxの人気ディストリビューションLinuxの人気の配布形態)らしい。初心者におすすめだって。

 

さて次にカーネルパラメータを編集

[root@testuser ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')

[root@testuser ~]# SHMMAX=$(expr $MEMTOTAL / 2)
[root@testuser ~]# SHMMNI=4096
[root@testuser ~]# PAGESIZE=$(getconf PAGE_SIZE)
 
ここまではよかった。
 
[root@testuser ~]# cat >> etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = `expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \)`
kernel.shmmni = $SHMMNI
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF 
 
これなに。どうすればいいの。どこまでがなんなの。
cat >> etc/sysctl.conf << EOFのままだとなんか怒られるから
とりあえずいろいろ調べてcat etc/sysctl.confとかしたけど結局だめだった(これ意味あったのだろうか・・・)
わかる人にみてもらってvimを使って設定してもらった。
これはLinuxの勉強したらわかるっぽいので今回はおいておくよ
 
それから
[root@testuser ~]# sysctl -p
 
なんかこれも出力おかしいねって言われたけど
原因は不明です。
一応ちゃんとできはした。

 

オラクル専用のユーザー/グループを作成し、システムの環境設定

 

[root@testuser ~]# i=54321; for group in oinstall dba backupdba oper dgdba kmdba; do

groupadd -g $i $group; i=`expr $i + 1`
done

[root@testuser ~]# useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba -d /home/oracle oracle 


[root@testuser ~]# passwd oracle

[root@testuser ~]# mkdir -p /u01/app/oracle 

[root@testuser ~]# chown -R oracle:oinstall /u01/app 

[root@testuser ~]# chmod -R 775 /u01 

[root@testuser ~]# vi /etc/pam.d/login

 

session required pam_namespace.so

session    required     pam_limits.so
session    optional     pam_keyinit.so force revoke

[root@testuser ~]# vi /etc/security/limits.conf 
最終行に追記
oracle soft nproc 2047
oracle  hard  nproc   16384
oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  stack   10240
oracle  hard  stack   32768

  viはvimのことを指していて、編集できるようにするためのもの

Linuxはやく勉強しなきゃ〜

 

最後にOracle用の環境設定

作業は「Oracle」ユーザーで行うから

[root@testuser ~]# su oracle

で切り替え

 

[root@testuser ~]# vi ~/.bash_profile

 

この二つを最終行に追加

umask 022
export ORACLE_BASE=/u01/app/oracle

 

[oracle@localhost ~]$ mkdir tmp

 

これでインストール準備完了〜

 

参考はここ

https://www.server-world.info/query?os=CentOS_7&p=oracle12c&f=1

http://linux40.hateblo.jp/entry/20070903/1188797994

お世話になりました。

めっちゃ長かった〜

続きはまた今度。寝る〜。

 

Oracle12c ターミナルでの使い方 メモ

Oracle12c ターミナルでの使い方

docker psで現在の状況を確認

 STATUSがUpになっていたら

 sqlplus system/manager@localhost:1521/orcl

 を実行

dockerをstopさせる

docker stop d32cce0f7605

 このあと

docker ps

 で確認すると何も表示されない

dockerをstartさせる

docker ps -a

 で

d32cce0f7605

 を見つける

docker start d32cce0f7605

 でdockerをstartさせる

使い終わったら

docker stop d32cce0f7605 

 でdockerをストップさせる

sqlplusがないと言われた場合

source ~/.bashrc

 を入力