Проверьте Netstat Page CommandLineFu на некоторые полезные способы использовать netstat в ударе.
До некоторой степени это - вопрос персонального предпочтения. Perl и Python определенно там с точки зрения популярности.
Отвечать на два из Ваших трех вопросов, хотя:
Моей рекомендацией является Python все же. Легко читать и записать, очень мощный, и существуют тонны полезных ресурсов в сети для изучения его, не говоря уже о коде, который можно скопировать и перецель.
Perl и Python, очевидно, ответы; но каждый из них используется для выполнения различных задач:
Касающееся, какой учиться прямо сейчас (так как Вы, по-видимому, не знаете ни одного из них), я изучил бы Python. Это является самым простым и самым полезным знать.
И что касается ответов на Ваши вопросы:
Какой язык сценариев наиболее широко используется магазинами реального мира?
Все они, но я предположил бы, что Perl имеет определенное преимущество здесь (являющийся этим, это использовалось в системном администрировании для намного дольше).
Какой язык сценариев наиболее тесно напоминает синтаксис C/C++?
Perl
Есть ли другой язык сценариев, о котором я не знаю?
Ruby, Tcsh/Csh, http://en.wikipedia.org/wiki/Interpreted_language
awk для небольших заданий, Python для больше, чем остроты.
Python (если Вы не используете определенные API и другие зависимые вещи платформы) имеет богатую "стандартную библиотеку", которая доступна на всех платформах, где Вы получаете используемую версию Python. Это очень хорошо, поскольку Вы можете снова использовать свои сценарии легко и подразумеваете, что Ваше знание является хорошими инвестициями даже при изменении платформы.
В нашей компании мы используем Python для всех сценариев, контроля... и Java для приложения, и мы - богатый в разнородной среде.
Sh (оболочка Bourne), grep, awk и sed всегда является хорошей вещью справиться снова. Perl превосходен, если Вы wan't, много текста regexing и пригодности для обслуживания не настолько важно (не говорящий, что это не возможно). Python; если удобочитаемость важна для Вас. Моим предпочтением является Python, но все эти инструменты хороши для большей части вещи, которую Вы бросаете в него. Вы могли бы хотеть пересмотреть Вас c/c ++, требование синтаксиса, сохраняя застрявшим на нем не поможет Вам в конечном счете.
Если Вы надеетесь изучать что-то с нуля, это является, вероятно, лучшим к (пере-), изучают удар.
Кроме того, жемчуг и Python популярны в эти дни; я неравнодушен к жемчугу, но мой стиль сценариев жемчуга не изменился очень, так как Perl 4 отсутствовал.
Я не знаю ни о каких "подобных синтаксису C" языках сценариев.
Perl, передает, если только для невероятного ресурса CPAN (http://search.cpan.org/). Преимущество использования языка сценариев с таким крупным сообществом содействия - то, что Вы будете когда-либо должны вряд ли изобрести что-то сами.
Perl также обладает преимуществом того, чтобы быть столь сложным, как Вам нужно для текущей ситуации. Можно рассматривать его как простой язык сценариев для быстрого администрирования или единственных сценариев цели, но можно использовать объектно-ориентированные понятия или обширные системы метаобъекта, когда Вы хотите создать больше, легкий поддержать приложения (как демоны, серверы, клиенты).
Различия среди одних только языков сценариев не достаточно серьезны для выбора явного победителя, но необходимо, прежде всего, посмотреть на то, насколько легкий это будет для Вас для нахождения информации о темах, о которых Вы заботитесь.
Синтаксис Perl может также быть поразительно близко к C, пока можно обойти отсутствие ввода и символов; усовершенствованное использование жемчуга произошло бы естественно, поскольку Вы в конечном счете изучаете преимущества языка.
И для голосующих против на передней стороне удобочитаемости: можно записать трудно для чтения кода на любом языке. Если Вы оглядываетесь назад на свой код от 4 месяца назад и не можете понять это, Вы делаете что-то не так.
p.s. Это сообщение было заполнено ссылками на различное администрирование дружественные модули на CPAN, но по-видимому новые пользователи могут только отправить одну ссылку, так использование, которое CPAN связывают для поиска вещей как 'CVS' 'SVN' 'Крон' и 'Американский лось' (обширная объектная система)
большинство используемое: Perl, главным образом по историческим причинам. Python широко доступен во всем Linux и дистрибутивах BSD (он даже установлен на MAC OSX), и намного более хорошо изучать/программировать. Конечно, после того как Вы получаете синтаксис, Bash более прост почти для чего-либо, что Вы могли сделать в командной строке. В конце концов, это - командная строка.
Необходимо использовать комбинацию всех тех, где это является соответствующим. Мне действительно не нравится жемчуг (удобочитаемость), но это хорошо для большого количества вещей. Python, с другой стороны, был чем-то плохо мне знакомым с точки зрения системного администрирования, пока я не должен был управлять (и все еще иметь к), несколько машин KVM. Запуск, останавливаясь, сохраняя, загружаясь, перемещая все те машины с помощью сценария стал действительностью после 1 часа бездельничания с привязкой Python libvirt.
Наконец, что не менее важно, я не использовал бы жемчуг или Python, если я должен, скажем, вывести все базы данных с mysql сервера каждую ночь (каждая база данных в своем собственном файле дампа), смолить их и rsync это к некоторому другому серверу. Почему? Поскольку это быстрее и легче записать это в ударе :)
В конце Вы должны использовать любые соответствия языка Ваша текущая задача лучше всего и не используете только данный язык сценариев просто, потому что Вам нравится он больше всего.
Мне нравится рубин. Это просто и легко к программе с. Существует превосходная книга по системному администрированию с помощью рубина.
Ruby используется в нескольких системах управления конфигурацией (capistrano, шеф-повар, марионетка) и последняя версия metasploit.
Можно использовать порыв, замену для оболочки Unix с рубиновым синтаксисом и сделать вещи как это:
local = Rush::Box.new('localhost')
remote = Rush::Box.new('my.remote.server.com')
local_dir = local['/Users/adam/myproj/']
remote_dir = remote['/home/myproj/app/']
local_dir.copy_to remote_dir
remote_dir['**/.svn/'].each { |d| d.destroy }
[общие советы по созданию сценариев см. В других ответах]
Этот ответ касается использования программ командной строки, а также их больших цепочек.
Для запуска цепочек программ CLI , и, возможно, несколько последовательностей, bash - самый простой. Perl может делать то же самое, но этот язык намного труднее выучить и он намного сложнее, и, как многие отмечали, легко написать понятный Perl.
Если вы перебираете файлы и параметры , bash проще всего запустить b / c, вы можете создать прототип в оболочке, затем скопировать в сценарий и добавить несколько массивов и циклов с минимальными накладными расходами.
Примеры того, что я имею в виду:
$ cat input.dat | numerical_model source_data ${SRC} grid_size ${GRID_SIZE} param1 ${P1} param2 ${P2} | tee ${OUTPUT} | plotter title ${TITLE} ylabel ${YLABEL} xlabel ${XLABEL} > ${OUTPUT_FIG}
$ cat ${OUTPUT} | stats_cmd bin_size ${BINSIZE} dist_type ${DIST_TYPE} | tee ${OUTPUT_STATS} | plotter plot_type ${PLOT_TYPE} title ${TITLE_STATS} > ${OUTPUT_FIG_STATS}
В bash легко обернуть это в несколько циклов по некоторым из этих параметров. Однако код становится трудночитаемым, если длина сценария превышает несколько десятков строк. --- представьте себе 30 наборов команд (по несколько строк в каждом) для тридцати различных графиков данных ---
Perl и Python могут быть лучше для больших скриптов, потому что они имеют более чистый синтаксис для циклов и переменных, но команды bash должны быть генерируются как строки, запускаются как подпроцессы, а stdin, stdout фиксируются. Это можно сделать, но это не может полностью заменить родную среду оболочки.
Если бы оболочки имели лучший язык, всего этого можно было бы избежать.
Пример однострочников на Ruby:
> echo 'Shell is the best!' | ruby -pe 'gsub("Shell", "Ruby")'
Ruby is the best!
> printf "foo\nbar\nbaz\n" | ruby -ne 'BEGIN { i = 1 }; puts "#{i} #{$_}"; i += 1'
1 foo
2 bar
3 baz
Я бы использовал ruby.
Сравните с sh, это современно и мощно.
Сравните с python, это согласованность, одна редакция, один менеджер пакетов. И мне не нравится синтаксис отступов.
Сравните с Perl, немного старой школы, и синтаксис слишком сложен для меня.
Чтобы добавить еще одну интересную опцию в кучу, проверьте Closh
https://github.com/dundalek/closh
Это замена bash, которая запускает полный Clojure(Script). Вы можете использовать все краткие и мощные инструменты Clojure в своей командной строке. Это все еще молодой проект, но довольно интересная и привлекательная альтернатива ..недоброму синтаксису bash.
Чтобы добавить еще один язык, я настоятельно рекомендую Раку. Raku (первоначально Perl 6) должен был стать следующей версией языка Perl, но в итоге отделился из-за серьезных изменений дизайна, направленных на то, чтобы сделать его более современным.
Несколько изменений:
.
вместо ->
sh
делает Python использования как язык сценариев оболочки доступным; Однако, если Вы сталкиваетесь с пограничными случаями (как многопроцессорная обработка) you' ll должны изучить модуль подпроцесса, который я по сей день нахожу слишком трудно, чтобы просто использовать. – ThorSummoner 13 November 2014 в 01:20