Командный процессор windows и linux

I don’t know if this is a dumb question or not but again as my professor says if you have doubts then clear them . What is the difference between Linux text mode and windows command prompt (cmd). I know both windows and Linux are different Operating Systems but when you look at the commands, some of the commands are common For Example cd command.

asked Aug 27, 2010 at 16:09

subanki's user avatar

2

Although superficially similar in some ways, the two command line interfaces have different lineages:

  • The Windows command prompt is based heavily on that of MS-DOS / PC-DOS, which in turn was based on the CP/M Console Command Processor. The CP/M CCP interface was itself based on an earlier operating system called RSTS.

  • The Linux shells trace their roots back to the original UNIX Thompson shell; the Thompson shell borrowed from the Multics shell (where the term «shell» originated).

Traces of these are still evident today — the DIR command in the Windows command prompt can be traced all the way back to the DIR command in RSTS, and similarly the ls command in GNU coreutils can be traced back to the Multics «list segments» command.

answered Aug 27, 2010 at 16:52

caf's user avatar

cafcaf

234k40 gold badges323 silver badges464 bronze badges

They’re both based on the same idea and are called Command-Line Interfaces (see wikipedia). They operate off the same principals, just using different keywords to perform similar commands. It should be noted however, that the commands although similarly named, may not perform the exact same function. They are just abstractions of lower level functions of the operating system. Just like people can explain similar ideas using different words and phrases, the same applies in this situation. For reference here’s a list of Bash commands: http://ss64.com/bash/ and the same website has windows commands.

answered Aug 27, 2010 at 16:14

GotDibbs's user avatar

GotDibbsGotDibbs

3,0781 gold badge23 silver badges29 bronze badges

1

The difference is the operating system. The command prompt (cmd) and a terminal emulator (linux bash shell or similar) are text interfaces to the operating system. They allow you to manipulate the file system and run programs without the graphical interface.

answered Aug 27, 2010 at 16:12

Matt Phillips's user avatar

Matt PhillipsMatt Phillips

11.3k10 gold badges47 silver badges71 bronze badges

It is not that commands are in common (well yes, maybe some), it is that they have the same name and do almost the same things, as for cd as you said.

The shells are an abstraction of the underlying operative system, Linux and Windows have a different kernel, hence the difference.

You might want to start here with your reading.

answered Aug 27, 2010 at 16:18

Alberto Zaccagni's user avatar

Alberto ZaccagniAlberto Zaccagni

30.9k11 gold badges72 silver badges106 bronze badges

Этот HOWTO предназначен для всех пользователей (которые скоро станут бывшими?) DOS и Windows, которые решили перейти к использованию Linux—свободной версии UNIX. Целью этого документа является помощь в переносе знаний пользователя о DOS и Windows в среду Linux, а также предоставление советов об обмене файлами и ресурсами между этими двумя операционными системами. 1. Введение

Нужен ли Вам Linux?

Давайте будем политически корректными. В этом документе я говорю «Linux», но я подразумеваю «GNU/Linux». Пожалуйста прочитайте об этом информацию на http://www.gnu.org/gnu/linux-and-gnu.html.

Вы хотите перейти из мира DOS/Windows в мир Linux? Это хорошая идея: Linux в техническом отношении превосходит DOS, Windows 9x и даже Windows NT. Но будьте осторожны: это может быть не совсем полезным для вас. Вот основные отличия между DOS/Windows и Linux:

Под управлением Windows работают Microsoft Office и большое количество игр; Windows воспринимается как легкий в установке и настройке; он, как всем известно, нестабилен; реализован плохо; часто падает (crash).

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

Вы должны решить, что вам необходимо. Более того, Linux дает вам мощь, но он требует некоторого времени для того, чтобы научиться, как обуздывать его. Таким образом, если вам в основном нужно коммерческое программное обеспечение, или вы не чувствуете в себе силы для обучения новым командам и концепциям, то вам лучше поискать что-нибудь другое. Сознавайте, что много новичков сдались под действием начальных трудностей.

Ведется работа для того, чтобы сделать Linux более простым для использования, но не ожидайте, что вы станете умелым пользователем до тех пор, пока не прочитаете достаточное количество документации и не будете использовать его по крайней мере несколько месяцев. Linux не даст вам мгновенных результатов, Я на 100% уверен, что если вы являетесь нормальным пользователем,то Linux станет вашей компьютерной нирваной. Между прочим, Linux + DOS/Win могут счастливо сосуществовать на одной и той же машине.

Начальные требования для данного документа: я предполагаю, что: вы знаете основные команды и концепции DOS;

Linux, возможно с системой X Window System (для краткости X11), правильно установлен на вашем персональном компьютере;

вашим командным процессором (эквивалент COMMAND.COM) является bash.

До тех пор, пока явно не будет указано, вся информация в этом документе относится к старому, плохому DOS. И там и здесь существует информация о Windows, но помните, что Windows и Linux полностью отличны друг от друга, в отличии от DOS, который является чем-то вроде бедного родственника UNIX.

Также пожалуйста отметьте, что эта работа не является ни полным учебником, ни руководством по настройке!

Последние версии этого документа доступны в различных форматах по адресу http://www.linuxdoc.org.

Расскажите мне больше

Вы установили Linux и необходимые вам программы на ваш персональный компьютер. Вы создали себе учетную запись (если вы это не сделали, наберите сейчас adduser ваше_имя) и Linux запущен. Вы просто ввели ваше имя и пароль и теперь вы смотрите в экран и думаете: «Хорошо, но что теперь?»

Теперь не отчаивайтесь. Вы теперь готовы делать те же самые вещи, что вы делали, используя DOS/Win, а также многое другое. Если бы вы запустили DOS/Win вместо Linux, то вы могли бы выполнять некоторые из следующих задач:

  • запуск команд и создание, копирование, просмотр, удаление, печать, переименование файлов;
  • Перемещение, создание, удаление и просмотр содержимого ваших каталогов файлов;
  • Форматирование гибких дисков и копирование файлов на них или с них;
  • Настройка системы;

Работа с Internet;

написание командных .BAT файлов и программ на вашем любимом языке программирования;

Остальной 1% дел.

Вы будете рады узнать, что эти задачи могут быть выполнены в Linux в манере, сходной с DOS. В DOS средний пользователь использует очень небольшое количество из ста с лишним доступных команд: то же самое можно сказать и о Linux.

Предварительные концепции

Лучший способ научиться чему-либо—это окунуться в это. Эксперименты и игры с Linux поощряются: до тех пор, пока вы не войдете в систему как «root» (администратор), вы не сможете причинить большого вреда системе. Несколько моментов:

В первую очередь, как безопасно завершать работу с Linux. Если вы видите перед собой экран в текстовом режиме, то нажмите <CTRL-ALT-DEL>, подождите, пока система не перезагрузится, а затем выключите компьютер. Если вы находитесь в системе X Window, то сначала нажмите <CTRL-ALT-BACKSPACE>, а затем <CTRL-ALT-DEL>. Никогда не выключайте питание и не нажимайте кнопку сброса сразу: это может разрушить вашу систему;

В отличии от DOS или Windows, Linux имеет встроенные механизмы безопасности. Файлы и каталоги имею права доступа, ассоциированные с ними; в результате некоторые из них не могут быть доступны обычному пользователю; (смотрите раздел Права доступа и владение). DOS и Windows, по контрасту, могут позволить вам вычистить содержимое всего вашего жесткого диска;

существует специальный пользователь, которого зовут «root»: это системный администратор с правом распоряжаться жизнью и смертью вашей машины. Если вы работаете на своем собственном компьютере, то вы станете таким администратором. Работа под именем администратора очень опасна: любая ошибка может серьезно нарушить работу или разрушить систему, почти точно так же как в DOS/Win. Не работайте с правами root, пока это не станет совершенно необходимо;

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

Перенаправление и конвейеризация являются одним из свойств DOS, но под Linux они являются очень важными и намного более мощными. Простые команды могут быть скомбинированы для выполнения сложных задач. Я предполагаю, что вы научитесь, как использовать эти свойства.

Получение помощи

Существует много способов получить помощь о Linux. Вот наиболее важные:

