駆け出しエンジニアぱかぱかの成長記録

引くほど忘れっぽい新卒2年目駆け出しSEぱかぱかの備忘録です。

【Linux】脱コマンド恐怖症

こんにちは!日曜夜のぱかぱかです!
今日は朝から地域の探鳥会に参加してきました🕊️
バードウォッチングで見た鳥を記録するAndroidアプリを勉強のために開発しているぱかぱかですが、実は鳥の知識はそんなに深くありません…
私は小学校低学年の頃に鳥が好きになり毎日重い鳥の図鑑をランドセルに入れていた変な子供でした。
しかし、いつしか興味関心は移り変わり、鳥の知識はそこで止まってしまっていました。
バードウォッチング経験もまだまだ浅いのです。
今朝は野鳥の会というバードウォッチング玄人のおじさまおばさま方と鳥を見に行ってきたのですが、新たな学びがたくさん😳
また機会を見つけて参加してみたいと思ってます!
バードウォッチングアプリ開発にも精が出ますね!

それでは本題に移ります!
今日はまたいつもの記事とは毛色が変わり、Linuxのお話です。

Linuxのお勉強(初)

最近Udemyで以下の講座を受講しました。

もう怖くないLinuxコマンド。手を動かしながらLinuxコマンドラインを5日間で身に付けよう
https://www.udemy.com/course/unscared_linux/

Linuxについてその成り立ちからコマンドまで、初心者にもわかりやすく紹介されている講座です。
私は今までの実務であまりLinuxを扱う機会が少なく、お恥ずかしながらLinuxが何かということすらよくわかっていませんでした…
前のプロジェクトの結合テストリモートデスクトップを使用した際に、コマンドで簡単なフォルダ移動やファイル作成をちまちまやった程度。

しかし最近、実務のリリース作業を行う際にバイナリファイルやソースコードのtarファイルを作成する必要があり、シェルを使う機会がありました。
指示の通りシェルスクリプトを動かしてみるとなんだかんだで欲しいファイルが作成されるのですが、いざそのスクリプトの中身を見てみると何をやろうとしているのかいまいちわからん…
これはマズイということで、こちらの受講に至りました。

せっかく学んでもアウトプットが無いと忘れてしまいそうなので、学んだことをちょっとまとめてみたいと思います。
当たり前の内容すぎて申し訳ありませんがお付き合いください… 🙇🏻‍♀️

Linuxって何?

ちゃんとわかっていなかったので、かなり初歩的なところからお話しさせていただきます笑
LinuxWindowsMac OSと同じOSの一種です。
オープンソースなので無料で使用することできるところが1つ大きな違いでしょうか。
Linuxはサーバーや組み込み機など様々な場所で使用されています。
触る機会がない方が珍しいという感じなんでしょう…😅
Linuxの中核となるのはカーネルと呼ばれるソフトウェアになります。
それを使いやすくするためのソフトウェア群はディストリビューションと呼ばれ、講義ではRedHat系のCentOSを使用していました。
私のMacBook Airではいまいち環境構築がうまくいかず…(M2チップだから…?)
Macは元々Linux系譜のOSということで、デフォルトで入っているターミナルを使って学習していきました。

シェルって何?

LinuxCLIを提供するソフトウェアのことをシェルといいます。
CLIはCommand Line Interfaceのことで、キーボードからコマンドを入力し文字列として結果を出力します。
bashzshなどいくつか種類がありますが、私のPCではzshを採用しているようです。

今回学んだコマンドたち

この講座ではよく使うコマンドをピックアップして紹介していました。
ひとまず学んだものをメモがてら列挙させていただきます。

cd ディレクトリの移動
pwd カレントディレクトリの表示
Is ディレクトリの中身の表示
mkdir ディレクトリの作成
rmdir ディレクトリの削除
cat ファイルの中身を表示
less ファイルの中身をスクロール
touch ファイルを作成
rm ファイルを削除
mv ファイルの移動、ファイル名の変更
cp ファイル・ディレクトリをコピー
In リンクを貼る
find ファイルを検索
chmod ファイルモードの変更
ps プロセスを表示
fg・bg ジョブの状態変更
kill プロセス・ジョブの終了

普段使っている方ならお馴染み!というところでしょうか。
使ってみて基本的に難しいところはなかったのですが、理解が怪しいlnコマンドchmodコマンドについては以下にメモしておきます。

lnコマンド ~リンクを貼るとは?~

Linuxではファイルに別名を付けることができ、それが「リンクを貼る」ということになるそうです。
リンクにはハードリンクとシンボリックリンクがあります。
ハードリンク:1 つのファイルの実体に複数の名前を付ける機能。元のファイルを削除しても消えることはない。
シンボリックリンク:リンク先のパス名が書かれた特殊ファイル。Windows で言うショートカットに近く、参照先のファイルを削除・移動するとファイルを参照できなくなる。

書式は以下で、デフォルトはハードリンクですがオプションに-sを指定するとシンボリックリンクになります。
ln [オプション] <リンク元ファイル名> <リンク名>

ここで気になるのがリンクの使い道ですが、長いパス名を省路したいときや複数バージョンを共存させ最新を区別したいときに使うとのことです。

chmodコマンド ~パーミッションとは?~

chmodコマンドではファイルやディレクトリのパーミッションを設定することができます。
書式は以下で、指定したユーザーのいずれかにr(読み取り)w(書き込み)x(実行)の権限を付与することができます。

chmod [ugoa] [+-=] [rwx]<ファイル名>

u:所有者の権限
g:グル ープの権限
o:その他のユーザ ーの権限
a:全 ユーザ ーの権限

+:権限を追加
-:権限を削除
=:記述した権限にする

Udemyお得情報

ちなみに、Udemyの講座を無料で受講できる裏技はご存知でしょうか?
実はここが皆さんにお伝えしたい情報だったりするのですが…

これ、すごいですよね😳
Twitterで紹介されているくらいなので有名なのでしょうか?
1年目の頃に先輩からUdemyをお薦めされたのですがなかなか値段が高く渋っていた私。
これなら本を買って勉強した方が早いのでは?と思っておりました。

しかし先日プロジェクトの別の先輩がこの方法を共有してくださり、それ以降かなり活用しております。
今回の講座も定価で受講すると11,800円となかなかのお値段で、自費ではちょっと払いづらいです…
技術書3冊くらい買えちゃうよと…
でも、無料ならどんどん次の講座にチャレンジできちゃいますよね!
今では興味ある講義が多すぎて時間が足りません笑

最近では無料期間6ヶ月という制限も外れ、追加で申請することでまだしばらく使うことができるそうで!
ありがたい限りですね…あるものはできる限り活用させてもらいましょう!

ここまで読んでくださりありがとうございました!