Linuxの基本的なディレクトリ構成

2017年9月25日月曜日

/
(ルート)
ルートディレクトリ
全ての始まり
/bin
(ビン)
cpやchmodなどのシステムを管理する上で基本コマンドが入っています
基本コマンド限定で管理するのが普通で、ソフトのインストールに付随するコマンドなどはここにインストールしない
cp、chmodなど
/boot
(ブート)
ブートに必要なファイル
ブートログやカーネルイメージ(Linuxカーネルを格納して圧縮したファイル)が保存されている
vmlinuzなど
/dev
(デブ)
デバイスファイルが配置されている
デバイス(装置〈ハードウエア〉)をファイルとして扱うUNIXの設計思想からきています
cpu、disk、ramなど
/etc
(エトセ)
ほとんどの設定ファイルが配置されます
カーネルだけでなく、追加された各ソフトの設定ファイル等が配置されているため、ファイル数が膨大で内容を把握するには骨が折れます
そのままetcディレクトリに保存するタイプと、サブディレクトリを作成してまとめるタイプがあります
my.cnf、php.ini、httpd.cnfなど
/home
(ホーム)
一般ユーザーのホームディレクトリ
通常ユーザーを追加するごとにユーザー名のディレクトリを追加します
/lib
(リブ)
/binや/sbinのコマンドを実行するのに必要なファイルが配置されています
基本的にユーザーが変更を加えることはありません
32bitと間違えないように64bit用の共用ファイルは別途「lib64」というディレクトリにあります
libc、libsslなど
/lost+found
(ロストアンドファウンド または
ロストファウンド)
システムのバックアップや復元用のファイルが格納される
意図しない再起動やシャットダウン時に使われる
通常ユーザーが操作することは無い
/media
(メディア)
リムーバブルメディアのマウントポイント
(floppy、CD、DVDなど)
/misc
(ミスク)
リムーバブルメディアのマウントポイント(その他ざまざまなデータ用)
自動でメディアをマウントするデーモンautofsで利用する
/mnt
(マウント)
一時的なマウントポイント
mediaとの違いは、一時的なファイルシステム(fstabなど)のマウントに使う点
/opt
(オプト)
パッケージ管理システムのインストール先
複数のユーザーで利用する場合追加したものをここに保存しておけば、変更点を把握しやすい
/proc
(プロック)
プロセスのIDの付いたディレクトリが配置されています
プロセス独自の情報を格納することからプロセスディレクトリと呼ばれる
各種プロセスのステータスを確認する際に利用される
psコマンド、/proc/cpuinfo、/proc/netなど
/root
(ルート)
rootユーザーのホームディレクトリ
homeがセキュリティ上の脅威にさらされてもこちらは大丈夫
という保険のディレクトリです
/sbin
(エスビン)
再起動やファイルシステムの操作などシステム管理者用のコマンドが配置されています
/bin同様、新しいコマンドの追加や変更は推奨されません
shutdown、rebootなど
/selinux
(エスイーリナックス)
セキュリティーを向上させるために利用する、Security-Enhanced Linux
rootへの権限が集中を分散することでセキュリティの向上を図る
ものらしい
CentOSではデフォルトで作成される
ディストリビューションのScientific Linux(サイエンティフィック・リナックス)とは全く関係ないので注意
/srv
(エスアールブイ)
FTP、WWWなどで利用するユーザー用のスペース
/homeとも違う、FTP専用、WWW専用のユーザー用ディレクトリ
管理者が一人の場合は利用しない
/sys
(シス)
システム関連と思いきや、動作しているプロセスやドライバを/procで管理すると膨大になるため、/sysにドライバ関連のプロセスをまとめている
しかし完全に分離されているわけでなく、現在では渾然としている
主にdeviceやmoduleに各種情報が保存されている
/tmp
(テンプ)
テンポラリデータの保存場所
メモリ上の一時ファイルを保存します
ダウンロードフォルダとして利用することもあります
再起動時に消去されます
また通常はcronで定期的に消去されます
/usr
(ユーザー)
各ユーザーが共通して利用するプログラム・ライブラリのデータ
ソースからコンパイルしたソフトなどはこちらにインストールされます
通常パッケージの追加するこのディレクトリにインストールされることが多い
etcに保存されている設定ファイルのシンボルリンクもこちらに貼られることが多い
ちなみに重要な項目が多いため、/usrのサブディレクトリについても記載します
発音は「ユーザーすらビン」といった具合に発音します
/usr/binusr版のコマンドが保存されている
一般ユーザーの利用するコマンド
別名ユーザーコマンドの保存場所
プログラムのインストールによって追加する場合はこのディレクトリが適している
openssl、php、perlなど
/usr/etcあまり利用されることはありません
通常/usrに追加されるライブラリの設定ファイルは/etcが利用されます
/usr/gamesなぜか必須のゲーム用ディレクトリです
/usr/includeC言語用ヘッダーファイルの保存場所
/usr/libusr版のライブラリ保存場所
/libと同じように64bit用に/lib64が用意されている
/usr/libexecコマンドから内部的に呼ばれる補助コマンドの保存場所
dovecotやPostfix用のコマンドなど
/usr/localシステム管理者用のローカルファイル
管理者のみが利用するライブラリなどの追加に利用する
それぞれlibやbinといった必須のディレクトリが用意されている
/usr/sbinusr版管理者用コマンド
/usr/shareアーキテクチャ(OSやソフト)に依存しないデータを配置
具体的にはマニュアルのmanや各ソフトで利用するデータベース等が保存されている
/usr/srcソースコードの保存場所
/usr/tmpusr版テンポラリファイルの保存場所
通常シンボルリンクが/tmpディレクトリに貼られている
/var
(バーorバア)
ログやキャッシュなど、可変的システムデータ(動的ファイル)
一時的なデータとしては/tmpと同じですが、こちらは再起動しても消去されずに残ります
/var/accountアカウントに関する動的ファイルを扱う
ユーザーごとにコマンドの履歴をとる/var/account/pacctなどに利用される
/var/cache一時的な記憶場所
ソフトで指定した一定の容量を超えると古いものから削除される
/var/crashシステムクラッシュ時のダンプデータ(クラッシュ時のメモリ上のデータ)保存場所
クラッシュの原因を究明するために利用されます
/var/db各ソフトで利用するデータベース情報
記述子についての情報を集めるnscdなどで利用する
/var/emptySSHで利用される
パーミッションの変更をするとログインできなくなるので注意
/var/gamesゲーム用の動的ファイル保存場所
セーブデータなど
/var/libアプリケーションの実行によって生成されるステータスに関する情報
動的に生成されるもの
/var/local/usr/local用のログファイル保存場所
/var/lock排他制御を行う場合に利用する
他のユーザーが使用中か、変更点を保存しているかなどの情報
/var/logシステム管理者御用達ログファイルの保存場所
システム、メール、インターネットのアクセスログなど、あらゆるログが保存される
安定したシステムでは、このディレクトリに関連したデータとばかり格闘することになります
/var/mailメール関連の動的ファイルを管理する
通常/var/spool/mailへのシンボルリンク
/var/namedBIND DNSサーバ用のディレクトリ
名前解決に関連するファイルが保存されている
chroot化していれば設定ファイルも
/var/nisNIS+等で利用する
/var/opt/opt用の動的ファイル保存場所
/var/preserveエディタがクラッシュした時に利用する
クラッシュ時にメールでクラッシュ前のデータを送信してくれる
/var/pwcheckユーザー認証のSASLライブラリでpwcheckを使う際に利用する
通常はsaslauthdを利用するため、あまり使われることはない
/var/run特定プロセスのプロセス番号を含んだファイル
再起動時にはクリアされる
/var/spoolスプールファイル(実行ファイル・データの一時的な保存)を保存する
処理に時間のかかるものにプロセスを取られ続けるとリソースの無駄なので処理したデータを一度保存する
印刷時の印刷データや、メールの送信データなど
/var/tmpシステム関連の一時ファイルを保存する
/tmpはメモリ上のデータを保存するもので、こちらは再起動時のデータも扱うため、データは保持されます
cronによって削除の期間は設定されています
/var/wwwApacheのデフォルトデータ保存場所
インターネット関連のディレクトリはここに収めるのが普通
かつては/home/httpdディレクトリにあった
/var/ypNISの動的ファイル保存場所
他にも/varには追加するパッケージによってディレクトリが作成されます
FTPやWebmin、racoonなど

