【第6回】Linuxコマンド入門(1)

 皆さま,こんにちは. 迷子のエンリュです.

 今日は,CentOSGNOMEターミナルを使って早速Linuxコマンドの練習をしていきたいと思います.CUIでひたすら文字を打ちコンピュータを動かす.これこそまさにハッカーへの道のりの第一歩と言えるでしょう.

 ただ漠然と練習しようというだけでは,何からやろうかわからなくなってしまいますので,今回はディレクトリ操作コマンドを中心に演習していこうと思います.また,CUIベースのシャットダウンや再起動の方法についてもお教えいたします.今回扱うコマンドは以下の通りです.

  • ディレクトリ操作コマンド

    • pwd
    • ls
    • cd
    • pushd
    • popd
    • mkdir
    • rmdir
  • シャットダウンコマンド

 それではよろしくお願いいたします.

環境

  • Cent OS 6.8

カレントディレクトリの表示

 ディレクトというのは,コンピュータのファイルシステムの「場所」を表す概念で,ファイルを格納するものです.フォルダのようなものと考えてよいでしょう.ディレクトリは階層構造を作っており,これによってファイルの場所を一意に表現します.

pwdコマンド

 今いる場所,すなわち現在のディレクトリのことをカレントディレクトといいます.pwdコマンドは"print working directory"という意味で,カレントディレクトリを表示します.

$ pwd

 なお,$マークはコマンドラインの入力を意味します.ターミナルにはすでに$が表示されていると思います.$ pwdと書いてあるときはそこに「pwd」と入力してEnterを押してください.  作業中に今いる場所が分からなくなったら,pwdコマンドで調べましょう.

f:id:LostEnryu:20161017224110p:plain

ディレクトリ内の一覧表示

ls コマンド(1)

 lsコマンドは"list"の略で,ディレクトリの中身を一覧表示します.lsには様々なコマンドオプションが用意されています.

 $ ls
 $ ls -a
 $ ls -l
 $ ls -al

ls -aは普段は表示されないドットファイル,ドットディレクトリも表示します.

ls -lはファイルの詳細情報を併せて表示します.  二つのコマンドオプションを組み合わせることもできます.

f:id:LostEnryu:20161017224208p:plain f:id:LostEnryu:20161017224223p:plain

おまけ:ファイルの詳細情報

 ls -lで表示されるファイルの詳細情報の一部を切り取ってみましょう.

$ ls -l
-rw-r--r--.  1 enryu enryu  124 May 11 08:21 .bashrc
drwxr-xr-x.  2 enryu enryu 4096 Oct 16 02:00 Desktop

 これらの文字はなにを意味しているかというと,左から順に

 を表しています.

 パーミッションは10文字のアルファベットからなります.最初のdはディレクトリかどうかを表します.残りの9文字は,誰にどの操作を許可するかというアクセス権を表します.「owner/group/other」の順で並んでおり,「r」が「読み込み権限/ディレクトリの一覧権限」,「w」が「書き込み権限/ディレクトリの作成権限」,「x」が「実行権限/ディレクトリの侵入権限」を表します.

 ls -lで表示される書式を「long listing format」といいます.

 パーミッションの設定方法などはまた今度やります.少々ややこしいかもしれませんが,ファイルの管理には欠かせない知識です.

ls コマンド(2)

 ls コマンドは,引数にディレクトリ名を入力することで,任意のディレクトリの一覧を表示することができます.例えば次のような使い方があります.

$ ls -a Desktop
$ ls /
$ ls /usr/bin

f:id:LostEnryu:20161017225421p:plain

ディレクトリを表す記号

 いくつかのディレクトリには記号で表されるものがあります.少しまとめてみましょう.

記号 名前 説明
. カレントディレクト 現在のディレクト
.. ディレクト ひとつ上の階層のディレクト
~ ホームディレクト ログインしたときに最初にいるディレクト
/ ルートディレクト 一番上のディレクト

 親ディレクトリとは反対に,一つ下のディレクトリをサブディレクトといいます.ルートディレクトリの下にあるすべてのディレクトリをサブディレクトリということもあります.

ディレクトリの移動

cd コマンド

 cd コマンドは"change directory"の意味で,指定したディレクトリに移動します.ディレクトリの指定には,先ほどのディレクトリを表す記号を使うことができます.ただし,パーミッションの「x」がないディレクトリには入れないので注意しましょう.

 ファイルやディレクトリ名を入力するとき,途中まで入力してTabキーを押すと補完してくれます.また,候補がたくさんあるときは候補を表示してくれます.lsコマンドやcdコマンドを使うときに試してみましょう.

