По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Если вы еще не умеете писать скрипты в системах Unix и Linux, эта статья познакомит с основами написания скриптов.
Написание скриптов в системе Unix или Linux может быть одновременно и простым и чрезвычайно сложным. Все зависит от того, что вы пытаетесь выполнить, используя скрипт. В этой статье мы рассмотрим основы создания скриптов - то, как начать, если вы никогда раньше не создавали скрипты.
Идентификация оболочки.
Сегодня в системах Unix и Linux есть несколько оболочек, которые вы можете использовать. Каждая оболочка - это интерпретатор команд. Он считывает команды и отправляет их ядру для обработки.
Bash является одной из самых популярных оболочек, но существуют также zsh, csh, tcsh и korn. Есть даже оболочка под названием fish, которая может быть особенно полезна новичкам в Linux благодаря полезным параметрам автозаполнения команд. Чтобы определить, какую оболочку вы используете, используйте эту команду:
$ echo $SHELL
/bin/bash
Вы также можете определить свою основную оболочку, просмотрев файл /etc/passwd:
$ grep $USER /etc/passwd
nemo:x:1111:1111:Nemo the Fish:/home/nemo:/bin/bash “
read myfile
else
myfile=$1
fi
if [ ! -f “$myfile” ]; then
echo “Файл не найден: $myfile”
exit
fi
case $myfilein
*.tar) tar xf $myfile;;
*.zip) unzip $myfile;;
*.rar) rar x $myfile;;
*) echo “Нет опций для извлечения $myfile”
esac
Обратите внимание, что этот сценарий также запрашивает имя файла, если оно не было предоставлено, а затем проверяет, действительно ли указанный файл существует. Только после этого выполняется извлечение.
Реакция на ошибки
Вы можете обнаруживать ошибки в скриптах и реагировать на них и тем самым избегать других ошибок. Хитрость заключается в том, чтобы проверять выходные коды после запуска команд. Если код выхода имеет значение, отличное от нуля, произошла ошибка. В этом скрипте проверяется, запущен ли Apache, но отправляем результат проверки в /dev/null. Затем проверяем, не равен ли код выхода нулю, поскольку это означает, что команда ps не получила ответа. Если код выхода не равен нулю, сценарий сообщает пользователю, что Apache не запущен.
#!/bin/bash
ps -ef | grep apache2 > /dev/null
if [ $? != 0 ]; then
echo Apache is not running
exit
fi
Все, кто работали с serial интерфейсами, сталкивались с такими вещами как DCE и DTE. Сегодня постараемся разобраться с этими терминами.
Serial интерфейсы используются при подключении роутера к глобальной сети WAN (Wide Area Network) . При этом подключение обычно осуществляется через какое-нибудь устройство провайдера – чаще всего это модем или CSU/DSU (Channel Service Unit/Data Service Unit) .
В этой схеме модем или CSU/DSU является DCE (Data Communication Equipment) устройством – то есть оборудованием провайдера, которое определяет скорость канала, преобразует и передает данные от оборудования клиента. А со стороны клиента передает эти данные DTE (Data Terminal Equipment) устройство, которое обычно является маршрутизатором или компьютером.
Однако в лаборатории мы можем собрать схему, где маршрутизатор может выступать не только в роли DTE, но и в роли DCE.
В этом случае нам нужно определить какую роль будет иметь каждый из маршрутизаторов. Это будет зависеть от serial кабеля, которым мы будем подключать маршрутизаторы – один конец используется для подключения к DCE, а другой к DTE. Обычно на кабелях не написано, какую роль имеет каждый из концов, и поэтому тут нам нужно будет воспользоваться командой show controllers [интерфейс].
Router1>en
Router1#show controllers serial 2/0
Interface Serial2/0
Hardware is PowerQUICC MPC860
DCE V.35, no clock
idb at 0x81081AC4, driver data structure at 0x81084AC0
Здесь в третьей строчке вывода видно, что к роутеру подключен кабель DCE концом. Это значит, что он исполняет роль DCE, а другой роутер – роль DTE.
Теперь, когда мы узнали, кто, есть кто, нам нужно вручную задать скорость работы канала на DCE, поскольку в роли DCE у нас маршрутизатор, а не модем или CSU/DSU, как в реальных сетях.
Для этого на интерфейсе мы используем команду clock rate [скорость в битах/с]
Router1#conf t
Router1(config)#int se 2/0
Router1(config-if)#clock rate ?
Speed (bits per second
1200
2400
4800
9600
19200
38400
56000
64000
72000
125000
128000
148000
250000
500000
800000
1000000
1300000
2000000
4000000
<300-4000000> Choose clockrate from list above
Router(config-if)#clock rate 64000
После этого можно продолжать конфигурацию. Стоит заметить, что команда clock rate не применится на DTE интерфейсе.
Router2(config)#int se2/0
Router2(config-if)#clock rate 64000
This command applies only to DCE interfaces
Линукс - как много в этом слове эмоциональной и смысловой нагрузки. А как много разных дистрибутивов входят в это семейство И частенько требуется понять, какая конкретно версия установлена и этому помогает пакет systemd, который в настоящее время имплементирован во многие дистрибутивы.
Самый простой способ проверить версию Linux это просто использовать hostnamectl команду без каких-либо аргументов. Эта команда возвращает название дистрибутива, версию и кодовое название вместе с конкретной версией ядра.
Довольно распространенной ошибкой является называть все семейство GNU/Linux систем просто Linux-ом. Важный момент в том, что Linux - это только ядро, а GNU - непосредственно сама система в виде набора скомпилированных библиотек и системных инструментов. GNU и Linux должны работать в тандеме для того, чтобы операционная система корректно работала. Так как одно не может существовать без другого, корректнее называть эту связку GNU/Linux или Lignux.
Дополнительные способы определения
Системы управления пакетами в Linux
Если команда выше вам не помогла, следующим шагом будет проверка установленного пакетного менеджера, так как вероятность, что один из трех пакетных менеджеров все-таки установлен крайне высока.
rpm - пакетный менеджер для систем RedHat
dpkg - пакетный менеджер для систем Debian
pacman - пакетный менеджер для систем Arch
Таким образом, если система использует rpm, то скорее всего у вас используется RHEL, CentOS, Fedora и т.д. Если deb, то скорее всего это Ubuntu, Debian, Mint. И соответственно в случае pacman это будет Arch или Manjaro (и им подобные).Для определения пакетного менеджера нужно ввести команду
$ for i in $( echo rpm dpkg pacman ); do which $i; done 2 /dev/null
В случае deb и rpm она вернет следующее: /usr/bin/dpkg и /bin/rpm соответственно.
Проверка версии CentOS/RHEL
Самый простой способ проверки версии CentOS это чтение файла /etc/centos-release с помощью команды cat /etc/centos-release
В свою очередь для RHEL нужно будет прочитать файл /etc/redhat-release
Команду соответственно меняем:
cat /etc/redhat-release
Думаю логика здесь понятна, для Fedora нужно будет поменять команду на fedora-release - проще некуда.
Проверка версии Debian, Mint и Ubuntu
Для Debian - подобных систем нужно прочесть файл /etc/issue:
cat /etc/issue
Проверка версии Arch
Проверять версию Arch не имеет смысла, так как каждый раз при запуске команды pacman -Suy ваша система автоматически обновляется до последней версии.
Проверка системных параметров
Проверка системной архитектуры и версии ядра
Самый простой и популярный способ определения системной архитектуры и версии ядра Linux это использование команды uname с аргументом -a.
То есть команда будет выглядеть следующим образом:
uname - a
В выводе будет указана версия ядра и разрядность архитектуры.
Проверка архитектуры ЦПУ
Самым простым и распространенным способом является команда:
lscpu
Как видно из вывода, вместе с моделью процессора и его частотой также видна его разрядность и еще много различных параметров.