bashの環境設定ファイルについて

2017年9月24日日曜日

コマンドが保存されているディレクトリについて

普段何気なく使っているコマンドですが、実はさまざまなディレクトリに保存されています。
/bin汎用(基本)コマンド
/sbin管理者用コマンド
/usr/binアプリケーションで利用する汎用(基本)コマンド
/usr/sbinアプリケーションで利用する管理者用コマンド
/usr/local/bin追加したソフトやパッケージ用のコマンド

bashの環境設定ファイルについて

普段パスを指定すること無くコマンドを利用できるのは、ログイン時にコマンドへのパスが記述された設定ファイルを読み込んでいるからです。
以下の順序で設定ファイルを読み込んでいます。

ログイン時

1.「/etc/profile」の読み込み
このファイルはログイン時に読み込む全ユーザー共通の設定です。
ここで基本的なコマンドにパスを通しています。
2.「.bash_profile」の読み込み
続いてユーザーのhomeディレクトリにある「.bash_profile」を読み込みます。
それがない場合は「.bash_login」。
それもない場合は「.profile」。
という順序でユーザー個別の設定を読み込みます。
なぜか3つも用意されていますが、ディストリビューションによって優先順位や有効なファイルが違うため、使い分ける必要があります。
3.「.bashrc」の読み込み
続いて「.bashrc」を読み込みます。
このファイルはbashが読み込まれる度に更新されます。
bash」とコマンドを打てば設定ファイルへの変更が反映されます。
4.「/etc/bashrc」の読み込み
このファイルにはシステム全体の関数とエイリアスに関する設定が記述されています。
ここでデフォルトのプロンプトを決める「PS1」の設定などをしています。
ここまでで設定は終了です。

ログアウト時

「.bash_logout」の読み込み
最後、ログアウト時にhomeディレクトリにある「.bash_logout」が読み込まれます。
通常画面をクリアする「/usr/bin/clear」が記述されています。

パスの確認

現在のユーザーのパスは以下のコマンドで確認できます。
echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/www/bin
この表示は「:(コロン)」区切りで以下のディレクトリにパスが通っていることを表しています。
  • /usr/kerberos/bin
  • /usr/local/bin
  • /bin
  • /usr/bin
  • /home/www/bin

環境変数をリセットする際の注意

ユーザーを変更する際に「su」コマンドを使うと思いますが、「su」のあとに「-(ハイフン)」を付けることで、環境変数やホームディレクトリがリセットされます。
一般ユーザーの環境変数を保ったままrootユーザーにログインする
# su
一般ユーザーからrootユーザーの環境変数でログインする
# su -
一般ユーザーの環境変数でログインする
# su - hoge
特に一般ユーザーからrootユーザーに変更する際に「-(ハイフン)」を付ける

「.(ドット)」で始まるファイルの表示

.(ドット)」で始まるファイルは隠しファイルなのでlsコマンドだけだと表示されません。
-a」オプションを付けると表示されます。
$ ls -a
.   .bash_history  .bashrc
..  .bash_profile  .lesshst  Maildir

「.bash_profile」「.bashrc」の内容を確認

基本的に「/etc/profile」と「/etc/bashrc」は全ユーザー共通で利用する設定ファイルで書き換えるのは推奨されていません。
各ユーザーごとに異なる設定にする場合は各ユーザーのhomeディレクトリにある「.bash_profile(バッシュプロファイル)」もしくは「.bashrc(バッシュアールシー)」を編集します。
.bash_profile」はログイン時に1度だけ読み込まれ、「.bashrc」はbashを起動するたびに読み込まれます。
新しい環境変数を設定する場合、特に理由が無ければ「.bash_profile」にまとめて記述するのがお勧めです。
「.bash_profile」の内容
1
2
3
4
5
6
7
8
9
10
11
12
13
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin
 
export PATH
unset USERNAME
4~6行目の条件分岐はhomeディレクトリに「.bashrc」があったら読み込む。
10行目はhomeディレクトリに「bin」ディレクトリがあったら読み込む。
12行目はパスに関する記述を書き出す(有効にする)設定。
13行目はユーザーネーム変数の開放。

「.bashrc」の内容
1
2
3
4
5
6
7
8
# .bashrc
 
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 
# User specific aliases and functions
4~6行目で「/etc/bashrc」が存在する場合に「/etc/bashrc」を読み込む。
という指定だけです。

カスタムプロンプトについて

プロンプトの表示が急に「-bash-3.2$」という表示になって困ったことはありませんか?そんな時はhomeディレクトリにある「.bash_profile」の設定を確認します。
よくあるコマンドプロンプト
[root@example ~]#
.bash_profile」に「PS1」と追記することでオリジナルのプロンプトを表示することができます。
現在の設定がどのようになっているかは以下のコマンドで確認できます。
# echo $PS1
[¥u@¥h ¥W]¥$
ちなみに「PS1」というのはプライマリプロンプトを表しています。
PS1」だけでなく「PS2」もあります。
これは対話的なコマンドで継続して入力する際(telnetなど)に画面に現れる「>」の表記を変更することができます。
PS3はselect文のプロンプト。
PS4はbashのデバックモードのプロンプトです。
.bash_profile」に追記する際は以下のように記述
例えば「.bash_profile」に以下のように追記すると日時が表示されます。
PS1="[¥d ¥t ¥u@¥h:¥w ] $ "
それぞれ解説すると 「\u」がユーザ名 「\h」がホスト名 「\W」が現在のディレクトリ 「\$」が一般ユーザー時に「$」、ルートユーザー時に「#」 という指定になっています。
編集を終えてプロンプト画面に移行しても、すぐには反映されません。
以下のコマンドで設定を有効にする必要があります(.bashrcに追記した場合はsource .bashrcとします)
# source .bash_profile

オプション一覧
\aベル(ビープ音)をならします(ASCII のベル文字 07)
\d曜日 月 日の形式の日付
\hホスト名(最初の . までの名前)
\Hホスト名
\n改行
\r復帰
\sシェル名(標準だと -bash が表示)
\t時刻 HH:MM:SS 形式(24時間) H = Hour = 時、M = Minutes = 分、S = Seconds = 秒
\T時刻 HH:MM:SS 形式(12時間)
\@時刻 am/pm をつけたもの
Lang=Jaの場合 HH:MM (午前|午後)となる。
\u現在のユーザー名
\vbash のバージョン
\Vbash のバージョン・リリース番号など詳細
\w現在のディレクトリ(フルパス)
\W現在のディレクトリ名
\!コマンドのヒストリー番号
\#コマンドのコマンド番号(ログイン後何回実行したか)
\$UID が 0 であれば『 # 』、それ以外は『 $ 』
\\バックスラッシュ
\[表示されない文字列(エスケープシーケンス/端末制御シーケンス)を埋め込む
\]表示されない文字列の終わり

日付を追加したカスタムプロンプト
.bash_profileに以下を追記
PS1="[¥d ¥t ¥u@¥h:¥w ] $ "
# 表示例)
[金 12月 28 17:45:03 hoge@example:~ ] $
コマンドのヒストリー番号、ホスト名、カーネルのバージョン、コマンドの終了ステータスを表示
環境の異なる複数のプロンプトを開いて使いこなしている場合に便利
kernel_version=$(uname -r)
PS1="¥!|¥h|$kernel_version|¥$?> "
# 表示例)
5|example.com|2.6.18-371.6.1.el5|0>
先頭の5ヒストリー番号
ホームディレクトリの「.bash_history」で参照できる。
末尾の0終了ステータス
正常終了の時0異常終了の時0以外の数字となる。
コマンドによって異常時の終了ステータスは異なるので注意。

カスタムプロンプトのカラー設定

プロンプトのカラーはANSIエスケープシーケンスという形式で表記します
書式)赤い文字を表示する場合
¥e[0;30m
それぞれの要素は以下の様な意味を持ちます。
\e[」制御シーケンス。
いわゆるエスケープ文字。
他にも「\033」とすることもできます。
0」引数。
(文字装飾を指定) 「;」区切り文字 「31」引数。
(文字色) 「m」終了文字。
背景色を指定するには区切り文字をと引数を1つ増やします。
書式)青い背景に赤い文字を表示する場合
¥e[0;30;44m
カラー表示を終了するエスケープシーケンスという記述方法もあります。
この記述移行、カラーは初期化されデフォルトの表示になります。
書式)エスケープシーケンス
¥e[0m

カラーが定義
文字装
番号表示例説明
0hogeAll attributes off(装飾なし)
1hogeBold on(太字)
4hogeUnderscore (on monochrome display adapter only)(下線)
5hogeBlink on(点滅。
仮想コンソールの多くは実際には点滅しません)
7hogeReverse video on(反転文字。
いわゆる選択状態)
8hogeConcealed on(背景色で塗りつぶす)

文字色
番号表示例説明
30hogeBlack
31hogeRed
32hogeGreen
33hogeYellow
34hogeBlue
35hogeMagenta
36hogeCyan
37hogeWhite

背景色
番号表示例説明
40hogeBlack
41hogeRed
42hogeGreen
43hogeYellow
44hogeBlue
45hogeMagenta
46hogeCyan
47hogeWhite

Arch Linuxのwiki」にあるカラーの定義 (「.bash_profile」に追記して利用)
txtblk='¥e[0;30m' # Black - Regular
txtred='¥e[0;31m' # Red
txtgrn='¥e[0;32m' # Green
txtylw='¥e[0;33m' # Yellow
txtblu='¥e[0;34m' # Blue
txtpur='¥e[0;35m' # Purple
txtcyn='¥e[0;36m' # Cyan
txtwht='¥e[0;37m' # White
bldblk='¥e[1;30m' # Black - Bold
bldred='¥e[1;31m' # Red
bldgrn='¥e[1;32m' # Green
bldylw='¥e[1;33m' # Yellow
bldblu='¥e[1;34m' # Blue
bldpur='¥e[1;35m' # Purple
bldcyn='¥e[1;36m' # Cyan
bldwht='¥e[1;37m' # White
unkblk='¥e[4;30m' # Black - Underline
undred='¥e[4;31m' # Red
undgrn='¥e[4;32m' # Green
undylw='¥e[4;33m' # Yellow
undblu='¥e[4;34m' # Blue
undpur='¥e[4;35m' # Purple
undcyn='¥e[4;36m' # Cyan
undwht='¥e[4;37m' # White
bakblk='¥e[40m'   # Black - Background
bakred='¥e[41m'   # Red
bakgrn='¥e[42m'   # Green
bakylw='¥e[43m'   # Yellow
bakblu='¥e[44m'   # Blue
bakpur='¥e[45m'   # Purple
bakcyn='¥e[46m'   # Cyan
bakwht='¥e[47m'   # White
txtrst='¥e[0m'    # Text Reset

上記定義を利用した例
PS1="$txtred[$txtblu¥u@$txtgrn¥h ¥W$txtred]¥$ $txtrst"
ルートユーザーと一般ユーザーで色を分けるとひと目で分かるため便利です。
一般ユーザー(みどり)
PS1="$bldgrn[¥u@¥h ¥W]¥$ $txtrst"
ルートユーザー(あか)
PS1="$bldred[¥u@¥h ¥W]¥$ $txtrst"

エイリアスの設定

.bash_profile」にエイリアスの設定を書いておくと、よく使うコマンドを省略できるので便利です。
1
alias  name=command
とすると有効になります。
よく定義されているのが
1
alias ls='ls -F --color=auto'
というリスト表示をカラフルに表示する設定です。
エイリアスの確認
設定したエイリアスを確認するには以下のコマンドを打ちます。
# alias
エイリアスを無効にする
エイリアスを無効にするには「\」を付けてコマンドを打ちます。
# ¥ls

設定を有効にする

設定を有効にするには再度ログインし直すか、以下のコマンドで有効になります。
$ source .bash_profile

Linuxの基礎知識

LAMP環境

LAMP(ランプ)環境」とは、Linuxの「L」。
Webサーバを構築するApacheの「A」。
データベースを構築するMySQLの「M」。
Webでよく利用されるPHPPerlPythonの「P」と、それぞれのソフトの頭文字を取ったものです。
Linuxでサーバ環境を整える際には、これらのソフトが必要になることが多いので、各ディストリビューションからLAMP環境を簡単に構築できる仕組みが提供されています。

パッケージ管理システム

Linuxでは必要なソフトを選択してインストールするのが一般的です。
しかしソフトはネット上に分散して置かれ、バージョンによって整合性が異なり、インストール時にオプションを指定したりと、運用には多くの専門知識が必要になります。
そうした煩雑なインストール作業を一手に担ってくれるのが「パッケージ管理システム」です。
WindowsやMacでいう、「インストーラー、アンインストーラー」のような役割を果たします。

ソフトの依存関係について

Linuxでソフトのインストールをする際に気をつけなければいけないのが、「依存関係(dependencies)」です。
依存関係とはあるソフトの動作に、別のソフトの機能が必要な関係をいいます。
そのようなソフトは単独で動作しないため、「依存関係にあるソフト」も同時にインストールする必要があります。
特定のWebサイトの閲覧には、ブラウザとプラグインが必要。という関係と同じです。

apt-get

書式:
apt-get [スイッチ] [オプション] [パッケージ]

apt-getコマンドは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド

スイッチ
updateAPTライブラリのインデックスを更新
更新先は/etc/apt/sources.listに記述されています
upgradeシステムにインストールされているパッケージを最新バージョンにします
パッケージを新規にインストール・削除する必要がないパッケージのみが最新バージョンにアップグレードされます
dist-upgradeパッケージを新規にインストール・削除する必要の有無に関わらずパッケージをが最新バージョンにアップグレードします
ディストリビューションのアップグレード時に利用します
install パッケージ指定したパッケージをインストールします
remove パッケージ指定したパッケージを削除します

オプション
-dパッケージのダウンロードのみを行います。展開・インストールは行いません
-fパッケージの依存性がおかしくなった場合、その修復を試みます
-qquietモードです。進捗状況を表示しません
-uアップデートするパッケージの一覧を表示します
-sインストールするパッケージの一覧を表示します
-yインタラクティブ(ユーザーへの問い合わせ)に「yes」と答えます

使用例
ATPライブラリを最新版へ更新し(update)、インストールしているパッケージを最新バージョンにアップデート(upgrade)します。apt-getコマンドで最もよく利用する方法のひとつ
# apt-get update
# apt-get upgrade

dist-upgradeスイッチを使って、Debian 6.0(squeeze)から7.0(wheezy)へアップグレードします。

# apt-get dist-upgrade

APTライブラリを使って、C言語のコンパイラであるgccをインストールします。

# apt-get install gcc

便利なテキストエディタ「Emacs」もコマンド一発でインストールすることができます。

# apt-get install emacs


rpm

旧称「Red Hat Package Maneger」。
名前からわかるようにRed Hat系のディストリビューションで採用されたシステムです。
rpmパッケージで提供されたソフトを、簡単な「rpmコマンド」でインストールすることができます。
他にも、アップデート、パッチの適用、wgetコマンドを利用すれば、ネット上のrpmファイルをダウンロードしてインストールすることもできます。

yum

書式:
yum [オプション] [コマンド] [パッケージ]
yumコマンドは、Yellow Dog Linuxのディストリビューション(CentOSやFedora)のパッケージ管理システムであるYum(Yellowdog Updater Modified)を利用してパッケージを操作・管理するコマンド

スイッチ
info パッケージ指定したパッケージの詳細情報を表示します
listインストール可能なパッケージ情報を表示します
install パッケージ指定したパッケージをインストールします
update パッケージ指定したパッケージをアップデートします
パッケージを指定せずにコマンドを実行した場合は、インストールされている全てのパッケージがアップデートされます
remove パッケージ指定したパッケージを削除します
erase パッケージ指定したパッケージを削除します。removeと同義
search 文字列指定した文字列を含むパッケージ一覧を表示します

使用例
システムにインストールされている全てのパッケージを更新
# yum update
システムにインストールされているパッケージを表示します。表示結果をパイプ(|)に渡して、moreコマンドを実行すると便利
# yum list installed | more
パッケージ「emacs」を検索してみる
# yum search emacs
パッケージ「emacs」の詳細情報表示
# yum info emacs
パッケージ「emacs」をインストール
# yum install emacs

リポジトリ

それぞれのパッケージファイルを保持しているディレクトリやサイトのこと。
通常リポジトリというと外部サーバに保存されたパッケージ群を指しますが、自社サーバ内やDVDなどのメディアをリポジトリとして利用することもできます。

外部リポジトリ

リポジトリにはディストリビューションによって公式にサポートされた「公式リポジトリ」と、非公式の「外部リポジトリ」があります。
通常は公式のリポジトリを利用しますが、最新のバージョンや、特殊な用途のソフトを導入するには「外部リポジトリ」が必要になります。
そのための外部リポジトリが有志により管理されています。
その中でも有名なのが 「EPELリポジトリ」 「IUSリポジトリ」 「REMIリポジトリ」 「DAGリポジトリ」などです。
これらを追加することでyumコマンドでインストールできるソフトを拡張できます。
そのため別名、「拡張パッケージ」とも呼ばれています。
外部リポジトリの追加は、良いことばかりかというと、そうでもありません。
公式のものは厳格に依存関係のチェックや、脆弱性への対応を行っています。
しかし、外部のものはyumを利用して依存関係のチェックをしても、不具合の出るものがあります。
また脆弱性が見つかった場合の対応も、公式に比べ遅れることがあります。

クライアントとサーバ

普通クライアントというと取引先を想像しますが、サーバ管理においては、クライアントは「サービスを受ける側」を指します。
対してサーバは「サービスを提供する側」を指します。
自分のパソコン」と「VPSなどで提供されたサーバ」の関係なら、「自分のパソコン」がクライアント、「VPSなどで提供されたサーバ」がサーバです。
VPSなどで提供されたサーバ」と「サービスを利用する外部サーバ」の関係なら、「VPSなどで提供されたサーバ」がクライアントで、「サービスを利用する外部サーバ」がサーバになります。
このように相対的な関係になっているので、解説を読む時は注意してください。

ローカルとリモート

こちらも相対的な関係を示し、ローカルとはサーバやPCなどの「内部」を指し、リモートは「外部」を指します。
サーバにとって「ローカル環境」とは、「サーバ内部」を指します。
反対にクライアント(自分のパソコン)側から見れば「サーバ内部」は「リモート環境」となります。
外部(遠隔地)の環境をコントロールすることを、リモートコントロールといいます。

デーモン、パッケージ

Linuxではバックグラウンドで動作しているソフトウェアのことを「デーモン(Daemon)」と呼びます。
有名なhttpdやsshdの「d」はデーモンという意味です。
複数の機能を統合して1つのソフトにまとめているので、ソフトのことを代わりに「パッケージ」ということもあります。

ディレクトリとフォルダ

Linuxではフォルダのことをディレクトリと呼ぶのが一般的です。
Windowsでは「スタートメニューからプログラムにある○○」もしくはパスで「C:\Program File\…」といった表現をします。
Linuxではルートディレクトリ(一番上のディレクトリ)から「/var/www/index.html」というように指定します。
これは「varディレクトリの中にあるWWWディレクトリにあるindex.htmlというファイル」という意味です。

拡張子について

Linuxではすべてのファイルがテキストベースで作られているため、決まった拡張子がありません。
例えば設定ファイルの場合、ファイルのパスさえ間違えていなければ、拡張子が「txt」でも「ini」でも「cnf」でも全く同じ動作をします。
しかし無秩序に拡張子をつけると間違いの元なので、通常はWindowsやMacで使われる拡張子を付けます。

アカウントについて

Linuxではマルチユーザーを想定してシステムが構築されています。
そのため、ユーザーごとの特徴を把握して、適宜切り替える必要があります。
ユーザーには以下のタイプがあります。

システム管理者

システム管理者として「root(ルート)」というユーザーが定義されています。
rootユーザーのことを別名「スーパーユーザー」とも呼びます。
他にも「システム管理者」と呼ばれることもあります。
ややこしい限りですが、どの呼び方でも同じrootユーザーを示すので注意してください。

一般ユーザー、システムアカウント

システム管理者以外のユーザーを「一般ユーザー」といいます。
またソフトだけが利用する専用のアカウントを「システムアカウント」といいます。
webサーバであれば「apache」、メールソフトでいえば「postfix」など。

firefox addon

2017年9月23日土曜日

1.Hide Caption Titilebar Plus
タイトルバーを隠す

2.stylish
ユーザスタイルシートの管理

サイドバーを左にするcss
#browser {
-moz-box-direction: reverse;
}
#sidebar-box {
overflow-x: hidden !important;
}
#sidebar {
min-width: 0px !important;
max-width: none !important;
overflow-x: hidden !important;
}

webフォント
* {
font-family: "Source Han Sans", sans-serif !important;
}

iframe{
display:none !important;
}
/*全てのiframeを非表示にする。*/

@-moz-document domain(google.com), domain(google.co.jp)
/*「google.com」と「google.co.jp」のドメインのところのみに適用する。
増やしたい場合は、domain(○○○)をコンマで追加していけばOK*/ {
iframe:not([style*="display:"])
/*style属性に「display:」を含まないもの、つまり表示形式を指定していないものにを非表示
これで一応、ホワイトリストにはなるんじゃないかと思うけどね。*/
{
display:inline !important;}
}

/*Yahoo HPにある余計なもの全部*/
#sub>div[style="min-width: 350px; min-height: 197px;"],#rma-pdv,#topImpactR,#topImpactL,div[style="position: absolute; right: 0px; width: 950px; height: 600px; background: rgb(0, 0, 0) none repeat scroll 0% 0%; opacity: 1; transition: all 0.5s ease 0s;"],#brandpanel,#announce,#disasterbox,ul.symbol,#realtime,#selectionR,#companybox,#cgmboxR,#eventPromo,#event,#yjidbox,#qurioRanking,#ultra,#qurioRecommend,#video,#commercebox,#cb,#bpad1481887180{display:none;}
#YPAbeltchild{display:none !important;}
/*Yahooブログに出てくる広告*/
#ydn-top{display:none;}

.insentence-adsense{
display: none;
}

firefox56で音を出すには「PulseAudio」が必要になった
その対策に
アドオン:Watch with MPV(実際の拡張機能名はmpv-youtube-dl-binding)で処理
MPV
youtube-dl

Firefoxが自動でアップデートするのを停止
/root/.mozilla/firefox/u0gdk59s.default/prefs.js に下記追加
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.url", "");
user_pref("app.update.url.override", "");
user_pref("browser.search.update", false);

chromium browser 60 i386 日本語入力

2017年9月3日日曜日

chromium browser 60 i386
vivaldi stable 1.11.917.43-1 i386
puppy linuxの日本語入力 scim が使えない
日本語入力ができない

xim で日本語入力ができるので
chromium browser 60 i386
exec env GTK_IM_MODULE="xim" /usr/lib/chromium-browser/chromium-browser --user-data-dir=/root/.config/chromium --no-sandbox -disable-infobars --ppapi-flash-path=/usr/lib/adobe-flashplugin/libpepflashplayer.so --ppapi-flash-version=26.0.0.137 --disk-cache-size=10000000 --media-cache-size=10000000 --allow-outdated-plugins "$@"

vivaldi stable 1.11.917.43-1 i386
exec env GTK_IM_MODULE="xim" /opt/vivaldi/vivaldi-bin --no-sandbox "$@"

