Linux は世界で最も普及しているオープンソースのオペレーティングシステムの1つで、最も広く使用されています。この記事では、Linuxの魅力を詳しく説明します。
Linuxを使用するためには、有料のプログラムを購入する必要はありません。Linuxを使用するためには、OSを無料でダウンロードしてインストールするだけです。そのため、Linuxは、他のOSと比較してかなり安価です。
Linuxは、初心者にもわかりやすく使い勝手の良いインターフェイスを提供しています。さらに、Linuxを使用するためには、高度なコマンドを知っておく必要がありません。
Linuxは、他のオペレーティングシステムよりも高い精度とパフォーマンスを提供しています。これは、Linuxに搭載されているコードを最適化するために多くの時間がかかっているためです。
Linuxは、セキュリティが強固なため、ウイルスやハッキングから保護されています。Linuxは、変更を加えるために特別な権限を持つ人が必要なため、不正な操作をすることはできません。
Linuxは、さまざまな種類のアプリケーションを簡単にインストールできるため、ユーザーは膨大な量のタスクを実行できます。さらに、Linuxは、Webサーバーとして使用することもできます。
以上のように、Linuxは多くの人々にとって便利であり、魅力的なオペレーティングシステムです。Linuxを使用することで、多くのメリットを得ることができます。
[itemlink post_id=”3491″]
Linuxにはコマンドの使い方を調べるためのオンラインマニュアルが含まれています。オンラインマニュアルを表示するためにはmanコマンドを使います。コマンドのオプションについて調べるためにはhelpオプションも使えます。helpオプションについては以下の記事で解説しています。
書式
man コマンド名
オプション
-k 検索単語
“検索単語”が含まれるエントリ一覧を表示します。
$ man ls
LS(1) LS(1)
名前
ls, dir, vdir - ディレクトリの中身をリスト表示する
書式
ls [OPTION]... [FILE]...
(略)
-l ファイルのモード・リンクの数・所有者名・グループ名・ (バイト単位
の) サイズ・タイムスタンプ・名前を (1 列形式で) 書き出す。デフォ
ルトでは、表示されるタイムスタンプは最終修正時刻である。オプショ
ン -c と -u のときは、他の 2 つのタイムスタンプを選択する。デ バ
イススペシャルファイルの場合、通例として、サイズを表示する場所が
デバイスのメジャー番号とマイナー番号に置き換えられる。
(略)
上記実行例ではlsコマンドのマニュアルを表示しています。
-lオプションでタイムスタンプなどの詳細情報を表示、-c、-uオプションでタイムスタンプの選択ができることなどがわかります。そのほかにも以下の項目があります。
コマンドに関する説明
コマンドで利用可能なオプション。オプションの指定によってコマンドの動作を変えることができます。
このコマンドに関連しているコマンドやほかの機能など。ここに列挙されている内容をmanコマンドで調べることもできます。
このコマンドに関する注意事項やバグの報告先などが記されています。
lsのマニュアルを表示してみると、“LS(1)”という記述があると思います。これはlsコマンドのマニュアルがセクション1にあるという意味です。マニュアルのセクションとは、マニュアルの内容を分野ごとに分けたものです。セクションには番号がついており、以下のようになっています。
項目 | 内容 |
---|---|
1 | ユーザコマンド |
2 | システムコール |
3 | システムライブラリや関数 |
4 | デバイスやデバイスドライバ |
5 | ファイルの形式 |
6 | ゲームやデモなど |
7 | その他 |
8 | システム管理系のコマンド |
9 | カーネルなどの情報 |
内容が複数のマニュアルに分かれている場合があります。今回はpasswdコマンドのマニュアルを表示し、別セクションのマニュアルを表示してみましょう。
$ man passwd
(略)
関連項目
group(5), passwd(5), shadow(5).
マニュアルを読み進めていくと、”関連項目”という部分があると思います。そこにpasswd(5)というマニュアルが存在することが記されています。これはセクション5にpasswdというエントリがあるので、それも参照できるということを意味しています。
qを押すとmanコマンドの実行を終了することができるので、一度終了させてから、セクション5のマニュアルを表示してみましょう。
$ man 5 passwd
PASSWD(5) File Formats and Conversions PASSWD(5)
NAME
passwd - the password file
(略)
manのあとにセクション番号を指定し、コマンド名を指定することで指定した番号のマニュアルを表示できます。
[itemlink post_id=”3491″]
Linuxの数多く用意されているコマンドすべての使い方を暗記するのは現実的ではありません。使い方を調べたければググるというのも一つの手段ですが、コマンドにはヘルプが含まれていることがあります。実行したいコマンドに対して–helpオプションなどをつけて実行することで、コマンドの実行に使えるオプションなどを調べることができます。
コマンドの詳しい使い方を調べるにはmanコマンドでマニュアルを表示する方法もあります。manコマンドについては以下の記事で解説しています。
書式
コマンド –help
$ ls --help
使用法: ls [オプション]... [ファイル]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
長いオプションに必須の引数は短いオプションにも必須です.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
(略)
[itemlink post_id=”3498″]
linuxは様々なコマンドを用いて操作しますが、コマンドの実態もコードが書かれたプログラムです。つまりコードが書かれたファイルということですので、/binや/sbinといったプログラムを保存するためのディレクトリに配置されているということです。
通常、コマンドを実行するときにその実態であるプログラムがどこに配置されているかを気にする必要はありません。PATHという環境変数にコマンドのプログラムが配置されているディレクトリが設定されているからです。環境変数に設定されたディレクトリ配下にあるプログラムはわざわざパスを指定しなくても実行できるので、普段はコマンドのプログラムの場所を気にせず、コマンド名だけで実行できるのです。
コマンドのパスを表示したい場合はwhichコマンドを使います。whichコマンドはPATH環境変数に含まれているディレクトリ配下に配置されているコマンドのパスを表示することができます。
書式
which コマンド名
以下のコマンドを実行してcatコマンドのプログラムのパスを確認してみましょう。
$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/linuxtext/bin
(ユーザが参照できるパスを確認)
$ which cat
/bin/cat
(cat コマンドは/bin 配下に配置されているのがわかる)
上記ではcatというプログラムが/binディレクトリ配下に配置されていることが確認できました。
コマンドが存在するディレクトリがPATH環境変数に含まれていない場合は、whichコマンドはエラーを返します。たとえば管理者権限が必要なコマンドへのパスは基本的には一般ユーザでは設定されていないため、whichコマンドでは確認できません。
[itemlink post_id=”3491″]
Linuxでファイルがどこに存在するかを調べるにはfindコマンドを使います。
書式
find パス -name ファイル名
以下のコマンドでは/etcディレクトリ配下にあるhostsという名前のファイルを検索しています。
$ find /etc/ -name hosts
find: `/etc/pki/CA/private': 許可がありません
find: `/etc/pki/rsyslog': 許可がありません
find: `/etc/ntp/crypto': 許可がありません
/etc/sysconfig/networking/profiles/default/hosts
(略)
/etc/hosts
/etc/avahi/hosts
(略)
「許可がありません」と表示されているのは、一般ユーザーに読み込み権限が与えられていないディレクトリを検索しようとしているためです。指定したディレクトリ配下の全てのディレクトリを検索したい場合は適切な権限を持ったユーザに切り替える必要があります。
[itemlink post_id=”3491″]
Linuxでファイルを表示するためのcat、more、lessコマンドの使い方について解説します。
まずは一番基本となるcatから説明していきます。
書式
cat [ファイル名]
オプション
-n
行番号を合わせて表示します。
それでは実際にcatコマンドを実行してみましょう。
ホームディレクトリ内の.bashrcファイルの中身を表示してみます。
$ cat ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
(略)
$ cat -n ~/.bashrc
1 # .bashrc
2
3 # Source global definitions
4 if [ -f /etc/bashrc ]; then
(略)
cat ~/.bashrcとすることで、ホームディレクトリにある.bashrcファイルの中身を確認することができました。また二回目のcatコマンドの呼び出しでは、-nオプションを付与することで、行番号を合わせて表示しています。
catコマンドを使ってファイルの内容を表示する際、行数がたくさんあると表示されない分が流れてしまうため、すべてを確認することはできません。多くの場合、25行に表示数が設定されているため、それ以上の行は確認できません。
たくさんの行がある場合でも、内容のスクロールを途中で止めてくれる機能のことをページングといい、ページングのために使われるコマンドのことをページャといいます。
代表的なページャとして、今回説明するmoreコマンドとlessコマンドがあります。使い方は基本的にcatコマンドと同じです。
書式
more [ファイル名]
less [ファイル名]
ページャでファイルを開いた後は、次のコマンドでファイルの表示を操作します。
moreコマンド
項目 | 内容 |
---|---|
スペース | 次のページに進む。 |
b | 前の一画面に戻る。 |
f | 次の一画面に進む。 |
/単語 | 単語を検索する。nで検索結果をジャンプする。 |
q | ページャコマンドを終了する。 |
lessコマンド
項目 | 内容 |
---|---|
スペース | 次のページに進む。 |
b | 前の一画面に戻る。 |
f | 次の一画面に進む。 |
↑ | 前の行に進む |
↓ | 次の行に進む |
/単語 | 単語を検索する。nで検索結果をジャンプする。 |
q | ページャコマンドを終了する。 |
以下のコマンドを実行して、実際に複数行の記述があるファイルを確認を行ってみましょう。
$ more /etc/hosts
上記で説明したファイルの表示操作用のコマンドをいろいろ試してみてください。
qで終了してください。
いかがでしたか?今回はファイルの内容を表示するためのコマンドであるcat、less、moreについて説明しました。
現在いるディレクトリ(カレントディレクトリ)が/usr/localだとします。
このとき、/usr/bin/somethingのファイルを指定するには、以下の2通りがあります。
上記1は最上位のディレクトリ(ルートディレクトリ)からディレクトリ・ファイル名を指定する方法です。対して2では自分が現在いるディレクトリから見て、ディレクトリ・ファイル名を指定しています。
1の指定方法を絶対パスといい、2の指定方法を相対パスといいます。
絶対パスはどのディレクトリにいても、同じ方法で特定のディレクトリ・ファイルを指定することができます。
一方で相対パスは同じディレクトリ・ファイルを指定する場合でも、自分の現在の位置が変わればパスも変わるので、常に自分の位置からみた特定のディレクトリ・ファイルの位置について考慮する必要があります。
絶対パスのメリットは上記でも述べた通り、自分の位置に関係なく、常に同じ方法で指定できることですが、一方でルートディレクトリから指定するので場合によっては記述が非常に長くなってしまうというデメリットもあります。
対して相対パスのメリットは指定したいディレクトリやファイルが自分の位置から近い場合、絶対パスよりも短い記述で済むということです。
実際にディレクトリからディレクトリへの移動を絶対パスと相対パスを使って行ってみます。
ここではpenguinユーザがいると仮定して、コマンドを実行します。
$ cd ~
$ pwd
/home/penguin
$ cd ..
$ pwd
/home
$ cd /usr
$ pwd
/usr
$ cd ~
$ pwd
/home/penguin
$ cd ../../
$ pwd
/
[解説]
一行目のcd ~ではpenguinユーザのホームディレクトリである/home/penguinディレクトリに移動しています。
cd ..は相対パスで自分より一つ上のディレクトリ(親ディレクトリ)を指定して移動しています。
cd /usrは絶対パスでルートディレクトリ直下の/usrディレクトリに移動しています。
cd ../../は相対パスで現在いる/penguinディレクトリの一つ上のさらに一つ上のディレクトリに移動しています。
いかがでしたか?今回は絶対パスと相対パスについて解説しました。
絶対パスはルートディレクトリから指定する方法、相対パスは自分が現在いる位置からみて指定する方法です。
それぞれにメリット・デメリットがあるので、状況に応じて使い分けましょう。
ディレクトリとはファイルやディレクトリをまとめて保存しておくための場所ですが、その中で特別なディレクトリやそれを表すための記号があります。以下が代表的なものです。
ログイン直後、ユーザーの作業開始位置となるディレクトリのことをホームディレクトリといいます。
ログイン直後のユーザーは必ずホームディレクトリにいます。またユーザーごとにホームディレクトリは違いますので、ユーザーそれぞれが異なるホームディレクトリをもっていることになります。
シェル上では~(チルダ)を使ってホームディレクトリを表します。
ユーザーが現在いるディレクトリのことをカレントディレクトリといいます。
シェル上では.(ドット)を使ってカレントディレクトリを表します。
ユーザーが現在いるディレクトリ(カレントディレクトリ)の一つ上の階層のディレクトリのことを親ディレクトリといいます。
たとえばカレントディレクトリが/home/etcである場合、/homeが親ディレクトリということになります。
シェル上では..を使って親ディレクトリを表します。
ディレクトリ階層において、最上位階層のディレクトリのことをルートディレクトリといいます。
シェル上では/(ルート)を使ってルートディレクトリを表します。
いかがでしたか?今回はLinuxにおける特別なディレクトリの定義について解説しました。
Linuxにおけるディレクトリ操作に使う基本的なコマンドである、pwd, cd, mkdir, rmdirコマンドの使い方について解説します。
ディレクトリは階層構造になっています。その中で自分がどの位置で作業しているのかを表示するために使うのがpwd(Print Working Directory)コマンドです。
書式
pwd
実行例
$ pwd
/home/penguin
使い方に関して特に難しいポイントはありません。上記実行例では自分が現在、homeディレクトリ内のpenguinディレクトリで作業しているということがわかります。「/」はディレクトリの区切りを表します。
cd(Change Directory)コマンドは現在作業しているディレクトリを変更するためのコマンドです。cdのあとに移動したいディレクトリを指定して使います。何も指定しない場合はホームディレクトリに移動します。
書式
cd [ディレクトリ名]
実行例
$ pwd
/home/penguin
$ cd /usr
$ pwd
/usr
上記実行例ではusrディレクトリに移動しています。
mkdir(MaKe DIRectory)コマンドはディレクトリを作成するために使います。mkdirのあとに作成するディレクトリ名を指定します。
書式
mkdir [ディレクトリ名]
オプション
-p
指定されたディレクトリの上位ディレクトリも作成する
dir1ディレクトリの下にdir2ディレクトリを作成し、さらにdir2ディレクトリの下にdir3ディレクトリを作りたい場合、以下のようにします。
$ mkdir dir1
$ mkdir dir1/dir2
$ mkdir dir1/dir2/dir3
上記ではオプションをつけずに、3回mkdirコマンドを実行しました。mkdirコマンドでは通常、存在しないディレクトリの下に新たにディレクトリを作ることができないためです。-pオプションを使うと以下のように一度の実行で済ませることができます。
$ mkdir -p dir1/dir2/dir3
実際に以下のコマンドを実行してみましょう。
$ mkdir -p dir4/dir5/dir6
$ ls -R dir4
dir4:
dir5
dir4/dir5:
dir6
dir4/dir5/dir6:
lsコマンドに使われている-Rオプションはディレクトリの中を回帰的に表示するためのオプションです。ディレクトリの中のディレクトリの中のディレクトリ・・・といったようにディレクトリが存在する限り、その中のディレクトリの構造まで表示してくれます。
上記実行例では、dir4の中にdir5があり、dir5の中にdir6があり、dir6の中には何もないことがわかります。つまりmkdir -p一度の実行でdir4, dir5, dir6が作成できたことが確認できました。
ディレクトリの削除を行うためにはrmdir(ReMove DIRectory)コマンドを使います。
書式
rmdir [ディレクトリ名]
オプション
-p
指定した階層までのディレクトリを一括で削除することができます。-pオプションをつけなかった場合、最下層のディレクトリのみ削除します。どちらの場合も対象とするディレクトリの中が空である必要があります。
rmdirコマンドの特徴は削除対象となるディレクトリの中身が空である必要があるということです。ディレクトリの中にファイルやディレクトリが含まれている場合は削除できません。
ディレクトリにファイルが存在する場合は、以下のようにrmコマンドに-rオプションを付けて削除できます。
$ ls
directory
$ rmdir directory/
rmdir: failed to remove `directory/': ディレクトリは空ではありません
(directory の削除に失敗)
$ rm -r directory/
(rm -r を実行)
$ ls
(directory ディレクトリが削除された)
以下のコマンドを実行して、ディレクトリの削除を実際に行ってみましょう。
$ mkdir directory1 directory2
(ディレクトリを作成)
$ touch directory2/file
(directory2 ディレクトリ内に file を作成)
$ ls
directory1 directory2
$ rmdir directory1
$ ls
directory2
(directory1 は空なので削除できる)
$ rmdir directory2
rmdir: failed to remove `directory2/': ディレクトリは空ではありません
(directory2 は空ではないため削除できない)
$ rm -r directory2/
$ ls
(directory2 も削除できた)
上述した通り、rmdirおまん度では中身が空でないディレクトリを削除することはできません。そのため、空でないディレクトリを削除するためにはrmコマンドに-rオプションを付けて削除します。このコマンドを実行した場合、警告なしで対象となるディレクトリとその中身を削除できてしまうので、注意が必要です。rmコマンドについては以下の記事で詳しく解説しています。
通常利用時はrmdirコマンドを使う癖をつけておくと、重大なミスにつながる可能性を軽減できます。
いかがでしたか?今回はLinuxにおけるディレクトリ操作の基本となるpwd, cd, mkdir, rmdirコマンドの使い方について解説しました。
pwdコマンドは現在のディレクトリを表示、cdコマンドはディレクトリの変更(移動)、mkdirコマンドはディレクトリの作成、rmdirコマンドはディレクトリの削除を行うためのコマンドです。
Linuxにおいてファイルを削除するときに使うのがrm(ReMove)コマンドです。
書式
rm ファイル名
オプション
-i
処理を完了する前に確認を行わせます。ファイルを上書きする際などに-iオプションをつけておくことによって、誤って上書きコピーしてしまうリスクを減らすことができます。
-f
強制的に処理を実行させることができます。rmコマンドを実行する際、確認の問い合わせが行われることがありますが、fオプションを付与すると確認を無視し、強制的に処理を実行させることができます。
-r
rmコマンドは通常、ファイルの削除に使うコマンドですが、rオプションを付与することによって、ディレクトリの削除を行うこともできます。ディレクトリの中のファイルやディレクトリも削除します。
$ rm file-delete
上記の実行例ではfile-deleteという名前のファイルを削除します。Linuxでは一度削除してしまったファイルを復元することはできません。誤って削除してしまうことを防ぐために-iオプションを付与する癖をつけておくと重大なミスを未然に防ぐことができます。
それでは実際にrmコマンドを使ってファイルを削除してみます。
$ ls
hosts hosts.sametime test
$ rm hosts.sametime
$ rm -r test
$ ls -l
合計 36
-rw-r--r--. 1 tooyama tooyama 158 5 月 31 11:18 2012 hosts
(略)
hosts.sametimeファイルとtestディレクトリを削除することができました。testはディレクトリなので、-rオプションを付与しています。
いかがでしたか?今回はファイルを削除するためのrmコマンドについて解説しました。
特に難しいことはなく、ファイル名を指定するだけなので簡単に使えますが、それゆえに誤って意図しないファイルを削除してしまうリスクがあります。常に-iオプションを付与して確認する癖をつけておくと良いでしょう。