黒い画面は怖い。ただエンジニアは避けて通れない。
今回は黒い画面の基礎となるUnixコマンドを学習しよう。
LinuxはUnixの延長線上にあるOSだし、MacもUnixベースだ。
WinでもGitBashを使えばUnixコマンドを使える。
つまりこのUnixコマンドを覚えとけばどの環境でも操作できるということだ。
早速やっていこう。
シェル起動
黒い画面で操作するにはシェルを使う。シェルには様々なものがあるが今回windowsの人はGitBashをMacの人はBashを使うことを前提にしている。
Windowsの人は以下にアクセスし、GitをインストールするとGitBashが付属してくる。Gitもどうせ必要なのでインストールしておこう。
https://gitforwindows.org/
ダウンロードしたら全部Nextを押してインストールを完了する。
ダウンロードが完了したら右クリックでGitBashを開くことができるようになる。
Macはターミナルを開けばそれでOKだ。
ただし、新しいMacOS(catalina以降)を使っている人はzshというシェルがデフォルトの指定になっている。
https://qiita.com/__xxx/items/c9a30e78196998f4160c
こちらの記事を参考にbashに戻すか適宜読み替えてもらいたい。
準備ができたらWinの人はGitBashをMacの人はターミナルを起動して欲しい
ユーザー名,コンピュータ名の後ろに
~
と表示されている。
(もし表示が違っているようだったら cd とだけ入力してリターンキーを押す)
これは現在どのディレクトリにいるかを表してる。
~というのは見慣れぬ記号だがなんだろうか?
これはそのユーザーのホームディレクトリを表してる。
ホームディレクトリ???
ホームディレクトリといのはその端末にアクセスしているユーザーが自由に使えるディレクトリのことだ。
実際に確認してみよう。
Win
PC->C->/Users/アカウント名
Mac(Machintosh HDの場所がわからない人はここで見えるように設定する)
Macintosh HD -> Users ->アカウント名
このようにMacでもWinでもPCにログインした際にホームフォルダというのが自動的に設定されている。(Macはちゃんと家(home)のアイコンになっている)
pwd
実際に黒い画面から現在いる場所を確認してみよう。シェルから以下のコマンドを打ち込む。この際$はプロンプトを表すので入力しないように注意する
$ pwd
以下のように現在いる場所が表示されれば成功だ。
このpwdはPrint Working Directoryの略で現在いる場所をフルパスで教えてくれる。
一覧(ls)
今いる場所にどういったファイルやディレクトリがあるのかを確認するのがlsコマンドだ。(listの略)
以下のように入力してみよう。
$ ls
そのディレクトリにあるフォルダやファイルが一覧表示されるはずだ。
lsコマンドは隠しフィイルを表示する aオプションや詳細表示をするlオプションもよく利用される。これらのオプションをつけてもう一度実行してみよう
$ ls -la
隠しファイルも含め数多くファイルやディレクトリが縦に表示されれば成功だ。
続いて以下のように入力
$ ls -lt
このtはtimeのtで更新時間順に並べてくれる。
これも便利なオプションなので覚えておこう。
移動(cd)
ホームフォルダから移動してみよう。移動するにはcdコマンドを使う(change directory)。今回はDocumentsフォルダに移動してみよう。
$ cd Documents
環境によって多少見え方は違うが,現在いる場所(カレントパス)が変わったことがわかる。さきほどは現在いる場所からの相対パスで移動先を示したが絶対パスでの移動もよく行われる。以下のコマンドでDesktopフォルダに移動してみよう。
$ cd ~/Desktop
一つ前にいた場所に戻るのが以下のコマンド。実際にタイプしてみてDocumentsフォルダに戻ることを確認しよう。
$ cd -
一つ上の階層に移動するのは..はドットを2つ並べる。
$ cd ..
ホームフォルダに戻ったであろうか?
またどんな階層にいても行き先を指定せずにcdとだけタイプすればいつでもホームディレクトリにいける。これも便利なので覚えておくとよいだろう。
$ cd
フォルダ作成(mkdir)
フォルダを作成してみよう。mkdir(make directory)を使うとフォルダを作成することできる。まずはcd で desktopに移動する
$ cd ~/Desktop
次に以下を打ち込む
$ mkdir bashTest
これでbashTestフォルダができた。lsで確認してみよう。
続いて以下のコマンドでbashTestフォルダに移動する
$ cd bashTest
ファイル作成(touch)
以下のコマンドで空のファイルを1枚作ってみよう
$ touch file1.txt
lsを打ってファイルを確認
$ ls
ファイル書き込み(echo >)
以下のコマンドでファイルに書き込みを行おう。
$ echo "memo1" > file1.txt
echo の出力先にファイル名を指定することでファイルに書き込むことができる。
以下のようにして追記してみよう。
$ echo "memo2" >> file1.txt
このように >>とすることで追記できる。
内容確認(cat)
以下のようにコマンドしてファイルの中身を確認しよう。
$ cat file1.txt
コピー(cp)
ファイルコピーをしてみよう。同一フォルダ内に作成する場合は以下
cp file1.txt file2.txt
これでfile1.txtが複写されfile2.txtができる。
フォルダごと複写するにはどうすればよいだろうか?
今からそれをおこなう。
まずは一つ上の階層にいく
cd ..
さきほど作成したbashTestフォルダごと~/Documents/内に複製してみよう。
コマンドは以下
cp -r bashTest ~/Documents/
-r オプションを指定することでフォルダをまるっとコピーすることができる。
rはrecursive(再帰)から。
これでbashTestフォルダをDocumentsフォルダ内にまるっとコピーすることができた。
リネーム(mv)
cdしてbashTestフォルダに移動しよう
$ cd ~/Desktop/bashTest
いまここにあるfile1.txtをfile2.txtにリネームしたい。
その場合は以下のコマンドを打つ
$ mv file1.txt file2.txt
移動(mv)
今で来たfile2.txtを~/Documents/bashTest以下に移動しよう。
その場合は以下のコマンド
$ mv file2.txt ~/Documents/bashTest/
lsをしてみよう。bashTestフォルダにはファイルがなくなっていることがわかる。
~/Documents/bashTest/の中を確認してみる。
$ ls ~/Documents/bashTest/
ちゃんと2枚ファイルが存在していることがわかる。
削除(rm)
それでは削除してみよう。削除にはrmを使う(remove)
まずはDesktopにあるbashTestフォルダを削除する。まずはデスクトップに移動
$ cd Desktop
以下のコマンドで削除。ここでもディレクトリは-r オプションが必要となる。
$ rm -r bashTest
次にcd で~/Documents/bashTestに移動
$ cd ~/Documents/bashTest
以下のコマンドでファイルを2枚削除する。
rm file1.txt file2.txt
これは以下のようにワイルドカードを使ったコマンドでも同じ結果が得られる。ただ、削除はなるべく詳細にファイル名を入力したほうがいいだろう。シェル作業での削除は基本取り返しがつかない。くれぐれも興味本位で滅びの呪文を打ってみようなどど思わないこと。
rm *.txt
以上で終了だ。Unixコマンドを覚え黒画面を扱えるようになるとエンジニアとしての活動領域が広がる。毛嫌いせずに少しずつ慣れていってもらいたい。
演習問題
さらに学びたい人に
以下からLinux標準教科書が無料でダウンロードできる。活用するとよいだろう。
コメント