Dos команды для linux
Структура каталогов и файлов в 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. Если имя файла содержит пробелы (не рекомендуется, но возможно), то вы должны заключить имя файла в двойные кавычки при обращении к нему. Например:
‘. Также файл, чье имя начинается со знака точки, считается скрытым. Например: файл .I.am.a.hidden.file не будет показан при выполнении команды ls ;
Вы можете теперь перепрыгнуть к разделу Перевод команд из DOS в Linux, но я надеюсь, что вы будете читать дальше.
В UNIX имеется тип файлов, которых нет в DOS: символьные ссылки. Он может быть описан как ссылка на файл или каталог и может быть использован вместо файла или каталога, на который она указывает; они сходны с ярлыками в Windows. Примером символьный ссылки может быть /usr/X11 , которая указывает на каталог /usr/X11R6 , или /dev/modem , который указывает либо на /dev/ttyS0 либо на /dev/ttyS1 .
Для того, чтобы создать символьную ссылку, используется команда:
Теперь вы можете ссылаться на g77manual.txt вместо /usr/doc/g77/DOC . Ссылки показываются следующим образом в списке файлов каталога:
Файлы и каталоги DOS имеют следующие атрибуты: A (архивный), H (скрытый), R (только чтение) и S (системный). В Linux только H и R имеют значение: скрытые файлы начинаются с точки, а для того чтобы задать атрибут R, читайте дальше.
В UNIX файл имеет «права доступа» и «владельца», который относится к «группе». Посмотрите пример:
Первое поле содержит права доступа к файлу /bin/ls , который принадлежит пользователю root, группы bin. Опуская другую информацию, запомните, что означает -rwxr-xr-x , слева направо:
— это тип файла ( — = обычный файл, d = каталог, l = ссылка, и т.д.); rwx являются правами доступа для владельца файла (чтение, запись, выполнение); r-x являются правами доступа для группы, к которой относится владелец файла (чтение, выполнение); (Я не хочу делать обозрение концепции групп, вы можете выжить без нее, поскольку вы начинающий пользователь 😉 r-x являются правами доступа для всех остальных пользователей (чтение, выполнение).
Каталог /bin тоже имеет права доступа: смотрите раздел Права доступа к каталогам для дополнительной информации. Вот поэтому вы не можете удалить файл /bin/ls до тех пор, пока не станете пользователемroot: вы просто не имеете прав сделать это. Для изменения прав доступа к файлу используется команда:
где who—это u (пользователь, который является владельцем), g (группа), o (остальные), X—это либо + , либо — , perm—это r (чтение), w (запись), или x (выполнение). Вот общие примеры использования команды chmod :
устанавливает право на выполнения данного файла.
удаляет право на чтение и запись для всех, кроме владельца файла.
дает всем права на чтение, запись и выполнение.
делает так называемый «setuid» или «suid» файл—файл, который любой может выполнять с привилегиями владельца. Обычно, это применяется к файлам, владельцем которых является root; часто это важные системный файлы, такие как X-сервер.
Более коротким способом для ссылки на права доступа является использование цифрового обозначения: rwxr-xr-x может быть выражен как 755 (каждый символ соответствует биту: — равен 0, —x равен 1, -w- равен 2, -wx равен 3. ). Это выглядит трудным, но, немного попрактиковавшись, вы поймете концепцию. root, будучи администратором, может изменять права доступа на файлы любого пользователя. RMP.
На левой стороне находятся команды DOS; справа их аналоги в Linux.
Операторы перенаправления и конвейеризации: >> |
устройство nul: /dev/null
Устройства prn, lpt1: /dev/lp0 or /dev/lp1; lpr
Примеры
- * намного «умнее » в Linux: * соответствует всем файлам, за исключением скрытых; .* соответствует всем скрытым файлам (но также текущему каталогу ` . ‘ и каталогу уровнем выше ` .. ‘: beware!); *.* соответствует только тем, которые имеют ` . ‘ в середине имени, или оканчиваются на точку; p*r соответствует и `peter’ и `piper’; *c* соответствует и `picked’ и `peck’;
- при использовании more , необходимо нажимать на клавишу для того, чтобы продвигаться по файлу, и `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 печатает файл в фоновом режиме. Для проверки состояния очереди печати используйте команду 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 для ее запуска из текущего каталога.
Типичная командная строка выглядит примерно так:
где -s1 , . -sn являются ключами программы, а par1 , . parn являются параметрами программы. Вы можете запустить несколько команд из одной командной строки:
Это все о запуске программ, но теперь легко сделать следующий шаг. Одна из основных причин использования Linux—это то, что она является многозадачной операционной системой—она может выполнять разные программы (с этого места мы будем называть их процессами) одновременно. Вы можете запускать процессы в фоновом режиме и продолжать работать. Более того, Linux позволяет вам иметь несколько сеансов работы: Это подобно наличию множества компьютеров на одном!
. Вам может понадобиться убить процесс в том случае, если вы не знаете, как его правильно завершить. До тех пор, пока вы не станете root, вы не сможете завершать процессы других людей. Иногда процесс может быть завершен только используя команду kill -SIGKILL
. В дополнение командный процессор позволяет вам остановить или временно приостановить процесс, перевести процесс в фоновый режим, и перевести процесс из фонового режима в интерактивный режим. В этом контексте процессы называются «заданиями».
Используя эти команды вы можете форматировать диск, сжимать кучу файлов, компилировать программу и разжимать архив в одно и тоже время и все равно иметь командную строку для своих нужд. Попробуйте сделать это в Windows, просто чтобы посмотреть разницу в производительности (конечно, если он не рухнет).
Для запуска программы на удаленной машине, чьим именем является remote.machine.edu :
После входа в систему , запустите вашу любимую программу. Излишне говорить, что вам необходимо быть зарегистрированным на удаленной машине и иметь доступ к командному процессору.
Если у вас есть X11, вы даже можете запустить приложение для X на удаленной машине, отображая его на вашем экране X Windows. Допустим, что remote.machine.edu > — это удаленный компьютер с X и допустим, что local.linux.box — это ваша машина с Linux. Для запуска с local.linux.box программы для X, которая расположена на remote.machine.edu , выполните следующее:
запустите X11, запустите xterm или подобный эмулятор терминала, затем наберите:
Источник
От DOS к Linux
Вы решили перейти к использованию операционной системы Linux? Хорошая идея, но хочу предупредить: она может оказаться бесполезной для Вас. Потому, что не существует «идеального компьютера» или «идеальной операционной системы» — все зависит от того, что Вы собираетесь делать с этим компьютером и этой операционной системой, какие задачи Вы решаете с их помощью. Вот почему я не верю, что Linux является идеальным решением для любого пользователя, даже если у него уже есть богатый опыт работы с другими платформами. Вы сразу оцените достоинства Linux, если Вы нуждаетесь в приложениях для разработки программ, работы в сети Интернет или хорошем редакторе, например, таком, как ТеХ.
Linux пока еще не так прост в использовании и настройке, как Windows или MacOs, так что приготовьтесь к роли хакера. Но не забывайте, что Linux и MS DOS с Windows могут мирно сосуществовать на одном компьютере.
Если навыки работы с графическим оконным интерфейсом, полученные на опыте работы с другими ОС, несомненно, пригодятся в общении с Linux, то режим работы с командной строкой уже значительно отличается от системы MS DOS. В этой статье мы рассмотрим набор основных команд операционной системы Linux на примере их аналогий с ДОС’овскими командами. Поэтому я надеюсь, что:
— Вы знаете основные команды и концепции операционной системы MS DOS;
— ОС Linux уже установлен и правильно сконфигурирован на Вашем компьютере;
— Вашим шеллом (интерпретатором командной строки, эквивалентом COMMAND.COM) является bash;
— Вы понимаете, что эта статья далеко не полное руководство по работе с операционной системой Linux.
Итак, Вы установили Linux и программы, которые Вам нужны, на свой компьютер. Вы создали для себя учетную пользовательскую запись, которая дает Вам возможность входа в систему (если нет, то сделайте это при помощи команд adduser или useradd, в зависимости от выбранного дистрибутива). Добро пожаловать в Linux! Вы только что ввели свое имя и пароль и теперь внимательно рассматриваете экран, размышляя над тем, что же делать дальше.
Не отчаивайтесь. Вы уже почти готовы к тому, чтобы делать все то, что Вы делали с операционной системой MS DOS, плюс много чего еще. Когда Вы работали с DOS, Вы имели возможность выполнять следующие задачи:
— запуск программ, а также создание, копирование, просмотр, удаление, вывод на печать, переименование файлов.
— создание, удаление, просмотр содержимого и переключение между каталогами.
— форматирование дискет и перемещение файлов между носителями.
— редактирование файлов AUTOEXEC.BAT и CONFIG.SYS.
— создание своих.BAT файлов и простейших программ на Бэйсике.
— . ну и еще 1% всех оставшихся возможностей.
Вы будете рады узнать, что все эти задачи можно выполнять и под ОС Linux. В DOS пользователю доступно порядка сотни команд, у Linux их столько же.
Несколько важных моментов, которые необходимо усвоить перед началом активных действий:
— Первое — как выйти из системы: в текстовом режиме работы с командной строкой просто нажать волшебную комбинацию клавиш CTRL-ALT-DEL, дождаться завершения работы операционной системы и соответствующего сообщения, после чего выключить компьютер. Если Вы работаете с графической оконной системой Х, нажмите CTRL-ALT-BACKSPACE, а затем — CTRL-ALT-DEL. Никогда не выключайте свой компьютер с работающей ОС, это может повредить файловую систему (для ОС Windows эти требования тоже актуальны).
— В отличие от DOS, Linux имеет встроенные механизмы безопасности системы соответственно своей многопользовательской природе. Файлы и каталоги имеют атрибуты доступа, некоторые файлы недоступны обычным пользователям, а только администратору системы — пользователю root. Если Вы установили Linux на свой компьютер, Вы сами являетесь администратором. DOS, наоборот, предоставляет весь жесткий диск со всеми файлами любому пользователю.
— Настоятельно рекомендую побольше экспериментировать, играть командами и пробовать все самостоятельно — Вы не сможете ничего повредить, будьте уверены. Вы можете получить некоторую помощь, напечатав в ответ на приглашение ОС ($ — для всех обычных пользователей, # — для администратора) команду: help.
$ help
(эта команда выводит подсказку по шеллу bash). Или можно получить справочную информацию по конкретной команде:
$ man command
Можно также попробовать:
$ apropos command
$ whatis command
command — имя конкретной команды. Для выхода из справки следует нажать клавишу «q».
— Главная сила и гибкость операционной системы Unix заключается в простой концепции перенаправления результатов выполнения команд и программных каналов. Простые команды могут объединяться вместе в командной строке для выполнения более сложных задач. Используйте эти средства!
— Последовательности означают обязательные элементы и параметры команд, а [. ] — необязательные, которые могут быть пропущены.
Для нетерпеливых
Хочется поскорее перейти к действиям? Эта табличка может оказаться Вам полезной.
DOS | Linux | примечания |
BACKUP | tar -Mcvf device dir/ | разный синтаксис |
CD dirname\ | cd dirname/ | синтаксис совпадает |
COPY file1 file2 | cp file1 file2 | синтаксис совпадает |
DEL file | rm file | внимание! отмена невозможна |
DELTREE dirname | rm -R dirname/ | внимание! отмена невозможна |
DIR | ls | синтаксис не совпадает |
EDIT file | vi file emacs file jstar file | целое семейство текстовых редакторов |
FORMAT | fdformat,mount,umount | разный синтаксис |
HELP command | man command | аналогичная программа |
MD dirname | mkdir dirname/ | синтаксис почти совпадает |
MOVE file1 file2 | MV file1 file2 | — // — |
NUL | /dev/null | — // — |
PRINT file | lpr file | — // — |
PRN | /dev/lp0,/dev/lp1 | — // — |
RD dirname | rmdir dirname | — // — |
REN file1 file2 | mv file1 file2 | не для набора файлов |
RESTORE | tar -Mxpvf device | синтаксис не совпадает |
TYPE file | more file,less file | эта команда получше |
WIN | startx | графический интерфейс |
Файлы и программы
Операционная система Linux имеет свою файловую систему (структуру хранения файлов и каталогов на диске) — ext2fs. Файлы имеют свои имена, вид которых определяется специальными правилами и хранятся внутри каталогов (или директориев). Некоторые файлы являются выполнимыми или содержат наборы команд операционной системы. Более того, можно использовать маски для групповых файловых операций, перенаправление ввода-вывода и программные каналы (pipes). Вот некоторые различия между файловыми системами DOS и Linux:
— В ДОС’е имена файлов ограничены рамками 8.3 — восемь символов для имени файла и три для расширения, например README.TXT. В Linux можно использовать имена файлов длиной до 255 символов, причем символ «точка» может присутствовать в имени файла несколько раз, например: This_is.a.Very_long.filename.
— Следует добавить, что Linux различает символы различных регистров (большие и маленькие буквы имеют различное значение). В одном каталоге могут мирно сосуществовать файлы, например, с такими именами: FF, Ff, ff и fF! Ни Dos, ни Windows такие возможности и не снились! Но следует внимательно относиться к вводимым командам: ls — это команда, а LS — ошибка.
— Не существует специальных расширений для выполняемых файлов и программ, подобных ДОС’овским.COM,.EXE или.BAT. Эти файлы помечаются символом звездочки — «*» при просмотре содержимого каталога командой ls -F, например:
$ ls -F
letter_to_Joe
cindy.jpg
cjpg*
I_am_a_dir/
my_1st_script*
old
— Файлы cjpg* my_1st_script* являются выполнимыми — программами. В DOS файлы резервных копий имеют расширение.BAK, в Linux эти файлы заканчиваются символом «тильда» — «
«. Файлы, имена которых начинаются с точки, воспринимаются системой как скрытые, они не отображаются в стандартных листингах содержимого каталогов, а только при использовании специального параметра команды «ls».
— В DOS программам могут передаваться параметры, отделяемые символом «слэш» — «/switch», в Linux подобную роль играют другие символы: -switch —switch. Например, команда «DIR /s» превращается в команду «ls -R». Некоторые DOS программы, такие, как PKZIP, ARJ, воспринимают аргументы в стиле UNIX.
Символьные ссылки
В UNIX есть тип файлов, который отсутствует в DOS: символьные ссылки. Они служат указателями на файлы или каталоги и могут использоваться вместо объектов, на которые они указывают. Это аналоги «ярлыков» (или shortcut) Windows95. Примерами таких ссылок служат файлы /usr/X11, указывающий на /usr/X11R6; /dev/modem, который указывает на файл /dev/cua0 или /dev/cua1.
Чтобы создать символьную ссылку, введите команду:
$ ls -s
Пример:
$ ls -s /usr/doc/g77/DOC g77manual.txt
Теперь Вы можете работать с файлом g77manual.txt вместо файла /usr/doc/g77/DOC.
Атрибуты разрешения доступа и принадлежности владельцу файлов
Файлы и каталоги в MS DOS могут иметь следующие атрибуты: A (архивный), H (скрытый), R (доступ только по чтению) и S (системный). Только атрибуты H и R имеют свои аналоги в Linux: имена скрытых файлов начинаются с точки, а что касается режимов доступа к файлам, хочется рассказать о них подробнее.
В ОС Linux каждый файл имеет атрибуты «разрешения доступа» для владельца этого файла, для пользовательской группы, к которой относится владелец, и для «всех остальных пользователей». Рассмотрим пример:
$ 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» — набор разрешений доступа для всех пользователей (по чтению и выполнению). Я не буду здесь описывать понятие пользовательских групп в UNIX, даже новичок может самостоятельно разобраться с этим, ознакомившись с документацией по системе. Вот почему Вы не сможете удалить файл /bin/ls, если Вы не являетесь пользователем root, у Вас нет разрешения на подобные действия. Для изменения атрибутов разрешений доступа файлов служит команда:
$ chmod
где who может означать: u (пользователь, являющийся владельцем файла), g (группа), o (остальные пользователи), X — заменяется на «+» или «-» (включить или отключить), а perm — это режим доступа: r (чтение), w (запись), x (выполнение). Например:
$ chmod u+x file
устанавливает разрешение на выполнение файла file для его владельца. Теперь этот файл может выполняться операционной системой.
$ chmod go-wx file
убирает разрешение по записи и выполнению для всех кроме владельца файла.
$ chmod ugo+rwx file
дает разрешение всем-всем-всем на чтение, запись и выполнение указанного файла, «зеленая улица».
$ chmod +s file
а вот это так называемый «setuid» или «suid», после установки этого атрибута каждый пользователь, запустивший на выполнение такую программу, получает все права и привилегии пользователя-владельца этого файла (даже системного администратора root. ) на время выполнения программы. Разумеется, этот атрибут устанавливается для исполняемых файлов — программ или скриптов. Атрибуты разрешений доступа могут быть представлены и в цифровом, восьмеричном формате, например, -«rwxr-xr-x» будет эквивалентно «755», на первый взгляд непривычно, но зато короче! Каждой букве соответствует определенный бит: «—-» = 0, «—х» = 1, «-w-» = 2, «-wx» = 3. и т.д. Немного практики — и Вы поймете основную концепцию. Не следует забывать, что только супервизор системы, пользователь root может менять атрибуты разрешений доступа у ВСЕХ файлов и каталогов на диске компьютера. Каждый отдельно взятый рядовой пользователь властен только над своими файлами.
Команды в DOS и Linux
В левой колонке — команды DOS, в правой — их аналоги в Linux:
COPY cp
DEL rm
MOVE mv
REN mv
TYPE more, less, cat
Операторы перенаправления и программные каналы: >> |
Маски для имен файлов: * ?
nul: /dev/null
prn, lpt1: /dev/lp0 или /dev/lp1; lpr
Примеры:
DOS | Linux |
C:\DIR> copy joe.txt joe.doc | $ cp joe.txt joe.doc |
C:\DIR> copy *.* total | $ cat * > total |
C:\DIR> copy fractals.doc prn | $ lpr fractals.doc |
C:\DIR> del temp | $ rm temp |
C:\DIR> del *.bak | $ rm * |
C:\DIR> move paper.txt tmp\ | $ mv paper.txt tmp/ |
C:\DIR> ren paper.txt paper.asc | $ mv paper.txt paper.asc |
C:\DIR> print letter.txt | $ lpr letter.txt |
C:\DIR> type letter.txt | $ more letter.txt |
C:\DIR> type letter.txt | $ less letter.txt |
C:\DIR> type letter.txt > nul | $ cat letter.txt > /dev/null |
аналогов нет | $ more *.txt *.asc |
аналогов нет | $ cat section*.txt | less |
Примечания:
— маска «*» в Linux ведет себя умнее: «*» заменяет все файлы, кроме скытых, «.*» подразумевает все скрытые файлы, «*.*» — замена всех файлов, содержащих в своем названии символ точки, «p*r» совпадает со всеми файлами, имя которых начинается с «p» и заканчивается «r», «*с*» — все файлы, имена которых содержат букву «с».
— при использовании команды more, для перемещения вперед по тексту на следующую страницу нажмите «пробел», для выхода — «q» или CTRL-C. Программа less позволяет перемещаться вниз-вверх по тексту при помощи стрелок.
— восстановление удаленных файлов невозможно, поэтому советую дважды подумать перед тем, как что-либо удалять.
— маски для имен файлов могут задаваться также последовательностями символов в квадратных скобках: [abc]* совпадает со всеми файлами, имена которых начинаются с a,b или c; *[I-N,1,2,3] — совпадает с файлами, имена которых заканчиваются на I,K,L,M,N,1, 2, 3.
— нет полного аналога ДОС’овской команды RENAME, mv *.xxx *.yyy не сработает.
— используйте команды «cp -i» и «mv -i» для запроса подтверждения на перемещение каждого файла.
Игорь Грень
Компьютерная газета. Статья была опубликована в номере 04 за 1999 год в рубрике soft :: unix
Источник