コマンドラインの基礎知識について1から復習中なので、
主に自分の備忘のために学んだことを記録しておこうと思います。のその④
おそらく最後です!
教材はRuby on Railsチュートリアルのコマンドライン編です。
第5章の「ディレクトリ」の内容について書こうと思います。
3章以降は有料コンテンツのため、覚えたコマンドだけ簡単に紹介します
macOSを使っています。
1. スーパーユーザの権限で実行
「sudo」・・一般ユーザーにスーパーユーザーの強大な権限を与えるもの
※スーパーユーザー(何でも実行できるユーザ。またの名をrootユーザ)の強大な権限を与えるコマンド
$ sudo touch /opt/foo
Password:***
上の例の場合、権限がなくtouchコマンドが使用できなくても、頭にsudoをつけてパスワードを入力すれば実行可能
2.ディレクトリの作成
mkdir
指定した名前でディレクトリを作成するコマンド
$ mkdir <name>
pwd
現在作業しているディレクトリを表示
$ pwd
3.ディレクトリの移動
以下のような移動が可能
$ cd <dir> ← 作業ディレクトリを<dir>へ
$ cd ~/<dir> ← ホームからの相対位置へ
$ cd .. ← 一つ上のディレクトリへ
$ cd ← ホームディレクトリへ
$ cd - ← 直前のディレクトリへ
カレントディレクトリ 「.」
「.」の一文字でカレントディレクトリ(現在作業中のディレクトリ)を表せ
【使用例】
$ cp ~/text_files/foo.txt . ← 現在のディレクトリにファイルをコピー
$ find . -name '*.txt' ← カレントディレクトリ以下の階層のテキストファイルを検索
$ open . ← Finderを開く(Macのみ)
※find
ファイルやディレクトリを検索できるコマンド
※open(Macしか使えないらしい)
指定したファイルを、プログラムを使って自動的に開いてくれるコマンド
ディレクトリを指定した場合にはFinderを開く
4.ディレクトリのリネーム/コピー/削除
リネーム
ファイルのリネームと同じくmvコマンドを使用する
$ mv foo/ bar/
※後ろの/はあってもなくてもいい
コピー
ディレクトリの中身ごと(そのディレクトリも含め)コピーしたい場合
$ cp -r ../text_files .
※再帰的にコピーのオプション(-r)を付ける必要がある。/はつけない
$ ls
text_files
※/を末尾につけた場合、中身のファイルはコピーされるが肝心のディレクトリはコピーされない
個別のファイルだけをコピーする場合
$ cp -r ../text_files/* .
/だけ書かずに明示的に*を置くようにする(実行結果は同じでも)
削除
$ rmdir <dir> ← (中身が空の)ディレクトリを削除する
$ rm -rf <dir> ← ディレクトリと中身を削除する(中身があっても削除できる)
※「-rf」・・再帰的かつ強制。使用には注意する
おまけ
ディレクトリの任意の最深部にある文字列を探す方法
$ grep -ri <string> <dir>
「-r」・・再帰検索
「-i」・・大文字小文字区別なし
※grepについては基礎編③で紹介
今回はこんなところで!
ありがとうございました。