чтение документации—я это подразумеваю. Хотя документ, который вы читаете, может служить как введение в Linux, также существует несколько книг, которые вы обязательно должны прочитать: Matt Welsh’s «Linux Installation and Getting Started (Установка Linux и начало работы)» ( http://www.linuxdoc.org/LDP/gs/gs.html), Larry Greenfield «Linux User Guide (Руководство пользователя Linux)», и Linux FAQ ( http://www.linuxdoc.org/FAQ/Linux-FAQ/index.html). Чувствуйте себя виноватым до тех пор, пока не прочитаете одну из этих книг;

документация на установленные на машины пакеты часто может быть найдена в подкаталогах каталога /usr/doc/;

Для получения некоторой помощи о «внутренних командах » командного процессора наберите help или, еще лучше, man bash или info bash;

для получения помощи о команде наберите man command, что выдаст справочную страницу(«man») для заданной команды command. Также можно набрать info command, что выдаст, если доступна, страницу информации (info) для данной command; info является гипертекстовой системой документации, возможно не интуитивно понятной в начале. В конце вы можете попробовать команды apropos command или whatis command. Во всех этих командах для выхода используется символ `q’.

В Internet: правильным местом для получения помощи является Usenet, подобный news:comp.os.linux.setup. Пожалуйста, не пишите мне для получения помощи, потому что я слишком загружен работой.

Соглашения

В течении этого документа примеры часто будут приводится в следующем формате: <…> является требуемым аргументом, тогда как […] является необязательным аргументом. Пример:

$ tar -tf <file.tar> [> redir_file]

file.tar должен быть указан , а перенаправление в redir_file является необязательным.

«RMP» означает «пожалуйста Прочитайте Справочные страницы (Man Pages) для более детальной информации». Я не знаю, как подчеркнуть как важно чтение документации. «DOSWin» означает «DOS/Windows».

Когда в приглашении командной строки примера имеется знак #, то эта команда может быть выполнена только администратором (root).

4. Встреча с bash

Хорошая новость: используя Linux, вы набираете немного меньше в командной строке, потому-что bash набирает за вас, где это возможно, имеет великолепные средства редактирования командной строки. Для начала, клавиша ‘стрелка вверх ‘ вызывает предыдущую командную строку ; но это не все. Нажатие на клавишу <TAB> дополняет имена файлов и каталогов, так что набор строки

$ ls /uTABloTABbTAB

подобен набору

$ ls /usr/local/bin

Если существует двусмысленность, такая как при наборе

$ ls /uTABloTABiTAB

bash остановится, потому-что он не знает, что вы имеете ввиду: /usr/local/info или /usr/local/include. Задайте больше символов, а затем снова нажмите на <TAB>.

Другие полезные комбинации клавиш: <ESC-BACKSPACE> удаляет слово влево, тогда как <ESC-D> удаляет слово вправо; <ESC-F> перемещает курсор на одно слово вправо, а <ESC-B> на слово влево; <CTRL-A> перемещает курсор в начало строки, <CTRL-E> в конец строки. Клавиша <ALT> эквивалентна клавише <ESC>.

Достаточно на первый раз. После того, как вы раз используете эти сочетания клавиш, вы обнаружите, что командная строка DOS очень раздражает…

Файлы и программы

Файлы: Предварительные замечания

Структура каталогов и файлов в Linux очень сходна с той, которая используется в DOSWin. Фалы имеют имена, которые подчиняются специальным правилам и хранятся в каталогах, некоторые из файлов являются исполнимыми и у некоторых из них существуют ключи командной строки. Более того, вы можете использовать символы шаблонов, перенаправление и конвейеризацию. Есть только несколько небольших отличий:

в DOS, имена файлов хранятся в так называемом формате 8.3; например NOTENOUG.TXT. В Linux мы можем делать лучше. Если вы установили Linux, используя файловую систему, подобную ext2 или umsdos, то вы можете использовать более длинные имена файлов (до 255 символов), и с более чем одной точкой в имени: например, This_is.a.VERY_long.filename. Пожалуйста заметьте, что я использовал символы и верхнего и нижнего регистра: в действительности…

символы верхнего и нижнего регистра в именах файлов отличаются друг от друга. Поэтому FILENAME.tar.gz и filename.tar.gz являются разными файлами. ls является командой, а LS является ошибкой;

пользователи Windows, будьте осторожны при использовании длинных имен в Linux. Если имя файла содержит пробелы (не рекомендуется, но возможно), то вы должны заключить имя файла в двойные кавычки при обращении к нему. Например:
$ # следующая команда создает каталог, названный «My old files»
$ mkdir «My old files»
$ ls
My old files    bin     tmp

А Также некоторые символы не должны использоваться: это !*$&#.

не существует обязательных расширений типа .COM и .EXE для программ или .BAT для командных файлов. Исполнимые файлы отмечаются символом звездочка `*’ в конце их имен, при использовании команды ls -F. Например:
$ ls -F
I_am_a_dir/   cindy.jpg    cjpg*   letter_to_Joe    my_1st_script*  old~

Файлы cjpg* и my_1st_script* являются исполнимыми, то есть «программами». В DOS, файлы резервных копий заканчиваются на .BAK, тогда как под Linux они заканчиваются на знак тильды `~’. Также файл, чье имя начинается со знака точки, считается скрытым. Например: файл .I.am.a.hidden.file не будет показан при выполнении команды ls;

Ключи командной строки (switches) программ DOS задаются в виде /switch, Linux использует ключи в виде -switch или —switch. Пример: dir /s становится ls -R. Заметим, что много программ DOS, такие как PKZIP или ARJ, используют ключи в стиле UNIX.

Вы можете теперь перепрыгнуть к разделу Перевод команд из DOS в Linux, но я надеюсь, что вы будете читать дальше.

Символьные ссылки

В UNIX имеется тип файлов, которых нет в DOS: символьные ссылки. Он может быть описан как ссылка на файл или каталог и может быть использован вместо файла или каталога, на который она указывает; они сходны с ярлыками в Windows. Примером символьный ссылки может быть /usr/X11, которая указывает на каталог /usr/X11R6, или /dev/modem, который указывает либо на /dev/ttyS0 либо на /dev/ttyS1.

Для того, чтобы создать символьную ссылку, используется команда:

$ ln -s <file_or_dir> <linkname>

Пример:

$ ln -s /usr/doc/g77/DOC g77manual.txt

Теперь вы можете ссылаться на g77manual.txt вместо /usr/doc/g77/DOC. Ссылки показываются следующим образом в списке файлов каталога:

$ ls -F
g77manual.txt@
$ ls -l
(разные вещи…)           g77manual.txt -> /usr/doc/g77/DOC

Права доступа и владение

Файлы и каталоги DOS имеют следующие атрибуты: A (архивный), H (скрытый), R (только чтение) и S (системный). В Linux только H и R имеют значение: скрытые файлы начинаются с точки, а для того чтобы задать атрибут R, читайте дальше.

В UNIX файл имеет «права доступа» и «владельца», который относится к «группе». Посмотрите пример:

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Первое поле содержит права доступа к файлу /bin/ls, который принадлежит пользователю root, группы bin. Опуская другую информацию, запомните, что означает -rwxr-xr-x, слева направо:

— это тип файла (- = обычный файл, d = каталог, l = ссылка, и т.д.); rwx являются правами доступа для владельца файла (чтение, запись, выполнение); r-x являются правами доступа для группы, к которой относится владелец файла (чтение, выполнение); (Я не хочу делать обозрение концепции групп, вы можете выжить без нее, поскольку вы начинающий пользователь ;-) r-x являются правами доступа для всех остальных пользователей (чтение, выполнение).

Каталог /bin тоже имеет права доступа: смотрите раздел Права доступа к каталогамDirectories Permissions для дополнительной информации. Вот поэтому вы не можете удалить файл /bin/ls до тех пор, пока не станете пользователемroot: вы просто не имеете прав сделать это. Для изменения прав доступа к файлу используется команда:

$ chmod <whoXperm> <file>

где who—это u (пользователь, который является владельцем), g (группа), o (остальные), X—это либо +, либо -, perm—это r (чтение), w (запись), или x (выполнение). Вот общие примеры использования команды chmod:

$ chmod +x file

устанавливает право на выполнения данного файла.

$ chmod go-rw file

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

$ chmod ugo+rwx file

дает всем права на чтение, запись и выполнение.

# chmod +s file

делает так называемый «setuid» или «suid» файл—файл, который любой может выполнять с привилегиями владельца. Обычно, это применяется к файлам, владельцем которых является root; часто это важные системный файлы, такие как X-сервер.

Более коротким способом для ссылки на права доступа является использование цифрового обозначения: rwxr-xr-x может быть выражен как 755 (каждый символ соответствует биту: — равен 0, —x равен 1, -w- равен 2, -wx равен 3…). Это выглядит трудным, но, немного попрактиковавшись, вы поймете концепцию. root, будучи администратором, может изменять права доступа на файлы любого пользователя. RMP.

Намного «умнее » в Linux: * соответствует всем файлам, за исключением скрытых; .* соответствует всем скрытым файлам (но также текущему каталогу `.’ и каталогу уровнем выше `..’: beware!); *.* соответствует только тем, которые имеют `.’ в середине имени, или оканчиваются на точку; p*r соответствует и `peter’ и `piper’; *c* соответствует и `picked’ и `peck’;

при использовании more, необходимо нажимать на клавишу <SPACE> для того, чтобы продвигаться по файлу, и `q’ для выхода. less является более интуитивно понятной командой и позволяет вам использовать клавиши управления курсором;

нет команды UNDELETE (восстановления после удаления), так что дважды подумайте до удаления чего-либо;

в добавлении к используемым в DOS’ < > >>, в Linux имеется 2> для перенаправления сообщений об ошибках (stderr); более того, 2>&1 перенаправляет stderr в stdout, в то время как 1>&2 перенаправляет stdout в stderr;

Linux имеет дополнительный шаблон (wildcard): []. Использование: [abc]* соответствует файлам, начинающимся с a, b, c; *[I-N1-3] соответствует файлам, оканчивающимся на I, J, K, L, M, N, 1, 2, 3;

команда lpr <file> печатает файл в фоновом режиме. Для проверки состояния очереди печати используйте команду lpq; для удаления файла из очереди печати используйте lprm;

нет команды, похожей на команду RENAME в DOS; так что команда mv *.xxx *.yyy не будет работать. команда, похожая на REN, доступна с ftp://metalab.unc.edu/pub/Linux/utils/file;

используйте команды cp -i и mv -i для того, чтобы вас предупредили, когда файл будет перезаписываться.

Запуск программ: Многозадачность и сеансы работы

Для запуска программы просто наберите ее имя, так как вы делали это в DOS. Если каталог (Раздел Использование каталогов), где находится программа, находится в переменной среды PATH (Раздел Файлы инициализации системы), то программа будут запущена. Исключение: в отличии от DOS, в Linux программа, расположенная в текущем каталоге, не будет запускаться до тех пор, пока вы не включите этот каталог в PATH. Предупреждение: если prog это ваша программа, то наберите ./prog для ее запуска из текущего каталога.

Типичная командная строка выглядит примерно так:

$ command [-s1 [-s2] … [-sn]] [par1 [par2] … [parn]] [< input] [> output]

где -s1, …, -sn являются ключами программы, а par1, …, parn являются параметрами программы. Вы можете запустить несколько команд из одной командной строки:

$ command1 ; command2 ; … ; commandn

Это все о запуске программ, но теперь легко сделать следующий шаг. Одна из основных причин использования Linux—это то, что она является многозадачной операционной системой—она может выполнять разные программы (с этого места мы будем называть их процессами) одновременно. Вы можете запускать процессы в фоновом режиме и продолжать работать. Более того, Linux позволяет вам иметь несколько сеансов работы: Это подобно наличию множества компьютеров на одном!

Для того,чтобы переключится в сеанс 1..6 на виртуальных консолях, нажмите <ALT-F1> … <ALT-F6>

Для запуска нового сеанса в той же самой виртуальной консоли без выхода из нее, наберите su — <loginname>. Пример: su — root. Это полезно, например, когда вам надо выполнить задачу, которую может выполнить только root.

Для окончания сеанса работы наберите exit. Если у вас есть приостановленные задания (смотрите дальше), то вас предупредят.

Для запуска процесса в фоновом режиме, добавьте знак амперсанда ‘&’ в конец командной строки:
$ progname [-switches] [parameters] [< input] [> output] &
[1] 123

Командный процессор идентифицирует процессы по номеру задания (например [1]; смотрите ниже), и по PID (Идентификационный номер процесса; 123 в нашем примере).

Для того, чтобы увидеть, сколько процессов запущено, наберите ps ax. Эта команда выдаст список запущенных в настоящее время процессов.

Для того чтобы убить, (завершить) процесс, наберите команду kill <PID>. Вам может понадобиться убить процесс в том случае, если вы не знаете, как его правильно завершить… До тех пор, пока вы не станете root, вы не сможете завершать процессы других людей. Иногда процесс может быть завершен только используя команду kill -SIGKILL <PID>. В дополнение командный процессор позволяет вам остановить или временно приостановить процесс, перевести процесс в фоновый режим, и перевести процесс из фонового режима в интерактивный режим. В этом контексте процессы называются «заданиями».

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

Для того, чтобы остановить процесс, запущенный в интерактивном режиме, нажмите <CTRL-C> (это не всегда работает).

Для того, чтобы приостановить процесс, запущенный в интерактивном режиме , нажмите <CTRL-Z> (то же самое).

Для перевода приостановленного процесса в фоновый режим, наберите bg <%job> (он станет заданием).

Для перевода задания в интерактивный режим наберите fg <%job>. Для перевода в интерактивный режим последнего задания, запущенного в фоновом режиме, просто наберите fg.

Для завершения задания наберите kill <%job>, где <job> может быть 1, 2, 3,…

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

Запуск программ на удаленных компьютерах

Для запуска программы на удаленной машине, чьим именем является remote.machine.edu:

$ telnet remote.machine.edu

После входа в систему , запустите вашу любимую программу. Излишне говорить, что вам необходимо быть зарегистрированным на удаленной машине и иметь доступ к командному процессору.

Если у вас есть X11, вы даже можете запустить приложение для X на удаленной машине, отображая его на вашем экране X Windows. Допустим, что remote.machine.edu>;— это удаленный компьютер с X и допустим, что local.linux.box;— это ваша машина с Linux. Для запуска с local.linux.box программы для X, которая расположена на remote.machine.edu, выполните следующее:

запустите X11, запустите xterm или подобный эмулятор терминала, затем наберите:
$ xhost +remote.machine.edu
$ telnet remote.machine.edu

После входа в систему наберите:
remote:$ DISPLAY=local.linux.box:0.0
remote:$ progname &

(вместо DISPLAY…, вам может понадобиться написать: setenv DISPLAY local.linux.box:0.0. Это зависит от командного процессора на удаленной машине).

И все! Теперь progname будет запущена на remote.machine.edu и будет отображаться на вашей машине. Не пытайтесь делать это через модем, это слишком медленно, чтобы можно было пользоваться. Более того, это грубый и небезопасный метод: пожалуйста прочитайте «Remote X Apps mini-HOWTO» по адресу http://www.linuxdoc.org/HOWTO/mini/Remote-X-Apps.html.

Использование каталогов

Каталоги: Предварительные замечания

Мы рассмотрели различия между файлами в DOSWin и в Linux. То же самое и для каталогов, в DOSWin корневой каталог обозначается \, в Linux он обозначается как /. Сходным образом, вложенные каталоги разделяются символом \ в DOSWin, и / в Linux. Примеры путевых имен файлов:

DOS:    C:\\PAPERS\\GEOLOGY\\MID_EOC.TEX
Linux:  /home/guido/papers/geology/middle_eocene.tex

Как обычно, .. является родительским каталогом, а . текущим. Помните, что система может не позволить выполнять команды работы с каталогами везде, где вы захотите. Каждый пользователь имеет для работы каталог, называемый `домашним’, который дан системным администратором; например, на моем компьютере моим домашним каталогом является /home/guido.

Права доступа к каталогам

Каталоги также имеют права доступа. Все что мы видели в разделе Права доступа и владение, также применяется и к каталогам (пользователь, группа, и другие). Для каталога rx означает, что вы можете перейти в этот каталог, а w означает, что вы можете удалить файл в этом каталоге (конечно, соответствуя правам доступа к файлу), или сам каталог.

Например, для того, чтобы запретить другим пользователям рыться в каталоге /home/guido/text, используйте команду:

$ chmod o-rwx /home/guido/text

Каталоги: Перевод команд

DIR:            ls, find, du
CD:             cd, pwd
MD:             mkdir
RD:             rmdir
DELTREE:        rm -rf
MOVE:           mv

При использовании команды rmdir удаляемый каталог должен быть пуст. Для того, чтобы удалить каталог и все его содержимое, используйте команду rm -rf (на ваш собственный риск).

Символ `~’ является сокращением для имени вашего домашнего каталога. Команды cd или cd ~ выполнят переход в ваш домашний каталог из любого места; команда cd ~/tmp выполнит переход в каталог /home/your_home/tmp.

cd — отменяет действие последней команды cd.

Гибкие и жесткие диски и тому подобное

Существует два способа обслуживания устройств в Linux: DOS-способ и UNIX-способ. Сделайте ваш выбор.

Обслуживание устройств DOS-способом

Большинство дистрибутивов Linux включают в себя пакет Mtools—набор команд, которые эквивалентны своим копиям в DOS, но начинаются с буквы `m’: т.е., mformat, mdir, mdel, mmd, и так далее. Они могут даже сохранять длинные имена, но не права доступа к файлам. Если вы настроите Mtools, редактируя файл /etc/mtools.conf (пример поставляется вместе с дистрибутивом пакета), то вы также сможете иметь доступ к разделам DOS/Win, к устройствам CD-ROM и Zip. Однако для форматирования нового диска команда mformat не будет работать. Как root, вам заранее необходимо выполнить команду: fdformat /dev/fd0H1440.

Вы не можете иметь доступ в файлам на гибком диске для команд, таких как, например, less a:file.txt! Это недостаток DOS-способа для доступа к дискам.

Обслуживание устройств UNIX-способом

В UNIX имеется другой подход к обслуживанию устройств. Не существует отдельных томов, таких как A: или C:; диск, будь он гибким или любым другим, становится частью локальной файловой системы через операцию, называемую «монтирование». Когда вы заканчиваете работать с диском, до его извлечения вы должны «отмонтировать» его.

Физически форматирование диска>;— это одно действие, а создание файловой системы на нем>;— это другое. Команда DOS FORMAT A: выполняет оба действия, но в Linux существуют разные команды. Для форматирования гибкого диска>;— смотрите выше; для создания файловой системы используется команда:

# mkfs -t ext2 -c /dev/fd0H1440

Вы можете использовать dos, vfat (рекомендуется) или другие форматы вместо ext2. Приготовив диск, примонтируйте его с помощью команды

# mount -t ext2 /dev/fd0 /mnt

указывая правильную файловую систему, если вы не используете ext2. Теперь вы можете обращаться к файлам, используя /mnt вместо A: или B:. Примеры:

После того как вы закончите, до извлечения диска вы должны отмонтировать его, используя команду

# umount /mnt

Очевидно, что вы должны применять fdformat и mkfs только для неформатированных дисков, никогда до этого не применявшихся. Если вы хотите использовать диск B:, то ссылайтесь на fd1H1440 и fd1 вместо fd0H1440 и fd0 в вышеприведенном примере.

Излишне говорить, что то, что применяется для гибких дисков, также применяется для других устройств; например вы захотите примонтировать другой жесткий диск или устройство CD-ROM. Вот как примонтировать CD-ROM:

# mount -t iso9660 /dev/cdrom /mnt

Это был «официальный» способ монтирования ваших дисков, но существует один прием. Поскольку немного досадно, что необходимо быть root для монтирования гибкого диска или CD-ROM, то каждому пользователю разрешается монтировать их вот таким способом:

как root, сделайте следующее:
# mkdir /mnt/floppy ; mkdir /mnt/cdrom
# chmod 777 /mnt/floppy /mnt/cd*
# # make sure that the CD-ROM device is right
# chmod 666 /dev/hdb ; chmod 666 /dev/fd*

добавьте в файл /etc/fstab следующий строки:
/dev/cdrom      /mnt/cdrom  iso9660 ro,user,noauto          0       0
/dev/fd0        /mnt/floppy vfat    user,noauto             0       0

Теперь для монтирования гибкого диска в формате DOS и CD—ROM используются команды:

$ mount /mnt/floppy
$ mount /mnt/cdrom

/mnt/floppy и /mnt/cdrom могут сейчас быть доступны любому пользователю. Помните, что разрешение всем монтировать диски таким способом;— это зияющая дыра в безопасности, если вас это беспокоит.

Двумя полезными командами являются df, которая дает информацию о примонтированых файловых системах, и du dirname, которая сообщает размер дискового пространства, занимаемого каталогом.

Резервирование данных

Существуют разные пакеты, которые помогут вам в этом занятии, но по крайней мере вы должны знать, как делается многотомное резервирование данных (как пользователь root):

Убедитесь, что имеется форматированный гибкий диск в устройстве и несколько дополнительных. Для восстановления ваших данных вставьте первый гибкий диск в устройство и выполните:

# tar -M -xpvf /dev/fd0H1440

Что насчет Оконной системы?

`Эквивалентом» Windows является графическая система X Window System. В отличии от Windows или Mac, X11 не был спроектирован для удобства использования, или для хорошего вида, а для обеспечения графических возможностей для рабочих станций с UNIX. Вот главные отличия:

В то время как Windows выглядит и ведет себя одинаково во всем мире, в X11 это не так: он настраивается более гибко. Весь вид X11 придается ключевым компонентом, который называется «оконный менеджер ( w.m.)», и среди которых есть большой выбор: fvwm, простой, но великолепный и эффективный в отношении памяти, fvwm2-95, Afterstep, WindowMaker, Enlightenment, и многие другие. w.m. обычно запускается из .xinitrc;

ваш w.m. может быть настроен так, что окна работают как в Windows: вы щелкаете по окну и оно появляется на переднем плане. Другая возможность заключается в том, что окно появляется на переднем плане, когда мышь находится поверх его (так называемый «фокус»). Также расположение окон на экране может быть автоматическим или интерактивным: Если вместо программы появляется странный прямоугольник, то щелкните левой кнопкой мыши там, где вы хотите, чтобы появилось окно;

большинство свойств может быть настроено, редактируя один или несколько файлов настройки. Прочитайте документацию на ваш w.m.: файлами настройки могут быть .fvwmrc, .fvwm2rc95, .steprc, и т.д.. Простые файлы настройки обычно находятся в файлах /etc/X11/window-manager-name/system.window-manager-name;

приложения X11 написаны, используя специальные библиотеки («наборы widget»); поскольку доступны разные наборы, то приложения выглядят по разному. Наиболее просто выглядят те, которые используют Athena widgets (2-D вид; xdvi, xman, xcalc); другие приложения используют Motif (netscape), Tcl/Tk, XForms, Qt, Gtk, и что еще есть. Почти все библиотеки обеспечивают привлекательный вид и feel как и Windows;

К сожалению, поведение может быть непохожим. Например, если вы выберете строку текста, используя мышь, а затем нажмете на клавишу <BACKSPACE>, вы будете ожидать, что текст будет стерт, правильно? Это не работает в приложениях, основанных на Athena, но будет работать с другими наборами widget;

как работают полосы прокрутки и изменение размера, зависит от w.m. и набора widget. Совет: Если вы обнаружили, что полоса прокрутки ведет себя не так, как вы ожидали, то попробуйте использовать центральную кнопку мыши или две кнопки вместе для перемещения бегунка на полосе прокрутки;

приложения по умолчанию не имеют иконок, но они могут иметь много иконок. Большинство w.m. вызывают меню нажатием кнопки мыши на десктопе («главном окне»); излишне говорить, что меню может быть настроено. Для изменения вида главного окна используйте команды xsetroot или xloadimage;

Буфер обмена (clipboard) может содержать только текст и ведет себя странно. Как только вы выбрали текст, он уже скопировался в буфер обмена: переместитесь куда надо и нажмите среднюю кнопку мыши для вставки текста. Существует приложение xclipboard, которое обеспечивает несколько буферов обмена;

drag and drop является необязательным, и он доступен, только если вы используете приложения X11 и/или w.m., которые поддерживают это.

Для сохранения памяти вы должны использовать приложения, которые используют одни и те же библиотеки, но это тяжело осуществить на практике.

Существуют проекты, целью которых является придание X11 вида и поведения, похожего на Windows. Gnome, http://www.gnome.org и KDE, http://www.kde.org, внушают благоговение. Дайте им шанс: в лбом случае вы не будете сожалеть о вашем десктопе под Windows.

Настройка системы

Файлы инициализации системы

В DOS двумя важными файлами являютсяe AUTOEXEC.BAT и CONFIG.SYS, которые используются во время загрузки для инициализации системы, установки некоторых переменных среды, таких как PATH и FILES, и, возможно, запуска программ или пакетных файлов. В Linux существует большее количество инициализационных файлов, некоторые из которых лучше не трогать до тех пор, пока вы не будете знать, что вы делаете. Я скажу, что самыми важными являются:

ФАЙЛЫ                                  ПРИМЕЧАНИЯ

/etc/inittab                           не трогайте его сейчас!
/etc/rc.d/*                            так же

Если вы хотите установить переменные среды PATH или другие, или вы хотите изменить сообщение при входе в систему или автоматически запустить программу после входа в систему, посмотрите следующие файлы:

ФАЙЛЫ                             ПРИМЕЧАНИЯ

/etc/issue                  устанавливает сообщение перед входом
/etc/motd                   устанавливает сообщение после входа
/etc/profile                устанавливает переменную $PATH и другие, и т.п.
/etc/bashrc                 устанавливает алиасы и функции, и т.п.
/home/your_home/.bashrc     устанавливает ваши алиасы и функции
/home/your_home/.bash_profile или
/home/your_home/.profile    устанавливает переменные среды и запускает ваши программы

Если последние файлы существуют (заметим, что это скрытые файлы), они будут считаны после входа в систему и команды, записанные в них, будут выполнены.

Пример—посмотрите на этот .bash_profile:

# Это комментарий
echo Environment:
printenv | less   # эквивалент команде SET в DOS
alias d=’ls -l’   # легко понять, что это алиас
alias up=’cd ..’
echo «I remind you that the path is «$PATH
echo «Today is `date`»  # использовать вывод команды
echo «Have a good day, «$LOGNAME
# следующая часть является функцией командного процессора
ctgz() # вывести содержимое архива .tar.gz
\{
for file in $*
do
gzip -dc $\{file\} | tar tf —
done
\}        
# конец .profile

Вы правильно угадали, что $PATH и $LOGNAME являются переменными среды,. Существует много других переменных; например, прочитайте справочные страницы для таких приложений, как less или bash.

Поместив эту строку в ваш файл /etc/profile вы получите грубый эквивалент PROMPT $P$G:

export PS1=»\\w\\\\$ «

Инициализационные файлы программ

В Linux практически все может быть настроено для ваших требований. Большинство программ имеют один или несколько файлов инициализации, которые вы можете править, часто это файлы .prognamerc в вашем домашнем каталоге. Первыми файлами, которые вы захотите исправить:

.inputrc: используется bash для определения сочетаний клавиш;

.xinitrc: используется startx для инициализации X Window System;

.fvwmrc: используется оконным менеджером fvwm.

.joerc, .jstarrc: используется редактором joe;

.jedrc: используется редактором jed;

.pinerc: используется программой чтения почты pine;

.Xdefault: используется многим программами для X.

Со всеми этими и другими файлами вы встретитесь раньше или позже, RMP. Возможно я должен заинтересовать вас документом «Configuration HOWTO», http://www.linuxdoc.org/HOWTO/Config-HOWTO.html?

Сети: Основы

В Linux доступен не только «Dialup Networking», который более стабилен и быстр. Другая игра называется «PPP»;— это протокол, разработанный для подключения к Internet с помощью модемов. Вам необходимо ядро с поддержкой PPP и утилиты для подключения и создания соединения.

Для получения почты с сервера вашего ISP вам необходима утилита, называемая «вытягиватель почты (email fetcher)», которая использует протокол POP; когда почта будет получена, она будет выглядеть, как будто она отправлена прямо на ваше машину с Linux. Затем вы можете использовать MUA (Почтовый агент пользователя), такой как pine, mutt, elm или один из многих других для работы с почтой.

В то время как в Windows программа соединения запускается автоматически, когда вы запускаете приложение для Internet, в Linux это делается наоборот: вы сначала производите подключения, а затем запускаете приложение. Программа, называемая diald обеспечивает обычное поведение. Установка и настройка dialup networking считается одной из самых трудных вещей в Linux, но не больше: пожалуйста посмотрите в Configuration HOWTO.

В заключение несколько слов о «Сетевом Окружении»: вы можете заставить свою рабочую станцию с Linux появиться как Windows NT/9x в локальной сети машин с Windows! Магическим словом является Samba: это не Бразильский танец, а реализация протокола SMB для Linux. Смотрите на http://www.samba.org и в SMB-HOWTO.

Немного программирования

Скрипты командного процессора: Файлы .BAT на стероидах

Если вы использовали .BAT-файлы для создания сокращений для длинных командных строк (я сам так делал), то это может быть достигнуто вставкой соответствующих алиасов (смотрите вышеприведенный пример) в файлы profile или .bash_profile. Но если ваши .BAT-файлы были более сложными, то вы полюбите язык, предоставляемый командным процессором: он мощен, как старый QBasic, если не больше. Он имеет переменные, управляющие структуры, подобные while, for, case, if… then… else, и много других возможностей: он может быть хорошей альтернативой «настоящим» языкам программирования.

Для написания скрипта—эквивалента .BAT-файла в DOS все, что надо сделать—написать стандартный ASCII-файл, содержащий инструкции, сохранить его и затем сделать его исполнимым с помощью команды chmod +x <scriptfile>. Для выполнения скрипта наберите его имя.

Предупреждение. Системный редактор называется vi, и по моему мнению большинство новых пользователей найдет его трудным в использовании. Я не буду объяснять, как его использовать; пожалуйста посмотрите эту информацию в книге Matt Welsh или найдите учебное руководство в сети. Здесь достаточно сказать, что:

для вставки некоторого текста нажмите i, и затем вводите текст;

для удаления символов наберите <ESC>, а затем x;

для выхода из vi без сохранения изменений наберите <ESC>, а затем :q!

для сохранения и выхода наберите <ESC>, а затем :wq.

Примечание переводчика: На самом деле vi;— мощный редактор. Для получения встроенного учебника наберите <ESC>, а затем :help tutor, для получения справки по какому либо разделу наберите <ESC>, а затем :help имя_раздела или команды. Этот перевод был сделан используя вариант этого редактора под названием Vim, дополнительную информацию смотрите на http://www.vim.org.

Хорошим редактором для начинающих является joe: запустив его с помощью команды jstar, вы получите те же самые сочетания клавиш, как и в редакторе, используемом в DOSWin. jed в режиме WordStar или IDE, даже еще лучше. Пожалуйста посмотрите раздел Где найти приложения для того чтобы узнать, где можно найти данные редактора.

Написание скриптов для bash;— это такой необъятный предмет, что сам по себе заслуживает книги и я не буду углубляться в этот предмет. Я просто дам вам пример скрипта командного процессора, из которого вы можете вычленить некоторые базовые правила. Прочитайте справочную страницу bash.

#!/bin/sh
# sample.sh
# это комментарий
# не изменяйте первую строку, она должна быть такой
echo «Система называется: `uname -a`» # использовать вывод команды
echo «Мое имя $0» # Встроенные переменные
echo «Вы передали мне следующие $# параметров: «$*
echo «Первым параметром является: «$1
echo -n «Введите ваше имя? » ; read your_name
echo заметьте разницу: «hi $your_name» # использование кавычек вида «
echo заметьте разницу: ‘hi $your_name’ # использование кавычек вида ‘
DIRS=0 ; FILES=0
for file in `ls .` ; do
if [ -d $\{file\} ] ; then # если файл является каталогом
DIRS=`expr $DIRS + 1`  # DIRS = DIRS + 1
elif [ -f $\{file\} ] ; then
FILES=`expr $FILES + 1`
fi
case $\{file\} in
*.gif|*jpg) echo «$\{file\}: графический файл» ;;
*.txt|*.tex) echo «$\{file\}:  текстовый файл» ;;
*.c|*.f|*.for) echo «$\{file\}: файл исходных текстов» ;;
*) echo «$\{file\}: обычный файл» ;;
esac
done
echo «обнаружено $\{DIRS\} каталогов и $\{FILES\} файлов»
ls | grep «ZxY—!!!WKW»
if [ $? != 0 ] ; then # код завершения последней команды
echo «ZxY—!!!WKW не найден»
fi
echo «достаточно… наберите ‘man bash’ если вам нужна дополнительная информация.»

C для вас

В UNIX системным языком является C, любите его или ненавидьте. Также доступны другие языки программирования (Java, FORTRAN, Pascal, Lisp, Basic, Perl, awk…).

Считая, что вы знаете C, существует некоторое количество руководств для тех, кто испорчен использованием Turbo C++ или его собратьев по DOS. Компилятор С в Linux называется gcc и не содержит моргалки и дуделки, которые обычно сопутствуют его аналогам в DOS: нет IDE (Интегрированная среда разработки), оперативной подсказки, встроенного отладчика и т.п. Это просто командно-строковый компилятор, очень мощный и эффективный. Для компиляции стандартного hello.c вам необходимо выполнить команду:

$ gcc hello.c

которая создаст исполнимый файл, названный a.out. Для того, чтобы дать исполнимому файлу другое название, выполните команду:

$ gcc -o hola hello.c

Для подключения к программе библиотеки функций добавьте к командной строке ключ -l<libname>. Например, для подключения библиотеки математических функций:

$ gcc -o mathprog mathprog.c -lm

(Ключ -l<libname> заставляет gcc подключить библиотеку /usr/lib/lib<libname>.so; так что -lm подключает библиотеку /usr/lib/libm.so).

Чем дальше, тем лучше, но когда ваша программа состоит из нескольких файлов исходных текстов, то вам понадобиться пользоваться утилитой make. Предположим, что вы написали разбор выражений: его файл исходных текстов называется: parser.c и подключает два заголовочных файла, parser.h и xy.h. Затем вы хотите использовать подпрограммы из parser.c в программе, допустим calc.c, которая подключает файл parser.h. Что за неразбериха! Что вам надо сделать для компиляции calc.c?

Вам необходимо написать так называемый Makefile, который сообщает компилятору зависимости между файлами исходных текстов и объектными файлами. В нашем примере:

# Это Makefile, используемый для компиляции calc.c
# Нажмите клавишу <TAB> где показано!

calc: calc.o parser.o
<TAB>gcc -o calc calc.o parser.o -lm
# calc зависит от 2-х объектных файлов: calc.o и parser.o

calc.o: calc.c parser.h
<TAB>gcc -c calc.c
# calc.o зависит от двух файлов исходных текстов

parser.o:  parser.c parser.h xy.h
<TAB>gcc -c parser.c
# parser.o зависит от трех файлов исходных текстов

# конец Makefile.

Сохраните этот файл как Makefile и наберите make для компиляции вашей программы; вы также можете сохранить его как calc.mak и набрать make -f calc.mak, и конечно RMP. Вы также можете получить некоторую помощь о функциях C, которые описаны в справочных страницах, раздел 3; например,

$ man 3 printf

Для отладки ваших программ используйте программу gdb. Наберите info gdb для того, чтобы узнать, как использовать отладчик.

Существует большое количество библиотек; среди них первыми вы скорее всего захотите использовать следующие: ncurses (для работы в текстовом режиме), и svgalib (для графики в консоли). Много редакторов могут работать как IDE; например emacs и jed, также они производят подсветку синтаксиса, автоматические отступы, и так далее. Также вы можете взять пакет rhide с ftp://metalab.unc.edu:/pub/Linux/devel/debuggers/. Это клон Borland IDE и есть шанс, что он вам понравится.

Программирование для X11

Если вы чувствуете себя достаточно образованным для программирования для X11 (это не так трудно), то существует несколько библиотек, которые сделают написание программ для X11 более легким. Основными серверами, которые вам необходимо посетить, являются сервера GTK+, http://www.gtk.org и Qt, http://www.troll.no. Gtk+ является набором элементов, написанных на языке С, в начале созданном для графического пакета The GIMP ( http://www.gimp.org), и используется средой Gnome. Kdeveloper основан на Qt, написанном на С++ и используемом средой KDE. Вероятнее всего, вы будете использовать один из этих пакетов.

Наилучшими пакетами для визуального программирования являются Kdevelop для Qt, http://www.kdevelop.org, и Glade для GTK+, http://glade.pn.org. Эта страница имеет большее количество информации: http://www.free-soft.org/guitool/.

Многоплатформенной программирование

Было бы хорошо, если бы вы могли писать код, который одинаково компилируется и под и под Windows с помощью gcc? Во время написания данного документа, существовало несколько наборов элементов, которые позволяли (более или менее) программирование под разные платформы. Из соображений достаточности и стабильности, может использоваться только один: FLTK, Fast Light Tool Kit http://www.fltk.org. Он достаточно небольшой, быстрый и стабильный. В его составе также имеется полу-визуальный построитель интерфейса под названием Fluid.

Оставшийся 1% дел

В самом деле больше чем 1%…

Использование tar и gzip

В UNIX существуют некоторые широко используемые приложения для архивации и сжатия файлов. tar используется для создания архивов—он похож на PKZIP или Winzip, но не производит сжатие, он только архивирует. Для создания нового архива используется команда:

$ tar -cvf <archive_name.tar> <file> [file…]

Для извлечения файлов из архива:

$ tar -xpvf <archive_name.tar> [file…]

Для перечисления содержимого архива:

$ tar -tf <archive_name.tar> | less

Вы можете сжать данные, используя программу compress, которая устарела и не должна больше использоваться, или с помощью gzip:

$ compress <file>
$ gzip <file>

что создает сжатые файлы с расширением .Z (compress) или .gz (gzip). Эти программы могут сжимать только один файл за раз. Для расжатия используются команды:

$ compress -d <file.Z>
$ gzip -d <file.gz>

RMP.

Также существуют утилиты unarj, zip и unzip (совместимые с PK??ZIP). Файлы с расширениями .tar.gz или .tgz (архивированные с помощью tar, а затем сжатые gzip) являются такой же вещью в UNIX как файлы .ZIP в DOS. Вот как выдать список файлов в архиве .tar.gz:

$ tar -ztf <file.tar.gz> | less

Установка приложений

Во первых: установка приложений;— это работа администратора. Большинство приложений для Linux распространяются в виде архивов .tar.gz, которые обычно содержат каталог, названный как и архив, который содержит файлы и/или подкаталоги.Хорошим правилом является установка этих программ из каталога /usr/local с помощью команды

# tar -zxf <archive.tar.gz>

прочитайте файл README или INSTALL. В большинстве случаев приложение распространяется в виде исходных текстов, которые вам надо скомпилировать; часто достаточно набрать команду make, а затем make install. Если в архиве есть файл configure, то сначала запустите его. Вам также необходимо иметь компилятор gcc или g++.

Другие архивы должны быть распакованы, находясь в каталоге /; это в случае с архивами, используемыми в Slackware. Другие архивы содержат только файлы, без подкаталогов—будьте осторожны, не запутайтесь! Всегда просмотрите список файлов в архиве до его установки.

Debian и Red Hat имеют свой собственный формат архивов;— соответственно .deb и .rpm. Последний приобретает широкое распространение; для установки пакета rpm наберите

# rpm -i package.rpm

Советы, без которых вы не сможете жить

Прокрутка назад: нажимая <SHIFT + PAG UP> (серая клавиша) вы можете прокрутить назад несколько последних страниц экрана, в зависимости от того, сколько у вас видеопамяти.

Сброс экрана: если вы выполнили команду more или cat для двоичного файла, то ваш экран может быть заполнен мусором. Для того, чтобы исправить это вслепую, наберите reset или такую последовательность символов: echo CTRL-V ESC c RETURN.

Вставка текста: Как сделать это в консоли, описано ниже; в X нажмите левую кнопку мыши и держа ее выделите необходимый текст, затем щелкните средней кнопкой мыши (или обоими кнопками, если у вас 2-х кнопочная мышь) для вставки текста в позиции курсора. Также есть приложение xclipboard (только для текста); не пугайтесь ее медленной работы.

Используя мышь: если у вас установлена программа gpm—драйвер мыши для консоли, то вы можете нажать на левую кнопку мыши и выделить текст, а затем нажать на правую кнопку мыши для вставки выделенного текста. Программа может работать между разными виртуальными консолями.

Сообщения от ядра: войдя под правами администратора посмотрите файл /var/adm/messages или /var/log/messages для того чтобы увидеть, что ядро сообщает вам, включая сообщения на этапе загрузки. Также удобна команда dmesg.

Где найти приложения

Если вы удивляетесь, должны ли вы заменить ваши старые и привычные приложения под DOS/Win приложениями под Linux, я предполагаю, что вы просмотрели основные архивы программного обеспечения для Linux: ftp://metalab.unc.edu/pub/Linux, ftp://tsx-11.mit.edu/pub/linux, и ftp://ftp.funet.fi/pub/Linux. Другим хорошим местом для поиска является «Linux Applications and Utilities Page (Страница приложений и утилит для Linux)» http://www.xnet.com/~blatura/linapps.shtml, и «официальную» страницу Linux http://www.linux.org.

Некоторые вещи, которые вы не могли делать

Linux может выполнять ужасно много вещей, которые были громоздкими, трудными или невозможными в DOS/Windows. Вот короткий список вещей, которые могут возбудит ваш аппетит:

at позволяет вам запускать программы в указанное время;

awk;— это простой, но мощный язык для манипулирования файлами данных (и не только). Например, допустим, что data.dat;— это ваш файл с множеством полей данных,
$ awk ‘$2 ~ «abc» \{print $1, «\\t», $4\}’ data.dat

напечатает поля 1 и 4 из каждой строки файла data.dat, второе поле которой содержит «abc».

cron полезен для выполнения периодических задач, в указанное время и дату. Наберите man 5 crontab.

file <filename> скажет вам, чем является filename (ASCII текст, исполнимый файл, архив и т.п.);

find (смотрите также раздел Каталоги: Перевод команд)—это одна из наиболее мощных и полезных команд. Она используется для поиска файлов, которые отвечают нескольким заданным критериям и для выполнения действий над этими файлами. В общем виде командная строка find выглядит так:
$ find <каталог> <выражение>

где <выражение> включает в себя критерии поиска и действия над найденными файлами. Примеры:
$ find . -type l -exec ls -l \{\} \\;

находит все файлы, которые является символьными ссылками, и показывает, на какие файлы они указывают.
$ find / -name «*.old» -ok rm \{\} \\;

находит все файлы, соответствующие заданному образцу, и удаляет их, сначала спрашивая у вас разрешение.
$ find . -perm +111

находит все файлы, чьи права доступа соответствуют 111 (исполнимые).
$ find . -user root

находит все файлы, принадлежащие пользователю root. Здесь есть много возможностей—RMP.

grep находит заданный текст в файлах. Например,
$ grep -l «geology» *.tex

перечислит все файлы *.tex, в которых содержится слово «geology». Вариант этой программы под названием zgrep работает со сжатыми файлами. RMP;

регулярные выражения—являются сложным, но мощным способом выполнения операций поиска в тексте. Например, ^a[^a-m]X\{4,\}txt$ соответствует строке, которая начинается на `a’, за которым следует любой символ, за исключением входящих в интервал a-m, за которым следует 4 или больше символов `X’, и заканчивается на `txt’. Вы можете использовать регулярные выражения в мощных редакторах, программе less, и многих других приложениях. Для введения в регулярные выражения прочитайте справочную страницу для grep.

команда script <script_file> выдаст вам на экран содержимое script_file, до тех пор пока вы не выполните команду exit. Полезно для отладки;

sudo позволяет пользователям выполнять некоторые обязанности администратора (например форматирование и монтирование дисков; RMP);

uname -a выдаст вам информацию о вашей системе;

zcat и zless полезны для просмотра и печати сжатых файл без их расжатия. Например:
$ zless textfile.gz
$ zcat textfile.gz | lpr

Следующие команды часто бывают полезны: bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew. RMP.

Использование утилит для UNIX в DOS/Windows

Верьте этому или нет, но существуют утилиты, которые обеспечивают UNIX-подобную среду в DOS/Windows! Одной из них является набор Djgpp ( http://www.delorie.com/djgpp) для DOS, в то время как Cygnus ( http://www.cygnus.com) является более сложным портом для Win32. Они оба включают в себя те же средства разработки GNU и утилиты, как и Linux; хотя вы не получите той же стабильности и производительности.

Если вы хотите почувствовать вкус Linux, попробуйте пакет Djgpp. Скачайте и установите следующий файлы (во время написания последней версией была версия 2.02): djdev202.zip, bnu281b.zip, bsh1147b.zip, fil316b.zip, find41b.zip, grep22b.zip, gwk303b.zip, lss332b.zip, shl112b.zip.. Инструкции по установке включены в дистрибутив и вы можете получить помощь в news:comp.os.msdos.djgpp.

В частности, использование bash в DOSWin является глотком свежего воздуха. Для его правильной настройки отредактируйте поставляемый файл BOOT.BAT для того, чтобы он соответствовал вашим настройкам, а затем поместите эти файлы в ваш домашний каталог (на разделе Windows) вместо тех, которые поставляются в дистрибутиве:

# это _bashrc

LS_OPTIONS=»-F -s —color=yes»
alias cp=’cp -i’
alias d=’ls -l’
alias l=less
alias ls=»ls $LS_OPTIONS»
alias mv=’mv -i’
alias rm=’rm -i’
alias u=’cd ..’

# это _bprof
if [ -f ~/_bashrc ]; then
. ~/_bashrc
fi
PS1=’\\w\\$ ‘
PS2=’> ‘
CDPATH=»$CDPATH:~»
# stuff for less(1)
LESS=»-M-Q»                     # long prompt, silent
LESSEDIT=»%E ?lt+%lt. %f»       # edit top line
VISUAL=»jed»                    # editor
LESSCHARSET=latin1              # visualise accented letters
export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

Общие расширения файлов и соответствующие программы

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

1 … 8: справочные страницы. Читайте их с помощью команды groff -Tascii -man <file.1>.

arj: архивы, созданные программой arj.

dvi: выходной файл, созданный программой TeX (смотрите ниже). xdvi используется для его показа; а dvips;— для преобразования его в файл PostScript .ps.

gz: архивы, созданные gzip.

info: файл для программы info file (альтернатива справочным страницам). Возьмите пакет texinfo.

lsm: Файл Linux Software Map (Карты программного обеспечения Linux). Это обычный ASCII-файл, содержащий описание пакета программ.

ps: Файл PostScript. Для его просмотра или печати возьмите программу gs и, при необходимости, программу ghostview или gv.

rpm: Пакет Red Hat. Вы можете установить его на любой системе, используя менеджер пакетов rpm.

taz, tar.Z: архив, созданный tar и сжатый программой compress.

tgz, tar.gz: архив, созданный tar и сжатый gzip.

tex: текстовый файл с информацией для TeX, мощной системы форматирования теста. Возьмите пакет tex, доступный в многих дистрибутивах.

texi: файл texinfo, вы можете сделать из него и файлы TeX и файлы info (info). возьмите пакет texinfo.

xbm, xpm, xwd: графические файлы.

Z: архив, созданный программой compress.

Преобразование файлов

Если вам необходимо обмениваться текстовыми файлами между DOS/Win и Linux, то будьте осторожны с проблемой «конца строки». В DOS каждая строка оканчивается символами CR/LF (ASCII 13 + ASCII 10), а в Linux;— символом LF. Если вы редактируете текстовый файл из DOS в Linux, то каждая строка будет оканчиваться странно-выглядящим символом `M’; а текстовый файл из Linux в DOS появится как огромная одиночная строка без разбиения на параграфы. Существуют утилиты dos2unix и unix2dos для преобразования файлов.

Если ваш текстовый файл содержит символы с диактрическими знаками, то убедитесь, что они набраны в Windows (в Notepad), а не в чистом DOS; в ином случае символы будут потеряны.

Преобразование файлов Word или WordPerfect в текстовые файлы сложнее, но возможно. Вам необходима одна из утилит, которую можно найти на серверах CTAN; один из них ftp://ftp.tex.ac.uk. Возьмите программу word2x из каталога /pub/tex/tools/, или попробуйте программы, находящиеся в каталоге /pub/tex/support/. В частности word2x преобразует файлы Word 6, тогда как для файлов Word 97 вам необходима программа mswordview ( http://www.csn.ul.ie/~caolan/docs/MSWordView.html), которая преобразует эти файлы в HTML.

Свободные офисные пакеты

Если преобразования файлов вам недостаточно, то вы можете вцепиться зубами в (свободный!) Microsoft Office—подобный пакет.

В настоящее время StarOffice ( http://www.sun.com/staroffice) является единственным выбором, хотя Koffice развивается ( http://www.koffice.org). Он большой, иногда медленен, но в любом случае хорош: Он предоставляет функциональные возможности, которых нет в Microsoft Office. Он также может читать и записывать файлы Word и Excel, хотя преобразования не всегда нормальны.

Другим хорошим пакетом является Corel WordPerfect, свободная версия которой доступна для загрузки. Должен я еще что-нибудь сказать? Скачать его можно с http://www.corel.com.

Конец, пока что

Поздравляю! Вы теперь охватили небольшой кусочек UNIX и готовы начать работать. Помните, что ваше знание системы все еще ограничено, и что вы будете больше практиковаться в работе с Linux для того, чтобы работа с ним стала комфортабельной. Но если все, что вам нужно было—это получить набор приложений и начать работать с ними, то той информации, которую я включил в этот документ, будет достаточно.

Я уверен, что вы насладитесь работой с Linux и будете продолжать изучать его. Я бьюсь об заклад, что вы никогда не вернетесь к DOSWin! Я надеюсь, что я был понятен и дал хорошую информацию для моих 3-х или 4-х читателей.

;

ВВЕДЕНИЕ

Среди всех
компьютерных программ, с которыми работают пользователи ПК, особое место
занимают операционные системы. От выбора ОС зависит производительность Вашей
работы, степень защиты данных, необходимые аппаратные средства и т.д. Однако,
выбор операционной системы также зависит от технических характеристик
(конфигурации) компьютера. Чем более современнее операционная система, тем она
не только предоставляет больше возможностей и более наглядна, но также тем
больше она предъявляет требований к компьютеру (тактовая частота процессора,
оперативная и дисковая память, наличие и разрядность дополнительных карт и
устройств).

Операционная система, ОС (англ. operating system) — базовый комплекс компьютерных программ своего рода, передатчик между компьютерным железом и остальными программами.

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

Таким образом, выбор
операционной системы очень важен, так как от этого выбора будет зависеть вся
дальнейшая работа ПК: производительность, степень защищенности данных и т.д. Поэтому
целью нашей работы стало представление и сравнение с разных сторон наиболее
распространенных операционных систем.

Под Windows обычно подразумевается последняя на момент обсуждения версия Microsoft Windows для настольных компьютеров/ноутбуков, под Linux — наиболее популярный на момент обсуждения дистрибутив GNU/Linux. Подобные дискуссии в основном сводятся к сравнению внешних признаков ОС (таких как графический интерфейс и юзабилити со стороны пользователей, привыкших к Windows) и технических характеристик (таких как архитектура, API и безопасность со стороны пользователей альтернативных ОС). Здесь стоит отметить, что такое сравние «в лоб» по сути некорректно, потому как «Windows» и поставляемый с ней набор программ — это ПО, предназначенное для решения строго определённой задачи, в то время как «Linux» — это ядро, на базе которого могут быть построены самые разнообразные конфигурации ОС, от пользовательских (например, UBUNTU для настольных компьютеров или Android для мобильных устройств) до серверных решений и встраиваемых ОС.

ТРУДНОСТИ В СРАВНЕНИИ

  • Исторически слово «Linux» означает ядро операционной системы. Операционные системы на основе ядра Linux, утилит проекта GNU исторически называют GNU/Linux, но в последнее время имя упрощают до «Linux», что не везде приветствуется.
  • Linux — это не определённая ОС, их более 600, среди них есть те, которые отличаются друг от друга значительно, а некоторые совсем немного.
  • И Windows, и Linux поставляются в различных конфигурациях. Особенно Linux, для которой существует огромное количество вариантов, некоторые из них предназначены для узкого круга задач.
  • Цена и широта технической поддержки различаются у разных поставщиков, а также в зависимости от версии и дистрибутива.
  • Производители оборудования могут устанавливать дополнительное ПО с операционной системой, которое делает доступные функции системы разнообразнее. Иногда они даже спонсируют продавца, снижая цену продукта для пользователя.
  • Данные, полученные от маркетинговых подразделений, и результаты тестирования могут расходиться.
  • Microsoft распространяет Windows под разными лицензиями (закрытыми). Дистрибутивы Linux, со своей стороны, могут содержать проприетарные компоненты.

ПО ПОПУЛЯРНОСТИ НА НАСТОЛЬНЫХ КОМПЬЮТЕРАХ

Точно подсчитать количество пользователей затруднительно, так как почти все копии Linux не требуют регистрации, а Windows NT существует во множестве не авторизованных или незарегистрированных копий. Приведенные данные основаны на идентификационных откликах веь-браузеров, поэтому цифры весьма приблизительны: разные сайты привлекают разные аудитории, а браузеры не всегда точно передают данные об операционной системе.

WINDOWS LINUX
Доля при продаже компьютеров Предустанавливается без возможности выбора на 99% персональных компьютеров, начиная с первой версии MS-DOS Предустанавливается на небольшое количество продаваемых систем. В последнее время появилось несколько моделей ноутбуков, поставляющихся с Linux. Также на смартфоны, планшетные компьютеры, электронные книги, цифровые проигрыватели и другие устройства устанавливают операционную систему Android — основанную на ядре Linux
Оконные менеджеры/графическая среда Графическая оболочка необходима для работы подавляющего большинства программ, и её отказ ведет к нарушению их функционирования. Существует ряд программ, которые работают без использования графической оболочки, но служат они преимущественно для технического обслуживания системы (например, восстановления работоспособности). Графическая оболочка не критична для работы операционной системы, система может переключаться в текстовый режим. Используются «виртуальные терминалы», что позволяет избежать перезагрузки системы в случае отказа одного из терминалов.
Системная консоль/командная строка Командная строка существует, но обладает ограниченной функциональностью. Базируется на MS-DOS, наследуя её скромные возможности, мало изменившиеся с 1990-х годов. Разработан также мощный командный процессор Windows PowerShell, реализующий некоторые возможности командной строки UNIX, основанный на .NET. Командная строка также является неотъемлемой частью системы. Во многих ОС функции настройки системы реализованы при помощи графического интерфейса (иногда — работающего незаметно для пользователя с системой с помощью командной строки), но из‑за различия между вариантами не знакомые с конкретным дистрибутивом пользователи часто дают новичкам инструкции, ориентированные на командную строку. Командная строка позволяет опытному пользователю полностью перенастроить все функции ОС.

ПО УДОБСТВУ ИСПОЛЬЗОВАНИЯ

Установка Linux когда-то была затруднительной для среднего пользователя. В настоящее время почти все дистрибутивы содержат упрощённую процедуру установки и демонстрационный диск (Live CD), который дает возможность загрузить систему прямо с CD или DVD и пользоваться ей, не устанавливая на жёсткий диск.

Установщик Windows тоже включает в себя программу-помощника (wizard), как и дистрибутивы Linux.

  WINDOWS LINUX
Размер инсталлятора Представляет стандартизированный набор программных средств и размер вариируется от нескольких десятков дискет (Windows 3.11) до DVD-диска (Windows Vista/7/8). Существуют как официальные так и не официальные инструменты по созданию своих дистрибутивов Windows. Возможна установка через сеть. От одной дискеты до нескольких DVD дисков. Например, дистрибутив DSL занимает всего 50 МБ, предоставляя браузеры, офисные приложения и т. д. Многие дистрибутивы распространяются в нескольких вариантах (как правило, DVD с большим набором программ и выбором графической среды или Live CD для каждой графической среды (KDE, GNOME, Xfce) с набором программ для неё). Возможна установка через сеть, при которой всё необходимое программное обеспечение будет получено со специального сервера.
Простота установки Windows 7, довольно проста в установке, если предполагается установка на машину без присутствующих операционных систем. Установка Windows XP, может быть затруднена в случае, если установленное оборудование использует новые технологии. Очень просты в установке (SuSE, Mandriva, Ubuntu, Fedora и др.), в процессе позволяет менять множество настроек, легко устанавливается к существующим операционным системам.
Наличие драйверов устройств Драйверы некоторых устройств, использованных в системе, устанавливаются отдельно. Многие драйверы устанавливается системой из набора драйверов на установочном носителе, некоторые недостающие драйверы можно получить через интернет с помощью средств системы. Процесс установки большинства драйверов автоматизирован. Оборудование, считающееся по каким-либо причинам устаревшим, не поддерживается разработчиками этого оборудования, в результате чего для него отсутствуют драйверы, поскольку для разных ОС Windows требуются различные драйверы устройств. На практике, для неинтегрированых устройств почти всегда приходится устанавливать драйверы отдельно. Это требует времени и дополнительных перезагрузок. Большинство драйверов устанавливается автоматически при инсталляции операционной системы или доступно для загрузки через интернет. Множество драйверов уже включено в ядро. Производители некоторых устройств (ТВ-тюнеров и др.) иногда не выпускают драйверы для Linux, поэтому устройства могут оказаться неработоспособными (в этом случае могут помочь драйверы открытого сообщества для систем на одном чипе SoC). Возможно использование Windows-драйверов для некоторых из устройств.
Инсталляция с помощью ознакомительного CD (Live CD) Официальных свободно-распространяемых ознакомительных CD не существует. Но можно специально создать работающую систему в облегченном варианте на диске (WinPE) с диска или флеш-накопителя или с помощью специально созданного загрузочного диска (BartPE). Многие полноценные дистрибутивы (Knoppix, openSUSE, Ubuntu) имеют ознакомительный диск (live CD). С помощью таких дисков можно осуществлять восстановление работоспособности системы, в том числе с другой операционной системой. Также многие live-CD предоставляют возможность установки ОС на компьютер с этого же диска.
Поставляемое программное обеспечение Несколько программ для работы с мультимедиа и сетью интернет (браузер Internet Explorer, проигрыватель Windows Media Player, текстовые редакторы Notepad, WordPad, графический редактор Paint), почтовый клиент Outlook Express. Дополнительное ПО может быть включено производителем оборудования.  На практике без установки дополнительных компонентов Windows Media Player не может воспроизводить видео, а встроенная в Windows XP (SP1) программа записи дисков не может записывать DVD и сильно ограничена в функционале. Кроме того, в системе отсутствуют средства работы с различными архивами. Во всех основных дистрибутивах присутствует множество программ для самых разных задач: мультимедиа, графики, интернета, офисной работы, игр, а также системные утилиты и дополнительные визуальные оболочки. Однако из-за недостаточной открытости форматов файлов собственнических продуктов для Microsoft Windows существует ряд проблем с совместимостью форматов файлов между такими продуктами и свободными приложениями. Например, сложный текст, созданный в OpenOffice.org, и сохранённый в собственническом формате Microsoft Office, не всегда корректно читается в Microsoft Office; и наоборот.
Программы, которые можно установить дополнительно Огромный выбор собственнических и свободно распространяемых программ (Однако нет централизованного хранилища необходимого для работы свободного программного обеспечения, поддерживаемого производителем ОС). Как правило, они поставляются со всеми необходимыми библиотеками, устанавливаются с помощью специальной программы-инсталлятора. Хотя в Windows есть собственная система установки/удаления программ, многие программы устанавливаются уникальными инсталляторами. Деинсталляция тоже проста, хотя программы удаления зачастую оставляют глобальные пометки (например, для ограничения срока работы), а иногда — и бинарные файлы (например, библиотеки). Имеется возможность установки некоторых простых программ путём простого копирования файлов в системную директорию (бинарный формат файлов). Некоторые программы могут работать только на определённых версиях ОС. Большой выбор свободно распространяемых программ и небольшой выбор коммерческих. Однако для ряда задач приложений гораздо меньше, чем для Windows, или они отсутствуют. Созданы версии некоторых Win32-программ для Linux. Некоторые программы должны устанавливаться пользователем самостоятельно, либо из исходных кодов, иногда с применением командной строки. При инсталляции ПО в пакете часто может требоваться инсталляция других пакетов, которые устанавливаются автоматически, либо их можно скачать из Интернета. Это используется для того, чтобы избежать конфликта библиотек (dll hell): две программы могут использовать один и тот же пакет, а операционная система самостоятельно заботится о том, чтобы поддерживать актуальность его версии.
Подготовка диска По умолчанию устанавливает только себя, затирая возможность запуска других ОС, кроме других инсталляций Windows. Разделы с «родной» файловой системой NTFS легко могут быть расширены и уменьшены (под Vista/7 уменьшить размер раздела можно системными средствами, под XP — только с помощью программ сторонних производителей). При этом графическая программа для этой задачи обладает меньшим функционалом, чем утилита командной строки. Возможно динамическое разделение диска (Dynamic Disks). Возможна установка нескольких операционных систем. В большинстве дистрибутивов есть возможность запуска полноценной системы с компакт диска, а значит работать со всеми функциями, включая мощную графическую утилиту переразметки GPartEd, работающую с большим набором файловых систем, включая NTFS. Динамические диски поддерживаются с использованием LVM или EVMS, часто поставляемых вместе с дистрибутивом.
Программа-загрузчик При установке автоматически настраивается для загрузки других имеющихся на компьютере инсталляций систем семейства Windows NT/9x (NTLDR), для загрузки Linux и других подобных систем необходимо ручное редактирование файла BOOT.INI. Также возможно применение сторонних загрузчиков, таких как GRUB. Может загружать операционные системы по выбору пользователя с помощью встроенных менеджеров GRUB или LILO. Также имеются средства безопасности (например запрос пароля), которых нет в загрузчике Windows.
Доступность исходного кода Исходный код может быть приобретён для строго ограниченных целей, а, кроме того, программы сторонних разработчиков могут изменять системные настройки. Другими словами, возможно случайное нарушение лицензионного соглашения. Весь код системы доступен для модификации. Большая часть сторонних программ также предоставляет исходный код.

Из‑за отсутствия поддержки Linux в загрузчике Windows в случае установки Windows и Linux на одной машине проще сначала установить Windows, а затем Linux. Существуют дополнительные загрузчики операционных систем по выбору. В случае переустановки Windows загрузчик можно восстановить при помощи Live CD.

Особенности Linux, а именно: открытость, изначальное предпочтение открытых программных компонентов закрытым, нестандартность поставки (огромное количество дистрибутивов со своими особенностями), центральные безопасные источники программ, наличие бита выполнения, исходный запрет на работу под пользователем root, наличие средств ограничения прав (SELinux, AppArmor) — делают возможным только точечное, намеренное заражение и исключают возможность масштабной жизнедеятельности вредоносных программных кодов. Только под Linux количество вирусов исчисляется несколькими десятками (обычно разработанными в учебных целях), так как открытость ядра позволила закрыть большинство уязвимостей в ядре системы.

Для Microsoft Windows создано очень большое число вирусов и деструктивных программ (их количество исчисляется десятками миллионов (по данным лаборатории Касперского (отчет) )). Для борьбы с ними используется специальное программное обеспечение — антивирусы. Вирусы бывают разных видов: от сравнительно безобидных не приносящих особого вреда пользователю, до деструктивных, которые изменяют настройки системы, уничтожают важные данные пользователя или похищают банковские данные. В линейке Windows NT всегда присутствовало чёткое разделение пользовательских прав. Тем не менее, большинство пользователей домашних компьютеров всегда использует права администратора, что негативно сказывается на защищённости системы. В настоящее Windows в явном виде запрашивает подтверждение действий, требующих прав администратора, даже если пользователь является администратором.

В Linux (как и во всех других UNIX-подобных системах) всегда присутствовало чёткое разделение пользовательских прав. Имеется только одна учётная запись системного администратора («суперпользователя») — root. Этот пользователь может выполнять ничем не ограниченные действия над системой: изменять настройки, устанавливать и удалять программы, изменять системные файлы, останавливать отдельные компоненты или всю систему, и даже полностью удалить её одной командой. Также имеются учётные записи обычных пользователей: они могут только изменять личные настройки (внешний вид, настройки программ), и выполнять операции с файлами только в пределах своего домашнего каталога (или в других каталогах, если разрешит root). Обычному пользователю разрешено устанавливать программы только в свой домашний каталог или в те каталоги, где у него есть разрешение на запись данных. В большинстве современных дистрибутивов Linux работа непосредственно из-под учётной записи root невозможна; пользователь всегда работает с ограниченными правами, запуск же учётной записи root производится только для выполнения отдельных действий, и для каждого такого запуска требуется ввод пароля root (su) или текущего пользователя (sudo) для подтверждения полномочий.

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

Принцип работы системы

Принцип работы системы

Большинство структур ОС используют подход разбиения на слои каждой задачи, включая файловые системы. Каждый уровень отвечает за определенные действия.

Когда прикладная программа запрашивает файл, первый запрос направляется в логическую файловую систему. Она содержит метаданные структур файлов и каталогов. Если прикладная программа не имеет необходимых прав доступа к файлу, то этот слой выдает ошибку.

Логические файловые системы

Логические файловые системы также проверяют путь к файлу. Как правило, они делятся на различные логические блоки, хранятся на жестком диске и извлекаются с жесткого диска. Последний разделен на различные дорожки и сектора. Поэтому, чтобы хранить и извлекать файлы, логические блоки структуры ОС должны быть сопоставлены с физическими блоками. Это сопоставление выполняется модулем организации файлов. Он также отвечает за управление свободным пространством.

Файлы операционной системы

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

Виды

Существующая ОС и структура систем позволяет прикладным программам пользователя взаимодействовать с системным оборудованием. Поскольку операционная система является сложной структурой, ее следует создавать с максимальной осторожностью, чтобы можно было легко использовать и модифицировать. Простой способ сделать это — создать ее по частям. Каждая из этих частей должна быть четко определена с уточненными входами, выходами и функциями.

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

Виды конструкционных структур ОС

Современные системы должны иметь модульную структуру и функции ОС, в отличие от MS-DOS. Это приводит к большему контролю над компьютерной системой и ее приложениями. Модульная структура также позволит программистам скрыть информацию по мере необходимости и реализовать внутренние процедуры так, как они считают нужным, без изменения внешних спецификаций. Одним из способов достижения модульности в операционной системе является многоуровневый подход или создание слоистой структуры.

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

Дизайн архитектуры ОС

Дизайн архитектуры ОС

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

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

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

Современные монолитные конструкции

Современные монолитные конструкции

Монолитный дизайн архитектуры не создает особых условий для природы ОС. Хотя он участвует в разделении проблем при работе, он не ограничивает привилегии, предоставляемые отдельным частям системы, которые выполняются с максимальными привилегиями. Накладные расходы на связь внутри монолитной системы такие же, как служебные данные внутри любого другого программного обеспечения.

CP/M и DOS являются простыми примерами монолитных операционных систем. Это системы, которые совместно используют приложения с одним адресным пространством. В CP/M 16-разрядное адресное пространство начинается с системных переменных и области приложения и заканчивается тремя частями:

  • CCP — консольный командный процессор;
  • BDOS — базовая ОС;
  • BIOS — базовый ввод/вывод System.

В DOS 20-разрядное адресное пространство начинается с массива векторов прерываний и системных переменных, за которыми следует резидентная часть и область приложений, а заканчивается блоком памяти, используемым видеокартой и BIOS. Большинство современных систем, включая Linux и структуру ОС Windows, также считаются монолитными, хотя они, безусловно, значительно отличаются от простых примеров CP/M и DOS.

Многослойные системы

Многослойные системы

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

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

Конструкция микроядра

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

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

MACH является ярким примером микроядра, который использовался в современных системах, включая системы NextStep и OpenStep и, в частности, OS X. Большинство исследовательских систем также квалифицируются как ОС с микроядрами.

Виртуальные гипервизоры

Виртуальные гипервизоры

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

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

Принимающий гипервизор частично обходит необходимость в аппаратной конкретной реализации, запустив поверх другой системы. Структура системы начинается с хоста снизу вверх, включает в себя гипервизор, а затем гостевые ОС, размещенные над гипервизором.

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

Гибридные операционные системы

Большинство ОС сегодня не строго придерживаются одной архитектуры, а являются гибридами нескольких.

Архитектура Max OSX опирается на микроядро Mach для базовых служб управления системой и ядро BSD для дополнительных сервисов. Остальные функциональные возможности ОС предоставляют сервисы приложений и динамически загружаемые модули (расширения ядра):

  1. IOS операционная система была разработана Apple для iPhone и IPADS. Она работает с меньшим потреблением памяти и вычислительной мощностью, чем Max OS X, и поддерживает сенсорный интерфейс и графику для небольших экранов.
  2. Android OS была разработана для Android-смартфонов и планшетов Open Handset Alliance, в первую очередь Google. Android — это ОС с открытым исходным кодом, в отличие от iOS, что привело к ее популярности. Android имеет структуру ОС Linux и виртуальную машину Java, оптимизированные для небольших платформ. Приложения для Android разработаны с использованием специальной среды разработки для Java-for-Android.

Микроядра и модули

Микроядра и модули

Основная идея микроядер заключается в том, чтобы удалить все несущественные сервисы из ядра и вместо этого реализовать их как системные приложения, тем самым делая ядро настолько малым и эффективным, насколько это возможно. Mach был первым и самым известным микроядром, и теперь он является основным компонентом Mac OSX. Windows NT изначально представляла собой микроядро, но она страдала от проблем с производительностью (по сравнению с Windows 95). Усовершенствованная производительность NT 4.0 за счет перемещения большего количества сервисов в ядро возвратила XP к более монолитному. Другим примером микроядра является QNX, ОС реального времени для встроенных систем.

Современная разработка ОС объектно-ориентированная, с относительно небольшим ядром и набором модулей, которые могут быть связаны динамически (например, структура Solaris). Модули аналогичны слоям в том, что каждая подсистема имеет четко определенные задачи и интерфейсы, но любой модуль может контактировать с любым другим модулем, устраняя проблемы прохождения через несколько промежуточных слоев. Ядро относительно мало в этой архитектуре, подобно микроядрам ему не нужно реализовывать передачу сообщений, так как модули могут напрямую связываться друг с другом.

Манипуляции с файловой системой

Файл представляет собой сборник связанной информации. Компьютеры могут хранить файлы на диске (вторичное хранилище) для целей долгосрочного хранения. Примерами носителей информации являются магнитная лента, магнитный диск и дисководы для оптических дисков, такие как CD, DVD. Каждый из этих носителей имеет свои собственные свойства, такие как скорость, емкость, скорость передачи данных и методы доступа к данным. Файловая система обычно организована в каталоги для удобной навигации и использования. Эти каталоги могут содержать файлы и другие направления.

Основные виды деятельности операционной системы в отношении управления файлами:

  1. Прочитывает или записывает файл.
  2. Дает разрешение программе на работу с файлом, которое зависит от чтения, записи, отказа.
  3. Предоставляет пользователю интерфейс для создания/удаления файлов.
  4. Предоставляет интерфейс для создания резервной копии файловой системы.

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

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

Основные виды деятельности ОС в отношении коммуникации:

  1. Два процесса часто требуют передачи данных между ними.
  2. Оба процесса могут быть на одном компьютере или на разных компьютерах, но подключены через компьютерную сеть.
  3. Коммуникация может быть реализована двумя способами: либо при помощи общей памяти, либо путем передачи сообщений.

Функциональная операционная система Linux

Функциональная операционная система Linux

Это самая известная и наиболее используемая система с открытым исходным кодом. Многие программисты используют термин Linux для обозначения ядра Linux, а также набора программ, инструментов и сервисов, которые обычно поставляются вместе с ядром Linux. Некоторые пользователи относятся к этой коллекции GNU, поскольку многие инструменты включают компоненты GNU. Хотя и не все установки Linux используют компоненты GNU как часть системы. Android, например, использует структуру ядра ОС Linux и очень мало полагается на инструменты GNU.

Linux отличается от других систем:

  1. Открытым исходным кодом. ОС является бесплатной и доступна для общественного просмотра, редактирования пользователями, имеющими соответствующие навыки.
  2. Существует множество дистрибутивов Linux, которые включают в себя различные варианты программного обеспечения.

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

На протяжении многих лет было создано несколько различных систем, которые пытались быть unix-like или unix-compatible, но Linux был самым успешным, намного превосходящим предшественников в популярности.

Большая часть ядра Linux написана на языке программирования C с небольшим количеством сборок из других языков. Каждый дистрибутив содержит сотни или тысячи программ, которые могут быть распределены вместе с ним и для каждой из этих программ.

Типы файловых систем Linux

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

Прогрессивная версия Extended Filesystem (ext), которая в первую очередь была разработана для MINIX. Вторая расширенная версия (Ext2) была улучшенной версией. Ext3 добавил улучшение производительности, Ext4 обеспечил еще больше дополнительных возможностей.

Journaled File System (JFS) была разработана IBM для AIX UNIX. JFS является альтернативой Ext4 в настоящее время и применяется там, где требуется стабильная работа при использовании очень немногих ресурсов. JFS подходит для случаев, когда мощность процессора ограничена.

ReiserFS был представлен как альтернатива Ext3 с улучшенной производительностью и расширенными функциями. Было время, когда файл формата SuSE Linux по умолчанию был ReiserFS, но позже «Рейзер» вышел из бизнеса, и у SuSe не было другого варианта, кроме как вернуться к Ext3. ReiserFS динамически поддерживает расширение файлов, что является относительно расширенной функцией, системе не хватало определенной области производительности.

XFS — это высокоскоростная JFS, которая направлена на параллельную обработку ввода-вывода. NASA по-прежнему использует эту файловую структуру ОС на своих 300-терабайтных серверах хранения.

B-Tree File System (Btrfs) фокусируется на отказоустойчивости, управлении развлечениями, ремонте системы, большой конфигурации хранилища и все еще находится в разработке. Btrfs не рекомендуется для производства.

Существует много форматов файлов, недоступных в Linux, но использующихся при работе с другими ОС: VIS, NTFS от Microsoft, HFS от Apple. Тем не менее работу с файловой структурой ОС можно выполнять в Linux при помощи определенных инструментов, таких как ntfs-3g, для монтирования файловой системы NTFS, не привилегированных под Linux.

Процессор. Совместное использование

Совместное использование процессора

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

Назначение ОС, структуры ОС связаны с мультипрограммированием:

  1. Система одновременно сохраняет несколько заданий в памяти.
  2. Этот набор является подмножеством заданий, хранящихся в пуле.
  3. Система выбирает и начинает выполнять одно из заданий в памяти.
  4. Многопрограммные операционные системы контролируют состояние всех активных программ и ресурсов с использованием программ управления памятью, чтобы гарантировать, что ЦП никогда не будет работать, если нет рабочих процессов для обработки.

Такая схема работы помогает эффективно использовать ЦП.

За последнее десятилетие Linux добился серьезных успехов, поднявшись из категории «Какая-то открытая операционная система» до уровня «Вау, эта штука действительно нужная вещь!». Linux постепенно переманивала определенных пользователей от операционной системы Windows со своими свободными возможностям и, возможно, даже вы думали о переходе на эту операционную систему. Но стоит ли это делать?

С объективной точки зрения, существуют реально убедительные причины, почему стоит перейти на нее, но я не буду вас убеждать сделать такой шаг или остаться на привычной операционной системе. Эта статья предназначена для тех, кто уже сделал свой выбор или уже склоняется к переходу на Linux. Если вы один из них, то это здорово! Но вы должны знать, что переход на новую операционную систему не похож на легкую прогулку в парке.

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

Файловая структура

Сравнение  Windows и Linux. 7 основных различий

Файловая структура операционной системы Linux кардинально отличается от Windows – это произошло из-за того, что системы писались разными разработчиками с использованием различного кода. Вы не найдете папку «Мои документы» в Ubuntu и не найдете «Program Files» в Fedora. Там нет даже C: или D: дисков.

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

Отсутствие реестра

Сравнение  Windows и Linux. 7 основных различий

Вы слышали когда-нибудь о реестре Windows? Конечно, слышали, а если нет, то специально для вас небольшой вводный курс: это главная база всех основных параметров на вашем компьютере. Реестр содержит информацию о приложениях, паролях пользователей, информацию об устройствах, и другие данные о которых вы можете подумать. Если что-то не хранится в файлах, оно, скорее всего, хранится в реестре.

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

Диспетчер установщиков

Сравнение  Windows и Linux. 7 основных различий

В Windows вам часто приходится возиться с файлами, называемыми пакеты установки. Вы заходите на определенный сайт, переходите в раздел загрузки и нажимаете на ссылку «скачать», которая направляет вас прямо к .exe файлу. Далее вы запускаете этот файл, и программа-установщик делает свое дело: устанавливает программу на ваш компьютер. А когда вы хотите удалить программу, то вам опять нужно возиться, но уже в панели управления. Правильно?

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

Лично у меня это самое любимое различие между Linux и Windows.

Сменный интерфейс

Сравнение  Windows и Linux. 7 основных различий

Интерфейс операционной системы Windows не претерпевал кардинальных изменений долгое время. Конечно, нам доступен интерфейс Aero, который появился с приходом Windows Vista. А до этого времени в XP было сделано всего несколько небольших улучшений по сравнению с Windows Classic. Однако панель задач, системный трей, Windows Explorer и другие опции интерфейса принципиально не отличались.

В Linux, интерфейс полностью не зависит от основной системы. Вы можете переключить или изменить свой интерфейс по своему усмотрению, без полной переустановки системы. Здесь вы найдете GNOME, KDE, а также белее современный Unity, плюс ряд менее известных наименований сосредоточенных на различных аспектах интерфейса.

Командный терминал

Сравнение  Windows и Linux. 7 основных различий

Linux имеет репутацию операционной системы предназначенной для вундеркиндов и эта репутация, в основном, держится из-за использования командного терминала. Вы спрашиваете, что за терминал? Это такой черный ящик с традиционным зеленым текстом, который можно использовать для выполнения команд. Другими словами, это аналог командной строки в Windows.

Если вы собираетесь перейти на Linux, то вы обязательно должны научиться использовать все популярные команды, так как использовать терминал вам придется регулярно. Я уверен, что существуют специальные графические приемы обхода (такие как открытие конфигурационных файлов в текстовом редакторе), но они не превосходят мощность и эффективность терминала, который делает именно то, что вы ему приказываете.

Настройки драйверов

Поскольку Windows – самая распространенная операционная система на компьютерном рынке, производители концентрируют свои усилия именно на этой системе. Это значит, что такие компании как AMD и Nvidia ставят приоритетной системой Windows, а не Linux. Это значит, что в конечном итоге, вы можете начать выдергивать свои волосы из головы из-за неудачных попыток найти последние совместимые драйверы для вашего компьютера.

Опять же, это зависит от того, что вы собираетесь использовать в Linux. Если все что вам нужно это текстовый редактор, веб-браузер, некоторые программы для обмена информацией, вроде электронной почты или сервиса обмена мгновенными сообщениями, то вам точно не грозит головная боль по поводу отсутствия свежих драйверов. Однако если вы хотите играть в компьютерные игры, вы можете попасть в неприятности. Хотя, опять же вы сможете играть в самые популярные игры на Linux сразу после его установки.

Сделай это сам!

В целом, операционная система Linux требует от вас желания делать все самостоятельно. Люди, которые получают максимальное удовольствие от свободы и открытости Linux – это мужчины и женщины любящие исследовать, учиться и экспериментировать с тем, что у них в руках. Каждый компьютер с Linux уникален, и его уникальность исходит из того, что в нем персонализировано огромное количество настроек и оборудования.

Если вы прочитали статью до конца, и у вас до сих пор не отпало желание использовать Linux, то поздравляю!

Вы преодолели самое большое препятствие и не сошли дистанции.

Значит, у вас есть соответствующая психологическая подготовка (Linux не будет водить вас за руку) и воля к победам (знайте, что переустанавливать Linux вам придется, скорее всего, не раз и не два, прежде чем вы получите устраивающую вас версию), плюс вы сможете получить положительные эмоции от общения с операционной системой Linux.

  • Командная строка в операционной системе windows
  • Командный процессор операционной системы windows
  • Командная строка windows команды для диска
  • Командная строка в контекстном меню windows 10
  • Команды для системного администратора windows