div.main {margin-left: 20pt; margin-right: 20pt}
Несколько простейших
команд UNIX
НЕСКОЛЬКО ПРОСТЕЙШИХ КОМАНД UNIX
Первоначальная версия этого текста
подготовлена НПО "КЛОТО"
1.1. Система UNIX различает БОЛЬШИЕ и малые буквы, и к этому
нужно привыкнуть.
1.2. Если вы уничтожили какой-нибудь файл, то никаких проблем с
его восстановлением у вас не будет. Потому что восстановить
уничтоженный файл в системе Unix НЕВОЗМОЖНО. В Unix отсутствует
команда unerase, и к этому тоже нужно привыкнуть. Вирусы и ан-
тивирусы в Unix тоже отсутствуют. Так что, пока хоть этой проб-
лемы у администратора машины не будет.
1.3. В имени файла директории отделяются от последующей части
символом "/" Если имя начинается со слэша - значит, это полное
маршрутное имя. Простое имя файла может состоять из ЛЮБЫХ сим-
волов. Длина простого имени не более 256 символов. Длина полно-
го маршрутного имени файла не более 1024 символов. Для задания
шаблона имен используются символы * (произвольная последова-
тельность символов) и ? (один произвольный символ). Два имени
являются выделенными. Имя из одной точки "." обозначает текущую
директорию, имя из двух точек ".." - вышележащую.
1.4. Чтобы запустить программу на выполнение, достаточно наб-
рать ее имя и, если нужно, другие аргументы командной строки.
Имя программы - это маршрутное имя файла, в котором эта прог-
рамма находится. Аргументы разделяются одним или несколькими
пробелами. Ключи команды обычно (но необязательно) выделяются
знаком "-". Если командная строка кончается знаком &,
происходит запуск параллельного процесса, в рамках которого
будет выполняться команда, сообщается его номер, после чего
можно продолжать работу не дожидаясь завершения фоновой задачи.
команда -ключи -ключи ... прочие разные аргументы ...
1.5. Три направления ввода-вывода являются выделенными - стан-
дартный ввод, стандартный вывод и стандартный протокол. Как
правило, команды операционной системы берут исходные данные из
стандартного ввода и помещают результаты в стандартный вывод.
Первоначально стандартные ввод, вывод и протокол назначены на
терминал, однако их можно переназначить, если после команды по-
местить одну из конструкций:
команда > имя_файла
(для стандартного вывода),
команда < имя_файла
(для переназначения стандартного ввода),
команда 2> имя_файла
(для стандартного протокола - системной диагностики).
Пример - записать в файл infdir содержимое текущей дирек-
тории:
ls > infdir
Если вывод назначен в файл, то перед началом выполнения
команды создается пустой файл с соответствующим именем (если
файл уже существовал, он опустошается), а затем в него помеща-
ется информация. Если информацию нужно дописать в конец сущест-
вующего файла, следует воспользоваться конструкцией
команда >> имя файла
команда 2>> имя файла
1.6. Пользователи системы UNIX объединяются в группы, и каждая
из групп может обладать определенным набором привилегий.
1.7. Программы могут распознавать значения переменных окруже-
ния, значения которых были заданы перед их запуском.
TERM=vt220
HOME=/home/moshkow
PATH=:/bin/:dss/rk:/udd/moshkow/bin
1.8. Выдачу одной команды можно перенаправлять на вход
другой команды. Для этого используется "|" - конвейер.
Например: посчитать суммарный размер и число строк всех файлов
в каталоге /tmp, имена которых начинаются с символов "text" ...
cat /tmp/text* | wc -c
# Команда cat сливает вместе все файлы вида /tmp/text*,
# wc -c -l считает количество символов и число строк во входном
# потоке.
Или просмотреть с листанием длинную выдачу команды:
ps -ef | more
Того же результата можно достичь и без конвейера таким образом:
ps -ef > temp-file
more temp-file
rm temp-file
2. Некоторые наиболее употребительные команды .
pwd - получить имя текущей директории
cd - изменить текущую директорию
ls - распечатать информацию о файлах или директориях
cat - слить или вывести файлы-аргументы на стандартный вывод
cp - копировать файлы
mv - переместить (переименовать) файлы
ln - создать ссылку на файл
rm - удалить файлы
rmdir - удалить директорию
mkdir - создать директорию
echo - вывести аргументы командной строки на стандартный вывод
ps - узнать номера выполняемых процессов
kill - "убить" выполняемый процес по его номеру
man - выдать справку об использовании и ключах команды
2.1 pwd Выдать имя текущей директории .
pwd
2.2 cd Сменить текущую директорию .
cd [ директория]
cd /usr/spool/lp/adm
cd ..
Если директория не указана, Вы попадаете в свой "домашний" ка-
талог $HOME
2.3 ls Распечатать каталог .
Формат команды : ls [ключи] [имена]
имена - имена файлов или директорий; для директорий распечаты-
вается список входящих в нее файлов, для файлов - пов-
торяется имя файла и дополнительная информация в соот-
ветствии с ключами. Имена файлов выводятся в алфавитном
порядке. Если имена не заданы, выдается содержимое те-
кущей директории.
ключи: по умолчанию выдаются только имена файлов, в одну ко-
лонку и в алфавитном порядке.
ls -al - вывод в длинном полном формате:
число владелец время модификации
линков группа имя файла
(имен) размер
-rwxr-xr-x 1 moshkow sys 17 Oct 18 16:13 ../jean
drwxr-xr-x 1 moshkow sys 12 Oct 18 16:11 ../jelly
-rwxr-xr-x 1 moshkow sys 0 Oct 13 14:14 ../j.bu.txt
^^ ^ ^
|| | |
|| | +----- права всех "прочих" по отношению к файлу
|| +-------- права одной с ним группы
|+----------- права "владельца" файла
+------------ "-" - значит файл, "d" - директория
Права:
r - файл доступен для чтения,
w - файл доступен для записи,
x - файл является выполнимым,
- - данное право доступа отсутствует.
-a - вывести все файлы (даже те, имена которых начинают-
ся с точки);
-x - вывод в 4 колонки;
-t - имена файлов сортируются не по алфавиту, а по вре-
мени последнего изменения (сначала идут самые све-
жие, только что измененные файлы);
-R - рекурсивно пройти по всем подкаталогам
ls -CF - оглавление каталога в несколько столбиков
ls -al - оглавление в полном формате
2.4 cat Слить и вывести файлы на стандартный вывод .
Формат команды : cat файл1 [файл2... ]
Cat читает каждый из указанных файлов и выводит их содержимое
на стандартный вывод. Пример:
cat файл
распечатывает содержимое файла, а
cat файл1 файл2 > файл3
сливает первые два файла и помещает результат в третий. Чтобы
добавить файл1 к файлу2, надо выполнить команду
cat файл1 >> файл2
2.5 more, pg Просмотреть файл постранично .
more file_name ...
more позволяет просматривать файл, делая остановку на каждой
границе экрана. Просмотром можно управлять с помощью клавиш:
q - завершить просмотр
ПРОБЕЛ - показать следующую страницу
ENTER - сдвинуться на одну строку
b - показать предыдущую страницу
/ - поиск
h - Help - посмотреть список всех возможных команд
more используют, чтобы посмотреть "длинную" выдачу команды,
ставя его конвейером "ей на хвост"
ls -al | more - просмотреть оглавление
ps -e | pg - просмотреть список работающих процессов
2.6 cp Копировать файлы .
Формат команды : cp файл1 файл2
cp файл1 файл2 [...] каталог
Эта команда копирует файл1, ... , в ФАЙЛ. Если ФАЙЛ - это ди-
ректория, то файл1 и др. копируются в нее под своими именами.
Если ФАЙЛ не существовал, то он создается, если существовал,
его старое содержимое теряется.
2.7 mv Переместить (переименовать) файлы .
Формат команды : mv файл1 файл2
mv файл1 [файл2 ...] каталог
Команда аналогична команде cp, но не сохраняет исходного файла.
Ее основная роль - переименование файлов и перенос файлов из
одной директории в другую). Пример.
mv /dss/*/rk_*.help /dss/delo
2.8 ln Связать файлы .
Формат команды : ln файл1 файл2
# создается "жесткий" линк
ln -s файл1 файл2
# создается "символический" линк
Эта команда создает файлу файл1 еще одно имя. В итоге файл1 и
файл2 на самом деле физически являются одним и тем же файлом.
Если вы создаете так называемый "символический линк", (исполь-
зуя ключ "-s"), то файл file1 при этом не обязан существовать.
Имя "файл2" при этом все равно будет создано.
2.9 rm Удалить файл или директорию .
Формат команды : rm [-fri] файл ...
-i - просить подтверждения на каждое удаление
-r - рекурсивно удалить вместе с подкаталогами
-f - не просить подтверждения, а сразу удалють
Для удаления пустой директории можно воспользоваться командой
rmdir директория ...
Чтоб удалить непустую директорию нужно выполнить команду
rm -r директория
ВНИМАНИЕ: Ввиду того, что под шаблон ".*" подходит каталог ".."
НИКОГДА НЕ ДЕЛАЙТЕ КОМАНДЫ # rm -r .*
2.10 mkdir Создать директорию .
Для создания директории применяется команда mkdir.
Формат команды : mkdir имя_директории ...
2.11 chmod Изменение прав доступа к файлам .
Команда chmod меняет атрибуты (права доступа) файла.
Проставить файлам право на выполнение:
chmod u+x file1
Разрешить остальным пользователям исправлять файл
chmod a+w file1
2.12 echo Эхо .
echo Команда выводит на стандартный вывод свои аргументы
echo "17"
Вывести на терминал символ Ctrl-O, Он же 017 восьмеричное. Вос-
станавливает латиницу на терминалах типа vt220 и at386
2.13 Создать файл .
Для создания файла можно воспользоваться следующими способами:
touch primer создает файл primer;
cat > primer создает файл primer и пишет в него из стан-
дартного ввода. Запись в файл закончится пос-
ле нажатия CTRL+D.
2.14 ps Какие программы выполняются .
Сообщает номера процессов, которые выполняются в системе.
ps - запущенные только с этого терминала
ps -e - все
ps -f - в "полном" формате
2.15 kill Прервать процесс .
Команда kill посылает указанному процессу сигнал немедленной
остановки.
Прервать процесс номер 1078 (номер можно узнать командой ps -e)
kill -9 1078
Прервать программу на вашем терминале, запущенную НЕ в фоновом
режиме, можно нажатием клавиши CTRL-C, или клавиши CTRL-
2.16 man Если вы забыли как пользоваться командой .
Как правило, при запуске команды без аргументов она выдает фор-
мат своего вызова. Но для большинства команд достаточно полную
информацию вы можете получить так:
man имя_интересующей_вас_команды
man -k ключевое_слово - список команд, относящихся к ...
2.17 who Кто работает в системе .
who - этими командами можно узнать кто вы такой,
who am i и кто еще работает в системе
finger
last | more
id
man -k who - сообщит все возможные команды, которыми можно
узнать, кто и что делает в системе.
|