😺

【案件ガチャ対策】Linuxでバージョンを一覧するシェルスクリプト

2022/08/22に公開

IT派遣などに行った直後に、まず最初に何をするか?というと大企業などの派遣先の顧客であるエンドユーザーのシステム環境を知る必要があります。多くのエンドユーザーは高性能を求めます。

バージョンを知るというのは、インストールされているのか?を最初に知る定番な方法です。またバージョンが古いと、高性能なシステムは作れないなどの判断材料になります。

案件ガチャは調査不足で起きる

案件ガチャとは求職者はプログラミングがしたいのに、顧客はシステム構築や営業仕事などを求める、昔に言われた雇用のミスマッチです。入社してからこれが分かると揉めます。

エンドユーザーはITシステム初心者が多いのに対し、IT派遣者はエンドユーザーはITに詳しいと思っているギャップが混乱を招きます。

そこで以下のシェルスクリプトをダブルクリックなどをいし〔実行]ボタンを押し起動し、まずエンドユーザーのスキルを調査します。

シェルスクリプトで環境を調査する

バージョンを一覧するシェルスクリプト.sh
#!/bin/bash
echo バージョンを一覧するシェルスクリプト
echo
echo LinuxMintはUbuntuと表示される
echo
echo このシェルのバージョン --------------------
bash --version
echo
echo 開発環境のバージョン --------------------
echo ▼ 初期の環境
python --version
ruby -version
echo
echo ▼ 追加の環境
echo -n smbd 
smbd -V
mysql --version
apachectl -v
java -version
echo
echo ▽ 複数バージョンを格納なら絶対パスで指定してみる
/usr/local/go/bin/go version
echo -n Node.js 
/usr/local/node-js/node-v16.17.0-linux-x64/bin/node -v
echo
echo ▽ Go言語の環境を全部把握
go env
echo
exec bash

/bin/bashは古い基本的なシェルなので、エンドユーザーがUnixなどを初期の状態にしかしていなくても使えます。ソースコードの最後にexec bashを付けないと、端末が消えて見えなく無駄です。

echoは文字などを表示するコマンドで、2回使うと簡単に改行が出来ます。echo -n とは下の行を改行しないということです。コマンドの中にはソフト名を表示せずに、バージョンしか表示しないものもある分かりづらさの対策です。

軽量で古いPCでも使えるLinuxMintは、現在のLinuxで最も多いシェアなUbuntuから派生したようなLinuxなので、Ubuntuと表示されます。

bashのバージョンも念のために表示しましょう。pythonやrubyやmysqlは派遣案件などで多く求められるスキルです。Linuxをインストールした直後には、LinuxOSでも使っているようなので、古いバージョンが既に入っています。

高額案件を得るためにも複数バージョンを使い分ける

しかし高額案件などは最新バージョンが求められたり、大企業などは古いシステムをコストなどで維持をしたがるので、新旧バージョンを共存する設定にしましょう。

例えばpythonでしたら/usr/local/pyhon/python3というディレクトリを作り、シェルスクリプトで絶対パスを指定すれば、文字入力ではなくクリックをするという簡単に実行が出来ます。

Javaは最も求人数が多い言語です。Linuxインストール直後にはコンパイラであるjdkなどはインストールされていないと思いますが、LinuxのGUIなソフトウエアマネージャーなどで開発ソフトをインストールするとJDKもパスも組み込まれ、javaというコマンドを打つ、jdkのバージョンも表示されます。

WindowsPCとのファイル共有ソフトであるsambaのバージョンは、smbdコマンドでも確認できるようです。

Go言語やNode.jsなどは/usr/local/goや/usr/local/node-jsの中にバージョン別に格納し、シェルスクリプトに格納先のbinのパスを指定すれば使えます。

この後はTypeScriptやNext.js、PHPなどをインストールし、本シェルスクリプトに追加していけば便利です。

ただしシェルスクリプトを作る仕事というのは多くは無いで、あまり凝るのは無駄な気がします。特にSCSSもですが、プログラミングのようにしていくのは、求人案件数の少なさからして、Go言語などの高額案件率が高い方を勉強した方が良い気がします。

プログラミングという仕事は「その言語を全部知る=その道一筋の専門家になる」のではなく、良い所どりをした方が効率が良いです。

Discussion