... о пользе знания этих штук для программистов.
На счет командной строки (КС):
- Удаленное и локальное администрирование в командной строке в разы легче, экономичней и эффективнее нежели при помощи GUI. Почему? Во-первых расход трафика гораздо меньше (а это для меня критично, здесь задействованы и деньги и время. Даже на ADSL управление через VNC становится каторгой). Во вторых, при имении определенных навыков работы с КС, любая работа выполняется быстрее. Да, учиться работать в КС не так то и просто, запоминать все команды и параметры надо не один год, но оно того стоит!
- Автоматизировать что-либо в КС легче. В GUI это бывает вообще невозможно. (shell кстрипты)
- В КС есть такая замечательная вещь как pipe (каналы), при помощи которой данные можно передавать от одной проги к другой. Это одна из основных идей Unix.
- Из всего этого следует, что КС нужна, а следовательно и нужно писать под нее проги. Вообще говоря идеально было бы для каждой проги писать библиотеку, которая выполняет основной функционал, а потом использую эту библиотечку писать UI как текстовое так и графическое (для разных нужд). Но это уже больше к идеологии Unix.
- Тоже "межраздельный" пункт. В windows хоть и есть командная строка, но воспользоваться ее почти невозможно, т.к. нет программ для КС. А функционал bat файлов несравнимо мал с функционалом shell-скриптов. M$ уже осознала свою ошибку, то что изначально делала ставку только на GUI и сейчас они выпускают PowerShell. Довольно мощная утилитка (на сколько и понял из ролика про нее), но лично с ней не работал. Ставить ее надо отдельно (кажись бесплатная).
На счет Linux (и других Unix подобных систем):
- Первое же отличие (читай преимущество) от windows, которое бросается в глаза, это VFS (виртуальная файловая система). Это мощнейшее средство! Благодаря ее в любой узел (папку) VFS можно примантировать любую другую ФС, как реальную (жесткий диск, флэш накопитель,...) так и виртуальную (файлы устройств /dev, файлы процессов /proc, ...). Но возможности "ядерной" VFS ограничены. Однако, есть другие "расширения" VFS, которые активно используются: GVFS (открывает доступ к файлам с ftp, samba, scp и д.р. как к обычным локальным файлам, но требует использование библиотеки GIO), FUSE (ядерный модуль позволяющий монтировать большое количество различных ФС SSHFS, GmailFS, EncFS, WikipediaFS, и т.д. см. FUSE)
- Менеджеры пакетов и вообще организация фалов в системе. Тоже очень интересная и полезная вещь, которой вы не найдете в windows. См.:
Apt,
RPM,
Netpkg,
Pacman.
- Система демонов. Многие проги пишутся как клиент-северные и основной функционал ложится на плечи сервера. Например: X-сервер, сервер печати (cups), сервер музыки (mpd). X-сервер и организация GUI в Linux это вообще отдельная тема.
- X Window System
Менеджер окон - Межпроцессное общение. Это D-Bus. Тоже очень интересная технология. См. Dbus.
- Наверняка еще что-то забыл, но думаю для начала вам и этого хватит, для того чтобы понять, что это другой мир со свое идеологией и принципами работы. У него многому можно научиться!
На счет Свободы:
- Во-первых начнем с примитива. Открытое ПО всегда можно посмотреть и научиться у них чему-нить, а так же подправить для своих нужд (ясное дело простые пользователи этим заниматься не будут, а вот компании и профессиональные программисты этим активно занимаются).
- СПО - это гарантия безопасности. Никто не подсунет Вам программу с трояном, да и ошибки находятся быстрее.
- Все спецификации протоколов и форматов файлов должны быть открыты! Только так можно достигнуть реально прогресса в программировании, повышения функциональности, удобства и всеобщей интеграции.
- Я хочу быть свободным и не зависимым от одной компании или одного человека! Все должно быть в моих руках!
И это все только верхушка айсберга, который вы сможете открыть для себя окунувшись в мир Open Source...