Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Команды Linux

КРАТКОЕ ОПИСАНИЕ

Алексей Паутов

О ЧЕМ ЭТО?

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

Какие здесь есть файлы?

Во время работы на сервере постоянно возникает необходимость посмотреть какие именно есть в каталоге, какие у них права доступа и т. п. Это можно сделать командой ls.

Слишком длинный список!

Допустим, вы ввели команду ls -la. Но возникла проблема: файлов в каталоге много. Список длинный и не помещается на экране. В результате вы видите только информацию о нескольких последних файлах в каталоге. Все остальное оказывается за пределами экрана. Это можно исправить с помощью команды more. Эту команду следует использовать через трубопровод (|) для того, чтобы система поняла, что вы хотите пропустить через нее то, что выдает команда ls.

Перенаправление ввода-вывода программ

Обычно команда читает исходные данные с клавиатуры (стандартный ввод) и выдает данные на экран (стандартный вывод). Часто надо это поменять. Например, чтобы отправить письмо, хранящееся в каком-то файле надо набрать.


mail адрес_получателя < имя_файла_с_письмом

Это очень удобно. Если вы хотите сохранить список файлов из какого-то каталога в файле, надо сказать:

ls параметры > имя_файла_для_записи_списка_файлов

Теперь подведем итоги.

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

Знак < заставляет команду читать входные данные не с клавиатуры (стандартного ввода), а из файла. Если файл не существует, будет выдано сообщение об ошибке.

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

Знак | (трубопровод) заставляет передать вывод одной команды на обработку другой. Именно так организован поэкранный вывод каталога:


ls -la | more

Это значит, что все, что выведет команда ls -la будет передано в качестве входных данных на обработку команде more.

Конечно, вы можете указывать несколько символов трубопровода для запуска последовательности из многих команд, если это нужно. Можно комбинировать любые знаки переназначения ввода-вывода. Например, если в файле la лежит строка -la, то вывести оглавление каталога в файл ls.dat можно так:


ls < la > ls.dat

То есть, взять исходные данные для команды ls из файла la и вывести результат ее работы в файл ls.dat.

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

Права доступа

Каждый объект файловой системы в Linux имеет владельца и права доступа. Тот, кто создал этот объект, считается его владельцем. Это нужно потому, что Linux является многопользовательской системой, то есть с ней могут работать сразу несколько пользователей. Пользователи собраны в группы. Таким образом, каждый пользователь принадлежит к какой-нибудь группе. Права доступа можно задавать для каждого объекта файловой системы. Права доступа могут быть разными для:

  • Самого пользователя (владельца объекта).
  • Его группы (группы пользователей, к которой он принадлежит).
  • Всех остальных пользователей (тех, которые не попали в группу владельца).
Подробно права доступа освещены в описании команды chmod.

Копирование файлов

Понятно, что часто нужно сделать копию файла. В Linux это делается командой cp.

Создание ссылок

А вот это уже специфично для Linux и других UNIX систем. Дело в том, что можно создать ссылку на файл. Чем это удобно? Экономией места и времени. Например, вам нужно держать один и тот же файл в разных каталогах. Это значит, что каждая копия одного и того же файла будет занимать место. Но это еще и создает проблему с синхронизацией копий файла. Допустим, вы что-то поменяли в этом файле. Вам придется отслеживать все его копии и обновлять каждую из них по отдельности. Если таких копий две-три, это еще можно стерпеть. А если их штук двадцать? Лично знаю человека, на компьютере которого создалась именно такая ситуация.

Но у вас есть выход: создайте ссылку на файл. Она занимает место много меньшее, чем обычно требует сам файл (всего 512 байт). Кроме того, если вы что-то поменяли в файле, то этим ваши изменения и кончатся: ведь ссылка указывает на файл. Ей все равно, что в нем, и когда файл изменился. Ссылку (связь, указатель, link) можно создать командой ln , а удалить ее командой rm. Кстати, если вы переопределяете ссылку (то есть хотите, чтобы она указывала на другой файл), удалять ее не нужно. Например:


ln -s mbox MyPostOffice

создает ссылку с именем MyPostOffice, которая указывает на файл mbox. Любое обращение к MyPostOffice эквивалентно обращению к mbox. Теперь переопределим ссылку MyPostOffice, чтобы она указывала на файл dead.letter:

ln -s dead.letter MyPostOffice

Как видите, для этого не потребовалась команда:

rm MyPostOffice

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

Переименование файлов

Если вам нужно переименовать или переместить файл в другой каталог, воспользуйтесь командой mv.

Поиск файлов

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

Просмотр файлов

Время от времени какой-нибудь файл надо просмотреть. Конечно, его можно загрузить в текстовый редактор и посмотреть в нем. Это часто бывает очень удобно. Но иногда надо быстро вывести на экран терминала содержимое файла. Это можно сделать командой cat (кошка). Причем тут кошки, я не знаю, но подобный юмор встречается в Linux.

Сортировка файлов

Для того, чтобы отсортировать данные в текстовом файле (к примеру, в оглавлении каталога), есть команда sort.

Удаление файлов

Для того, чтобы удалить ненужный файл есть команда rm.

Изменение прав доступа

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

Создание подкаталогов

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

Переход в другой каталог

Чтобы перейти в другой каталог (например, для того, чтобы не писать длинные имена файлов из него с указанием полного пути) есть команда cd.

А в каком я каталоге?

Файловая система Linux очень обширная и разветвленная. Бывает, что при ее изучении, вы попадаете в какой-то каталог, про который уже не помните, как он называется и как вы в него попали. Узнать его полное имя позволяет команда pwd.

Удаление подкаталога

Если каталог стал не нужен, его надо удалить. Для этого есть команда rmdir.

Как сменить пароль

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

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

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

Очистка экрана

Чтобы очистить экран терминала нужно применить команду clear.

Сколько места занимают мои данные?

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

Редактирование текстов

Разумеется, вам придется редактировать тексты в файлах, расположенных на сервере. Для этого можно пойти двумя путями:

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

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

Редактор Vi

Для редактирования файлов на сервере есть довольно мощный редактор vi.

Редактор Ed

А если вы по какой-либо причине считаете неподходящим вам редактор vi, попробуйте использовать редактор ed.

Работа с почтой

Под Linux можно работать и с электронной почтой. В университете каждый студент имеет почтовый ящик с адресом вида:


ваш_логин@joker.botik.ru

Работа с почтой обеспечивается командой mail.

Кто еще в системе?

Иногда надо узнать какие именно пользователи (кроме вас) сейчас работают с сервером. Это можно сделать командой who.

Кто-нибудь подскажет, сколько времени?

Подскажет сама система (если системный администратор не забыл настроить часы на сервере, что бывает). Дайте команду date .

Задачи бывают не только на уроках

Не надо бояться слова "задача". Это всего лишь любая ваша команда, которую вы даете серверу, при условии, что в ней нет символов трубопровода. Если они там есть, сервер запустит несколько программ (те, которые вы перечислили в своей команде), то есть несколько задач сразу.

Выполнение задачи в фоновом режиме

Любую задачу в Linux можно запустить в фоновом режиме. Для этого надо после командной строки для ее запуска указать символ &. Например:


ls -lar > ls.dat &

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

Просмотр списка задач

Вы можете посмотреть какие именно задачи сейчас выполняются в системе от вашего имени (логина). Будут показаны все задачи, выполняемые в фоновом режиме и некоторая другая информация. Список задач можно посмотреть командой ps.

Похоже, я повис... Снятие задач

Если программа долго никак не реагирует на внешние воздействия значит, она висит. В Linux программу подвесить много сложнее, чем в WINDOWS, но это все же возможно. Для того, чтобы прервать работу повисшей задачи и вернуться к приглашению Linux, надо просто нажать комбинацию клавиш Ctrl+Z.

