ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

【レポート】今から始めるLinuxコマンド操作入門(第36回ニフクラエンジニアミートアップ)

こんにちは。 ニフクラエンジニアミートアップ事務局の鮫島です。
2021年4月28日(水)に第36回ニフクラエンジニアミートアップを開催しました。

今回のテーマは

fujitsufjct.connpass.com

というものでした。

今年もフレッシュな新人エンジニアが社会人の仲間入りをしましたが、コロナ禍まっただなかのご時世では、新人研修もリモートで行われることが多く、平常時なら可能な「先輩や同期の仲間に訊く」「オフィスにある技術書を読む」といった「当たり前のこと」がやり辛いという課題もあります。

そこで、今回は新人エンジニアが覚えておくと役に立つ必須の「Linuxコマンド」について、4月20日発売の

そろそろ常識? マンガでわかる「Linuxコマンド」

f:id:sameshima_fjct:20210514164512j:plain
そろそろ常識?シリーズです。
という書籍の著者である水野源氏をお招きして語っていただくという趣旨で開催しました。

なぜ今さら「Linuxコマンドの基礎」なのか?

ごく基本的なことほど、いざ教えようとすると系統的にまとまったドキュメントが存在しない・・・ そういうあるあるに基づいています。

狙い通り、たくさんの方にお越しくださいました!ありがとうございました。

今から始めるLinuxコマンド操作入門

恒例の宮原氏によるオンライン乾杯の儀を済ませた後、さっそく水野氏のセッションに突入します。 今回のセッションの想定受講者は「Linuxコマンド操作経験がない人」とのこと。

CLIを使うメリットとは?

え?LinuxってGUIで使えるからコマンド入力なんて不要じゃね? という方もいらっしゃると思います。 必要に迫られたときだけQiitaの手順書からコピペして使ったことがある・・・というケースも多いようです。 しかし、あえて言おう。

CLIを使うメリットは大きい

具体的には、こういったメリットがあります。

・大量のデータ処理や自動化が容易
・手順の再現性が高い
・作業記録を厳密に残せる
・ミスに気付きやすい
・リソースの消費量が少なくて済む

もちろん、一方でGUIを使うメリットもあるため、トレードオフという側面もあります。 つまり、どちらが優れているか?という論争は不毛であり、併用するのが良いとのこと。

CLI環境の準備

さっそく、CLIを実際に利用するためには何が必要か?

端末とシェルです。

端末の歴史については、いにしえの化石のような機械のことを説明しなければならないので省略。 端末をソフトウェア的に再現した、端末エミュレーターを利用することになります。

一般的にLinuxでシェルといえば、コマンドラインシェルを指します。 その中でもポピュラーに利用されているのが「bash」です。

f:id:sameshima_fjct:20210512143125p:plain
Linuxでシェルといえばbash

実際にLinux環境を利用するためには、リアル端末というかPCが必要ですが、そのPCのOSによって多少選択肢が変わってきます。

一番無難なのは、Linuxが入っているPCを利用することです。

もちろん、WindowsやMacOSでも利用できますが、初心者が何も考えずにLinuxコマンドに専念できるのはLinux(OSが入っているPC)です(断言)。

コマンド操作に慣れる

コマンド操作は、例の黒い画面に「$」すなわちプロンプトがでている状態で、「コマンドを入力」して「Enter」で実行、また「$」に戻ったら、次のコマンドを入力して(延々繰り返し)・・・という流れになります。

f:id:sameshima_fjct:20210511193837p:plain
プロンプト$がでている=コマンド入力OKのサイン

ここで、重要なことは「カレントディレクトリを意識する」こと。

要するに、自分がどのディレクトリでコマンドを実行しているかってことですね。

当たり前ですが、コマンドを入力して「Enter」キーを叩くと処理が実行されます。 しかし「Enter」を叩くまでは、コマンドは間違っていても修正可能ですし、カット&ペーストも利用できます。

早い話がチャットやメッセンジャーソフトでちょっとマズい誤字を入力しても、「Enter」を押すまではセーフなのと同じです。

また、キーボードの↑↓キーや、Ctrl+n/pで過去に実行したコマンドを呼び出せます。 すなわち、毎度毎度難しいコマンドを入力しなくても済む=ミスが減らせます。

他にも、Ctrl+Rでコマンド実行履歴を検索したり、Tabで実行可能なコマンド候補を表示(コマンド補完)するのも便利な使い方です。

こういった、いわゆるショートカット的な機能を覚えることで、タイプミスを減らし効率化できるのが、Linuxコマンドのいいところではないでしょうか。

頻出コマンド紹介

ここから、より実践的な頻出コマンドの紹介に入ります。 ディレクトリの内容を表示する「ls」やカレントディレクトリを変更する「cd」といった、超基礎的なものから、終了する「exit」まで紹介したあと、水野氏の履歴が紹介されます。

f:id:sameshima_fjct:20210512140851p:plain
aptが上位に入っているのがUbuntuユーザーっぽい

コマンド実行例とまとめ

代表的なコマンド実行例が示された後、まとめとして
・コマンドを学ぶ意味
・これから先何を学習するか

ここは、実際のスライドや動画をみていただいたほうがより伝わると思うので、詳しくは書きません。 誰でも決まった処理が確実に行えるGUIに比べて、コマンド活用でより柔軟かつ効率の良い処理が行えるようになるということが語られました。 使えばつかうほど効率が上がっていきます。

コマンド履歴=財産
コマンド=強力な武器

という感じで、水野氏のセッションは終了しました。

詳しくは、こちらのスライドと・・・

www.slideshare.net

こちらの動画をご覧ください。

www.youtube.com

恒例のQAセッション

水野氏のセッション中にも、チャットでたくさんのコメントが流れていましたが、Slidoに次々と質問が飛び込んできます。

f:id:sameshima_fjct:20210512144848p:plain
破壊的なコマンドを本番環境でいきなり実行するのはいかがなものか

今回は、「本当の初心者」からの哲学的な質問から、「大きいおともだち」から「シェル芸」リクエストまでバリエーション豊富な雑談っぽい質問が多く、チャットでも同時に盛り上がっていました。

これは、いちいち紹介するのも野暮なので、動画をご覧ください。

www.youtube.com

ということで、応募者の7割近くという高い参加率で大いに盛り上がりました。

まだまだ新型コロナウイルスのワクチン接種もやっとこれからですし、しばらくは新人エンジニアの研修も苦労が多いと思います。
こういう時期だからこそ、進んで学習していく姿勢・どうやればより高いスキルを獲得できるか?を考えることは重要だと感じます。

今後も、新人エンジニア向けの「今さら教えてもらえない系」企画は定期的に実施していく所存です。

それでは次回もお楽しみに!

CONNPASSのグループ登録も忘れないでくださいね! fujitsufjct.connpass.com

しつこいですが、ニフクラのYouTubeチャンネル登録もよろしくお願いします。

www.youtube.com