Linux コマンド:グループ・ユーザー・権限

ファイル、ディレクトリのグループ、権限

ls -l
バッチコマンド(Linux/DOS/PowerShell)」参照

ID

※アカウント、所属グループを表示
$ id

uid=1000(ユーザー名) gid=1000(メイングループ名),1001(サブグループ名1),1002(サブグループ名2),・・・

グループ

メイングループ
ユーザが唯一所属するグループ

サブグループ
ユーザがメイングループの他に所属するグループ。複数〇

コマンド 内容
groups グループを表示
groupadd グループ追加
groupdel グループ削除
groupmod グループ変更

groups

所属グループを表示

グループ名1 グループ名2 ・・・

groupadd

グループ追加
# groupadd (グループ名)

groupdel

グループ削除
# groupdel (グループ名)

groupmod

グループ情報変更
# groupmod (グループ名)

グループ情報(一覧)

/etc/group(テキストファイル)

・グループ名
・グループID(GID)
・メンバーリスト

ユーザー情報(一覧)

/etc/passwd(テキストファイル)

・ユーザ名(ログイン名)
・(暗号化パスワード)
Xと記載される
・ユーザ番号(UID)
・グループ番号(GID)
・コメントフィールド(名前など)
・ホームディレクトリーのパス
・ログイン・シェル

ユーザー

コマンド 内容
users ログインユーザーを表示
useradd ユーザー追加
userdel ユーザー削除
passwd パスワード変更
usermod 所属グループ変更

users

ログインユーザーを表示
# users

useradd

ユーザー追加
# useradd (ユーザー名)

userdel

ユーザー削除
# userdel (ユーザー名)

passwd

パスワード変更
# passwd (ユーザー名)

usermod

所属グループ変更
# usermod [オプション] (ユーザー名)

メイングループ変更
# usermod -g (グループ名) (ユーザー名)

サブグループ変更(置き換え)
# usermod -G (サブグループ名1),(サブグループ名2),(サブグループ名3) (ユーザー名)

サブグループ追加
# usermod -aG (サブグループ名) (ユーザー名)

gpasswd

所属グループ変更

機能 オプション
ユーザ追加 -a $ gpasswd -a (ユーザ名) (グループ名)
ユーザ削除 -d $ gpasswd -d (ユーザ名) (グループ名)
所属ユーザ指定 -M $ gpasswd -M (ユーザ名1),(ユーザ名2),(ユーザ名3),・・・ (グループ名)

VirtualBoxにおける共有フォルダ管理グループへのユーザ追加
# sudo gpasswd -a (ユーザ名) vboxsf

su

ユーザー切り替え
(指定したユーザーでシェルを再起動)
$ su – ユーザー名
※ubuntu専用
初期設定でrootアカウントにはパスワードが設定されていないのでrootにユーザー変更できない
$ su – ($ su – root と同じ)
は×
一時的にrootユーザーに変更
$ sudo su –
$ sudo su – root

sudo

指定したユーザーでコマンドを実行する

$ sudo -u ユーザー名 pwd
ユーザー未指定の場合はrootで実行
$ sudo pwd

管理者のみアクセス可能なディレクトリでの操作
sudo sh -c “cd ~; ls;”
sudo sh -c “cd ~; cat ~;”
-c プロセスを新規に生成する

sudo設定ファイルの編集
visudo

権限

chown

所有者変更
# chown (所有者) (ファイル名)
# chown test test.txt

ディレクトリ内の全ファイルの所有者を変更
# chown -R (所有者) (ディレクトリ名)
# chown -R test test.txt

グループ、所有者を同時に設定
# chown -R (所有者:グループ) (ファイル/ディレクトリ名)
# chown test:test test.txt

chmod

数字による指定

権限変更
# chmod (読取権限)(書込権限)(実行権限) (ファイル名)
# chmod (読取権限)(書込権限)(実行権限) (ディレクトリ名)
# chmod 777 test.txt

 Owner  Group  Other
読/書/実 読/書/実 読/書/実
r/w/x r/w/x r/w/x

読み取り権限/書き込み権限/実行権限の有無を、
4/2/1
の数字の合計で表す。
全て有り=7
読取+実行=5
等。

表示 2進数 設定値
rwxrwxrwx 111111111 chmod 777 ~
r-xr-xr-x 101101101 chmod 666 ~
r-xr-xr-x 100100100 chmod 555 ~
r–r–r– 100100100 chmod 444 ~
-wx-wx-wx 011011011 chmod 333 ~
-r–r–r- 010010010 chmod 222 ~
–x–x–x 001001001 chmod 111 ~
——— 000000000 chmod 000 ~

定数による指定

chmod (対象) (効果) (結果)
chmod [ugoa][+-=][rwx]

【対象】

定数 機能
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限

chmod u+r 所有者にr権限を追加
chmod ug+r 所有者、グループにr権限を追加
chmod ugo+r 所有者、グループ、他にr権限を追加
chmod a+r 全対象にr権限を追加

【効果】

定数 機能
+ 後に記述した権限を付加する
後に記述した権限を削除する
= 後に記述した権限にする

chmod u+r 所有者にr権限を追加
chmod u-r 所有者からr権限を削除
chmod u=r 所有者の権限をrのみに設定(-r-)

【結果】

定数 機能
r 読み込み権限
w 書き込み権限
x 実行権限

chmod u+r 所有者にr権限を追加
chmod u+w 所有者にw権限を追加
chmod u+x 所有者にx権限を追加

chgrp

ファイルの所属グループ変更
# chgrp (グループ名) (ファイル名)

セキュリティ

rootでのssh禁止

ssh」参照

設定ファイル
/etc/ssh/sshd_config

#PermitRootLogin yes

PermitRootLogin no

sshポート変更

