Какие команды я должен изучить, чтобы стать эффективным программистом сценариев оболочки Linux? - PullRequest
1 голос
/ 21 апреля 2009

Я недавно начал двигаться в мир разработки Linux. Я хотел узнать что-то новое и подумал, что bash может быть веселым. Когда я узнал больше о программировании на Bash, я обнаружил, что существует целый ряд полезных инструментов (таких как grep, tr, awk и т. Д.). Их так много, что я просто не знаю какие из них «жизненно важны» для изучения.

Команды сценариев оболочки в значительной степени зависят от конфигурации самой системы и могут резко меняться со временем, в отличие от большинства языков программирования (где базовая библиотека поставляется вместе с самим языком и представляет «основной» набор команд, который программист мог бы использовать при взаимодействии с внешним миром). Таким образом,

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

Ответы [ 10 ]

4 голосов
/ 21 апреля 2009
  • Сжатие и распаковка различных архивов.
  • Использование man страниц
  • псевдоним всегда полезен
  • как уже упоминалось другими sed & grep (RegEx полезно знать в общем), sort , head , tr , cut
  • эхо & printf (их различия и когда что использовать)
  • Получение возвращаемого значения (не так полезно, но все же удобно при написании скриптов) через $?
  • top , ps , kill , как фон / передний план / приостановить процесс

Важным является объединение множества инструментов, которые существуют и в которых большинство становятся чрезвычайно полезными. Использование man всякий раз, когда вы застряли, является, пожалуй, самым важным.

2 голосов
/ 21 апреля 2009

Вы должны знать какой-то консольный текстовый редактор. пико может быть достаточно. Я сам парень, хотя emacs тоже приемлем. (Хотя я буду рекомендовать vi: это стандарт де-факто практически на любой платформе Unix, и такие вещи, как grep / sed, очень похожи на vi.)

Другие:

screen: чрезвычайно полезно, когда у вас нет графического интерфейса или вы не хотите / не можете открыть много окон терминала или сеансов PuTTY. Позволяет вам открыть несколько сеансов оболочки и переключаться между ними (и многими другими вещами.

top: подходит для мониторинга процессов / использования процессора / памяти

watch: запускает команду каждые «n» секунд и отображает ее вывод. например, watch -n 1 "ls -aio" выполняет "ls -aio" когда-либо 1 секунду.

2 голосов
/ 21 апреля 2009

Зависит от того, что вы делаете, очевидно, но я получаю много пробега из find, grep, rsync и ssh. Полезны и простые: cat, tail, wc, ps. С циклом for вы можете многое сделать, и синтаксис с подстановочными знаками важен. Например,

  $ for i in {app,web}{01,02}; do ssh $i date; done

Это будет ssh для хостов app01, app02, web01 и web02 и выполнения команды date для каждого из них.

2 голосов
/ 21 апреля 2009

Особенно рекомендую, чтобы вы познакомились с locate, grep и find. Следующими являются sed, awk и vim, а вокруг них - cat, less, tail / head, ls (да, ls!) и множество способов, которыми bash может вам помочь.

Особенно о Bash: остерегайтесь bashisms!

2 голосов
/ 21 апреля 2009

Попробуйте посмотреть commandlinefu . Там люди придумывают разные вещи, и вы обязательно найдете примеры вещей, которые могут пригодиться в будущем.

Но, как правило, наиболее часто используемые команды John хороши в качестве руководства.

И, конечно, здесь будут драконы , список вещей , которые вы не должны делать: смертельные

1 голос
/ 21 апреля 2009

perl, xargs, lsof, find, grep, bash, tar, gzip, tr, tail, diff, patch и bc.

И все, что есть в SUS2 (одна спецификация UNIX).

1 голос
/ 21 апреля 2009
1 голос
/ 21 апреля 2009

вы, вероятно, должны знать все в этом списке:

http://www.faculty.ucr.edu/~tgirke/Documents/UNIX/linux_manual.html

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

0 голосов
/ 21 апреля 2009

Не беспокойтесь о командах напрямую. Скорее, когда вы испытываете трудности с чем-то, попробуйте выполнить несколько быстрых поисков в Google и на man-странице и посмотрите, как вы можете улучшить то, что вы пытаетесь сделать прямо сейчас и там. Оставьте это актуальным, и вы получите более полезные результаты.

0 голосов
/ 21 апреля 2009

Как вы упомянули, изучите awk, sed и grep. Они будут вашими хорошими друзьями. Также очень важно научиться правильно использовать текстовый редактор, например vim.

Я бы также рекомендовал вам ознакомиться с хорошим языком сценариев, таким как perl или python.

...