Я работаю инжеНегром в одной большой китайской компании и почти постоянно сижу в консолях различных ОС. Чаще всего это SLES, но бывают и Solaris, и даже иногда HPUX.
Но на корпоративных буках стоит только Windows. А после недели\двух в консоли на *nix виндовая консоль часто ругается на то, что не знает команд ls, ifconifg, man и т.д.
Конечно, есть аналоги под вин, есть cygwin и много чего. Однако для меня как правило, остаточно аналогов, нативных под виндой — dir, ipconfig etc. Опять же, бывает недостаточно прав на установку ПО, либо это явно запрещено.
Я нашел для себя простой выход
Прописал в %path% путь к каталогу с моими скриптульками", и сделал там следующие батники (у меня они все с расширением cmd, но любителям древностей Win98 и ниже можно использовать расширение bat)
man.cmd
я часто забываю синтаксис if, по этому man для меня крайне важен :)
ifconfig.cmd
поддерживается ключ -a :)
halt.cmd
Бывало, что у меня запущен «запрещенный» софт, запускаю я его от локальной учетки… а хальтом убиваю все такие процессы.
Пользоваться приходилось только в момент дебага :)
Пользователям WinXP HOME воспользоваться не получится, т.к. в ней есть только tskill, в котором таких ключей нет.
а вот так вот я запускаю Windows Update:
wu.cmd
ls.cmd
поддерживаются ключи -a, -al либо произвольные :)
трэйсроут, куда уж без него!
traceroute.cmd
На хабре уже был топик по netsh, но я им пользуюсь шире, таким вот способом:
ip.cmd
в папочке d:/basil/soft/lan/ (надо бы использовать переменную) у меня лежат разные профиля для разных «сайтов».
По прибытии на место, остается только набрать имя сайта
вот пример:
spb
Для красоты у меня сетевушка переименована в «LAN»
Таких файлов у меня около 30ти.
Т.к. последнее время я занят на проекте в одном ОПСОСе, где ставится балалайка, которая обсчитывает IP трафик в релатайме,
мне часто приходится цепляться к GPRS под разными APNами.
Для этого я сваял себе такую конструкцию:
co.cmd
Добавил в сам скрипт комментарии, повторюсь еще раз.
вызывается двумя способами — просто co либо co %name% где %name% это одно из трех алиасов (у меня три определено, можно больше) апнов. Т.к. часто апны меняются (от сайта к стайту), я сделал имена-алиасы. Т.е. это «wap», «inet» и «3».
Ну, и самое главное — это путь в реестре, куда писать строку инициализации модема. Она для каждого модема будет своя, по этому
в начале надо ее найти методом поиска по реестру.
Да, чуть не забыл — в системе нужно создать подключение с выбранным модемом с именем gprs
ну и малышка, для отключения поднятого PDP контекста:
dis.cmd
т.о., находясь в консоли я могу быстро подключаться с нужным APN, делать какие то тесты (обычно, это пинг, трейсроут или телнет на ya.ru 80), и отключаться, не выходя из индовой консоли.
В продолжении темы могу еще рассказать про скрипты, используемые мной в процессе создания лангпака к Miranda IM
Но на корпоративных буках стоит только Windows. А после недели\двух в консоли на *nix виндовая консоль часто ругается на то, что не знает команд ls, ifconifg, man и т.д.
Конечно, есть аналоги под вин, есть cygwin и много чего. Однако для меня как правило, остаточно аналогов, нативных под виндой — dir, ipconfig etc. Опять же, бывает недостаточно прав на установку ПО, либо это явно запрещено.
Я нашел для себя простой выход
Прописал в %path% путь к каталогу с моими скриптульками", и сделал там следующие батники (у меня они все с расширением cmd, но любителям древностей Win98 и ниже можно использовать расширение bat)
man.cmd
%1 /?
я часто забываю синтаксис if, по этому man для меня крайне важен :)
ifconfig.cmd
@echo off
IF "%1"=="-a" (ipconfig /all) ELSE (ipconfig %1)
поддерживается ключ -a :)
halt.cmd
@echo off
start /min taskkill /F /FI "USERNAME eq BasiL"
Бывало, что у меня запущен «запрещенный» софт, запускаю я его от локальной учетки… а хальтом убиваю все такие процессы.
Пользоваться приходилось только в момент дебага :)
Пользователям WinXP HOME воспользоваться не получится, т.к. в ней есть только tskill, в котором таких ключей нет.
а вот так вот я запускаю Windows Update:
wu.cmd
sc config wuauserv start= auto
sc start wuauserv
start /max /separate /wait iexplore http://update.microsoft.com/windowsupdate/v6/default.aspx?ln=ru
sc stop wuauserv
sc config wuauserv start= disabled
exit
ls.cmd
IF "%1"=="-a" (dir) ELSE (IF "%1"=="-al" (dir) ELSE (dir %1 %2 %3 %4 %5))
поддерживаются ключи -a, -al либо произвольные :)
трэйсроут, куда уж без него!
traceroute.cmd
tracert %1 %2 %3 %4
На хабре уже был топик по netsh, но я им пользуюсь шире, таким вот способом:
ip.cmd
@echo off
title Change IP
rem color 0e
:start
echo input conf name:
set /p name=
echo executing....
netsh exec d:/basil/soft/lan/%name%
if /i %errorlevel% neq 0 echo error!!! & goto start
в папочке d:/basil/soft/lan/ (надо бы использовать переменную) у меня лежат разные профиля для разных «сайтов».
По прибытии на место, остается только набрать имя сайта
вот пример:
spb
pushd interface ip
set address name="LAN" source=static addr=10.183.64.250 mask=255.255.255.0
set address name="LAN" gateway=10.183.64.1
set dns name="LAN" source=static addr=4.2.2.4 register=NONE
popd
Для красоты у меня сетевушка переименована в «LAN»
Таких файлов у меня около 30ти.
Т.к. последнее время я занят на проекте в одном ОПСОСе, где ставится балалайка, которая обсчитывает IP трафик в релатайме,
мне часто приходится цепляться к GPRS под разными APNами.
Для этого я сваял себе такую конструкцию:
co.cmd
@echo off
rem clear variable before use
set apn=
rem now check what APN i need use this time. Coz i'm lazy imput manual, I prefer use short aliases
rem add your alias here :)
if /I "%1"=="inet" (set apn=apn1.tst)
if /I "%1"=="wap" (set apn=apn2.tst)
if /I "%1"=="3" (set apn=apn3.tst)
rem OK, now we know what APN i need, change it in registry.
rem for each modem this string will be different, so first find your modem in registry.
rem coz mostly I will use one apn seldom times, script can be run without APN param, so if APN not defined, don't make modifications to registry.
if DEFINED apn (reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000 /v UserInit /t REG_SZ /d AT+CGDCONT=1,\"IP\",\"%apn%\" /f)
rem OK, now everything ready for call, just dial ptcp.
rem First you need manualy create remode dial with this name, coz rasdial need entry in phonebook. Don't forget choose only your GSM modem here :)
rasdial gprs
Добавил в сам скрипт комментарии, повторюсь еще раз.
вызывается двумя способами — просто co либо co %name% где %name% это одно из трех алиасов (у меня три определено, можно больше) апнов. Т.к. часто апны меняются (от сайта к стайту), я сделал имена-алиасы. Т.е. это «wap», «inet» и «3».
Ну, и самое главное — это путь в реестре, куда писать строку инициализации модема. Она для каждого модема будет своя, по этому
в начале надо ее найти методом поиска по реестру.
Да, чуть не забыл — в системе нужно создать подключение с выбранным модемом с именем gprs
ну и малышка, для отключения поднятого PDP контекста:
dis.cmd
rasdial gprs /disconnect
т.о., находясь в консоли я могу быстро подключаться с нужным APN, делать какие то тесты (обычно, это пинг, трейсроут или телнет на ya.ru 80), и отключаться, не выходя из индовой консоли.
В продолжении темы могу еще рассказать про скрипты, используемые мной в процессе создания лангпака к Miranda IM