Следующий список - это подборка
обычных команд, использованных
таким образом, чтобы получить
мощный эффект. Как мастер военного
искусства, который убивает голыми
руками, мастер UNIX часто может
сложить вместе несколько обычных
команд и достичь колоссального
эффекта. Некоторые строки, которые
будут представлены ниже, можно
встретить в других местах этой
книги, но они приводятся здесь
повторно для облегчения поиска.
Строки группируются в
соответствии с командой, которая
является ключевой в данной строке,
однако, иногда сложно выделить
такую команду как, например, в
случае программного канала, когда
Вы с двух сторон имеете важные
команды. Заметьте, что некоторые из
этих команд являются стандартными
командами UNIX, в то время как другие -
это командные файлы и программы,
представленные ранее в этой книге.
ACCTCOM
- прочитать всю Вашу учетную
информацию, начиная с
последней команды.
acctcom -b -u$LOGNAME
- показать все учетные записи,
запущенные с Вашего терминала
и того, который запущен как
суперпользователь
acctcom -u# -l'tty'
BANNER
- напечатать сообщение на трех
строках
banner "line 1" "line2" "line3"
- напечатать день недели и дату
на одной строке, время на
другой
banner "'date|cut -d' ' -f1,3'" "'date|cut -d''-f4'"
- послать сообщение на экран
другого пользователя
banner "Привет" "там" > /dev/tty01
BASENAME
BC
CAT
- передать символы с клавиатуры
в файл
cat > file (печатать пока не встретится символ ^D
для прекращения чтения)
- получить ввод из конструкции
"документ здесь"
cat << -!
Это образец текста, который печатается на экране !
CC
CD
CHMOD
- включить бит исполнения файла
chmod +x file
- включить бит смены
идентификатора пользователя и
разрешить всем выполнение
файла
chmod 4755 file
- установить бит sticky во
включенное состояние
chmod 1755 file
CHOWN
CP
CPIO
- переместить дерево системы
файлов в новое местоположение
cd $SRC
find .-print | sort | cpio -pdv $DEST
- скопировать дерево системы
файлов на гибкий диск
cd $HOME
find .-print | sort | cpio -ocBv > /dev/rfd0
- восстановить копию на стримере
cd $DEST
cpio -icBvt < /dev/rfd0
- выполнить "ls -l" на копии
стримера
cpio -icBvt < /dev/rfd0
CRON
CU
- непосредственно обратиться
последовательному порту на
скорости 1200 бод
cu -ltty00 dir
- непосредственно обратиться к
последовательному порту на
скорости 9600 бод
cu -ltty00 -s9600 dir
- автоматически вызвать другую
систему, используя комбинацию
dial/modem
cu -acua0 555-1212
CUT
DD
DOS
DU
ECHO
- напечатать значение
переменной shell'а
echo $PATH $CDPATH
- напечатать вывод вперемешку с
обычным текстом
echo " Мое имя $LOGNAME или
'logname' или 'who am i|cut -d' ' -f1'"
- напечатать символы упраления в
кавычках и без
echo "\n\t Это записано в кавычках"
echo \\n\\t Это записано без кавычек
- напечатать и оставить курсор в
конце той же строки
echo -n "prompt: "
echo "prompt: \c"
ED
EXPR
FILE
FIND
- найти все файлы в системе
find / -print | sort
- найти все файлы и распечатать
список в формате long
find / -exec ls -ld {} \;
- напечатать имена всех
регулярных файлов
find / -type f print
- найдите все каталоги и
распечатайте содержимое
find / -type d print | while read DIR
do
echo "listing $DIR"
ls $DIR
done
- найдите все файлы, которые были
модифицированы в последние 24
часа и распечатайте их список в
формате long
find / -atime -0 -exec ls -ld {} \;
- найдите все файлы setuid и setgid
find / -perm -4000 -o -perm -2000 -exec ls -ld {} \;
FINGER
GREP
HEAD
ID
KILL
- уничтожьте себя (выгрузите)
kill -9 0
kill -9 $$
- завершите работу системы
kill -1 1
- уничтожьте последний процесс,
запущенный в фоновом режиме
kill -9 $!
- уничтожьте процесс,
идентификатор которого
находится в файле
kill -9 'cat idfile'
LINE
LOGIN
LOGNAME
LS
MAIL
MORE
MKDIR
NCHECK
NM
OD
PASSWD
- как суперпользователь Вы
можете установить в качестве
пароля любую строку
# passwd russ
Changing password for russ
(Изменение пароля для russ)
Enter new password (minimum of 5 characters)
(Введите новый пароль (минимум 5 символов))
Please use combination of upper, lowercase letters
and numbers
(Просьба использовать комбинации чисел и букв в
верхнем и нижнем регистрах)
New password: junk
(Новый пароль: junk)
Re-enter new password: junk
(Новый пароль: junk)
#
- как обычный пользователь Вы
должны будете вводить пароль с
учетом количественных
ограничений и ограничений по
длине
$ passwd russ
Changing password for russ
(Изменение пароля для russ)
Enter new password (minimum of 5 characters)
(Введите новый пароль (минимум 5 символов))
Please use combination of upper, lowercase letters
and numbers
(Просьба использовать комбинации чисел и букв в
верхнем и нижнем регистрах)
New password: junk
(Новый пароль: junk)
Too short. Password unchanged.
(Слишком короткий. Пароль не изменен)
$
PR
PS
- напечатать полную информацию
обо всех активных процессах
ps -aef
- напечатать информацию обо всех
процессах, управляемых Вашим
терминалом
ps -f
- напечатать информацию о
процессах, связанных с
терминалом tty00
ps -ft00
- напечатать информацию о
процессах, связанных с
пользователем russ
ps -furuss
- BSD синтаксис для печати всех
процессов
ps -aux
- BSD синтаксис для печати всех
процессов, связанных с
терминальным устройством
ps -xut00
PWD
- сохранить текущий рабочий
каталог
PWD='pwd'
- вернуться в ранее сохраненный
рабочий каталог
cd $PWD
RM
- удалить все файлы, кроме
каталогов с файлами
rm *
- удалить пустые каталоги
rmdir dirs
- удалить каталоги, имеющие
файлы
rm -r dirs
- удалить все файлы в режиме,
когда система не будет
задавать никаких вопросов
rm -rf *
- удалить каждый файл в системе
по отдельности
rm -rf /
SH
- прочитать список поэлементно
for ELEMENT in 'cat /etc/motd'
do
echo $ELEMENT
done
- прочитать список построчно
cat /etc/motd | while read LINE
do
echo $LINE
done
- цикл пока - навсегда (while-forever)
while :
do
echo $PS1
read CMD
case $CMD in
"") break;;
esac
done
- управляемый цикл while
read CMD
while [ "$CMD" != ""]
do
case $CMD in
user-cmd) do_it;;
esac
echo $PS1
read CMD
done
- переполнениие тестового стека
при обработке прерывания
trap "echo trapping; kill $$" 2 3 15
- выгрузка из языка shell
несколькими способами
exit
eof character (usually control -d)
kill -9 0
kill -9 $$
STTY
- посмотрите все свои установки
stty -a
- посмотрите терминальные
установки другого терминала
stty -a < /dev/tty01
- установить передачу бод на
другую скорость для другого
терминала
stty 300 < /dev/tty01
- динамически установить control-A
как клавишу прерывания
stty intr ^a
- включить эхо-сопровождение
терминала
stty -echo
SU
TAIL
TAR
- сделать копии файлов в Вашем
home-каталоге не разрывая файл,
но формируя копии на куски по
1200 блоков
cd
tar cvefbk /dev/rfd0 10 1200 .
- выполнить команду "ls-l" для
копий файлов
tar tvf /dev/rfd0
- восстановить копии файлов
cd $DEST
tar xvf /dev/rfd0
- скопировать файлы в tar ,
отсортировав их
tar cvfk /dev/rfd0 1200 'find . -print | sort'
TEE
TEST
TOUCH
TTY
UUCP
VI
WC
WHO
- печатает количество и имена
зарегистрированных
пользователей
who | awk '{ print "user:",$1,"\tdevice:",$2
cnt = cnt + 1
} END { print cnt,"пользователи, вышедшие из системы"}'
- печатает
who | while read NAME TTY TIME
do
echo "пользователь: $NAME tty: $TTY time: $TIME
done
|