はじめに
こんにちは!ITスクールRareTECHでCS(Customer Support)を担当している池村です。
cd
コマンドとls
コマンドのオプションと設定周りについてご紹介します。
まだこちらの記事を読んでいない方は、まずこちらの記事を一読お願いいたします。
※cd
コマンド、pwd
コマンド、ls
コマンドの使い方がわかっている方、絶対パスと相対パスの概念を理解している方は無視していただいて結構です。
※こちらの記事はエンジニアを目指し始めた初学者向けに作成しています。
cd
コマンドの使い方
~
(チルダ)
まずはチルダですね。~
はチルダと呼びます。Linuxコマンドにおいてホームを指し示す記号です。
cd ~
と叩くと、ホームディレクトリに移動します。
ちなみにホームディレクトリに移動するだけなら、チルダをつける必要はなかったりします。不思議ですね。
cd
ではチルダを使うタイミングはどこなのか?という疑問が浮かぶと思います。
使い所として、まずホームを起点にして移動する時に使います。
cd ~/Training
上記のコマンドですと、どのディレクトリにいようとホームを起点にして移動することができます。
-
(ハイフン)
次に-
(ハイフン)を使った移動を見てみます。
cd -
これは移動する前にいたディレクトリへ移動することができます。
例えばですが、/Users/ren/Training/Java
というディレクトリで作業をしていましたが、一度/Users/ren/Downloads
に移動しました。その後また/Users/ren/Training/Java
に戻りたいとします。
cd ~/Downloads
で移動をします。
次に元の/Users/ren/Training/Java
に戻る時、もちろん絶対パスと相対パスを使った移動の仕方がありますが、以下のコマンドで簡単に移動が可能です。
cd -
cdでの移動のまとめ
cd . #今いるディレクトリ
cd .. #一つ前のディレクトリ
cd ~ #ホームディレクトリ
cd - #移動する前にいたディレクトリ
こちら基本ですので、覚えておくとgoodです。
ls
コマンドのオプションについて
次にls
コマンドのオプションについて解説します。Linuxコマンドのオプションはもちろん網羅していて損はないのですが、初学者が優先すべきは『このコマンドは何をするコマンドなのか』を知ることです。
ただ、いくつかのコマンドはオプションの理解が必須の場合があります。ls
コマンドもその一つと私は思っています。
では早速オプションを見ていきましょう。
-a
(隠しファイル・ディレクトリを表示するオプション)
ls -a
こちらホームディレクトリでの実行結果になります。みてみると、先頭に『.(ドット)』がついたファイルやディレクトリがたくさんあります。
※私の環境上で、 白い文字がディレクトリ、灰色の文字のものがファイルになります。
こちらの隠しファイルや隠しディレクトリは、設定ファイルやシステムファイルなどの重要なものが多いです。ですので、誤って消してしまったりすることを避けるため、通常のls
コマンドなどでは表示されません。もちろん、ユーザーが直感的に扱えるよう、余計な情報を見せないという意図もあります。画像で分かる通りものすごく多い情報がありますからね。
-l(ファイルやディレクトリの詳しい情報も表示するオプション)
ls -l
こちらもホームディレクトリでの実行結果になります。それぞれのディレクトリやファイルの詳しい情報が表示されています。初学者は何がなんの情報?と思いますよね?
ではまずディレクトリから見てみましょう。
今回はTraining
ディレクトリを例に見ていきます。
drwxr-xr-x@ 11 ren staff 352 10 21 07:46 Training
まずは一番左のブロック
drwxr-xr-x@
d
(ディレクトリ)
ディレクトリを表します。Trainingはディレクトリです。
rwx
(ユーザーの権限)
所有者(自分)の読み取り(read)、書き込み(write)、実行(execute)権限を表します。操作している私には、このディレクトリの全ての権限が与えられています。
r-x
(グループの権限)
Linuxにはグループという概念があり、ユーザーはどこかのグループに所属します。グループごとに権限があり、このディレクトリには読み取り(read)と実行(execute)の権限があるようです。
r-x
(その他全ユーザーの権限)
作成した本人でもなく、このグループにも所属していないその他のユーザーの権限になります。読み取り(read)と実行(execute)の権限があるようです。
@
(拡張属性)
これはmacOS特有のメタデータを保存するためのものです。なので、ここでは詳しく解説いたしません。
Linuxのコマンドではこれらの権限周りを変更するコマンドもありますが、今回の記事では説明を省かせていただきます。
次のブロックをまとめて三つ見ていきましょう。
11 ren staff
11
(ハードリンク数)
これはTrainingディレクトリが自身を含めて、どのディレクトリと繋がっているかを表しています。ハードリンクという言葉は、Linuxを学んでいると後ほど出てきますが今は気にしなくて大丈夫です。
ren
(所有者)
所有者のユーザー名です。私が作っているので当たり前ですね。
staff
(所属グループ)
このディレクトリの所属しているグループ名です。MacOSでは基本的にこのstaffグループに所属します。Linuxではまた違うグループ名になります。
残りのブロックをまとめて見ていきましょう。
352 10 21 07:46 Training
352
(ディスク使用量)
このディレクトリのディスク使用量を表しています。
このディレクトリのメタデータ(作成日時や所有者などの情報、その他)などが含まれます。初学者はあまり気にする必要がないと思っています。
10 21 07:46
(更新時間)
これはシンプルな情報で、10が更新された月、21が更新された日、07:46が更新された時間です。
Training
(名前)
ディレクトリの名前ですね。
ここまでが-l
で表示される情報の詳細です。
ちなみにですが、この二つのオプションはつなげることができます。
ls -la
こうすると、隠しファイル等もまとめて全部の情報が表示されます。一度コマンドを叩いて確認してみてください。
設定ファイルとおすすめ設定について
ここからは、ls
コマンドとcd
コマンドについてのおすすめの設定をご紹介します。
まず最初に、シェルの設定ファイルについて理解する必要があります。難しそうに見えますが、慣れてくるとそれほど難しくはない内容です。
Macユーザーならデフォルトはzshになっているはずです。Linuxの環境によってはbashを使っている可能性もありますが、まずは自分の使っているシェルの種類を確認しましょう。
echo $SHELL
上記のコマンドを叩きますと、今使っているシェルの種類が表示されます。
/bin/zsh
or
/bin/bash
私のMacではzshなので、zshの設定ファイルをいじっていきます。
まずホームディレクトリに移動していただき、設定ファイルを開きます。今回はVimを使います。
vim .zshrc
初学者の方は何も書かれていない(そもそもファイルすらない)状態と予想しています。
何も書かれていない前提で話を進めていきます。
alias(エイリアス)
まずはi
を押してVimのインサートモードに入りましょう。
そして以下の文字を記述してみます。
alias la="ls -a"
上記書けましたら、esc
を押してVimのノーマルモードに戻ります。
その後
:wq
と書き込んでEnterです。
これで設定ファイルに書き込みが完了しました。ただ、これだけではシェルに反映されているわけではありません。以下のコマンドを叩く必要があります。
source ~/.zshrc
ここまでやったら、設定ファイルの反映は完了しました。
まず、この一連の流れを説明します。
- 設定ファイルを開く
- 設定ファイルに
ls -a
コマンドをla
に短縮するエイリアスを書き込む - 保存して終了する
- 設定ファイルをシェルに反映させる
以上です。
alias(エイリアス)はコマンドに別名をつけることができる機能になります。ls -a
をla
で叩けるように設定ファイルに書き込んだ形になります。もちろん、これ以外のコマンドもalias設定が可能です。
私が設定しているaliasの一部をご紹介いたします。
alias ll="ls -l"
alias la="ls -a"
alias lla="ls -la"
alias rc="vim ~/.zshrc"
alias s_rc='source ~/.zshrc'
これ以外にもたくさん登録していますが、ls
関係のalias、設定ファイルを開く・反映させるaliasだけ載せておきます。これを.zshrc
に書き込んで保存、反映しておくと便利です。aliasは好みにもよりますので、こっちの方が打ちやすい〜といった好みがありましたらご自身で調整をお願いします。
簡単なシェル関数の紹介
私はcd
コマンドで移動をした後で、ls
コマンドを打つことが多いです。毎回ls
コマンドを打つのは面倒臭いと感じた私が設定ファイルに記述したシェル関数をご紹介します。
cd() {
builtin cd "$@" && ls
}
上記の記述を.zshrc
のファイル内に記述して反映してみてください。
そうすると、cd
コマンドで移動するごとに勝手にls
コマンドを実行してくれます。
この設定をした後、私は一度も煩わしさを感じたことがないのでオススメしておきます。ぜひ使ってみてください。
オススメのツールを紹介
ここまで絶対パスや相対パスでの移動を行なってきたわけですが、毎回これを打つのは面倒ですよね?私はよく行くディレクトリに一瞬で移動したいと考えています。
そこでご紹介するのがzoxideです。
このコマンドをインストールすると、ディレクトリの移動がすこぶる楽になります。
Macでのインストール方法は以下になります。
brew install zoxide
※Linuxの場合はディストリビューションによってパッケージ管理のコマンドが違いますので、Linuxの種類によって使い分けてください。
インストールが完了したら、次に以下をシェル上で叩いてみてください。
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
これを叩くと、.zshrc
に直接設定を書き込むことができます。パスを通すというアクションをしているわけですが、これに関しては本記事では詳しく解説するつもりはありません。簡単にいうとご自身のシェル上でどこでもこのコマンドを使えるようにしています。
このzoxideはfzfというコマンドも入れると本領を発揮しますので、ここでついでにインストールしておくと吉です。
brew install fzf
インストールが終了したら、次に以下のコマンドを実行してください。
(brew --prefix)/opt/fzf/install
fzfはここで詳しくご説明すると長くなってしまうので、簡潔に説明しますと『曖昧検索』を可能にするコマンドです。コマンドを打つと履歴が残ります。これはCtrl + R
(Windows)、control + R
(Mac)で実行できるのですが、それを曖昧検索できるようになります。
何を言っているのかわからない。といった人向けに、私の環境の画像を貼っておきます。
私がdoと打つと、多分このコマンドじゃない?という一覧を出してくれます。この曖昧に検索できるのがとてつもなく便利です。このfzfを利用して、移動も楽にしてしまおうというのがzoxideになります。
zi
上記のコマンドを打ってみてください。私の見た目とはちょっと違う形で出るとは思いますが、以下のようによく移動しているディレクトリの候補を出してくれます。
もちろん、曖昧検索が可能なので、いきたいディレクトリの候補の文字を少し打つだけで一覧に出現します。それを選んでEnterするだけで、瞬時に移動することができます。
シェルの移動の概念がかなり変わりますのでインストールするのをオススメします!
おわりに
今回はcd
コマンドとls
コマンドのちょっとした応用について解説しました。
ls
コマンドに関しては他にもオプションはあるのですが、よく使うものに絞って紹介しています。
初学者は最初この黒い(もしくは白い)画面を見ても何が行われているかわからないと思います。でもまず全ての基本はcd
コマンドとls
コマンドです。これを使いこなして、シェル操作を爆速にしていきましょう!
次の記事はcat
touch
echo
コマンドについて初学者向けに解説します。