Команда "One-Liners" - крошечная, но мощная
Следующий список - это подборка обычных команд, использованных таким образом, чтобы получить мощный эффект. Как мастер военного искусства, который убивает голыми руками, мастер 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
Назад | Содержание | Вперед
|
|