PHP / Python開発に関連するシェルスクリプトの機能はどれですか?[閉まっている]


28

私は、JavaとC#(。NET)を学習するPHP / Pythonプログラマーです。
私の主な開発OSはWindows 7ですが、Linuxを使用しており、現在Ubuntuでデュアルブートしています。しかし、私のLinuxの知識はかなり限られています。単純なタスクでコマンドラインを使用できますが、それでほぼ完了です。私はシェルスクリプトを作成せず、多くの重要なコマンドを知りません。

私の興味は、ウェブ開発、モバイルアプリ、そして将来的にはいくつかの組み込みのものです。シェルスクリプトスキルはこれらの利益に役立ちますか?


9
5年前に「本物の男性はC ++に堪能で、本物の男性はコマンドラインを使用してフロッピーイメージからLinuxをブートする」と言った人は誰でも-fvck you!私は彼らに「本物の男性」が頭を使って、彼らが仕事のために見つけることができる最高のツールを選ぶと伝えたいです。また、仕事以外の生活を楽しむ方法も知っています。女性、男性中心の答えをごめんなさい。「男性」とはプログラマを意味しますが、それは当時の言い方ではありません。
ジョブ

3
「Real Men」で議論を始める人は、冗談を言うか、またはsh * tでいっぱいです。ただし、このような馬鹿は、最初は難しいと思われることを理解することの価値を損なうべきではありません。また、特定のC ++中心の要素が絶対に必要な場合は、C ++が最適です。(つまり、高性能、またはより本質的にはCまたはC ++ライブラリ/既存のコードベースの使用など)-基本的に、実用的でない場合は、この作業行を忘れてください。
オコド

6
@Slomojo:本物の男性は妻と子供たちを愛し、彼らをよく扱います。;)
メイソンウィーラー

@メイソン、あなたは王子様です。
オコド

1
PHP / Pythonは、Windowsボックスよりも安価であるため、Linuxボックスに頻繁にデプロイされます。したがって、それらを看護する必要がある場合は、物事がどのように機能し、何をするのかを知ることにより優れています。

回答:


35

Windowsアプリ(またはMacアプリ)をコーディングしている場合、なぜLinuxを知る必要があるのですか?フォードの整備士はジョンディアトラクターを知っているべきですか?それはすべて、あなたが何をしているのか、専門的に、または自分の「趣味」の時間に依存します。

今、それを知ることは害になりません。実際、私は「あなたが知っているほど、あなたは良い」と固く信じています。


私が尋ねる理由は、Linuxは最近、あらゆるタイプのプログラマーにとって「学ぶ必要がある」と考えられているためです。しかし、私は間違っているかもしれません。
Maxtor

@Max:使い方を知っていて、Linuxがその方法と理由を知っている場合にのみ、賢くなります。Linuxソースコードには膨大な知識が埋め込まれていますが、Muadが言ったように、それは必須ではありません。
オタク

1
ほとんどの場合Linuxである可能性のある実稼働環境に自分でプログラムをデプロイする予定がある場合、Linuxを学ぶ必要があります。
dukeofgaming

@ dukeofgaming、IISとPHPを問題なく実行できます。linuxは学ぶのに適していますが、必要ですか?あんまり。
ムアディブ

@dukeofgaming ASP.NETアプリをLinuxサーバーに展開する必要はありませんでした。
カークブロードハースト

29

PHPプログラマーなら、Linuxを完全に知っている必要があります。PHPはLinux上で作成され、PHPはLAMPスタックの重要な部分であるLinux + Apache + MySQL + PHPです。現在Windowsサーバー用に開発する機会があったとしても、次の仕事はおそらくLinuxサーバー用に開発することです。また、Windows固有の 'isms PHPの。

モバイルアプリの分野では、Linuxを知ることは(残念ながら)開発対象の環境とはほとんど関係がありません。iPhone OSはLinuxとは何の関係もありません。Androidでは、仮想マシンに非常に緊密にフェンスが張られているため、Linuxがあなたのすぐ下にあることは決してわかりません。MeegoまたはMaemoでLinux用にプログラムすることもできますが、それらはiPhoneやAndroidの人気に近いところはありません。

組み込みスペースでは、Linuxを知っている必要あります。組み込みWindowsはまれですが、組み込みLinuxは非常に一般的です。(もちろん、ベアメタル組み込みプログラミングも非常に一般的であるため、どこに行きたいかによって異なります。)

何年もかけてLinuxを深く学ぶと、カーネルからブートアッププロセス、コマンドライン、GUIまで、システムのあらゆる部分をある程度理解することができます。


3
組み込みLinuxは32ビットデバイスではかなり一般的であることに同意します。ただし、組み込みマイクロの大半はまだ8ビットと16ビットであり、Linuxを実行できません。(「ベアメタル」コメントでこれをほのめかしましたが、私は少し明確にしています。)しかし、32ビットデバイスは最も急速に成長しているセグメントです。
tcrosley

LAMPスタックおよび埋め込みスペースの場合は+1。初心者のUnix / Linuxプログラマー向けのこのテーマに関する本の推奨事項を歓迎します。
アンソニー

17

ここで適用できる80/20の考え方はある程度あります。実際には、Linuxの動作の基本と、シェルから知る必要があるコアコマンドを学ぶのにそれほど時間はかかりません。同様に、Apacheの基本設定は、必要な場合に非常に便利です。何年も人生を捧げる必要はありませんが、必要に応じて独自のサーバーを実行することで得られる基本を十分に学ぶ価値はあります。

しかし、それは細かい線です。注意を怠ると、Linuxが提供するものに慣れるにつれて、Windowsが本当にあなたを夢中にさせ始めることがすぐにわかります...


12
+1-Windowsを使い続けたい場合は、Linuxを学ばないでください。
モンガスポン

6
+1-[ひどく手を上げる] 私の名前はInaimathi ...とうーん、私は元Windowsユーザーです。
イナイマシ

6

学ぶ必要はありませんが、より良いプログラマーになります。Windowsの方法とは異なる方法で物事を行う方法を学びます。* shシェルのいずれかを使用すると、最終的にスクリプトの作成と正規表現の使用、インストールの自動化、大きなファイルの解析などが行われます。

Linuxで何か他のことをする方法を学ぶたびにそれがいかにクールであるかを気にするのと同じくらい、私はそれを知らないことでm笑されることを気にしません。それは新しいビットごとにどんどん良くなっていきます。

Powershellにはnixの世界から来たものがたくさんありますが、自動化を行うには優れたコンソール(そのためにはkudosが必要)が必要であることに最終的に気付きました。PerlとPythonはどちらも、C、bash、sed、awkの混合物であり、すべて独自の方法で良いものにメッシュ化されているようです。

少なくともあなたは履歴書に入れる何かを持っていますが、それはあなたがそれから抜け出す最良のものではありません。

私はあなたが行くようにするあなた自身の事で見つけると確信しています:「うわー、それはとてもクールです!」最初に、サービスを停止して接続を受信し続けることなく、USR1シグナルを使用してApacheを「殺して」新しい構成ファイルをリロードし、ログを再起動することができました。また、sshとrsync、なぜMSに移植しないのかという悲しみは私を超えています。


+1 MSが砲弾道に向かって移動していることを示しており、完全にそうしているわけではありません!
11

4

あなたを傷つけることはありません。すべてがマイクロソフトの企業であっても、少なくともいくつかのLinuxサーバーに出くわす可能性はますます高まっています。たとえば、Stack OverflowはロードバランサーにLinuxを使用します。これは、仮想化が機能するときに特に当てはまります。

プログラマーとしては、単一のUNIXのようなバリアントではなく、POSIXに精通することを検討することで、より良い結果を得ることができます。いくつかの癖がありますが、すべてのUNIXのような環境で(ほぼ)移植可能な標準インターフェイスを確立しようとする驚くべき試みに費やされた多くの努力を表しています。UNIXのようなシステムの多くは100%「正解」ではないことに注意してください。しかし、それは良い出発点です。

ただのカジュアルなユーザーとして、私は何か新しいことに触れて、新しいことを学ぶのが楽しいことだけを提案できます。考えられるすべてのオペレーティングシステムで「教祖」になることは可能だと思いますが、それがプログラマにとって最も有用な努力だとは思いません。それでも、あなたが遭遇するかもしれないものの実用的な知識は良い..そしてあなたの質問から、あなたは将来Linuxに遭遇する可能性が高いようです。


linuxの知識(長年linux web serverを管理してきました)が私の「Microsoft」の開発に大いに役立ちました。実際、各ソリューションには問題があります。

Linuxディストリビューション(実際に使用できる実際のソフトウェアシステム)とPOSIX(抽象的な仕様)に慣れることは、2つの非常に異なるものです。1つのUnixまたはUnixライクなOS(Mac OSXをほとんど除く)に精通していれば、知識を他のOSに移すのに問題はありません。
デビッドソーンリー

3

はい。ただし、積極的に勉強する必要があるとは思えません。

私にとっては、Linuxを仕事用OSとして使用することでLinuxに慣れてきました。ピースごとに、私は彼らが立ち上がったときに知る必要があることを学び、そうし続けました。インターネットはその代わりに、私はあなたがいることを示唆している、あなたはWRTのlinuxに必要があるだろう何でもだけを行う方法上のリソースに満ちているmanページ読んで良いの取得やドキュメントをし、あなたの脳が吸収しましょう(と忘れる)詳細を達成する方法のあなたが行くように特定のタスク。

そうは言っても、確かにいくつかのコマンドがあり、基本的な知識がないためにLinuxの世界から遠ざけられます。


3

私が行った5つの仕事のうち最後の4つでは、開発者とQA(少なくとも開始された)はWindowsで働いていましたが、テストサーバーと運用サーバーはLinux / UNIXでした。少なくともテストサーバーにアクセスしてログを確認したり、「実際の」環境で実行中のプログラムをデバッグしたりするには、少なくともすべてのUNIXを知っている必要があります。実際、過去20年の企業ではWindows向けの開発はほとんど行われていません。

ここで他の人を反響させることは、あなたの仕事やキャリアにとって「必要」ではないかもしれませんが、あなた自身の仕事、あなたが使用している言語やシステムの利点と制限を理解するのに役立ちます。


2

私見、Linux / Unixがさらに重要なUnix哲学への大きな足がかりになることを知っている有能なプログラマにとって


2

オペレーティングシステムのコンピューターサイエンスコースを受講したとき、私たちはUNIXベースのオペレーティングシステムを研究し、RedHatで作業を行いました。 Windows。

オペレーティングシステムが内部でどのように機能するかの基本を学習する場合、アカデミックな環境であっても、Linuxの経験があるはずです。

Ubuntu 10.04からWindows 7に戻りました。grepや他のコマンドラインツールがなければ、少し迷ったように感じます。私はシステムがパワーユーザーと開発者により貢献しているように感じるので、Linux環境で開発することを好みます。

大学を卒業してLinuxについて何も知らない非常に優れた.NETプログラマーを知っているので、それは要件ではありませんが、5年以上のプログラミング経験がある人は、何らかの形でLinuxにさらされたことを期待します彼らのキャリアの時間。

あなたが焦点を当てているものの裁判官でなければなりません。しかしながら。現在、モバイルアプリを開発するためのパスがあり、Linuxが実際に要件ではないことを知っている場合は、LinuxではなくモバイルSDKの詳細を学ぶことに集中することができます。すべてにトレードオフがありますが、必要に応じてLinuxの詳細を学ぶことができる場所にLinuxの基本的な経験があるようです。


2
私はいつもWindowsボックスでgrepなどを使っていましたが、それは必要です。
11

1

次のいずれかが気になりますか?

  1. Linuxを履歴書に載せることはできません/すべきではありません。
  2. 純粋なLinuxショップで働く資格はありません。
  3. 自習でLinuxを追い求めることに対する現在の仕事の要求と関心のレベルは存在しないので、Linuxに関するあなたの状況は変わりません。
  4. Windows以外の開発者はあなたをm笑します(たぶんあなたの顔ではありません)。

あなたがまだ追求できる仕事の機会とキャリアパスがたくさんあります。私はこれらのいずれもあなたを悩ませるべきだと言っているのではありません。自分に正直になり、業界全般、特にLinuxに注目して、パスが交差するかどうかを確認してください。間違いなく、時が来たらそれを理解できるでしょう。明日、Linuxプロジェクトがあなたの道に来るかもしれません。


1

私は常にWindows環境でコーディングしてきました。私にとって、LinuxはWindowsで問題が発生した場合のバックアップとして使用する別のOSでした。基本的なコマンドだけを知っていて、その上でやろうとしたことはすべて難しいように思えました。しかし、現在のWeb開発者としての仕事では、すべてLinuxを使用しているため、Linuxを学習し、すべてに使用することを余儀なくされています。使用すればするほど好きになり、より生産的で柔軟になると思います。以前にLinuxをいじったことがなかったことを後悔しています。今私は追いついています。

ええ、できればいつでも学ぶべきです。


1

Linuxは、Windowsが「単なる」ツールであるのと同じように、ツールボックス内のツールです。両方に堪能であることは、いくつかのことをより良くすることを可能にしますが、他のこととは無関係です。

個人的には、ライセンスコストを考慮せずに、データベースサーバー、メールサーバー、テストWebサーバーなどを仮想マシンで簡単に作成および管理できるため、Ubuntuの形のLinuxが非常に有用であることがわかりました。サーバーのバージョンはWindowsよりも少ないリソースで済みます)。これらのことを何もしなければ、Linuxはあなたにとって重要ではないと思います。


0

あなたがあればことを十分に知っているつもりで、特定のOSに展開する、そしてあなたはあなたのアプリケーションがそれに動作することを確認することができますが、そうでない場合は...あなたはしていない持っているもの/すべてを知っています。


開発したOSとは異なるOSにデプロイする場合は、新しいOSに関する多くの知識必要になる可能あります。大きな要因の1つは、アプリケーションに低レベルの機能がどれだけ存在するか(つまり、シリアルポートタイプのアクセス)
Patrick

0

.NETをやっていない限り、Linuxの使用を好みます。LAMPスタックは、WAMPよりも自然に感じます。

Microsoft以外のものを学ぶことに興味がある場合は、絶対に学ぶことをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.