この記事のターゲット:
Linux OSのパソコンを操作するときに、コマンドでディレクトリを移動する必要がある理由などを知りたい人
この記事のゴール:
ディレクトリの階層構造を理解して、Linuxの基本的なディレクトリ操作ができるようになる
フォルダとディレクトリはほとんど同じ意味で使われる言葉であり、Windowsでは「フォルダ」、UNIX系のOS(Linux)では「ディレクトリ」と呼ばれています。
この記事では「ディレクトリ」と「フォルダ」を分けずに同じ意味として扱っていくよ!
ディレクトリ/フォルダの階層構造とは
ファイルを管理するためにPCでは関連性があるファイル同士を整理するために階層構造を取っています。下の図では、Pythonの対話型実行環境であるJupyter Notebookの機械学習のファイルを保存している領域についてのイメージ画像です。
次に実際にターミナルにコマンドを打ち込んで、フォルダ操作をしてみましょう。
コマンドでディレクトリ操作をしてみる
Linux OSはWindowsやMacといったマウスとキーボードで視覚的に操作するOSとは違い、コマンドで操作することが多いです。直感的に分かりにくく慣れるまで少し時間が掛かりますが、気長に練習していきましょう。
早速、実際に手を動かしてみましょう。
ターミナルを開く
キーボードにあるスタートボタンを押して、表示された検索バーに「cmd」と入力し、Enterを押します。そうすると、真っ黒なウインドウが出てきます。これが「ターミナル」です。
ターミナルについて少し紹介します。
普段、PCを使う時マウスやキーボードを操作してフォルダ作成や表示などをします。その全てをキーボードにコマンドを入力するだけで行うことができるツールです。
コマンドの先頭にある「$」や「#」はコマンド入力が待機中であることを示しています。
※コマンドの先頭にある文字の違いについて
・一般ユーザーにはドル記号「$」
・スーパーユーザーにはシャープ「#」 が使われます
※一般ユーザーとスーパーユーザーの違いについては「root(管理者権限)」の章にて解説します。
pwd→カレントディレクトリの表示
「pwd」と打ち込みEnterを押すと、現在自分がいるディレクトリ(カレントディレクトリ)の場所を表示してくれます。「pwd」は”print working directory“の略で、現在いるディレクトリを表示という意味です。
作業中にどのディレクトリにいるのか分からなくなったときに「pwd」コマンドを使ってみましょう!
$ pwd
ls→ディレクトリの中身の一覧を表示
ターミナルに「ls」と打ち込み、Enterを押します。そうすると、現在いるディレクトリの階層にあるファイルの一覧が表示されます。「ls」とは”list“の略です。
$ ls
「ls」コマンドには派生形がいくつかあるので、気になる人は調べてみましょう。
cd→ディレクトリの移動
次に以下のように打ち込み、Enterを押します。そうすると、/ディレクトリ階層の名前の場所に移動します。今回は「/home」と打ち込んだので、ホームの場所に移動することになります。「cd」は”change directory“の略で、ディレクトリの移動を意味しています。
$ cd /home
「/home」のように分かりやすければいいですが、現実はそうもいきません。そこで、「cd」と入力した後に”Tabキー”を押すことで、「/home/Documents」のようにファイルやディレクトリ名を補完してくれるので、覚えてきましょう。「ls」コマンドでももちろん使えます。
※「/home」などのファイルやディレクトリ名の書き方については「Tips: ディレクトリの移動のときってどう書くの?」で詳しく説明します。
mkdir→ディレクトリの作成
次に以下のように打ち込み、Enterを押します。そうすると、mkdirと書かれた後の名前のディレクトリが今いるディレクトリに作成されます。今回は「new_directory」と入力したので、この名前がついたフォルダが現在いるディレクトリに作成されました。「mkdir」は”make directory“の略でディレクトリの作成を意味しています。
$ mkdir new_directory
rmdir→空のディレクトリの削除
以下のように打ち込み、Enterを押します。そうすると、「mkdir」の章で作成したディレクトリ「new_directory」が削除されます。今回は何も入っていない”空”のディレクトリだったので削除できましたが、中身があるものは削除できません。
$ rmdir new_directory
ディレクトリを中身ごと全て消したい場合は「rm -r new_directory」のように入力しましょう。
$ rm -r new_directory
※実際に使う場合はnew_directoryの箇所を消したいディレクトリ名に変更してください
Tips: ディレクトリの移動のときってどう書くの?
ディレクトリの移動の際に「cd /home」などとコマンドを打ちますが「実際はどうやって書けばいいのかわからん!」となる人が多いでしょう。具体的な例を用いて説明していきます。
→でき次第追記していきます。
とりあえずこちらのサイトで分かりやすく説明されているのでご覧ください→https://cloud5.jp/linux-path/
出発点 | |
絶対パス | ルートディレクトリ |
相対パス | カレントディレクトリ |
※パス・・・ディレクトリやファイルの道筋、経路のこと
コマンドを打ち込むことでフォルダ操作をしてみましたが、いまいちピンときていないのではないでしょうか?次に視覚的に理解するためにWindowsでのフォルダ操作と比較してみます。
Windowsとのフォルダ操作の比較
素材が完成次第追記します。
root(管理者権限)について
Linuxには一般ユーザーとスーパーユーザーの2種類のユーザーがあります。これらのユーザーの違いは端的に言うと持っている「権限」の違いです。
一般ユーザー
一般ユーザーは基本的なPCの機能を使用できますが、ユーザーやプログラムの追加、システムの設定の変更などはできません。
スーパーユーザー
システムの絶対的管理者(administrator)であり、システム全体の設定や管理、ログの確認など様々なことが全て可能です。そのため、スーパーユーザーのアカウントは1つしかありません。セキュリティの面から一般的には「sudo」コマンドを使って特定のシステムやプログラムを一般ユーザーでも使えるようにします。
スーパーユーザーのアカウントが乗っ取られると、
システム全体が乗っ取られる危険性があるみたい…
sudo→管理者権限を一時的に借りる
「sudo」コマンドを使うことで、一時的に管理者権限(制限あり)を借りることができます。その際にパスワードを求められますが、その時に利用しているユーザーのパスワードを入力すればOKです。
Tips. 「sudo」を使う権限がないとき
以下のように「sudo」コマンドを使ったときに”user is not in the sudoers file. This incident will be reported.”という文章が表示された場合は、sudoを使えるユーザーのリスト(sudoer)にそのユーザーは登録されていないということになります。
[user@localhost ~]$ sudo whoami
user is not in the sudoers file. This incident will be reported.
対処法は、スーパーユーザーでログインして「/etc/sudoers」のディレクトリ内のファイル構成を変更すること(sudoerのリストにユーザーを追加する)です。実際にやってみましょう。
まずはスーパーユーザーでログインした後コマンドプロンプトを開き、以下のように入力します。このように入力するとvisudoのエディタ(「/etc/sudoers」ファイル)を開くことができます。
# sudo visudo
「/etc/sudoers」ファイルをsudoersに追加したいユーザーと権限を与える領域を入力し、visudoエディタをすればOKです。
まとめ
・ディレクトリ/フォルダの階層構造は以下の画像のようになっている
・Linux OSを使いこなすにはコマンドを知る必要がある
・「sudo」は権限を一時的に借りるコマンド
参考サイト・動画
(1)Qiita, Linuxコマンド入門(1) ~ディレクトリ操作~
https://qiita.com/LostEnryu/items/89f67cf608cd244373b1
(2)Qiita, is not in the sudoers file. This incident will be reported. のエラー対処方法について https://qiita.com/tks_00/items/bc04bc477d9019341859
(3)協栄情報ブログ, 【Linux】絶対パス指定と相対パス指定
https://cloud5.jp/linux-path/
1つ前の記事はこちら↓
コメント