Здесь тоже есть FTP

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

Настройка своего логина

Обживаемся на сервере. Наверное, вам уже надоело видеть в качестве приглашения Linux символ доллара ($). Должно же быть какое-то разнообразие! Ну что ж, проблема решается просто. Создайте в вашем домашнем каталоге файл .profile (все буквы в его имени должны быть маленькими). В этом файле вы можете настроить не только вид своего приглашения, но и задать другие полезные параметры. Из него же можно вызвать полезные команды.

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

Как положить web-страничку, чтобы она работала

Ничего нет проще. Вам надлежит:

  • Создать в своем каталоге на сервере каталог с фиксированным специальным именем www (буквы в имени маленькие).
  • Поместить с помощью ftp в него все файлы, образующие вашу страничку. При необходимости можно создавать подкаталоги и связи.
  • Правильно настроить права доступа, то есть все файлы вашей странички должны иметь разрешение на чтение для "всех остальных", подкаталоги должны иметь разрешение на чтение и выполнение для "всех остальных", равно как и сам каталог www.
  • Начальный файл вашей странички (то есть, тот, который появится первым при ее загрузке) должен находиться в каталоге www, называться welcome.html (буквы в имени маленькие) и иметь разрешение на чтение для "всех остальных".

ВНИМАНИЕ! Не всегда правильно обрабатывается ситуация, когда имя welcome.html является ссылкой на какой-то файл. Это происходит из-за не совсем правильного функционирования программного обеспечения на сервере. Так что лучше, если имя welcome.html будет соответствовать именно файлу, а не ссылке на него. Так оно надежней.

Маленькая хитрость. Если вы создали подкаталоги в каталоге www, то при обращении к ним вместо вывода оглавления каталога в web-браузере, будет произведен поиск в каталоге файла с именем welcome.html. Если такой файл там найдется, то будет выведен именно он. Примеры:

В браузере набираем:


http://joker.botik.ru/~ваш_логин

В результате будет загружен файл welcome.html из вашего каталога www (если он там есть). В противном случае вы увидите оглавление вашего каталога www.

http://joker.botik.ru/~ваш_логин/index.htm

Будет загружен файл index.htm из вашего каталога www (если он там есть). В противном случае вы увидите сообщение об ошибке.

http://joker.botik.ru/~ваш_логин/teachers

Будет загружен файл welcome.html из подкаталога teachers вашего каталога www (если он там есть). В противном случае вы увидите оглавление подкаталога teachers вашего каталога www.

http://joker.botik.ru/~ваш_логин/teachers/kozl.htm

Будет загружен файл kozl.htm из подкаталога teachers вашего каталога www (если он там есть). В противном случае вы увидите сообщение об ошибке.

Однако, не так все просто. Для того, чтобы вашу страничку кто-нибудь мог прочитать, все ее текстовые файлы должны быть в кодировке KOI8-R. Для того, чтобы перекодировать текст из кодировки DOS или WINDOWS в KOI8-R, надо воспользоваться соответствующей программой-конвертором. Обратитесь для консультации по вопросу о том, где можно найти эту программу, и как ее использовать к ближайшему системному администратору. Помните, что основная функция системных администраторов - решать проблемы, возникающие при работе с компьютерной техникой университета! В том числе, ваши.

Встроенный справочник

Если вас заинтересовала какая-либо команда, вы можете посмотреть ее подробное описание, просто набрав:


man имя_команды

Из интерактивного справочника man (от слова manual: описание, руководство) можно выйти клавишей q. Перемещение по тексту выполняется клавишами со стрелками. Это очень удобный справочник. Каждый объект в Linux имеет свое описание, доступное через эту универсальную команду. Это лучшее из известных мне решений справочника.

Выходим отсюда!

Чтобы закончить работу с сервером надо набрать команду logout. Эта команда не всегда срабатывает с первой попытки. Если это произошло, просто введите ее еще раз.