ssh」参照

設定ファイル
/etc/ssh/sshd_config

#Port 22

Port XXXXX

chroot

ルートディレクトリの変更
現プロセス(子プロセス)

ルートディレクトリ対象
/test
└bin
└lib64
binとlib64は必要

cd /

bin home lib var etc ・・・

chroot test
cd /

bin lib64
ホームディレクトリが/testに変更される

cd ..
上階層に移動
ls
bin lib64
/testより上階層には移動できない

Linux コマンド:ファイル/ディレクトリ操作

ファイル操作

nautilus

ファイルマネージャーで開く
$ nautilus test1
※test1というファイルorディレクトリをファイルマネージャーで開く

tar

アーカイブ作成/展開
※圧縮/解答ではない。

オプション 機能
-c 書庫を新規に作成する
-x 書庫からファイルを取り出す
-v 処理したファイルの一覧を詳細に表示する
-f ファイル名:指定した書庫ファイルまたはデバイスを使用する。
-C ディレクトリ名:指定したディレクトリに移動してから動作を始める
-z ~.tar.gz形式のファイルを展開

例:書庫ファイルを展開する
$ tar -xvf test.tar
$ tar xzvf test.tar.gz

zip/unzip

解凍
$ unzip (ファイル名).zip

圧縮ファイル内容一覧
$ unzip (ファイル名)

圧縮
$ zip (圧縮後ファイル名).zip (圧縮前ファイル名)
例:$ zip after.zip *.txt

7z

インストール
yum install -y p7zip-full

解凍
7za x ~.7z

gzip

圧縮
gzip (ファイル名)

解凍
gzip -d ~.gz

ln

ハードリンク作成
ln /test/test.txt testlink

シンボリックリンク作成
ln -s /test/test.txt testlink
ln -s /test testlink

リンクの確認
ls -la
testlink -> /test/~

機能 ハードリンク シンボリックリンク
ファイルへのリンク
ディレクトリへのリンク ×
別ファイルシステムへのリンク ×
リンク先移動時の挙動 移動後のパスへ自動修正 移動前のパスを保持

テキスト操作

cat

ファイルの中身を出力

head/tail

先頭/末尾n行のみ出力する。
head -n 10
tail -n 10

head – 10
tail – 10
nは省略可

sed

1~10行目を除外(削除)して表示
sed -e ‘1,10dtest.txt

指定行に文字列を差し込み
sed -i -e ‘1i aaaaaoutput.txt

指定行に別ファイルの内容を差し込み
sed -i -e ‘1r input.txtoutput.txt

wc

テキスト・ファイルの行数、単語数、バイト数を表示
$ wc (ファイル名)

行数のみ表示
$ wc -l (ファイル名)

grep

引数を含む行のみを抽出する。

$ grep オプション 検索語 検索対象ファイル
$ grep -X test test.txt

オプション 機能
-i 大文字と小文字を区別しない
-w 単語全体でパターンと一致するものを検索する
-R サブディレクトリ以下も検索する
-R 検索パターンにマッチしたファイル名のみ表示

