В процессе работы с операционными системами GNU/Linux обычно привыкаешь делать какие-то операции одними и теми же средствами. Философия UNIX (*nix-way) предполагает наличие большого количества простых программ для выполнения простых действий, а результаты работы можно передавать между разными программами через потоки. Но вот представьте, что возникает ситуация, когда кто-то нечаянно, по глупости или из нехороших побуждений удалил исполнимый файл, который являлся бинарным файлом какой-то команды, которой вы более или менее часто пользовались. И что тогда делать?
И вот здесь начинается самое интересное. Практика показывает, что многие вещи можно делать более чем одним способом. Я попытался составить небольшой список взаимозаменяемых действий, которые в Linux могут быть выполнены более чем одним способом.
1) Нумерация строк
2) Просмотр таблицы маршрутов
3) Просмотр списка сетевых интерфейсов
4) Создание пользователя:
5) Блокировка пароля пользователя
6) Разблокировка пароля пользователя
7) Добавление пользователя в группу
8) Смена группы владения файла
9) Просмотр содержимого директории
10) Создание жесткой ссылки
11) Создание символической ссылки
12) Замена traceroute командой ping. Не совсем честный способ, потому что разные типы пакетов ICMP, но в общем случае подходит, если все хосты трассы пингуемы.
pingtrace.sh (Если в качестве аргумента указать айпишник, то трасса получается ОЧЕНЬ быстро)
В комментариях, надеюсь, будет еще много подобных примеров
И вот здесь начинается самое интересное. Практика показывает, что многие вещи можно делать более чем одним способом. Я попытался составить небольшой список взаимозаменяемых действий, которые в Linux могут быть выполнены более чем одним способом.
1) Нумерация строк
nl <file>
=cat -n <file>
2) Просмотр таблицы маршрутов
route -e
=netstat -r
=ip route
3) Просмотр списка сетевых интерфейсов
ifconfig -s
=netstat -i
=ip addr
4) Создание пользователя:
adduser <username>
=useradd <username>; mkdir /home/<username>; chown <username>:<username> /home/<username>; passwd <username>
5) Блокировка пароля пользователя
passwd -l <username>
=usermod -L <username>
6) Разблокировка пароля пользователя
passwd -u <username>
=usermod -U <username>
7) Добавление пользователя в группу
adduser <username> <groupname>
=usermod -aG <groupname> <username>
8) Смена группы владения файла
chown :<groupname> <filename>
=chgrp <groupname> <filename>
9) Просмотр содержимого директории
ls
=dir
=vdir
10) Создание жесткой ссылки
ln <file> <linkname>
=cp -l <file> <linkname>
11) Создание символической ссылки
ln -s <file> <linkname>
=cp -s <file> <linkname>
12) Замена traceroute командой ping. Не совсем честный способ, потому что разные типы пакетов ICMP, но в общем случае подходит, если все хосты трассы пингуемы.
traceroute remote-host
=pingtrace.sh (Если в качестве аргумента указать айпишник, то трасса получается ОЧЕНЬ быстро)
#!/bin/bash
REMOTE_HOST=$1
REMOTE_HOST_2=`host $1 | grep 'has address' | awk '{printf $4}'`
TARGET_HOST="_"
TARGET_TTL=1
echo Tracing host $REMOTE_HOST\($REMOTE_HOST_2\)
while [ "$REMOTE_HOST" != "$TARGET_HOST" -a "$REMOTE_HOST_2" != "$TARGET_HOST" ]
do
TARGET_HOST=`ping -c 1 -t $TARGET_TTL $REMOTE_HOST | grep 'exceeded' | awk '{printf $2}'`
if [ "$TARGET_HOST" != "" ]
then
echo $TARGET_HOST, TTL=$TARGET_TTL
TARGET_TTL=$(($TARGET_TTL+1))
else
echo $REMOTE_HOST, TTL=$TARGET_TTL
exit
fi
done
В комментариях, надеюсь, будет еще много подобных примеров