Настройка окружения в cli. wsl / windows terminal

Настройка статического IP — адреса на сервере Ubuntu 20.04

Начиная с Ubuntu 17.10 и более поздних версий, сетевое взаимодействие контролируется функцией Netplan. Файлы конфигурации для Netplan находятся в каталоге   и написаны на языке YAML. В этом каталоге вы найдете файлы конфигурации YAML с пометкой либо, либо .

Однако, если вы используете облачный экземпляр Ubuntu, то есть вероятность того, что он управляется cloud-init. Который автоматически присваивает ему IP адрес с помощью протокола DHCP. Прежде чем мы продолжим, вам необходимо отключить облачную инициализацию. Для этого откройте файл конфигурации  в каталоге

Установите «network» в положение «disabled«.

Сохраните изменения и завершите работу. Затем перейдите к файлу конфигурации Netplan. В моем случае у меня есть файл .

Как настроить статический IP адрес в Ubuntu

В файле конфигурации мы видим директиву «network, которая содержит 2 элемента. Первый — это «ethernets«, который определяет сетевой интерфейс, а второй-версия средства визуализации, которое является «systemd-networkd«. Для экземпляров без графического интерфейса и NetworkManager для рабочего стола Ubuntu ( с графическим интерфейсом).

Файл конфигурации «network»

Нам требуется установить значение «dhcp4» на «no«, чтобы отключить протокол DHCP, и указать статический IP-адрес интерфейса следующим образом.

Чтобы назначить статический IP-адрес интерфейсу , измените файл следующим образом:

  • Укажите статический IP адрес сервера в разделе : укажите IPv4 адрес, который будет назначен сетевому интерфейсу.
  • Далее укажите шлюз.
  • В разделе  укажите DNS или IP — адреса серверов имен. Мы указали DNS Google, который имеет адрес 8.8.8.8 и IP-адрес маршрутизатора.

Настройка статического IP Ubuntu Linux

Сохраните файл YAML и выйдите. Чтобы применить внесенные изменения, выполните команду:

Вы можете использовать команду ifconfig или ip, чтобы убедиться, что ваш сетевой интерфейс настроен на использование статического IP-адреса, настроенного несколько минут назад.

Проверка сетевого интерфейса командой ifconfig

Кроме того, вы можете использовать команду Показать IP-маршрут для отображения новых маршрутов в вашей системе.

Команда ip route show

Отлично! Мы успешно настроили статический IP-адрес на сервере Ubuntu в терминале. Давайте теперь посмотрим как вы можете сделать то же самое на рабочем столе Ubuntu 20.04

Структура сервера LTSP

Что мы должны знать — это компоненты из которых состоит сервер:

  • DHCP-сервер — используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux. По дефолту используется dnsmasq, но можно использовать и isc-dhcp-server.
  • iPXE — сетевой загрузчик, который показывает меню начальной загрузки клиента.
  • mksquashfs — создает сжатую копию образа, который будет использоваться при работе клиента.
  • TFTP-сервер — отдает по tftp-протоколу загрузчик, ядро и главный конфиг .
  • NFS /NBD — Транслирует образ системы в сеть.
  • SSH-сервер — используется для авторизации пользователей и передачи их домашних каталогов на терминальные станции.

Главное

Начнём с того, как запустить программу, отвечающую за ввод команд. Следует, кстати, понимать, что терминал и консоль — разные вещи; терминал — приложение, выполняющее роль консоли, которое оснащено графической оболочкой и различными удобствами. Итак, открыть терминал мы можем через главное меню либо нажатием клавиш ctrl + alt + T.

Разберём некоторые особенности и специфические черты, которые даёт нам Bash. Bash — это командная оболочка, которая используется по умолчанию. На самом деле, есть и более удобные. Но для начала разберёмся с этой.

  1. Копировать и вставлять здесь нужно по-другому. Подойдут два сочетания клавиш: Ctrl + Insert/Shift + Insert — копирование/вставка соответственно, а также Ctrl + Shift + C/Ctrl + Shift + V.
  2. Как и любой другой терминал, этот обладает автодополнением. Для этого мы вводим первые несколько букв команды, а затем нажимаем Tab. Например, apti автоматически допишется до aptitude. Двойное нажатие Tab выводит список всех команд, которые начинаются с этих букв.
  3. Терминал с самого запуска находится в какой-либо директории. Узнать, в какой именно, можно по верхней строчке, которая называется приглашением. Этот набор символов: «:~$» — означает, что мы находимся в домашней директории. Об этом также говорят имя компьютера с именем пользователя, разделённые знаком «@». 
  4. Перемещаться по папкам удобно при помощи команды cd. Это, по сути, единственная команда, которая не является программой. Все остальные же, на самом деле, запускают те или иные утилиты. После cd мы набираем название папки, которая расположена в этой же директории, либо путь к ней. Автодополнение здесь тоже работает. Команда cd без аргументов отправит нас в домашний каталог. «cd . .» отправит в родительскую папку, «cd -» перемещает в предыдущий каталог.
  5. Все команды в Linux очень чувствительны к регистру. Это значит, что Home и home могут восприниматься терминалом по-разному. Поэтому будьте внимательны, когда пишете какую-либо команду.
  6. Команда history показывает историю введённых команд. Там каждая наша запись будет под определённым номером. Чтобы быстро её повторить, достаточно ввести вот такую комбинацию: !11 Вместо 11 используем нужный нам номер.

Другая оболочка

Использовать можно не только стандартную командную оболочку Bash. Разработана она была для UNIX-систем ещё в далёком 1989 году. Со всеми задачами, которые на неё возложены, она справляется прекрасно, однако всё это можно выполнять более эффективно, если установить подобный софт поновее.

Одна из альтернатив — Friendly interactive Shell, или просто fish. Она гораздо моложе своей предшественницы — первый выпуск был в 2005 году. Возможностей у неё, соответственно, побольше.

  • Подсветка синтаксиса. Разными цветами будут подсвечиваться правильно введённые команды и те, о которых fish ничего неизвестно.
  • Удобный поиск ранее введённых команд. Вводим первые несколько символов, а стрелкой вверх на клавиатуре ищем подходящие варианты для продолжения.
  • Автодополнение работает не только с командами и адресами, но также с опциями команд.
  • Все управляющие конструкции легко завершить введённым словом end.
  • В целом fish более доступна для понимания, особенно новичкам. А опытные пользователи найдут дополнительные возможности, которых на Bash нет.

Установить fish довольно легко.

  1. Вводим команду: sudo apt install fish
  2. Открываем Параметры профиля: правой кнопкой мыши по терминалу в выпавшем меню выбираем «Профили».
  3. Находим вкладку «Команда».
  4. Ставим галочку «Запускать другую команду вместо моей оболочки».
  5. Вводим в строку: fish: /usr/bin/fish:

Отныне эта оболочка будет стоять в терминале по умолчанию. Если же вы хотите просто попробовать fish, то можно вбить в консоли следующее:

Оболочка отключится после перезагрузки терминала. Ещё одним удобством является настройка fish через веб-интерфейс. Для этого нужно ввести:

Создание собственной командной строки Bash с помощью EZ Prompt

Не хотите использовать фреймворк Bash-It, но по-прежнему хотите настраиваемую подсказку? Проверить Подсказка EZ вместо. Это веб-инструмент, который позволяет любому повозиться и создать красивую пользовательскую подсказку Bash.

Лучшая часть EZ Prompt заключается в том, что она поддерживает такие вещи, как элементы состояния, дополнительные символы, позволяет пользователям изменять порядок представления элементов оболочкой Bash и даже позволяет настраивать параметры цвета!

Когда вы сгенерировали собственное приглашение, отредактируйте ~ / .bashrc:

nano ~/.bashrc

Внутри текстового редактора Nano просто вставьте только что сгенерированный код и отправляйтесь в путь.

А играть в Ubuntu можно?

Нативные игры. Их не счесть

