В данной главе подробно рассматривается необходимый минимум команд
Linux, которые надлежит знать всем пользователям.
Во время работы на сервере постоянно возникает необходимость посмотреть
какие именно есть в каталоге, какие у них права доступа и т. п. Это можно
сделать командой ls.
Допустим, вы ввели команду ls -la. Но возникла
проблема: файлов в каталоге много. Список длинный и не помещается на экране.
В результате вы видите только информацию о нескольких последних файлах в
каталоге. Все остальное оказывается за пределами экрана. Это можно исправить
с помощью команды more. Эту команду следует
использовать через трубопровод (|) для того, чтобы
система поняла, что вы хотите пропустить через нее то, что выдает команда
ls.
Обычно команда читает исходные данные с клавиатуры (стандартный ввод) и
выдает данные на экран (стандартный вывод). Часто надо это поменять.
Например, чтобы отправить письмо, хранящееся в каком-то файле надо набрать.
Знак > заставляет команду записывать данные вместо стандартного вывода
(экрана) в указанный файл. Если файл существует, он будет уничтожен, после
чего создан заново, но уже с выводимой информацией.
Знак < заставляет команду читать входные данные не с клавиатуры
(стандартного ввода), а из файла. Если файл не существует, будет выдано
сообщение об ошибке.
Знаки >> работают аналогично знаку >, но файл (если он существует) удален
не будет. Вместо этого данные будут дописаны в конец файла.
Знак | (трубопровод) заставляет передать вывод одной команды на обработку
другой. Именно так организован поэкранный вывод каталога:
Конечно, вы можете указывать несколько символов трубопровода для запуска
последовательности из многих команд, если это нужно. Можно комбинировать
любые знаки переназначения ввода-вывода. Например, если в файле la лежит
строка -la, то вывести оглавление каталога в файл ls.dat можно так:
Однако, не следует увлекаться подобным переопределением. Последний
пример, в частности, пригоден для иллюстрации возможностей переопределения
ввода-вывода, а не для нормальной работы. Пользуйтесь тем, что вам нужно и
не делайте слишком сложных вещей. В них, обычно, нет необходимости.
Каждый объект файловой системы в Linux имеет владельца и права доступа.
Тот, кто создал этот объект, считается его владельцем. Это нужно потому, что
Linux является многопользовательской системой, то есть с ней могут работать
сразу несколько пользователей. Пользователи собраны в группы. Таким образом,
каждый пользователь принадлежит к какой-нибудь группе. Права доступа можно
задавать для каждого объекта файловой системы. Права доступа могут быть
разными для:
Понятно, что часто нужно сделать копию файла. В Linux это делается
командой cp.
А вот это уже специфично для Linux и других UNIX систем. Дело в том,
что можно создать ссылку на файл. Чем это удобно? Экономией места и времени.
Например, вам нужно держать один и тот же файл в разных каталогах. Это
значит, что каждая копия одного и того же файла будет занимать место. Но
это еще и создает проблему с синхронизацией копий файла. Допустим, вы что-то
поменяли в этом файле. Вам придется отслеживать все его копии и обновлять
каждую из них по отдельности. Если таких копий две-три, это еще можно
стерпеть. А если их штук двадцать? Лично знаю человека, на компьютере
которого создалась именно такая ситуация.
Но у вас есть выход: создайте ссылку на файл. Она занимает место много
меньшее, чем обычно требует сам файл (всего 512 байт). Кроме того, если вы
что-то поменяли в файле, то этим ваши изменения и кончатся: ведь ссылка
указывает на файл. Ей все равно, что в нем, и когда файл изменился. Ссылку
(связь, указатель, link) можно создать командой ln
, а удалить ее командой rm. Кстати, если
вы переопределяете ссылку (то есть хотите, чтобы она указывала на другой
файл), удалять ее не нужно. Например:
Если вам нужно переименовать или переместить файл в другой каталог,
воспользуйтесь командой mv.
Для того, чтобы быстро найти какой-нибудь файл, воспользуйтесь командой
find.
Время от времени какой-нибудь файл надо просмотреть. Конечно, его можно
загрузить в текстовый редактор и посмотреть в нем. Это часто бывает очень
удобно. Но иногда надо быстро вывести на экран терминала содержимое файла.
Это можно сделать командой cat (кошка). Причем
тут кошки, я не знаю, но подобный юмор встречается в Linux.
Для того, чтобы отсортировать данные в текстовом файле (к примеру, в
оглавлении каталога), есть команда sort.
Для того, чтобы удалить ненужный файл есть команда
rm.
Для того, чтобы менять права доступа к файлу или каталогу есть команда
chmod. В описании этой команды вы можете
также детально ознакомиться с тем, что означает каждое право доступа, и
зачем оно нужно.
Не следует размещать все файлы в одном каталоге. Это приведет к кошмарной
путанице. Правда, не стоит увлекаться и созданием множества каталогов, в
каждом из которых лежит по два-три файла. Но создавать каталоги вам придется.
Для этого предназначена команда mkdir.
Чтобы перейти в другой каталог (например, для того, чтобы не писать
длинные имена файлов из него с указанием полного пути) есть команда
cd.
Файловая система Linux очень обширная и разветвленная. Бывает, что при
ее изучении, вы попадаете в какой-то каталог, про который уже не помните,
как он называется и как вы в него попали. Узнать его полное имя позволяет
команда pwd.
Если каталог стал не нужен, его надо удалить. Для этого есть команда
rmdir.
Пароль, который система спрашивает у вас при входе, надо регулярно
менять. Иначе его кто-нибудь может узнать, и зайти в систему под вашим
логином. В университете распространенной шуткой является после такого входа
сменить пароль и выйти. После этого вы уже не сможете зайти в систему.
Придется идти к системному администратору и просить его снять пароль,
помененный каким-то доброжелателем (которого в университете обычно именуют
несколько иначе).
Исходите из того, что ваш пароль никто, кроме вас не должен знать. Если
вы не будете придерживаться этого правила, ребята вас быстро поправят. После
двух-трех изменений вашего пароля, вы быстро усвоите, что его надо держать в
тайне. Ваш пароль для входа должен быть сложным. Это не должно быть какое-то
имя, день рождения, кличка или что-то в этом роде. Многие люди развлекаются
именно подбором пароля из интереса, в каком направлении работают ваши мозги.
Есть (правда неподтвержденная) гипотеза, что этим занимается психолог группы
развития университета в целях сбора информации о ваших склонностях.
Поменять пароль можно командой passwd. В
описании этой команды также перечислены требования к паролю, которые
необходимо соблюдать в ваших же собственных интересах.
Чтобы очистить экран терминала нужно применить команду clear.
Это очень важный вопрос. Дело в том, что на диске сервера каждому
студенту выделено строго определенное количество места. Для того, чтобы
узнать объем ваших данных, следует воспользоваться командой
du.
Разумеется, вам придется редактировать тексты в файлах, расположенных на
сервере. Для этого можно пойти двумя путями:
Какой путь предпочесть - решать вам, но часто удобнее второй. Конечно, для
этого надо уметь обращаться с текстовыми редакторами, которые есть на
сервере. Впрочем, научиться этому не так сложно.
Для редактирования файлов на сервере есть довольно мощный редактор
vi.
А если вы по какой-либо причине считаете неподходящим вам редактор
vi, попробуйте использовать редактор
ed.
Под Linux можно работать и с электронной почтой. В университете каждый
студент имеет почтовый ящик с адресом вида:
Иногда надо узнать какие именно пользователи (кроме вас) сейчас работают
с сервером. Это можно сделать командой who.
Подскажет сама система (если системный администратор не забыл настроить
часы на сервере, что бывает). Дайте команду date
.
Не надо бояться слова "задача". Это всего лишь любая ваша команда,
которую вы даете серверу, при условии, что в ней нет символов трубопровода.
Если они там есть, сервер запустит несколько программ (те, которые вы
перечислили в своей команде), то есть несколько задач сразу.
Любую задачу в Linux можно запустить в фоновом режиме. Для этого надо
после командной строки для ее запуска указать символ &. Например:
Вы можете посмотреть какие именно задачи сейчас выполняются в системе от
вашего имени (логина). Будут показаны все задачи, выполняемые в фоновом
режиме и некоторая другая информация. Список задач можно посмотреть командой
ps.
Если программа долго никак не реагирует на внешние воздействия значит,
она висит. В Linux программу подвесить много сложнее, чем в WINDOWS, но это
все же возможно. Для того, чтобы прервать работу повисшей задачи и вернуться
к приглашению Linux, надо просто нажать комбинацию клавиш Ctrl+Z.
Протокол FTP можно использовать и на сервере. Здесь файлы, которые вы
получаете с его помощью, будут записываться в ваш каталог на сервере, а не
на диск рабочей станции. Для обмена данными между сервером и рабочей станцией
команда ftp, имеющаяся на сервере непригодна: она не может связаться с вашей
рабочей станцией. Так что для обмена файлами между рабочей станцией и вашим
каталогом на сервере придется использовать программу, имеющуюся именно на
рабочей станции. Тем не менее, программа ftp, имеющаяся на сервере, может
оказаться небесполезной. Она имеет текстовый интерфейс командной строки, что
сильно отличается от графического интерфейса программы wsftp. Подробное
описание всех текстовых команд и правил работы находится
здесь.
Обживаемся на сервере. Наверное, вам уже надоело видеть в качестве
приглашения Linux символ доллара ($). Должно же быть какое-то разнообразие!
Ну что ж, проблема решается просто. Создайте в вашем домашнем каталоге файл
.profile (все буквы в его имени должны быть
маленькими). В этом файле вы можете настроить не только вид своего
приглашения, но и задать другие полезные параметры. Из него же можно вызвать
полезные команды.
Файл .profile должен иметь доступ на
чтение, запись и исполнение для вас (обратите внимание на наличие доступа на
исполнение!). Для вашей группы и всех остальных нужно оставить только доступ
на чтение. Конечно, можно и его убрать, но если вы человек не жадный, дайте
другим почитать этот файл и посмотреть, что там как устроено. Поделитесь
своим опытом с начинающими!
Ничего нет проще. Вам надлежит:
ВНИМАНИЕ! Не всегда правильно обрабатывается ситуация, когда имя
welcome.html является ссылкой на какой-то файл. Это происходит из-за не
совсем правильного функционирования программного обеспечения на сервере.
Так что лучше, если имя welcome.html будет соответствовать именно файлу, а
не ссылке на него. Так оно надежней.
Маленькая хитрость. Если вы создали подкаталоги в каталоге www, то
при обращении к ним вместо вывода оглавления каталога в web-браузере, будет
произведен поиск в каталоге файла с именем welcome.html. Если такой файл там
найдется, то будет выведен именно он. Примеры:
В браузере набираем:
Однако, не так все просто. Для того, чтобы вашу страничку кто-нибудь мог
прочитать, все ее текстовые файлы должны быть в кодировке KOI8-R. Для того,
чтобы перекодировать текст из кодировки DOS или WINDOWS в KOI8-R, надо
воспользоваться соответствующей программой-конвертором. Обратитесь для
консультации по вопросу о том, где можно найти эту программу, и как ее
использовать к ближайшему системному администратору. Помните, что основная
функция системных администраторов - решать проблемы, возникающие при работе
с компьютерной техникой университета! В том числе, ваши.
Если вас заинтересовала какая-либо команда, вы можете посмотреть ее
подробное описание, просто набрав:
Чтобы закончить работу с сервером надо набрать команду logout. Эта команда
не всегда срабатывает с первой попытки. Если это произошло, просто введите
ее еще раз.
Какие здесь есть файлы?
Слишком длинный список!
Перенаправление ввода-вывода программ
mail адрес_получателя < имя_файла_с_письмом
Это очень удобно. Если вы хотите сохранить список файлов из какого-то
каталога в файле, надо сказать:
ls параметры > имя_файла_для_записи_списка_файлов
Теперь подведем итоги.
ls -la | more
Это значит, что все, что выведет команда ls -la будет передано в качестве
входных данных на обработку команде more.
ls < la > ls.dat
То есть, взять исходные данные для команды ls из файла la и вывести
результат ее работы в файл ls.dat.
Права доступа
Подробно права доступа освещены в описании команды
chmod.
Копирование файлов
Создание ссылок
ln -s mbox MyPostOffice
создает ссылку с именем MyPostOffice, которая указывает на файл mbox. Любое
обращение к MyPostOffice эквивалентно обращению к mbox. Теперь переопределим
ссылку MyPostOffice, чтобы она указывала на файл dead.letter:
ln -s dead.letter MyPostOffice
Как видите, для этого не потребовалась команда:
rm MyPostOffice
Ссылку можно создать не только на файл, но и на каталог, и даже просто на
другую ссылку. Помните, что ссылка создается на имя объекта, а содержание
этого объекта не имеет особого значения.
Переименование файлов
Поиск файлов
Просмотр файлов
Сортировка файлов
Удаление файлов
Изменение прав доступа
Создание подкаталогов
Переход в другой каталог
А в каком я каталоге?
Удаление подкаталога
Как сменить пароль
Очистка экрана
Сколько места занимают мои данные?
Редактирование текстов
Редактор Vi
Редактор Ed
Работа с почтой
ваш_логин@joker.botik.ru
Работа с почтой обеспечивается командой mail.
Кто еще в системе?
Кто-нибудь подскажет, сколько времени?
Задачи бывают не только на уроках
Выполнение задачи в фоновом режиме
ls -lar > ls.dat &
Эта команда выводит полную информацию о всех файлах из текущего каталога, а
также всех его подкаталогов в файл с именем ls.dat. Поскольку это может
занять немало времени, она выполняется в фоновом режиме.
Просмотр списка задач
Похоже, я повис... Снятие задач
Здесь тоже есть FTP
Настройка своего логина
Как положить web-страничку, чтобы она работала
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
(если он там есть). В противном случае вы увидите сообщение об ошибке.
Встроенный справочник
man имя_команды
Из интерактивного справочника man (от слова manual: описание, руководство)
можно выйти клавишей q. Перемещение по тексту выполняется клавишами со
стрелками. Это очень удобный справочник. Каждый объект в Linux имеет свое
описание, доступное через эту универсальную команду. Это лучшее из известных
мне решений справочника.
Выходим отсюда!