正規表現
$ grep -X aa*bb /etc/*.conf

パイプ処理
$ cat /etc/passwd | grep /bin

cut

入力文字列を引数で分割する。
$ /etc/passwd cut -d ‘:’
文字列を’:’で分割し、1番目の列のみ抽出する。
$ etc/passwd cut -d ‘:’ -f 1

sort

入力文字列をソートする
$ /etc/passwd sort

diff

差分表示
$ diff (ファイル1) (ファイル2)

ディレクトリの差分表示
$ diff -r (ディレクトリ1) (ディレクトリ2)
※ディレクトリにファイルが無い場合は差分を抽出してくれない

差分記号無しで差分表示1
$ diff (ファイル1) (ファイル2) | grep -e ‘^>’ | perl -pe ‘s/^<\s//g' | -pe 's/^>\s//g’

差分記号無しで差分表示1
$ diff –old-line-format=’%L’ –new-line-format=’%L’ –unchanged-line-format=” (ファイル1) (ファイル2)

uniq

上下行の重複を削除
$ sort (ファイル名) | uniq

less

1画面ずつ表示
$ less (ファイル)

Linuxコマンドをパイプ処理
$ (コマンド) | less
$ grep aaa test.txt | less

表示結果の先頭に行番号を付加
$ less -N (ファイル)
$ grep aaa test.txt | less -N

検索語を強調表示
$ less -p (文字列) (ファイル)
$ grep aaa test.txt | less -p aaa

【画面表示時の操作】
次頁:「Space」
前頁:「b」
次行:「j」= vi
前行:「k」= vi

vi

Vi/Vim/GVim使用方法」参照

検索

locate

$ locate (ファイル名)
$ locate httpd.conf

自階層以下より検索
$ locate -b

検索結果を削除
$ locate -b ~ | xargs rm -rf

find

find (検索先ディレクトリ) (検索条件) (アクション)

(検索先ディレクトリ)省略 → カレントディレクトリが検索先
(検索条件) → 全ディレクトリ、全ファイルが検索対象
(アクション) → 検索結果を全て表示(-lsアクションと同等)

複数ディレクトリを検索
find (検索先ディレクトリ) (検索先ディレクトリ) (検索条件) (アクション)
find /a /b -name test.txt

複数(AND)条件で検索
find (検索先ディレクトリ) (検索条件) (検索条件) (アクション)
find / -name test -type f

複数(OR)条件で検索
find (検索先ディレクトリ) (検索条件) -OR (検索条件) (アクション)
find / -name aaa -or -name bbb

複数(AND、OR)条件で検索
find (検索先ディレクトリ) (検索条件) (検索条件) -OR (検索条件) (アクション)
find / -name aaa -type f -or -name bbb

除外条件で検索
find (検索先ディレクトリ) !(検索条件) (アクション)
find / !-name aaa

複数除外条件で検索
find (検索先ディレクトリ) !(検索条件) (アクション)
find / !-name aaa !-name bbb

ファイル/ディレクトリ名で検索
find / -name aaa
find / -name *.txt
find / -name aaa.*

正規表現で検索
find / -regex (正規表現)

ファイルのみを検索
find / -type f ~

ディレクトリのみを検索
find / -type d ~

指定バイトより大きいファイルを検索
find / -size +500 ~

指定バイトより小さいファイルを検索
find / -size -500 ~

検索するディレクトリ階層を制限して検索
find / maxdepth 1 ~
指定ディレクトリの直下のみ

find / maxdepth 2 ~
指定ディレクトリから1階層下までを検索

検索結果Linuxコマンドを実行
find ~ -exec (Linuxコマンド)
find ~ -exec rm -rf {} \;
{}は検索結果によって置換される。
1.txt
2.txt
3.txt
が検索された場合、
rm -rf 1.txt
rm -rf 2.txt
rm -rf 3.txt
が1つずつ実行される

find ~ | xargs (Linuxコマンド)
find ~ | xargs rm -rf
-execと違って検索結果が同時に処理される

Linux 重要用語

terminal

CUI・・・Windowsにおけるコマンドプロンプト
カーネルへ伝達する命令を記述するエディタ。
ターミナル自身は命令を解釈も実行もしない。
解釈・実行するのはシェル

shell

ターミナルに入力された内容を命令へ変換、カーネルへ伝達するプログラム
以下等、複数のシェルプログラムがある。
bash:Ubuntuのデフォルト
・tcsh

シェルスクリプト

シェルを複数集めて保存したプログラム。
実行は
$ sh シェルスクリプトファイル名
一般にシェルスクリプトファイルの拡張子はshを付ける。
Windowsでいうバッチ。

カーネル

OSの中核部分
メモリやハードの管理を行う。

bash

bash=シェル
ubuntuにデフォルトでインストールされているシェル。
ターミナル等で入力されたコマンドを解釈・実行する。
変数の使用等、プログラム言語としても利用可能

パッケージ管理システム

インストール等を行うアプリケーションに必要なファイルを各フォルダに配置するプログラム。
OSの種類によってYumやAPT、ZYpp等のパッケージ管理システムに分かれる。
Windowsと違いLinuxは保存先フォルダが複数に分かれているので人間が行うのは難しい。
Linux コマンド/インストール系」参照

デーモン

UNIX系OSにおいて、メモリに常駐してバックグラウンドプロセスとして動作するソフトウェア
=Windowsにおけるサービス
デーモン例
NetworkFileSystem:nfsd
通信プロトコルサーバ:ftpd、httpd、named、ntpd、snmpd、sshd、tcpd、telnetd
電子メール:sendmail、smtpd
データベースサーバ:mysql、postgresql

Apache Commons Daemon

Apacheから提供されているデーモンプログラム
コンパイル済みの実行ファイルを登録し、
OSの起動時に指定のサービス(デーモン)を起動
OSの停止時に指定のサービス(デーモン)を停止
等を行える

cron

決められた時刻にコマンドを定期的に実行させるためのデーモンプロセス
シェルスクリプトや、Perl、PHPなどのインタープリタ言語プログラム
Javaプログラム等の実行も可能

inode

index node
ファイル/ディレクトリ情報
・ファイルタイプ ( executable/block special etc )
・パーミッション ( read/write )
・UID ( Owner )
・GID ( Group )
・ファイルサイズ
・タイムスタンプ
・実データが格納されたディスクのブロック番号
・inode番号

ディレクトリ

ファイル名とinode番号の対応付けリストを格納した特殊なファイル

ディレクトリエントリ

dentry
対応付けリストの集計データ

データベース 重要用語

多重化

クラスタリング

データベース クラスタ構成」参照

レプリケーション

データベース管理システムの機能
あるデータベース(マスター)の複製(レプリカ)を別のコンピュータ上に作成、常に内容を同期させる。
負荷分散や耐障害性の向上などを目的に行われる。
マスターとレプリカは定期的にネットワークを通じてデータを交換しあい、内容を一致させる。
しかし同期するタイミングによってはデータが消失する
通常レプリケーションとクラスタリングを併用する

高可用性

HighAvailability
HA
冗長化、バックアップ手段の確立等により、
システムがダウンする可能性を低く設計された状態
HA構成=可用性の高い構成≒クラスタリングされた構成

ホットスタンバイ

ホットスタンバイ」参照

コールドスタンバイ

コールドスタンバイ」参照

Storage Grid

Oracle社が提案する理想的なストレージ構成
安価な単機能ストレージを並べてI/O性能、容量をスケールアウトさせる事で可用性を確保する構成

ASM

Automatic Storage Management
サーバ側にインストールするソフトウェア
・ 複数ストレージの連結
・ ストレージの冗長化
・ ストレージの追加・削除
・ データベースのデータに限らず、ファイルシステムのデータとしても利用可能

接続

コネクション

接続~切断

セッション

コネクションが確立された後の、
クライアント~サーバ間の1回毎の通信


コネクション開始
セッション1開始
セッション1終了
セッション2開始
セッション2終了
コネクション終了

統計情報

データベースや表、索引の特性(データサイズやデータの分布等)
使用しているサーバやデータベースの特性の数値
表に対する統計
表のサイズ、行数、1行当たり平均サイズ等
表内の列に対する統計
列データの種類数、データ分布(ヒストグラム)等
索引に対する統計
索引のサイズ、階層数、クラスタ化係数等
システムに対する統計(9i~)
サーバのI/OやCPUの処理能力等

WordPress 重要用語

テンプレートファイル

テンプレート階層において表示時に使用されるPHPファイル
category.php、single.php等

テンプレートタグ

データの取得・出力関数
テンプレートファイル中に記述

プラグイン

プログラムまたは1つ以上の関数

フック

・アクションフック
・フィルターフック
アクション発生条件
・データベースのデータ変更
・管理画面、サイト表示の変更
フィルター通過条件
・DB登録
・DB読み込み

アクションフック

アクション発生時に実行されるプラグイン

フィルターフック

フィルター通過時に実行されるプラグイン
フィルターフック(the_content)通過時にプラグイン(wpautop)を実行する
<?php add_filter ('the_content', 'wpautop'); ?>
※wpautopというphp関数が定義されていなければならない
フィルターフック(the_content)通過時のプラグイン(wpautop)を実行を削除
<?php remove_filter ('the_content', 'wpautop'); ?>
※functions.php
function (関数名)($class) {
 global $post, $posts;
 if ( is_home() && !is_paged() && ($post == $posts[0]) ) $class[] = 'firstpost';
 return $class;
}
add_filter('post_class', '(関数名)');

JAVA 重要用語

実行環境

JAVAサーブレット

サーブレット」参照

JSP

JSP」参照

JDK

JDKとは?」参照

OpenJDK

OpenJDK」参照

JRE

JavaRuntimeEnviroment
Javaプログラム実行環境
JVM、APIを含む。

JavaVM

JavaVirtualMachine
=JVM
Java実行環境
Javaプログラムを実行するソフトウェア
なおJavaVMはソースコードをコンパイルした中間コードを実行する。

JCP

Java Community Process
・企業
・個人
から成るJavaの仕様策定コミュニティ
会員はJCPにJSRを提出、
それが認められるとチームを組んで開発→テスト→検証を経て、
標準リリースとなる。

JSR

Java Specification Request
JCPメンバーがJCPに提出するJava仕様
・仕様
・サンプルプログラム
・TCK(JCPが定めるテストツール)
等から成る。
一連の工程が終了して標準化されるとJSRXXX等の番号が振られてリリースされる
例:JSR335(JAVA8ラムダ式)

配布

JAR/WAR/EAR

Javaプログラムの実行・配布用ファイル。
Zip形式アーカイブ

JAR

Java ARchiver
Javaプログラムの実行に必要なクラスファイル、設定ファイルのアーカイブ。
多くのクラスライブラリはJAR。

WAR

Web Application Archive
WEB用アプリアーカイブ
SERVLET
・HTML
JSP
web.xml (Tomcat用アプリケーション設定ファイル)
JAR
等を含める。
TomcatはWARを配置するだけでTomcat再起動時に展開されて実行環境が整う。

EAR

Enterprise ARchive
JavaEEアプリケーションのアーカイブ
WAR
JAR
等を含める。

マニフェストファイル

MANIFEST.MF
jarコマンドによって作成される
・実行時にmain()メソッドを呼び出すクラス
・クラスパスの指定
等、jarファイルの説明が記述される
(jarファイル)
└ META-INF
 └ MANIFEST.MF

API

JavaAPI

関数ライブラリ
・J2SE
JavaStandardEdition
(標準関数ライブラリ)
・J2EE
=JavaEE
JavaEnterpriseEdition
(Web関連ライブラリ)
・J2ME
JavaMicroEdition
(モバイル端末用ライブラリ)
を指す

JavaEE準拠

J2EE(JavaEE)ライブラリを実装して開発されたアプリケーション
・GlassFish(Oracle)
WebLogic(Oracle)
・WebSphere(IBM)
JBoss(RedHat)

JDBC

Javaとリレーショナルデータベースの接続のためのAPI
以下、あらゆる場所で動作する
・通常のJavaクラスや、JavaBeans
・クライアントJavaアプリケーション
・Webコンテナ(J2EEサーバ)で動作する、ServletやJSP

VO

Value Object
getterのみで構成された部品

DTO

Data Transfer Object
VO + setterで構成された部品
コントローラ層~モデル層等のレイヤー間でのデータ受け渡しに使用する

DAO

データベースへアクセスするクラス
VODTOを引数として使用する

Tomcat

Tomcatとは?」参照

WEBコンテナ

Webサーバー上でJavaプログラムを動作させるソフトウェア
Tomcat
Servletコンテナとも呼ばれる。
JSPコンテナとしても機能する。

DIコンテナ

Spring DIコンテナ」参照

Javadoc

クラスやメソッドの説明文から生成されるHTML形式のAPI仕様書(リファレンスマニュアル)
javadocコマンドやEclipseから作成
クラス宣言時
/**
* MyClass
* @author アイオス哲郎
*
*/
public class MyClass{ …
 ~
}
メソッド宣言時
/**
* MyMethodは、検索用のメソッドです。
* @param 変数 ~
* @return ~
* @throws SQLException SQL実行時に起きりうる例外
*/
public String MyMethod(型 変数) throws SQLException{
 ~
}

フレームワーク

JavaBeans

JavaBeans」参照

Struts

ストラッツ
MVCアーキテクチャを採用しているJAVAフレームワーク

Seasar2

S2Container:依存性を分離するDIコンテナ
S2Dao:データベースアクセスライブラリ
S2Struts:Strutsフレームワークとの連携ライブラリ

Spring

Springフレームワーク」参照

Spring-Boot

Spring Boot 9 設定ファイル
Spring Boot 8 テスト
Spring Boot 7 DI処理
Spring Boot 6 データベース操作
Spring Boot 5 バッチ処理
Spring Boot 4 HTTPクライアント
Spring Boot 3 コントローラー
Spring Boot 2 ログ出力
Spring Boot 1 設定
参照

標準ツール

javac.exe

Javaソースファイルのコンパイルツール
JVMが解釈する中間ファイル(classファイル)を生成する。
JAVA 環境設定/コンパイル」参照

java.exe

Javaアプリケーションの実行ツール
中間ファイル(classファイル)をJVM上で実行する。
java c:\(クラスファイル)
JAVA 環境設定/実行」参照

javaw.exe

Javaアプリケーションの実行ツール
java.exeと違い、実行画面を表示させない。
javaw c:\(クラスファイル)

jar.exe

jarファイルの作成・展開ツール
Manifest.txt
myPack
└ HelloWorld.class

オプション 内容 コマンド
-c jarを新規作成する
-v 標準出力に詳細な出力を生成する > jar -cfv myPack.jar myPack
-f jarファイル名を指定する > jar -cf myPack.jar myPack
-m 指定のマニフェストファイルからマニフェスト情報を取り込む > jar -cfm myPack.jar Manifest.txt myPack
-t jarの中身を一覧表示 > jar -tf myPack.jar
-x ファイルをjarから抽出する > jar -xvf myPack.jar

結果
myPack.jar
└ METAINF
 └ MANIFEST.MF

Manifest.txt
myPack
└ HelloWorld.class

CLASSPATH

Javaアプリケーション実行時、JVMが読み込むクラスファイルの場所
Eclipse使用時の設定方法は「Eclipse使用方法」参照
複数指定可能
java -classpath .;c:\test1;c:\test2
java -cp ~も可
「.」はカレントディレクトリ
環境変数に設定する事も可能
通常、開発者は複数のアプリを開発する為、固定のクラスパスを設定しない

CIツール

Ant

Apache Ant
ApacheAnt使用方法」参照

Maven

Apache Maven 使用方法」参照
Apache Maven 設定方法」参照

Gradle

Java用ビルドツール
Gradle使用方法」参照
AntMavenより設定ファイルの記述が少なくて済む

辞書

A

Ajax

Webブラウザが持つJavaScript用HTTP通信機能を使って、
Webページのリロードを行わずにサーバーとXMLデータをやり取りする処理

AngularJS

JavaScript用WEBアプリケーションフレームワーク
MV*フレームワークのに分類される
※MV*=MVC等の設計パターンを採用しているフレームワーク
Model、View、と何かという意味。
AngularJS自身はModel、View、Whateverとの事。
テキストボックスに文字を入力すると、
自動で下部のリストがフィルタリングされる機能等、
入力に応じて画面表示が変わる様な処理が得意。
なお、アニメーション等は別。

API

ApplicationProgrammingInterface
アプリケーションから、
・OSの機能
・プログラム言語で作成されたライブラリ
・Webサービス
を利用するための仕様・規約

C

C#.NET

フレームワーク:ASP.NETを使用し、
言語:C# で書かれたプログラム
なお、
フレームワーク:ASP.NETを使用し、
言語:VB.NET で書かれたプログラムもASP.NETと呼ぶ。

CDN

Contents Delivery Network
コンテンツ配信網
アクセス集中による遅延を防ぐ為にサーバを地理的・ハード的に複数分散させた上でアクセス分散させ、最適な経路で今テンツを提供する仕組み

CGI

WEBサーバー上で動作するアプリケーション。
Perlで作られる事が多かった。
WEBから呼ばれる度に起動するので動きが重いという欠点がある。
この為、WEBからセッションを維持したまま何度も呼ばれても軽く動作するポストCGI技術が多く生まれる。
JAVAサーブレット

CMS

ContentsManagementSystem
Webサイトを作成する際にHTML等を書かなくても文章等を挿入するだけでレイアウト含めてある程度自由にデザインできるツール
WordPress
ECCube
等。

CVS

Concurrent Versions System
バージョン管理システム
構成管理システム
SVN、VSS等

D

DirectX

Windowsにおけるマルチメディア分野のAPI
・DirectDraw/Direct3D(2/3次元グラフィックス)
・DirectInput(入力機器)
・DirectPlay(ネットワーク対戦ゲーム)
・DirectShow(大容量マルチメディアデータのストリーミング再生)
等がある。

dxdiag

DirectXのバージョン確認ツール
「ファイル名を指定して実行」から起動できる。

F

FastCGI

(ファストシージーアイ)
CGIプログラムのプロセスをメモリ上に保持する事で処理を高速化する仕様
Apache、IIS等の主要Webサーバーで動作サポートされている。

FrontPage Server Extensions

(FPSE)
Windows系のWebサーバー拡張機能
通常はデフォルトでインストールされる(IISに含まれる)。
Microsoft製Webページ制作ソフト「FrontPage」とは別もの。

H

Hosts

DNSサーバーの代理
IPとドメインの対応表ファイル
DNSサーバの応答よりも優先される
Windowsの場合
C:\Windows\System32\drivers\etc\hosts
/etc/hosts

HULFT

データ転送ツール
異なるOS間でもデータ通信が可能
通信の自動化、スケジュール化

Hyper-V

Microsoftが提供する仮想化技術。
Windos系OSに加え、Linux系も動作可能。
ホスト型より高速に動作する。
WindowsServer2008以降に搭載。
PCでの利用の場合は以下を使用
XP~7:VirtualPC
8:クライアントHyper-V
仮想OSをマウント起動する為の仮想ディスクの拡張子はvhd。
VMware、VirtualBoxでも利用可能。

J

JAVA重要用語

JAVA 重要用語」参照

JBoss

元々オープンソースのWEBアプリケーションサーバー
現在はWildFly
商用版はBossEnterpriseApplicationPlatform
JavaEE準拠

L

LAMP

WEBアプリの構築に適したオープンソースソフトウェア群
・Linux
・Apache
・MySQL
・Perl/PHP/Python

M

MongoDB

NoSQLの一種
C++で記述されているドキュメントベースのDB

MTP

Media Transfer Protocol
PTPを拡張したプロトコル
動画や音楽ファイルを転送する目的で設計されている。

MVCアーキテクチャ

Model-View-Controlと処理の種類に応じてソースを分ける事で、
可読性を高める開発手法。
Java:JAVAサーブレット、JSP、JavaBeans
MVCアーキテクチャに基づいた技術。
Model:JavaBeans
View:jsp
Control:サーブレット

N

Node.js

JavaScriptでサーバーサイド処理を実装する為のプラットフォーム。
Chrome用。

NoSQL

非・関係モデル(リレーショナルモデル)のDBの総称
SQLを用いない。
大規模、複数のサーバーにまたがり、多量のトランザクションが発生する場合に性能が低下するという関係モデルDBの欠点がない。
MongoDB

NuGet

VisualStudioから利用できるパッケージ・マネージャ
インターネットからモジュールをダウンロード&組み込むツール
対象モジュールに関連する全てのモジュールを最新版に組み込む。
PerlにおけるCPAN
インストール方法(1):ManageNuGetPackage
対象を検索&選択して組み込み
インストール方法(2):PackageManagerConsole
PowerShellベースのコマンドラインで操作

O

O/Rマッピング

マッピング=対応付け
オブジェクト(プログラム内変数)と、リレーショナルデータベースをマッピングする。
通常、JSON、XMLファイル等、外部にマッピング定義ファイルを置き、
・オブジェクトの属性名
・テーブルの列名
を設定することによって自動的にマッピング処理を行う様なツールを用いる。
=O/Rマッパー

P

PTP

Picture Transfer Protocol
デバイスドライバー無しでUSBを介してデジタルカメラからPCへ画像を転送できる

R

REST

REpresentational State Transfer
WEBにおける通信の設計思想
・ネットワーク上のコンテンツ(リソース)が一意なURLで表される
・リソース(URL)に対してGET、POST、PUT、DELETEでリクエストを送信でき、
レスポンスをXML、JSON等で受信できる
システムの状態やセッションに依存せず、
同じURLやパラメータの組み合わせからは常に同じ結果が返される
不特定多数を対象にした、入力パラメータが少ない情報配信や検索サービス等での利用に向く
RESTful
REST形式で実装されたシステム
パラメータを指定して特定のURLにHTTPアクセスすると、
XMLメッセージを受信する様なシステムおよび呼び出しインターフェース
REST API
REST形式で設計されたAPI

RFC

RequestForComment
インターネット上に公開されているIP、TCP、HTTP等のプロトコルやインターネット関連技術の仕様文書
ここの内容が標準とされる。

S

SVF

帳票作成・出力ツール
Java、.NET、ERPから出力可能。
EXCELファイル、プリンター、PDF、画像等でも出力できる。
EXCELファイルの場合、原本に変数を定義し、プログラムから定義された変数の場所に値を出力する。

U

UUID

UniversallyUniqueIDentifier
世界中で重複しない値
セッションID等に利用する。

W

WEBアプリケーション

WEB上で動作するソフトウェア
メリット
・ユーザーはブラウザだけで操作可能
 インストール作業が不要
・ブラウザの操作は容易
 (複雑な操作はできない)
・開発側はサーバーにソフトウェアをリリースするだけで良い
 一括管理可能
デメリット
・ブラウザのバージョンが数種類ある
・ブラウザのバージョンが変わる場合がある
・ブラウザに複雑な機能を持たせるのが難しい

WAF

Web Application Framework
=WEBフレームワーク
WEBアプリケーションの開発をサポートするソフトウェア
言語によって多くの種類が開発され利用されている。
・Laravel、CakePHP(PHP)
・Play、Struts(Java)
・Ruby on Rails(Ruby)
Mojolicios(Perl)
ASP.NET WebフォームASP.NET MVC(.NET)
AngularJS(JavaScript)

Weblogic

BEA System社製アプリケーションサーバ
現在はOracleが運営
JavaEE準拠
クライアントアプリケーションからのリクエストに応じて、
事前に準備しておいたアプリケーションの実行結果をレスポンスする
Tomcatと比較すると有償でOracleのサポートが付く

WordPress

WordPress 重要用語」参照

WSDL

SOAP通信」参照

X

XAMPP

発音:ザンプ
2
Webサーバーソフトウェア:Apache
JAVAプラットフォーム:JAVA 重要用語/Tomcat
DB:MySQL
開発言語(PHP、Perl)
等をまとめたパッケージ

アーカイブ

別名:書庫
ファイルのまとめ
圧縮されているとは限らない

インタープリタ

変換されたマシン語をCPUが直接処理するコンパイラ方式と違い、
別途インストールされたソフトウェア(インタープリタ)が言語のまま1行ずつ解釈しながら実行する方式
ハードウェアベンダーにより、インタープリタはマシン毎に動作保証されている為、互換性は高い。
・コンパイラ言語に比較して遅い
・高度な処理ができない
・ソースコードのまま保存されるのでセキュリティが低い
等の問題がある
Perl、php、JavaScript等のスクリプト言語
MS-Dos、Unixシェル等のバッチ言語

永続化

ファイルやデータ等、Javaからオブジェクトとして操作した対象がJavaプログラム終了後も残る事=実データとして反映される事

エクストリーム・プログラミング

コーディング、テスト、リファクタリングを短期サイクルで行う開発手法
継続的インテグレーション、テスト駆動開発、ペアプログラミングを用いて開発を行う事を前提としている。

エンコード

文字を別の文字(コード)に変換する事。符号化
デコード

< ⇒ &lt;
> ⇒ &gt;

HTML内に「&gt;」と書くと「<」に変換されてしまう。
HTML上に文字列として「&gt;」と出力したい場合は、
「&」の部分を「&amp;」に置き換え「&amp;lt;」と書く。

URIエンコード
(URIエスケープ、URLエンコード、URLエスケープ)
本来URIで表記できない文字を「%xx」形式で16進数の文字コードとして表現する記法

オンプレミス

自社・個人で用意するインフラ環境
クラウドの反対語

仮想化

仮想化技術」参照

キャメル式

キャメルケース
←→スネーク式

system development

SystemDevelopment

コンテキスト

英訳:文脈
コンピューターの世界ではプログラムの環境、設定等が書かれた文書を指す(事が多い)。
関数であれば、引数の型や継承関係等。

三層アーキテクチャ

二層型
クライアント(プログラム)
 ↑ ↓
サーバー(データ)
※プログラムを変更する場合、全ユーザーのファイルを更新しなければならない

三層型
(1)プレゼンテーション層
(2)アプリケーション層
(3)データベース層
からなるシステム構成
ほぼWEBシステムで用いられる
クライアント、サーバシステムの発展形
(1)プレゼンテーション層
=ユーザインターフェイス層
=Webサーバ層
・ユーザ操作をアプリケーション層へ渡す。
・アプリケーション層の処理結果を表示
(2)アプリケーション層
=ビジネスロジック層
プレゼンテーション層から受けたリクエストをもとに、
・バックエンドで動作するプログラム(Java等)を実行
・データベース層と連携
(3)データベース層
各層にWEB技術を用いるのが主流
(1)Apache、Html、Jsp
(2)Tomcat、Servlet
(3)DBMS
全モジュールをサーバ側で管理できるので変更に強い。

シングルサインオン

一度のユーザ認証処理によって複数のソフトウェアシステムが利用可能になる特性。
ユーザはシステムごとにユーザIDとパスワードの組を入力する必要がなくなる。
パスワードのメモ書き、統一等、セキュリティ上の危険を防ぐ
複数のシステムから平行して利用される認証基盤を用意し、
利用者は一度の認証作業で連携するすべてのシステムにアクセスできるようにする。
統合された「唯一の」IDには非常に強力なアクセス権が与えられることになるため、
2段階認証やワンタイムパスワードなど、
単純なパスワード認証よりも厳密な認証を求めるようにする

スクラム開発

アジャイル開発で多く用いられるプロジェクトマネジメント手法
エクストリームプログラミングを補完する為に用いられる事が多い。
・デイリースクラム
毎朝の日次ミーティング
・バックログ
作業項目
・プロダクトバックログ
優先順位付きバックログ
顧客視点で何の為にそれが必要か?をすぐに思い出せる様にしておく。
(仕様変更、折衝時、開発、テスト時に必要)
・スプリントバックログ
1~4週間)の作業バックログ計画
スプリントバックログはチームで責任を持つ。

スケールアップ

CPU、ストレージ等サーバーの機能増強
(垂直スケール)

スケールアウト

サーバー台数の増加による機能増強
(水平スケール)

スタブ

複数の意味あり

(1)テストモジュール
大規模システム開発において、
プログラム → 別プログラム
という構成だが、別プログラムが未完成である場合に、
プログラム → スタブ
という風に別プログラムと同じ結果を返す為の代替プログラム
別プログラムが完成した後、スタブと入れ替えられる。
この場合、特に以下の様な分類方法もある。
呼び出す側(上位)代替プログラム:ドライバ
呼び出される側(下位)代替プログラム:スタブ

stub_driver

(2)別のプログラムを呼び出す際の仲介プログラム
この場合は(1)の例と違って上位
例:
・DLL呼び出し時のリンクプログラム
・別サーバーのサービス(プログラム)を利用する際の仲介プログラム

ステージング

本番リリース前の確認行程
動作検証の為の本番環境と同一または近い環境をステージング環境

スネーク式

スネークケース
←→キャメル式

system development

system_development

スループット

単位時間あたりの処理能力
・コンピュータが単位時間内に処理できる命令の数
・通信回線の単位時間あたりの実効転送量

総合システム運用管理ツール

大きく定義して以下の3つの機能を有するソフトウェア。
日立:JP1のシェアが大きい。
(1)ユーザー管理
ユーザー毎に他ホストに対する操作権限を詳細に管理。
異なるOSが混在する環境での管理が可能。
(2)サービス自動起動
ジョブ管理システムとして様々なプロセスサービスやジョブの起動順序を定義・実行する。
仮想環境上、クラウド上のジョブ操作等の複雑な定義が可能。
(3)イベントの収集・管理
操作ログの収集、解析

デザインパターン

再利用しやすいクラスを設計する為の指針

ダンプ

ファイルやメモリの内容を記録、あるいは表示すること。
昔はプログラムをデバッグモードで起動し、動作を途中で止めて変数の中身を見る・・・という様な事ができなかった。
バグが発生した後のメモリの状態をテキストファイルに出力し、そこから変数の状態を推理するという様なデバッグが行われていた。
今でもメモリダンプから解析するデバッグ手法もある。
UNIXではプログラム不正終了時にはメモリがダンプされる。
また、DBの内容等、プログラム完成後の証拠として出力する事もある。

デコード

符号化されたデータを復元すること。
エンコード

手続き型・非手続き型言語

手続き型言語
BASIC、JAVA等の一般的なプログラミング言語
1命令→2命令と複数の命令(手続き)を踏んで結果を取得する。
非手続き型言語
SQL:1命令=1結果で完結する。
1命令目と2命令目に関連性は無い。

ドライバ

開発時の代替プログラム
スタブ」参照

ハウジング

ユーザが所有しているサーバやネットワーク機器をデータセンター内に設置・運用するサービス

フレームワーク

一からプログラムを書く手間を省ける様に定めたルールと関数の集まり

フロントエンド・バックエンド

例:WEBで商品を購入するシステムの場合
(3)データベース
 ↑ ↓
(2)WEBデータ(ウェブサーバー)
 ↑ ↓
(1)ブラウザ
 ↑ ↓
ユーザー
ユーザーから見て最も前の(1)ブラウザがフロントエンド。
最も後ろの(3)データベースがバックエンド
例:企業LANでファイルサーバーのデータを元にクライアントPCのエクセルで一覧を表示するシステムの場合
(2)データ(ファイルサーバー)
 ↑ ↓
(1)エクセル
 ↑ ↓
ユーザー
ユーザーから見て最も前の(1)エクセルがフロントエンド。
最も後ろの(2)ファイルサーバーがバックエンド
WEBシステムの開発においては、
上記の様にDBやブラウザ等のハード、ソフトを省いて
 ~~~~~
 ↑ ↓
(2)プログラミング言語
 ↑ ↓
(1)WEBアプリケーションフレームワーク
 ↑ ↓
 ~~~~~
だけで考え、
フロントエンドを(1)WEBアプリケーションフレームワーク
バックエンドを(2)プログラミング言語
と表現する
フロントエンドでは、ログイン管理、セキュリティ管理、ユーザー管理、データベース管理等をフレームワークにデフォルトで備わっている機能を使い、
DB連携等システム固有のバックエンド処理をPHP、JAVA等でプログラミングする。
以下、言語とフレームワークの組み合わせ
・Perl-無し(またはCatalyst)
・PHP-CakePHP
・Ruby-Rails

ホスティング

サーバー保有業者がウェブサービス等を預かり、運用するサービス。
通常、サーバを複数のユーザで共有する

マイグレーション

システム、データ等を新しい環境に入れ替える事
・OS、ソフトウェアのバージョンアップ
・古いプログラミング言語、環境で開発されたソフトウェアを別の言語、環境で開発し直す事
・異なるデータベース間のデータ移行

マイクロサービスアーキテクチャ

アーキテクチャ 内容
マイクロサービスアーキテクチャ 1サービス1サーバ
モノシリックアーキテクチャ 複数サービス1サーバ
モノシリック:一体
マッピング

データベースとオブジェクトを対応させ、表や列をからオブジェクトとして操作する技術

メタ

meta:上位の
データそのものに対して、データについてのデータ(関連情報、詳細情報、要約等)
例:データ=書籍情報、メタデータ:著者、出版日、価格等
例:データ=htmlのbody部分、メタデータ:htmlのheader

メタ言語

言語を定義する言語
XML:XMLは対象のプログラム言語を定義する
SASSLESS:CSSを定義(作成)する

モーダル

Window表示時に別の作業を行えない様な状態

モードレス

Window表示時に自由に別の作業を行える様な状態

モノシリックアーキテクチャ

マイクロサービスアーキテクチャ」参照

ライブラリアン

司書、図書館員
構成管理ツール(SVN等)を使ったソースコード、ドキュメント等の管理
又は管理者

ラッパー

wrapper(包む)
汎用的に使えるように多くの引数を持つ関数があるとする。
それを特定の目的の為だけに、引数には固定値を渡す関数を別に作ると特定の目的の時だけは便利。
この特定の目的の為だけに作られた関数の事。
逆に特定の目的の為に作られた関数に対して、
ちょっと違った目的に使う為に、引数を追加し、別の機能を持たせる場合にラッパーを作る場合もある。
多言語で作られたDLLを別言語から使用する場合等

ランタイム

実行時に必要なライブラリ等のソフトウェア部品
・ランタイムライブラリ
・ランタイムパッケージ
・ランタイム
等で呼ばれる

リモートプロシージャコール

RPC
Remote Procedure Call
ネットワーク接続された別コンピュータ上でプログラムを呼び出し 実行させる手法
またはその為のプロトコル
RPCを実行した場合、結果だけを受け取る
←→LPC

リポジトリ

=repository:貯蔵庫
ソフトウェアの登録・管理場所
通常、ネットワーク上の公開ディレクトリをライブラリとし、
そこをリポジトリとして登録した人が必要なソフトウェアをダウンロードして利用する。

ループバックアドレス

自身のIPアドレスを表す数字
127.0.0.1
localhost
と同じ

ローカルプロシージャコール

LPC
Local Procedure Call
ローカルコンピュータ上のプログラムを実行する手法
←→RPC

Perl 重要用語

Perl

元CGI用記述言語
現在はサーバーで動作するアプリケーションを作成可能

Perl実行環境

CGI

辞書/CGI」参照

FastCGI

辞書/FastCGI」参照

mod_perl

(モドパール)
Webサーバー:Apache上のApacheAPIをPerlから利用する為のモジュール。
Perlプログラムを機械語に変換したあとメモリに常駐させ、
かつインタプリタ起動のオーバーヘッドをカットすることができるので高速動作が可能。

PSGI

Perl Web Server Gateway Interface Specification
サーバー処理の共通処理レイヤー
FastCGI, mod_perl等のモジュールに対する共通インターフェイス

WSGI(ウィスキー)
Python版PSGI
Rack
Ruby版PSGI

インストール

$ sudo apt-get install perl

plenv

Perlのインストール等を行うツール
複数のバージョンのPerlを管理
plenvをインストールすると自動でPerl5もインストールされる。

$ plenv versions
Perlのバージョン確認

$ plenv global ~
使用するPerlのバージョンの変更

$ plenv global system
使用するPerlをシステムPerlに変更

CPAN

Perlのライブラリ群
初めて利用する際は、コマンドライン画面から
sudo cpan
を実行するとインストールが始まる。