Когда-то давно Linux не стал убийцей Windows именно из-за отсутствия игр. С приходом электронных магазинов дистрибуции все изменилось.

Можно скачать 8 DVD с нативными играми, существующими только для NIX-подобных систем. Среди них платформеры, квесты, небольшие инди-шутеры.

Есть даже специальные сборки Ubuntu с интегрированными играми. Смотрится отчаянно, но многие действительно фанатеют от платформеров.

Популярных и знакомых немного

Нужны ли такие, если есть Steam? Тут можно найти почти все крупные проекты прошлых времен и массу свежих игр.

Исключение составляют ААА-проекты высшего эшелона: условный Cyberpunk 2077 или Senua искать в NIX-версиях бесполезно. Но они работают через Wine, если хватает ресурсов.

Редактирование прав

Все, что нужно для разрешения проблем, связанных с правами в Linux.

sudo — выдает права суперпользователя. Используется перед любой командой, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Fedora, введем: sudo dnf update. При этом система запросит пароль администратора.

sudo su — на время превращает все вводимые в терминал команды в команды суперпользователя. Пригодится, если предстоит вносить много изменений в системные файлы, которые нельзя редактировать без соответствующих прав.

sudo !! — запускает предыдущую команду от имени администратора. Пригодится, если уже ввели команду, требующую прав суперпользователя, но забыли их затребовать. Не придется вводить весь текст заново. Достаточно сокращенной версии.

chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором опций, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.

chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий: chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать. На примере этого может выглядеть следующим образом: есть пользователь Timeweb, которому я хочу передать права на файл timeweb-file.txt с рабочего стола. Сделаю это командой:

chown Timeweb ~/Desktop/timeweb-file.txt

Управление процессами

ps

— выводит информацию о выполняемых в данный момент процессах.

ps 

ps -fp 1256 1886 1887
— полная информация о процессах с id 1256, 1886, 1887.

ps aux
— выводит полный список запущенных процессов в системе.

ps -ejH
— вывести дерево процессов.

ps axjf
— вывести расширенное дерево процессов.

ps -p 15 -o comm=
— вывести имя процесса по id.

ps -C sshd -o pid=
— вывести id процесса по его имени.

ps axo pid,pcpu,comm
— вывести информацию о процессах в пользовательском формате.

pstree

— вывод дерева процессов.

pstree 

pstree -p
— вывод дерева процессов совместно с их идентификаторами PID.

top
— выводит информацию в реальном времени о запущенных процессах в системе.

jobs
— вывод запущенных задач, остановленных или выполняемых в фоновом режиме.

bg

— перевод задачи (остановленной) на выполнение в фоновом режиме.

bg 

bg
— перевод последней (остановленной) задачи в фоновый режим

bg %2
— перевод задачи %2 в фоновый режим.

fg

— вывод задач (остановленных) из фонового режима работы на передний план.

fg 

fg
— перевод последней фоновой (остановленной) задачи на передний план.

fg %3
— перевод задачи 3 на передний план.

процесс &

— запуск процесса в фоновом режиме.

firefox &
— запуск браузера Mozilla Firefox в фоновом режиме.

kill

— принудительное завершение работы процессов.

kill 

kill 6478
— послать сигнал Terminate (завершить) процессу с идентификатором PID=6478.

kill %2
— послать сигнал Terminate (завершить) задаче под номером 2 в списке jobs.

kill -2 45211
— послать сигнал Interrupt (прервать) процессу с идентификатором PID=45211. Аналог работы Ctrl + C.

kill -19 6478
— послать сигнал Stop (приостановить). Грубо говоря, процесс ставится на паузу.

kill -18 6478
— послать сигнал Continue (продолжить). Грубо говоря, снять процесс с паузы.

kill -28 6478
— послать сигнал Window Changed (сменен размер окна).

kill -20 6478
— послать сигнал Stop (остановить). Аналог работы Ctrl + Z.

kill -l
— получить полный список доступных сигналов.

killall

