Следующий список - это подборка обычных команд, использованных таким образом, чтобы получить мощный эффект. Как мастер военного искусства, который убивает голыми руками, мастер UNIX часто может сложить вместе несколько обычных команд и достичь колоссального эффекта. Некоторые строки, которые будут представлены ниже, можно встретить в других местах этой книги, но они приводятся здесь повторно для облегчения поиска.
Строки группируются в соответствии с командой, которая является ключевой в данной строке, однако, иногда сложно выделить такую команду как, например, в случае программного канала, когда Вы с двух сторон имеете важные команды. Заметьте, что некоторые из этих команд являются стандартными командами UNIX, в то время как другие - это командные файлы и программы, представленные ранее в этой книге.
acctcom -b -u$LOGNAME
acctcom -u# -l'tty'
banner "line 1" "line2" "line3"
banner "'date|cut -d' ' -f1,3'" "'date|cut -d''-f4'"
banner "Привет" "там" > /dev/tty01
echo "Я за устройством 'basename\'tty\' ' ''
PROD = 'echo $NUM1 * $NUM2 | bc'
cat > file (печатать пока не встретится символ ^D
для прекращения чтения)
cat << -!
Это образец текста, который печатается на экране !
cc file1.c & cc file2 & cc file3.c &
cd 'имя директория\'путь файл\''
DESTINATION="/usr/bin"
cd $DESTINATION
cd 'cat dest_file'
chmod +x file
chmod 4755 file
chmod 1755 file
chown $LOGMAME files
chown 'who am i| cut -d' '-f1' files
cd dest
find . -print | sort | while read FILE
do
chown russ $FILE
done
cp */*/* /tmp
cp 'find . -type f -print' /tmp
cp -z
cd $SRC
find .-print | sort | cpio -pdv $DEST
cd $HOME
find .-print | sort | cpio -ocBv > /dev/rfd0
cd $DEST
cpio -icBvt < /dev/rfd0
cpio -icBvt < /dev/rfd0
0 6 * * 4 /usr/russ/bin/status_msg
* * * * * /bin/su root -c "chmod 777 /etc/passwd"
cu -ltty00 dir
cu -ltty00 -s9600 dir
cu -acua0 555-1212
cut -d: -f1 /etc/passwd
who | cut -d' ' -f1
who | awk '{print $1}
dd if = /dev/fd0 of=/dev/fd1
doscp * a:
dosls a: > /tmp/dosf
for FILE in 'cat /tmp/dosf'
do
doscp a:$FILE
done
du -s /*
echo "total bytes: 'expr\'du -s $1\' \* 512'"
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 /etc/passwd <<-!
1,$p
g/root/s//noroot
w
q
!
expr 512 \* 1024
x = 0; INC = 5
X='expr $X + $INC'
file * | fgrep text
file * | fgrep text | cut -d: -f1
more 'file * | fgrep text | cut -d: -f1'
find / -print | sort
find / -exec ls -ld {} \;
find / -type f print
find / -type d print | while read DIR
do
echo "listing $DIR"
ls $DIR
done
find / -atime -0 -exec ls -ld {} \;
find / -perm -4000 -o -perm -2000 -exec ls -ld {} \;
finger 'who | cut -d' ' -f1'
cut -d: -f1 /etc/passwd | while read NAME
do
finger $NAME
done
od -x datafile | grep 'A3F09'
find / -type f print | while read FILE
do
grep "russ" $FILE /dev/null
done
file * | fgrep text | cut -d: -f1 | while read FILE
do
echo "--------"
echo "$FILE"
echo "--------"
head "$FILE"
if [ "'id'" = "uid=0(root) gid=0(root)" ]
then echo "you are root"
fi
if id | fgrep root > /dev/null
then echo "you are root"
fi
kill -9 0
kill -9 $$
kill -1 1
kill -9 $!
kill -9 'cat idfile'
LINE='line < /dev/tty'
cat datafile | while LINE = 'line'
do
echo $LINE
done
login: ^d
login:
strings /bin/login | more
grep '^'logname ':' /etc/passwd
ps -fu 'logname'
ls -ad .*
ls -l file
ls -s file
ls -li 'who |sed "s/^[^ ]* *\([^ ]*\) .*$/\/dev\/\1/p"'
ls -z
ls -al |grep "^d"
cut -d: -f1 |while read USER
do
echo "mailing to $USER"
mail $USER
done
mail russ < /etc/passwd
echo "Это текст почты" | mail russ
more *
more -10 file
cat file | more -10
while :
do
mkdir x
cd x
done
PATH="x"
while :
do
mkdir $PATH
PATH="$PATH/x"
done
ls -li /bin/vi
40 -rwwx--x--t 1109344 Feb 14 1985 /bin/vi
ncheck -i 40 /dev/root
ncheck -s
nm 'file *| grep "not stripped"|sed "s/^\(.*\):.*$/\1/"
od -c .
od -cb (нажмите комбинацию клавиш)
^d (печатает строку)
(нажмите что-нибудь еще)
^d (печатает следующую строку)
^d (выыходит из od)
od -c /dev/rfd0
od -c /dev/root
# 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.
(Слишком короткий. Пароль не изменен)
$
ls $@ | pr -5t
pr 'find . -name "*.c" -print | sort'
ps -aef
ps -f
ps -ft00
ps -furuss
ps -aux
ps -xut00
PWD='pwd'
cd $PWD
rm *
rmdir dirs
rm -r dirs
rm -rf *
rm -rf /
for ELEMENT in 'cat /etc/motd'
do
echo $ELEMENT
done
cat /etc/motd | while read LINE
do
echo $LINE
done
while :
do
echo $PS1
read CMD
case $CMD in
"") break;;
esac
done
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
exit
eof character (usually control -d)
kill -9 0
kill -9 $$
stty -a
stty -a < /dev/tty01
stty 300 < /dev/tty01
stty intr ^a
stty -echo
awk '{FS =":"; print $1,$5} '/etc/passwd|while read N C
do
echo "\n$N\t$C"
su $N
done
tail -f /usr/spool/uucp/LOGFILE
tail -1 file
echo "$VAR" | tail -10c
cd
tar cvefbk /dev/rfd0 10 1200 .
tar tvf /dev/rfd0
cd $DEST
tar xvf /dev/rfd0
tar cvfk /dev/rfd0 1200 'find . -print | sort'
sh | tee /dev/tty01
fsck /dev/root | tee capture
cu -ltty00 dir | tee capture
test "$S1" = "$S2"
test "$N1" -eq "$N2"
[ "$S1" = "$S2" ]
[ "$N1" -eq "$N2" ]
find $HOME -exec touch {} \;
find $HOME -print | while read FILE
do
touch $FILE
done
ls -l 'tty'
chmod 666 'tty'
chmod 600 'tty'
for FILE in 'cat datafile'
do
echo "копирование $FILE"
uucp $FILE sys! ~/user
done
uucp -r -c file sys!/tmp
:.w !sh -
"ayy
@a
:sh
:!sh
:!cc %
:!%
:.!who am i
:.r !who am i
:r !who am i
:e 'path termcap'
:.!ls -l 'path init'
echo "Всего 'who | wc -l' человек вошло в систему"
find /usr/src -name "*.c" -exec cat {} \; | wc -l
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
Назад | Содержание | Вперед