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