*nix-way: Даже если тебя съели, у тебя есть как минимум два выхода

от автора

В процессе работы с операционными системами GNU/Linux обычно привыкаешь делать какие-то операции одними и теми же средствами. Философия UNIX (*nix-way) предполагает наличие большого количества простых программ для выполнения простых действий, а результаты работы можно передавать между разными программами через потоки. Но вот представьте, что возникает ситуация, когда кто-то нечаянно, по глупости или из нехороших побуждений удалил исполнимый файл, который являлся бинарным файлом какой-то команды, которой вы более или менее часто пользовались. И что тогда делать?

И вот здесь начинается самое интересное. Практика показывает, что многие вещи можно делать более чем одним способом. Я попытался составить небольшой список взаимозаменяемых действий, которые в 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 -G <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 

В комментариях, надеюсь, будет еще много подобных примеров

ссылка на оригинал статьи http://habrahabr.ru/post/145073/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *