Какие особенности скриптов оболочки подходят для разработки PHP /Python? [закрыто]

Я программист PHP /Python, изучающий Java и C # (.NET).
Моя основная ОС разработки - это Windows 7, но я использовал Linux, и в настоящее время я дважды загружаюсь с Ubuntu. Однако мои знания Linux довольно ограничены. Я могу работать с командной строкой на простых задачах, но это в значительной степени. Я не делаю никаких сценариев оболочки, и я не знаю много важных команд.

Мои интересы - это веб-разработка, мобильные приложения и, возможно, некоторые встроенные материалы в будущем. Будут ли навыки командной строки оболочки полезными для этих интересов, и если да, то как?

28 голосов | спросил Maxtor 3 FriEurope/Moscow2010-12-03T03:32:49+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:32:49 +0300 2010, 03:32:49

14 ответов


35

Если я кодирую приложение Windows (или приложение для Mac), почему мне нужно знать Linux? Должен ли механик Ford узнать о тракторах John Deer? Все зависит от того, что вы делаете, профессионально или по собственному «хобби».

Теперь не больно это знать. На самом деле, я твердо верю в «чем больше вы знаете, тем лучше вы»

ответил Muad'Dib 3 FriEurope/Moscow2010-12-03T03:45:18+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:45:18 +0300 2010, 03:45:18
29

Если вы программист PHP, вам обязательно нужно знать Linux. PHP был создан в Linux, а PHP - неотъемлемая часть стека LAMP: Linux + Apache + MySQL + PHP. Даже если у вас есть возможность разрабатываться для серверов Windows, ваша следующая работа, вероятно, будет развиваться для серверов Linux, и вам нужно будет ознакомиться с средой Linux, чтобы вы не столкнулись с конкретными «окнами» PHP.

В пространстве мобильных приложений знание Linux будет (к сожалению) мало релевантным для среды, для которой вы разрабатываете. iPhone OS не имеет ничего общего с Linux, и Android у вас так сильно огорожена виртуальной машиной, вы никогда не узнаете, что под вами Linux. Вы можете запрограммировать для Linux на Meego или Maemo, но они нигде не приближаются к популярности iPhone и Android.

Во встроенном пространстве у вас есть , чтобы знать Linux. Встроенные Windows редки, но встроенная Linux довольно распространена. (Разумеется, встроенное программирование с открытым металлом также довольно распространено, поэтому оно зависит от того, куда вы хотите пойти.)

Если вы изучите Linux в течение нескольких лет, у вас будет некоторое понимание каждой части системы из ядра, через процесс загрузки, вплоть до командной строки и графического интерфейса.

ответил Ken Bloom 3 FriEurope/Moscow2010-12-03T03:44:14+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:44:14 +0300 2010, 03:44:14
17

Существует определенная степень 80/20, которую вы можете применить здесь. На самом деле не так много времени, чтобы изучить основы работы Linux и основные команды, о которых вам нужно знать в Shell. Аналогично, базовая конфигурация Apache очень удобна, если вам это нужно. Вам не нужно выделять годы своей жизни, но, безусловно, стоит изучить достаточные основы, которые вы могли бы получить, запустив свой собственный сервер, если бы вам пришлось.

Это тонкая линия. Если вы не будете осторожны, вы можете быстро найти, что Windows начинает действительно галочать вас, когда вы привыкнете к тому, что предлагает Linux ...

ответил glenatron 3 FriEurope/Moscow2010-12-03T03:48:44+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:48:44 +0300 2010, 03:48:44
6

Вам не обязательно это изучать, но это сделает вас лучшим программистом. Вы узнаете, как делать вещи по-другому, чем путь Windows. Использование любой из оболочек * sh в конечном итоге приведет к созданию сценариев и использованию регулярных выражений, автоматизации установок, синтаксическому анализу больших файлов и т. Д.

Мне все равно, что насмехаются за то, что я этого не знаю, насколько я забочусь о том, насколько круто это каждый раз, когда я узнаю, как делать что-то еще в Linux. С каждым новым битом он становится все лучше и лучше.

Powershell имеет много всего, что приходит из мира nix, они, наконец, поняли, что для автоматизации вам нужна хорошая консоль (для этого это и есть престиж MS). Как Perl, так и Python, похоже, представляют собой смесь C, bash, sed, awk, все они вписываются в хорошую игру по-своему.

По крайней мере, у вас будет что-то еще, чтобы добавить ваше резюме, но это действительно не лучшая вещь, из которой вы выберете.

Я уверен, что вы найдете на своих вещах, которые заставят вас пойти: «Ого, это так здорово!» Мой первый способ был «убить» Apache, используя сигнал USR1, чтобы заставить его перезагрузить новый файл конфигурации и перезапустить журналы, не останавливая службу и продолжая получать соединения. Также ssh и rsync, хорошее горе, почему MS не переносит их за меня.

ответил Marlon 3 FriEurope/Moscow2010-12-03T10:12:21+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 10:12:21 +0300 2010, 10:12:21
4

Это не повредит вам. Даже во всей компании Microsoft все чаще становится все более вероятным, что вы столкнетесь, по крайней мере, с несколькими серверами Linux. Например, переполнение стека использует Linux для своих балансировщиков нагрузки. Это особенно актуально, когда виртуализация вступает в игру.

Как программист, вам может быть лучше, если вы познакомитесь с POSIX, а не только с одним UNIX-подобным вариантом. В то время как у него есть некоторые причуды, он представляет собой много усилий, которые вступили в невероятную попытку установить стандартный интерфейс, который (в основном) переносится во всех UNIX-подобных средах. Обратите внимание, что многие UNIX-подобные системы не на 100% «правильно исправлены», но это хорошая отправная точка.

Как просто случайный пользователь, я могу только предположить, что было бы весело совать что-то новое и изучать новые вещи. Я думаю, что можно быть «гуру» с каждой операционной системой, о которой можно было бы подумать, но я не думаю, что это самая полезная работа для программиста. Тем не менее, хорошее знание материала, с которым вы можете столкнуться, является хорошим .. и из вашего вопроса вы, скорее всего, столкнетесь с Linux в будущем.

ответил Tim Post 3 FriEurope/Moscow2010-12-03T10:46:54+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 10:46:54 +0300 2010, 10:46:54
3

Да, но вам не кажется, что вам нужно активно его изучать.

Для меня мое знакомство с Linux разработано благодаря использованию моего использования в качестве моей операционной ОС. По частям я узнал то, что мне нужно было знать, когда они подошли, и продолжайте это делать. В Интернете полно ресурсов о том, как делать все, что вам нужно, чтобы использовать Linux, поэтому вместо этого я предлагаю вам хорошо читать страницы руководства и документацию и позволить вашему мозгу поглощать (и забудьте) подробные сведения о том, как выполнить конкретные задачи , когда вы идете .

Как говорится, есть, конечно, несколько команд, которые вы будете избегать из мира Linux, чтобы не иметь базового понимания.

ответил instanceofTom 3 FriEurope/Moscow2010-12-03T03:48:37+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:48:37 +0300 2010, 03:48:37
3

В последних четырех из пяти заданий, в которых я был, разработчики и QA (по крайней мере, начали) работали в Windows, но тестовыми и производственными серверами были Linux /UNIX. Все они должны знать хотя бы небольшое количество UNIX, чтобы, по крайней мере, иметь возможность попасть на тестовые серверы и посмотреть журналы или отладить запущенную программу в «реальной» среде. Очень мало развития на самом деле предназначено для Windows в компаниях, которые были в последние 20 лет.

Повторяя другие здесь, очень мало может быть «необходимо» для вашей работы или карьеры, но это поможет вам понять вашу собственную работу, преимущества и ограничения языка или системы, которые вы используете.

ответил Arcege 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:04:21 +0300000000amMon, 07 Feb 2011 01:04:21 +030011 2011, 01:04:21
2

IMHO, для компетентного программиста, знающего Linux /Unix, станет отличным шагом к еще более важному философии Unix

ответил Maglob 6 FebruaryEurope/MoscowbSun, 06 Feb 2011 23:57:46 +0300000000pmSun, 06 Feb 2011 23:57:46 +030011 2011, 23:57:46
2

Когда я взял курс «Компьютерные науки в операционных системах», мы изучили операционные системы на базе UNIX и сделали нашу работу над RedHat, потому что это был открытый исходный код, и потому что мы могли видеть код и потому что мы могли делать с ним что-то, что просто не могло в Windows.

Я бы сказал, что если вы изучите основы того, как операционные системы работают под капотом, вы, вероятно, должны иметь некоторый опыт работы с Linux, даже если это только в академической среде.

Я просто переключился на Windows 7 с Ubuntu 10.04. Я чувствую себя немного потерянным без grep и некоторых других инструментов командной строки. Я предпочитаю развиваться в среде Linux, потому что я чувствую, что система более благоприятна для опытных пользователей и разработчиков.

Я действительно хорошо знаю .NET-программистов, которые вышли из колледжа, которые ничего не знают о Linux, поэтому это не является обязательным требованием, но я ожидаю, что кто-либо, у которого более 5 лет опыта программирования, подвергся воздействию Linux в одной форме или другой в свое время в своей карьере.

Вы должны быть судьей того, на чем вы сосредоточены; Однако. Если в настоящее время у вас есть путь для разработки мобильных приложений, и знание Linux на самом деле не является требованием, возможно, вы сосредоточитесь на том, чтобы больше узнать о мобильных SDK вместо Linux. Для всего есть компромисс, и похоже, что у вас есть базовое воздействие на Linux, где вы могли бы узнать больше об этом, если это необходимо.

ответил jmort253 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:21:28 +0300000000amMon, 07 Feb 2011 01:21:28 +030011 2011, 01:21:28
1

Любое из вас беспокоит вас?

  1. Вы не можете /не должны ставить Linux в ваше резюме.
  2. Вы не имеете права работать в магазине Linux.
  3. Ваши текущие требования к работе и уровень заинтересованности в преследовании Linux через самообучение не существуют, поэтому ваша ситуация с Linux не изменится.
  4. Разработчики, не относящиеся к Windows, будут издеваться над вами (возможно, не к вашему лицу.).

Есть много возможностей для трудоустройства и карьерных путей, которые вы можете продолжать. Я не говорю, что любой из них «должен» беспокоить вас. Просто будьте честны с самим собой и следите за отраслью в целом и Linux, в частности, чтобы увидеть, могут ли ваши пути пересечься. Без сомнения, вы могли бы понять это, когда придет время. Кто знает, завтра может начаться проект Linux.

ответил JeffO 3 FriEurope/Moscow2010-12-03T05:41:34+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 05:41:34 +0300 2010, 05:41:34
1

Я всегда кодировал в среде Windows. Для меня Linux просто был другой операционной системой, которую я имел бы в качестве резервной копии, если бы у меня возникла проблема с Windows. Я знал только основные команды, и все, что я пытался сделать, казалось, было тяжело. Но теперь, когда я работаю в качестве веб-разработчика, мы все используем Linux, поэтому я вынужден изучить его и использовать его для всего. Чем больше я использую его, тем больше мне это нравится, и я думаю, что это намного более продуктивно и гибко. Я сожалею, что раньше не сталкивался с Linux. Теперь я просто догоняю.

Итак, да, вы должны изучать его, когда можете.

ответил chiurox 3 FriEurope/Moscow2010-12-03T06:28:14+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 06:28:14 +0300 2010, 06:28:14
1

Linux - это инструмент в вашей панели инструментов так же, как Windows - «просто» инструмент. Свобода в обоих позволяет вам делать что-то лучше, но не имеет отношения к другим вещам.

Лично я нашел Linux в виде Ubuntu очень полезным, потому что он позволяет мне легко создавать и поддерживать такие вещи, как сервер базы данных, почтовый сервер, тестовый веб-сервер и многое другое на виртуальных машинах, не имея необходимости рассматривать лицензию затраты (плюс серверные версии требуют меньше ресурсов, чем Windows). Если вы не сделаете ничего из этого, я не думаю, что Linux будет иметь для вас значение.

ответил 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 19:38:03 +0300000000pmSun, 20 Feb 2011 19:38:03 +030011 2011, 19:38:03
0

Знайте, что если вы намереваетесь развертывать на определенную ОС, вы можете убедиться, что ваше приложение работает на нем, но в противном случае ... вы не имеете знать что-либо /все.

ответил Steven Evers 3 FriEurope/Moscow2010-12-03T03:55:46+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 03:55:46 +0300 2010, 03:55:46
0

Если я не делаю .NET, я предпочитаю использовать Linux. Стек LAMP мне кажется более естественным, чем WAMP.

Я бы определенно рекомендовал изучить его, если у вас есть какой-либо интерес к изучению чего-то другого, кроме материала Microsoft.

ответил TaylorOtwell 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 03:02:56 +0300000000amMon, 07 Feb 2011 03:02:56 +030011 2011, 03:02:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132