$ cd ..
$ ls
$ cd ./enryu/Documents/
$ pwd
$ cd /
$ ls -g
$ cd /root
$ cd ~
$ pwd

f:id:LostEnryu:20161019100646p:plain

相対パス絶対パス

 ../../Documents/fooといったディレクトリの指定は,カレントディレクトリからの相対的な場所を辿っていきます.これを相対パスといいます.一方/home/enryu/Desktopのような指定方法はルートディレクトリから辿ります.カレントディレクトリに関わらず絶対位置を指定するので絶対パスといいます.

pushd コマンドとpopdコマンド

 pushd, popd コマンドはそれぞれ"push directory", "pop directory"の意味です.push/popはスタックというメモリ方式に対する操作の用語ですが,詳しくはまた後日取り扱います.pushdはカレントディレクトリを記憶したまま指定したディレクトリに移動し,popdは最後に記憶したディレクトリから順番に戻ります.記憶したディレクトリはdirsコマンドで見られます.

$ pwd
$ pushd Documents/ # ~を記憶して~/Documentsに移動
$ pushd ../Downloads/ # Documentsを記憶してDownloadsに移動
$ pushd -n ../Desktop/ # nオプションで移動しないでDesktopを記憶
$ pushd +1 # カレントディレクトリを末尾に加えて1番のディレクトリに移動
$ pushd -0 # 末尾のディレクトリに移動してカレントディレクトリを先頭に
$ popd # 先頭のディレクトリに移動
$ popd +2 # 移動しないで2番目のディレクトリを記憶から削除

f:id:LostEnryu:20161019100716p:plain

ディレクトリの作成・削除

mkdir コマンド

 mkdir コマンドは"make directory"の意味で,ディレクトリを作成します.  

$ mkdir sample            # sampleディレクトリを作成します
$ mkdir -v sample/subdir  # vオプションで詳細を表示します.
$ mkdir -v sample2/subdir   # 親ディレクトリが存在しないとエラーになります.
$ mkdir -vp sample2/subdir   # pオプションを付ければ親も一緒に作成します.
$ ls sample sample2    # まとめて二つのディレクトリの一覧を表示

f:id:LostEnryu:20161017225607p:plain

rmdirコマンド

 rmdir は"remove directory"の意味で,空のディレクトリを削除します.中身のあるディレクトリは削除できません.中身ごとディレクトリを消したい場合は,rm -r *directory*とします.

$ rmdir sample   # エラーになります
$ rmdir sample/subdir
$ rmdir sample
$ rm -r sample2    # 一度に消したいときはrmコマンドを使います

CUIベースの再起動・シャットダウン

 さて,ここまで一気にやってきましたがどうでしょう?こんなにいきなりたくさん覚えられませんよね.

 Linuxコマンドはひとつの言語です.いきなりすべて覚えるなんて無理でしょう.使いながら覚えていけばいいのです.逆に言えば,たくさん使えば使っただけ慣れていくものです.今日は,ああこんなものか,と捉えてもらえればそれでいいのです.

 最後に,CUIからコマンドでCentOSをシャットダウンしてみましょう.

shutdown, halt, rebootコマンド

 shutdown コマンドはシステムの再起動やシャットダウンするときに用います.オプションでシャットダウン時の挙動を設定することができます.halt, rebootは,オプション付きのshutdownコマンドと同じ働きをします.

システムの再起動をするとき
$ shutdown -r now または $ reboot

システムのシャットダウンをするとき
$ shutdown -h now または $ halt

root権限での実行

 また,設定で一般ユーザ権限ではコマンドからシャットダウン,再起動できない場合があります.そういうときは,

$ sudo shutdown -h now
または
$ su -
# shutdown -h now

 のようにします.sudoは"super user do", suは"switch user"を表し,どちらもroot権限としてコマンドを実行するときに用います.root権限とは,システムを管理する権限だと思ってください.

 デフォルトでは,一般ユーザはsudoが使えない代わりにroot権限なしでもhaltによるシャットダウンが行えたかと思います.これはセキュリティの観点から見るとあまり喜ばしいことではありません.sudoやrootなどシステムのセキュリティに関する設定を変更する必要があります.

 しかし,root権限はシステムの設定に係る重要なファイルを書き換えたり削除したりできるため,ちょっとしたミスでシステムの起動ができなくなるなど一大事になりかねません.そこで,次回はVMware仮想マシンのバックアップを取る裏ワザをお教えしようと思います.

Virtual Boxならスナップショットが取れるんですけどね...

 ディレクトリ操作コマンドについてはこちらでもまとめています.

Previous | Top | Next

Prev: 【第5回】CentOSの歩き方 GNOME編(1)

Next: 【第7回】VMwareを使いこなせ ~擬似スナップショット~

Index
Journey