Open11

The Rust Programming Language 日本語版をド丁寧に進める(ドラフト置き場)

TrasqueTrasque

Rust 公式のチュートリアルを、パソコンちょっと触った程度の知識から見た視点で進めつつ、まとめていくという活動をしています。ここは作成ページのドラフト置き場です。完了したと思ったものは非表示にします。

https://zenn.dev/trasque/books/trasque-trpl2022

Hidden comment
Hidden comment
Hidden comment
Hidden comment
Hidden comment
Hidden comment
Hidden comment
Hidden comment
Hidden comment
TrasqueTrasque

title: "ex1.1 コマンド / cd 自由に移動しよう"

基本のコマンドを知る

1.3章までは cd mkdir ls といったコマンドを使ってきました。これらはLinux / macOSではとても基本的なコマンドです。また、WindowsのPowerShellでも同じような機能として使えるように別名設定(エイリアス)がはじめから行われていました。

これまでのところ、たとえば hello_cargo といったフォルダを作成して、その中に入っていくという操作は行いましたが、逆にその中から出ていく操作はしていませんでした。こまったら端末 / ターミナルごと閉じて開き直すという強引な作戦だったわけです。

このままでは困りますので、コンピュータ内を自由に移動できるよう、更に cd コマンドを突き詰めていきましょう。

. .. の意味を知る

フォルダの中にある実行ファイルを直接指定する場合は ./main のような方法を取りました。いきなり main と書いてしまうと、OSがコマンドと誤認してしまうため、「今いるフォルダの中にある」という意味の . を使用したわけです。この例で仮に hello_cargo フォルダの中にいたのなら、この ./home/<ユーザ名>/hello_cargo と同じ意味になります。

これに / を付けることで /home/<ユーザ名>/hello_cargo/ となり、その後に main.rs を付けるので、結果として

コマンドライン
$ /home/<ユーザ名>/hello_cargo/main.rs

というコマンドラインを打ち込んだのと同じ操作をしたことになります。

こうした絶対パスの指定を毎回やるのは大変です。また、. は相対パスですので、自分が今見ているフォルダによって変わってしまいます。やはり、狙ったフォルダにいつでも移動できなければ困ります。

まずは .. の意味を把握しましょう。これは「ひとつ上のフォルダ」という意味になります。Windowsなどのウィンドウでも、フォルダをダブルクリックした後に「ひとつ上に戻る」ボタンを押しますが、あれと同じ働きをします。

たとえば、hello_cargo フォルダの上には、The Rust Programming Language の場合だと projects フォルダがあるはずです。hello_cargo から出て、projects に戻りたい場合は、以下のようにコマンドを打ちます。

コマンドライン
$ cd ../

または

$ cd ..

これだけです。ですが、深いフォルダの中にいるときには、何回も cd コマンドを打つのは面倒です。なので、一発でホームに戻れる方法があります。 ~ はホームディレクトリを意味する記号でしたね。

コマンドライン
$ cd ~

とはいえ、いつもホームに飛ぶとは限りません。「3つくらい上に戻りたい」とか、「2つ上に戻って、その中にある別のフォルダに移動したい」なんてこともあります。1回ずつ cd ../ などを打って1段階ずつ移動してもいいのですが、慣れてきたら次のようなものを試してみましょう。hello_cargoprojects → ホームを1回のコマンドで移動します。

コマンドライン
$ cd ../../

../ が2回続いてますね。なので、「1個上に戻って」さらにまた「1個上に戻って」ホームディレクトリにたどり着くわけです。

hello_cargo フォルダと同じ階層には hello_world がありました。ここで、hello_cargo の中にいるとき、1回のコマンドで hello_world まで移動することもできます。

コマンドライン
$ cd ../hello_world/

これを直訳すると、「1個上に戻って」そこで「hello_world に入って」となります。ちょっと不思議な感じがしますが、慣れてくればそんなに難しいことではありません。このようにして、相対パスを駆使すると素早く様々なフォルダまで移動できます。これでもう、端末やターミナルを終了する強引な作戦は不要です!!