— принудительное завершение работы для нескольких одноименных процессов.

killall 

killall -9 top
— принудительное завершение работы для всех процессов с именем top.

Темы Bash-It

Многие разные темы для терминала поставляются с фреймворком Bash-It. Все эти темы устанавливаются локально, все, что нужно сделать пользователю — это изменить одну строку в ~ / .bash_profile.

Чтобы вывести список всех установленных тем, сначала поместите компакт-диск в каталог тем.

cd ~/.bash_it/themes/

Чтобы показать все доступные темы, выполните:

ls

Это распечатает список всех тем в каталоге тем. Отсюда найдите название темы, которую хотите попробовать.

Активируйте любую тему, отредактировав ~ / .bashrc:

nano ~/.bashrc

Найдите строку: export BASH_IT_THEME = и замените текст между двумя кавычками, чтобы указать фреймворку использовать новую тему. Нажмите Ctrl + O, чтобы сохранить.

Чтобы новая тема стала активной, закройте все окна терминала и снова откройте их.

Редактируем конфиг SSH

Откроем для редактирования конфигурационный файл SSH:

sudo nano /etc/ssh/sshd_config

Находим строчку . Раскомментируем её (убрав знак решетки (#)) и выставим ему значение . Таким образом мы запретим авторизацию под root пользователем:

PermitRootLogin no

Находим строчку . Раскомментируем её. Так мы активируем возможность авторизации с помощью SSH-ключа:

PubkeyAuthentication yes

Находим строчку . Раскомментируем ее и выставим значение no. Так мы запретим авторизацию по паролю:

PasswordAuthentication no

В самом конце файла с новой строчки вставим команду:

// Здесь изменить на вашего пользователя!
AllowUsers john

Сохраняем файл и выходим из редактора. Перезапускаем SSH:

systemctl restart ssh

Теперь если попытаться авторизоваться под или каким-либо другим пользователем, то сервер выдаст ошибку доступа.

Эмулятор терминала

Горячие клавиши

В Ubuntu для открытия терминала по умолчанию используется комбинация горячих клавиш CTRL+ALT+T.

После нажатия комбинации откроется окно с приглашением терминала от имени текущего пользователя — это значит, что команды в данном терминале будут выполняться от имени того, кто в данной момент авторизован в системе.

Для исполнения команд от имени суперпользователя необходимо перед командой прописывать sudo. Это специальная программа, которая позволяет подменить пользователя для выполнения вслед идущей команды. По умолчанию в Ubuntu она подменяет пользователя на суперпользователя (root), чтобы можно было работать в терминале с его привилегиями. Это необходимо, например, для установки программ через apt.

При использовании sudo необходимо будет ввести пароль администратора системы, который был указан при ее установке (в большинстве случаев — пароль единственного пользователя системы).

На заметку: Полезные хоткеи в терминале

Использование команды «Выполнить»

В системе также есть специальный диалог, который открывается по нажатию комбинации клавиш ALT+F2 и позволяет запустить произвольную программу введя ее название.

Для различных графических окружений название стандартного эмулятора терминала будет различным, приведу самые распространенные:

  • Gnome —
  • Xfce —
  • Kde —
  • Unity —
  • Эмулятор терминала, установленный во всех версиях *buntu по умолчанию —

Меню приложений

В любой системе эмулятор терминала можно найти и с помощью меню приложений. Это то меню, из которого пользователь запускает свои программы, такие как браузер или текстовый редактор. В меню терминал будет иметь название «Эмулятор терминала» или «Терминал» или же «Terminal emulator» — по-английски.

Я использую окружение рабочего стола XFCE и приведу пример в его меню приложений:

1 896

Баш-Оно

Лучший и самый простой способ улучшить оболочку Bash — использовать фреймворк Bash-It. Проще говоря: это набор скриптов и инструментов, специально созданных для добавления вещей в Bash.

Сам по себе Bash очень устарел и может потребовать незначительных улучшений — особенно в отделе внешнего вида. Чтобы запустить этот фреймворк, лучше всего установить код прямо из Github. Здесь и там существуют пакеты, позволяющие установить инструмент в нескольких различных дистрибутивах Linux, но по большей части они действительно не нужны. В основном потому, что ничего не компилируется, а перемещаются просто файлы.

Установка

Как упоминалось ранее, для работы фреймворка Bash-It требуется пакет Git. Следуйте инструкциям, чтобы запустить Git в вашей системе:

Другой

Git очень хорошо известен. Даже если вашей операционной системы нет в списке выше, велика вероятность, что вы все равно сможете ее установить. Просто откройте терминал и используйте диспетчер пакетов вашего дистрибутива для поиска «git».

После установки Git запустите процесс установки Bash-It:

git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it

Код у нас есть локально, и он легко устанавливается. Нет необходимости брать другие файлы, но еще не все сделано. Необходимо запустить файл install.sh, чтобы Bash-It мог взять профиль Bash по умолчанию и сделать резервную копию (таким образом, в случае чего-нибудь плохого, пользователь может восстановить резервную копию и начать заново).

Запустите сценарий после установки как обычный пользователь. Не запускайте от root. Это заменит ваш пользовательский Bashrc / Bash_profile.

sh ~/.bash_it/install.sh

Запускать такой сценарий — хорошо. Он все пройдет и сделает резервную копию. Однако, если вы заинтересованы в использовании некоторых плагинов, таких как псевдонимы и т. Д., Запустите сценарий после установки с этим:

~/.bash_it/install.sh --interactive

После запуска этого скрипта фреймворк Bash-It запускается в системе. Обновите его, перейдя в терминал и используя эту команду:

bash-it update

Кому не стоит переходить на Linux

Есть три весомых причины не переходить на Linux и остаться на “винде”.

Во-первых, если вы играете в топовые игры. Только крутые современные проекты могут удержать вас на Windows, поиграть в популярные сетевые игры вроде CS:GO, Dota 2, Team Fortress 2 или War Thunder можно и на Linux. Есть для бесплатной ОС как порты так и официально выходящие версии многих стратегий, симуляторов, аркад и экшенов.

Если игры для вас не самое главное и вы не против сыграть во что-то 2-5 летней давности, то можно смело переходить на Linux.

Во-вторых, если вы используете специализированное ПО, которые работает только под Windows. Всевозможные узконаправленные приложения, бухгалтерские или управленческие программы, ПО для взаимодействия с банками хоть и устанавливаются на Linux с определенными костылями, рисковать стабильностью рабочих инструментов вряд ли кто-то захочет.

Не радостная ситуация и с распространенным программным обеспечением для профессионалов. То же Photoshop или Pixelmator на Linux заменить практически не чем. Лучший из графических редакторов GIMP имеет довольно скромные возможности, остается только пытаться запустить нужное приложение через среду WINE.

В-третьих, если вы используете редкое оборудование. Подавляющее большинство компонентов компьютера без труда подружатся с Linux и будут работать без проблем. Однако, специфические графические планшеты, карты нелинейного монтажа или сложная аудиоаппаратура, с большой долей вероятности, просто на заведутся.

Если же вы используете популярные модели железа, ситуацию исправят несколько команд в терминале.

Во всех остальных случаях можете смело качать дистрибутив Linux и пробовать.

Работа с файлами

Начну рассказ наверно с того, что в любой момент времени работы в терминале вы находитесь в некотором каталоге. При запуске терминала текущей директорией является домашний каталог пользователя, но потом вы конечно можете её поменять.

Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:

Текущий каталог — это то, что между символами и

Кстати, обратите внимание, перед стоит имя пользователя и имя компьютера, разделённые символом. Но когда вы запускаете терминал, то между и стоит символ :

При запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ — это синоним адреса домашней папки текущего пользователя. Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как

/home/логин_пользователя

У меня это .

Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда , выполните, например, команду

cd Музыка

Видите, текущее местоположение изменилось:

На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть и — эта два совершенно разных имени.

После команды можно указывать как полные пути относительно корня, так и относительные, отсчитывающиеся от текущего каталога. В примере выше я использовал относительный путь. А вот полный:

cd /home/user2/Музыка

Хочу сразу обратить внимание на несколько важных особенностей. Во-первых, при наборе путей так же работает автодополнение по Tab, это очень удобно

Во-вторых, использовать различные небуквенные символы и пробелы напрямую при наборе путей нельзя. Например, для того, чтобы перейти в каталог, содержащий в имени символ пробела, надо при наборе пути к такому каталогу перед пробелом поставить символ обратного слеша . Вот так:

cd Каталог\ с\ плохими\ символами\ в\ имени\<\>

Установка обратного слеша перед некоторыми символами называется экранированием. Кстати, при использовании автодополнения все слеши расставляются автоматически. Кроме того, можно просто заключить путь в двойные кавычки:

cd "Каталог с плохими символами в имени<>"

Но в этом случае автодополнение работать не будет.

Заменитель адреса домашнего каталога можно использовать и при наборе путей, например:

cd ~/Музыка

А для перемещения непосредственно в домашний каталог достаточно просто набрать без аргументов.

Для перемещения на каталог выше можно использовать команду

cd ..

Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так:

cd ../..

В принципе, всё можно как угодно комбинировать, в разумных пределах, конечно. Ну и напоследок про . Переместиться в предыдущий посещённый каталог можно командой

cd -

Как перемещаться по каталогам в первом приближении вроде разобрались, теперь же я расскажу про некоторые другие полезные операции. Посмотреть содержимое текущего каталога можно командой :

Обычно командам можно передавать различные модификаторы, например:

Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога.

Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имен файлов в качестве аргументов. Например, команда показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла , лежащего в вашем домашнем каталоге, то вы могли бы выполнить команду

cat ~/text.txt

Прочее

Это бонус для развлечения. Шутка от разработчиков Linux, не несущая пользы.

cowsay — заставляет цифровую корову повторить текст, который вы ей передали. Как echo, только от лица коровы.

fortune | cowsay — награждает корову философским интеллектом и дает ей возможность делиться с вами умными цитатами.

cowsay -l — демонстрирует всех животных, которые могут с вами пообщаться в том случае, если вам почему-то не приглянулась корова.

sudo название менеджера пакетов install fortunes fortune-mod fortunes-min fortunes-ru — учит животных говорить на русском.

Здесь, пожалуй, и остановимся. Ключевые SSH-команды сервера мы рассмотрели. Их хватит для навигации и выполнения базовых операций. Остальное уже на ваших плечах и полностью зависит от проекта, над которым вы работаете.

Установка без бубнов. Почти

Системные требования текущей домашней версии Ubuntu 19.10: двухядерный процессор, 4 Гб оперативной памяти, 25 Гб места на жестком диске, доступ и интернету и USB-порт для установки.

Загрузка с USB-носителя запускает live-систему. Она позволяет детально ознакомиться с возможностями и немного поработать в окружении. Любые изменения настроек при таком запуске не сохраняются, поэтому для нормальной работы необходима стационарная установка.

Первая попытка установки не удалась: Ubuntu требует создания отдельного раздела собственного формата, не читаемого из-под других систем.

Создать его можно в установочном меню на любом диске с достаточным количеством свободного места. Загрузку нескольких систем обеспечивает автоматически создаваемый мультизагрузочный сектор с графическим меню.

Стоит отнестись предельно внимательно к этому моменту: несколько дисков в компьютере и ошибочный выбор приведет к невозможности запуска как новой, так и предыдущей системы. Неприятный сюрприз, хотя и очень быстро решаемый.

Ничего не меняется как при запуске из VirtualBox, так и при работе с жесткого диска. Решаемо

При этом FAT/NTFS-диски читаются даже во время загрузки

Но прямое обращение к ним в системе требует дополнительной настройки, поэтому если не хочется связываться — лучше все важное разместить на системном или специально размеченном диске

Для рядового пользователя норм, для гика — безрадостно.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: