/ (ルート) | ルートディレクトリ 全ての始まり |
/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/bin | usr版のコマンドが保存されている 一般ユーザーの利用するコマンド 別名ユーザーコマンドの保存場所 プログラムのインストールによって追加する場合はこのディレクトリが適している openssl、php、perlなど |
/usr/etc | あまり利用されることはありません 通常/usrに追加されるライブラリの設定ファイルは/etcが利用されます |
/usr/games | なぜか必須のゲーム用ディレクトリです |
/usr/include | C言語用ヘッダーファイルの保存場所 |
/usr/lib | usr版のライブラリ保存場所 /libと同じように64bit用に/lib64が用意されている |
/usr/libexec | コマンドから内部的に呼ばれる補助コマンドの保存場所 dovecotやPostfix用のコマンドなど |
/usr/local | システム管理者用のローカルファイル 管理者のみが利用するライブラリなどの追加に利用する それぞれlibやbinといった必須のディレクトリが用意されている |
/usr/sbin | usr版管理者用コマンド |
/usr/share | アーキテクチャ(OSやソフト)に依存しないデータを配置 具体的にはマニュアルのmanや各ソフトで利用するデータベース等が保存されている |
/usr/src | ソースコードの保存場所 |
/usr/tmp | usr版テンポラリファイルの保存場所 通常シンボルリンクが/tmpディレクトリに貼られている |
/var (バーorバア) | ログやキャッシュなど、可変的システムデータ(動的ファイル) 一時的なデータとしては/tmpと同じですが、こちらは再起動しても消去されずに残ります |
/var/account | アカウントに関する動的ファイルを扱う ユーザーごとにコマンドの履歴をとる/var/account/pacctなどに利用される |
/var/cache | 一時的な記憶場所 ソフトで指定した一定の容量を超えると古いものから削除される |
/var/crash | システムクラッシュ時のダンプデータ(クラッシュ時のメモリ上のデータ)保存場所 クラッシュの原因を究明するために利用されます |
/var/db | 各ソフトで利用するデータベース情報 記述子についての情報を集めるnscdなどで利用する |
/var/empty | SSHで利用される パーミッションの変更をするとログインできなくなるので注意 |
/var/games | ゲーム用の動的ファイル保存場所 セーブデータなど |
/var/lib | アプリケーションの実行によって生成されるステータスに関する情報 動的に生成されるもの |
/var/local | /usr/local用のログファイル保存場所 |
/var/lock | 排他制御を行う場合に利用する 他のユーザーが使用中か、変更点を保存しているかなどの情報 |
/var/log | システム管理者御用達ログファイルの保存場所 システム、メール、インターネットのアクセスログなど、あらゆるログが保存される 安定したシステムでは、このディレクトリに関連したデータとばかり格闘することになります |
/var/mail | メール関連の動的ファイルを管理する 通常/var/spool/mailへのシンボルリンク |
/var/named | BIND DNSサーバ用のディレクトリ 名前解決に関連するファイルが保存されている chroot化していれば設定ファイルも |
/var/nis | NIS+等で利用する |
/var/opt | /opt用の動的ファイル保存場所 |
/var/preserve | エディタがクラッシュした時に利用する クラッシュ時にメールでクラッシュ前のデータを送信してくれる |
/var/pwcheck | ユーザー認証のSASLライブラリでpwcheckを使う際に利用する 通常はsaslauthdを利用するため、あまり使われることはない |
/var/run | 特定プロセスのプロセス番号を含んだファイル 再起動時にはクリアされる |
/var/spool | スプールファイル(実行ファイル・データの一時的な保存)を保存する 処理に時間のかかるものにプロセスを取られ続けるとリソースの無駄なので処理したデータを一度保存する 印刷時の印刷データや、メールの送信データなど |
/var/tmp | システム関連の一時ファイルを保存する /tmpはメモリ上のデータを保存するもので、こちらは再起動時のデータも扱うため、データは保持されます cronによって削除の期間は設定されています |
/var/www | Apacheのデフォルトデータ保存場所 インターネット関連のディレクトリはここに収めるのが普通 かつては/home/httpdディレクトリにあった |
/var/yp | NISの動的ファイル保存場所 他にも/varには追加するパッケージによってディレクトリが作成されます FTPやWebmin、racoonなど |
Linuxの基本的なディレクトリ構成
bashの環境設定ファイルについて
コマンドが保存されているディレクトリについて
普段何気なく使っているコマンドですが、実はさまざまなディレクトリに保存されています。/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 |
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 |
という指定だけです。
カスタムプロンプトについて
プロンプトの表示が急に「-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 | 現在のユーザー名 |
\v | bash のバージョン |
\V | bash のバージョン・リリース番号など詳細 |
\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
カラーが定義
文字装
番号 | 表示例 | 説明 |
---|---|---|
0 | hoge | All attributes off(装飾なし) |
1 | hoge | Bold on(太字) |
4 | hoge | Underscore (on monochrome display adapter only)(下線) |
5 | hoge | Blink on(点滅。 仮想コンソールの多くは実際には点滅しません) |
7 | hoge | Reverse video on(反転文字。 いわゆる選択状態) |
8 | hoge | Concealed on(背景色で塗りつぶす) |
文字色
番号 | 表示例 | 説明 |
---|---|---|
30 | hoge | Black |
31 | hoge | Red |
32 | hoge | Green |
33 | hoge | Yellow |
34 | hoge | Blue |
35 | hoge | Magenta |
36 | hoge | Cyan |
37 | hoge | White |
背景色
番号 | 表示例 | 説明 |
---|---|---|
40 | hoge | Black |
41 | hoge | Red |
42 | hoge | Green |
43 | hoge | Yellow |
44 | hoge | Blue |
45 | hoge | Magenta |
46 | hoge | Cyan |
47 | hoge | White |
「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でよく利用されるPHP、Perl、Pythonの「P」と、それぞれのソフトの頭文字を取ったものです。
Linuxでサーバ環境を整える際には、これらのソフトが必要になることが多いので、各ディストリビューションからLAMP環境を簡単に構築できる仕組みが提供されています。
パッケージ管理システム
Linuxでは必要なソフトを選択してインストールするのが一般的です。しかしソフトはネット上に分散して置かれ、バージョンによって整合性が異なり、インストール時にオプションを指定したりと、運用には多くの専門知識が必要になります。
そうした煩雑なインストール作業を一手に担ってくれるのが「パッケージ管理システム」です。
WindowsやMacでいう、「インストーラー、アンインストーラー」のような役割を果たします。
ソフトの依存関係について
Linuxでソフトのインストールをする際に気をつけなければいけないのが、「依存関係(dependencies)」です。依存関係とはあるソフトの動作に、別のソフトの機能が必要な関係をいいます。
そのようなソフトは単独で動作しないため、「依存関係にあるソフト」も同時にインストールする必要があります。
特定のWebサイトの閲覧には、ブラウザとプラグインが必要。という関係と同じです。
apt-get
書式:apt-get [スイッチ] [オプション] [パッケージ]
apt-getコマンドは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド
スイッチ
update | APTライブラリのインデックスを更新 更新先は/etc/apt/sources.listに記述されています |
upgrade | システムにインストールされているパッケージを最新バージョンにします パッケージを新規にインストール・削除する必要がないパッケージのみが最新バージョンにアップグレードされます |
dist-upgrade | パッケージを新規にインストール・削除する必要の有無に関わらずパッケージをが最新バージョンにアップグレードします ディストリビューションのアップグレード時に利用します |
install パッケージ | 指定したパッケージをインストールします |
remove パッケージ | 指定したパッケージを削除します |
オプション
-d | パッケージのダウンロードのみを行います。展開・インストールは行いません |
-f | パッケージの依存性がおかしくなった場合、その修復を試みます |
-q | quietモードです。進捗状況を表示しません |
-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
タイトルバーを隠す
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 日本語入力
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イメージの削除
$ uname -r
3.13.0-79-generic
2.インストール済みカーネルイメージの確認
$ dpkg --get-selections | grep image
genisoimage | install |
libcupsimage2:amd64 | install |
libxcb-image0:amd64 | install |
linux-image-3.13.0-24-generic | install |
linux-image-3.13.0-68-generic | install |
linux-image-3.13.0-70-generic | install |
linux-image-3.13.0-71-generic | install |
linux-image-3.13.0-73-generic | install |
linux-image-3.13.0-74-generic | install |
linux-image-3.13.0-76-generic | install |
linux-image-3.13.0-77-generic | install |
linux-image-3.13.0-79-generic | install |
linux-image-extra-3.13.0-24-generic | install |
linux-image-extra-3.13.0-68-generic | install |
linux-image-extra-3.13.0-70-generic | install |
linux-image-extra-3.13.0-71-generic | install |
linux-image-extra-3.13.0-73-generic | install |
linux-image-extra-3.13.0-74-generic | install |
linux-image-extra-3.13.0-76-generic | install |
linux-image-extra-3.13.0-77-generic | install |
linux-image-extra-3.13.0-79-generic | install |
linux-image-generic | install |
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等のコマンドに失敗する