Командная строка, Linux, OpenSource!

Oct 06, 2008 20:08

... о пользе знания этих штук для программистов.

На счет командной строки (КС):
  1. Удаленное и локальное администрирование в командной строке в разы легче, экономичней и эффективнее нежели при помощи GUI. Почему? Во-первых расход трафика гораздо меньше (а это для меня критично, здесь задействованы и деньги и время. Даже на ADSL управление через VNC становится каторгой). Во вторых, при имении определенных навыков работы с КС, любая работа выполняется быстрее. Да, учиться работать в КС не так то и просто, запоминать все команды и параметры надо не один год, но оно того стоит!
  2. Автоматизировать что-либо в КС легче. В GUI это бывает вообще невозможно. (shell кстрипты)
  3. В КС есть такая замечательная вещь как pipe (каналы), при помощи которой данные можно передавать от одной проги к другой. Это одна из основных идей Unix.
  4. Из всего этого следует, что КС нужна, а следовательно и нужно писать под нее проги. Вообще говоря идеально было бы для каждой проги писать библиотеку, которая выполняет основной функционал, а потом использую эту библиотечку писать UI как текстовое так и графическое (для разных нужд). Но это уже больше к идеологии Unix.

  5. Тоже "межраздельный" пункт. В windows хоть и есть командная строка, но воспользоваться ее почти невозможно, т.к. нет программ для КС. А функционал bat файлов несравнимо мал с функционалом shell-скриптов. M$ уже осознала свою ошибку, то что изначально делала ставку только на GUI и сейчас они выпускают PowerShell. Довольно мощная утилитка (на сколько и понял из ролика про нее), но лично с ней не работал. Ставить ее надо отдельно (кажись бесплатная).

На счет Linux (и других Unix подобных систем):
  1. Первое же отличие (читай преимущество) от windows, которое бросается в глаза, это VFS (виртуальная файловая система). Это мощнейшее средство! Благодаря ее в любой узел (папку) VFS можно примантировать любую другую ФС, как реальную (жесткий диск, флэш накопитель,...) так и виртуальную (файлы устройств /dev, файлы процессов /proc, ...). Но возможности "ядерной" VFS ограничены. Однако, есть другие "расширения" VFS, которые активно используются: GVFS (открывает доступ к файлам с ftp, samba, scp и д.р. как к обычным локальным файлам, но требует использование библиотеки GIO), FUSE (ядерный модуль позволяющий монтировать большое количество различных ФС SSHFS, GmailFS, EncFS, WikipediaFS, и т.д. см. FUSE)
  2. Менеджеры пакетов и вообще организация фалов в системе. Тоже очень интересная и полезная вещь, которой вы не найдете в windows. См.: Apt, RPM, Netpkg, Pacman.
  3. Система демонов. Многие проги пишутся как клиент-северные и основной функционал ложится на плечи сервера. Например: X-сервер, сервер печати (cups), сервер музыки (mpd). X-сервер и организация GUI в Linux это вообще отдельная тема.
  4. X Window System
    Менеджер окон
  5. Межпроцессное общение. Это D-Bus. Тоже очень интересная технология. См. Dbus.

  6. Наверняка еще что-то забыл, но думаю для начала вам и этого хватит, для того чтобы понять, что это другой мир со свое идеологией и принципами работы. У него многому можно научиться!

На счет Свободы:
  1. Во-первых начнем с примитива. Открытое ПО всегда можно посмотреть и научиться у них чему-нить, а так же подправить для своих нужд (ясное дело простые пользователи этим заниматься не будут, а вот компании и профессиональные программисты этим активно занимаются).
  2. СПО - это гарантия безопасности. Никто не подсунет Вам программу с трояном, да и ошибки находятся быстрее.
  3. Все спецификации протоколов и форматов файлов должны быть открыты! Только так можно достигнуть реально прогресса в программировании, повышения функциональности, удобства и всеобщей интеграции.

  4. Я хочу быть свободным и не зависимым от одной компании или одного человека! Все должно быть в моих руках!


И это все только верхушка айсберга, который вы сможете открыть для себя окунувшись в мир Open Source...

программирование, shell, linux, open source

Previous post Next post
Up