IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

WSLで始めるUbuntu

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート 

第2回 bashとファイルの操作を知ろう (宮崎悟) 2018年11月

パッケージとは

第1回の本コラムでは、WSLでUbuntuをインストールするところまで行いました。
そこで、最後に以下のコマンドを入力・実行するようお願いしました。
※便宜上、以下プロンプトを「$ 」と表記します。

$ sudo apt update
$ sudo apt upgrade -y

sudo コマンドは、一般ユーザがroot権限(管理者権限)でコマンドを実行するコマンドで、sudo の後のコマンドを実行します。sudo コマンドを実行する際、sudoを実行するユーザのパスワードを入力する必要があります。sudoの詳細については、いずれ紹介する機会もあると思います。

apt コマンドは、Ubuntuのパッケージ(アプリケーションの全ファイルをまとめたもの)の操作を行うコマンドです。
apt update を実行することで、Ubuntuが提供するネット上のパッケージリポジトリ(パッケージの図書館のようなもの)から最新のパッケージ情報を取得し、自身のパッケージ情報を更新します。
apt upgrade -y を実行することで、更新したパッケージ情報から、更新可能なパッケージをネット経由で更新するコマンドです。-y オプションを付けなければ、更新可能なパッケージを表示し、更新するかどうかを入力する必要が出ます。

fig01

Windowsでもそうですが、ソフトウェアにはバグや脆弱性が付き物で、定期的にアップデートされます。そのため、定期的に上記2つのコマンドを実行し、パッケージを最新の状態に保ってください。
apt コマンドはその他、必要なパッケージを探したり、インストールしたり、削除する機能があります。

bashとは

bashは、Bourne-again shellの略で、Ubuntuを始めとした様々なディストリビューションでデフォルトログイン時に使用されているシェルになります。
シェルとは、「コマンドを入力するためにユーザーが使用する対話的プログラム」で、OSの中枢であるカーネルとユーザの間に立つインターフェースです。
ユーザは、シェルを通して各種コマンドを実行するのがLinuxでは一般的です。
bashは、UNIX開発当初からあるsh(シェルと呼びます)を高機能に拡張したものになります。
今回は、簡単なbashの使用方法について簡単に説明したいと思います。

bashでLinuxのファイルを知ろう

UNIXは、すべての操作をファイルを元に行います。
ファイルの概念はWindowsと同様ですが、拡張子を付けることによって動作が変わることはありません。あくまでもファイルに拡張子を付けることで、ファイルの種類を分かりやすくしているだけです。
また、Windowsのフォルダは、Linuxではディレクトリ(directory)と呼び、その概念は変わりません。ただし、Windowsではフォルダを表す文字が「\」なのに対し、ディレクトリを表す文字は「/」になりますので注意してください。

lsはファイルの一覧を表示するコマンドで、/bin/ls にあります。環境変数PATHに存在する実行形式のファイルを ls と入力するだけで実行できるのは、Windowsのcmd.exeと同様です。
ただし、Windowsと違って実行形式と判断するのは、拡張子ではなくパーミション(権限)になります。
Ubuntuにログインしたばかりの状態でlsと入力すると、何も表示されません。

$ ls
$

ただし、ls に -a オプションを付けると、以下のようにファイル名が表示されます。

$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile

「.」が、カレントディレクトリ、「..」が親ディレクトリなのは、cmd.exeでのdirコマンドと同様です。
LinuxやUNIXは、「.」で始まるファイルは隠しファイルとして扱われ、-a などのオプションを付けなければ表示されません。
Windowsと同様に直接パス形式でもlsは使用できます。また、ls に -l を付けると詳細を見ることが出来ます。パーミション、リンク数、ユーザ名、グループ名、日付、ファイル名が表示されます。

$ ls -l /bin/ls
-rwxr-xr-x 1 root root 133792 Jan 18  2018 /bin/ls

先頭文字列の「-rwxr-xr-x」がパーミションを示す文字列なります。最初の文字「-」は、通常ファイルであることを指します。ディレクトリの場合は「d」と表示されます。ls に-dオプションを加えることでディレクトリ自身を表示することが出来ます。

$ ls -ld /bin
drwxr-xr-x 1 root root 512 Oct  4 16:36 /bin

2文字目以降の「rwx」というのはファイルのユーザ(root)の権限で、「r」が読み込み、「w」が書き込み、「x」が実行の各権限があることを指します。2番目の「r-x」はグループ(root)、3番目の「r-x」はグループに属さないユーザの権限で、「w」に相当する部分が「-」であることから書き込み権限が無いことが分かります。
このことから、/bin/ls が誰でも読み込み、実行でき、rootユーザ以外は書き込みできないファイルであることが分かります。

次回以降は、Ubuntuを使用して、もっと複雑な操作が可能であることを紹介したいと思います。
お楽しみにお待ち下さい。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート