Pull to refresh

Shell — секретное оружие Unix :)

Reading time2 min
Views2.4K
Как я уже написал как-то:
если не хотите знать про коммандную строку, то в линуксе вам делать нечего. Будет вам та же винда, только вместо одних проблем получите другие…
--comment605950


С другой стороны, как раз в shell заключается одно из кардинальных отличий Unix-систем, то, что делает эти системы открытыми

В чем же основные особенности Unix shell, которых нет в Windows?
  1. Весь процесс конфигурации и администрирования Unix построен на работе с текстовыми файлами. Shell — это полноценный язык программирования, заточенный для манипуляции строками и работы с тектсовыми файлами. К тому же, именно как расширение возможностей shell по обработке строк и возник Великий язык PERL!.
  2. Благодаря п.1 shell — это отличный инструмент для постепенного изучения самой операционной системы.
  3. Наличие shell способствует реализации важного принципа создания любых программ:
    Если это простая программа, которая предназначена для выполнения ограниченного числа операций, ее нужно реализовывать как набор команд, родных для платформы, на которой она работает (как правило, платформой является ОС). Если же имеем дело со сложной интерактивной программой с потенциально неограниченным набором операций — ее нужно реализовывать как язык опять же на родном для платформы носителе (сейчас наиболее родным и удобным носителем при взаимодействии с компьютерами все же является текст, а не звук, графика или что-либо еще).
    Примерами 1-го и 2-го подхода могу служить tcpdump, реализованный полностью в текстовом режиме, над котором не представляет труда надстроить интерфейс (по сути, Ethereal — и есть подобный интерфейс), и emacs — самый расширяемый текстовый редактор.
    В этом проявляется основное отличие философии Unix и Windows: в Win интерфейс програм по умолчанию делается на графическом языке, из-за чего программы практически невозможно сопрягать или строить на их основе новые. Потому что для этого нет поддержки на уровне ОС. И для того, чтобы сделать программы расширяемыми, все равно приходится использовать текст (пример — тот же VBA в Word и Excel).
  4. Автодополнение команд и, что самое главное, путей. Трудно даже представить, сколько времени и сил экономит эта небольшая возможность!
  5. Полный набор утилит для всех возможных задач администрирования.


Стоит также перечислить утилиты shell, которые обязательно нужно использовать в повседневной работе с системой:
  • man — это справка по ОС, которая включает не только описание работы всех команд, но также и что должно быть в большинстве из конфигурационных файлов, а также много другой полезной информации;
  • less — просмотр текстовых файлов;
  • grep (программистов, не знающих о grep, не берут на работу в Amazon.com :);
  • locate — быстрый поиск файлов.


а еще можно вспомнить группы утилит, использование которых намного удобнее и эффективнее их графических аналогов:
  • настройки сети (позаимствованные Windows);
  • управления пакетами;
  • управления пользователями;
  • монтирования томов...


Можно только повториться, что для тех, кто не хочет работать в shell, Linux или другая Unix-based ОС — во многом такая же неудобная и непонятная система, как и Windows. Но стоит все-таки попробовать разобраться с shell — хотя бы для того, чтобы посмотреть, как правильно администрируются информационные системы.
Tags:
Hubs:
Total votes 25: ↑20 and ↓5+15
Comments31

Articles