GTK_IM_MODULE="scim"
GTK_IM_MODULE="scim-bridge"
GTK_IM_MODULE="xim"
いずれか

Ubuntuで古いKernelイメージの削除

1.現在実行中のカーネルを確認
$ uname -r
3.13.0-79-generic

2.インストール済みカーネルイメージの確認
$ dpkg --get-selections | grep image

genisoimageinstall
libcupsimage2:amd64install
libxcb-image0:amd64install
linux-image-3.13.0-24-genericinstall
linux-image-3.13.0-68-genericinstall
linux-image-3.13.0-70-genericinstall
linux-image-3.13.0-71-genericinstall
linux-image-3.13.0-73-genericinstall
linux-image-3.13.0-74-genericinstall
linux-image-3.13.0-76-genericinstall
linux-image-3.13.0-77-genericinstall
linux-image-3.13.0-79-genericinstall
linux-image-extra-3.13.0-24-genericinstall
linux-image-extra-3.13.0-68-genericinstall
linux-image-extra-3.13.0-70-genericinstall
linux-image-extra-3.13.0-71-genericinstall
linux-image-extra-3.13.0-73-genericinstall
linux-image-extra-3.13.0-74-genericinstall
linux-image-extra-3.13.0-76-genericinstall
linux-image-extra-3.13.0-77-genericinstall
linux-image-extra-3.13.0-79-genericinstall
linux-image-genericinstall

3.古いカーネルを削除
単品での削除
$ sudo apt-get remove linux-image-3.13.0-24-generic
複数同時での削除
$ sudo apt-get remove linux-image-3.13.0-{24,68,70}-generic
上記で削除できなかったら強制削除
$ sudo apt-get -f install
$ sudo apt-get autoremove

4.削除作業終了後 grubのアップデート
$ sudo apt-get autoremove
$ sudo update-grub


/bootの容量が100%になってしまうと、apt-get等のコマンドに失敗する

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates