Сообщество - GNU/Linux

GNU/Linux

1 151 пост 15 633 подписчика

Популярные теги в сообществе:

36

Будни техподдержки

Из запомнившегося за последние несколько дней:


- вытащить патчкорд и не суметь его вставить обратно

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

- упорно игнорировать регистр в логине/пароле

- у меня кабель оборвался, ну я его скрутил, но все равно не работает (у человека оптика)

- везунчик, отключенный по оплате с -0.02 на счету. Жду когда будет с -0.01

- у меня поврежден кабель RG-45

- (авария РЭС, без света половина района) привезите генератор и запитайте мне дом (это все с кучей мата)

- (не наш абонент) вы же все равно техподдержка, почините мне инет!


P.S. я помню что обещал по поводу свитчей; пока времени/настроения нет. Извините.

64

Text-Fu [Часть 2]

4. конвейер (pipeline) и разделитель (tee).

Давайте перейдем к водопроводу, ну, почти. Давайте попробуем команду:

$ ls -la /etc

Вы должны увидеть очень длинный список элементов, который довольно сложно прочитать. Вместо перенаправления вывода в файл, не было бы лучше вывести вывод в другую команду, например, less? Можем и так!

$ ls -la /etc | less

Оператор конвейера |, который представлен вертикальной чертой, позволяет нам получать stdout команды и создавать stdin для другого процесса. В этом случае мы получили stdout команды ls -la /etc, а затем направили (piped) в команду less. Команда конвейера чрезвычайно полезна, и мы будем использовать ее всегда.

Что, если бы я захотел вывести вывод моей команды в два различных потока? Это возможно с командой tee (разделитель):

$ ls | tee peanuts.txt

Вы должны увидеть вывод ls на вашем экране и, если вы откроете файл peanuts.txt, вы должны увидеть ту же информацию!

Упражнения:

Выполните эту команду:

$ ls | tee peanuts.txt banan.txt

5. env (Environment / среда)

Запустите следующую команду:

$ echo $HOME

Вы должны увидеть путь к вашей домашней директории, моя выглядит как /home/pete.

Что насчет этой команды?

$ echo $USER

Вы должны увидеть ваше имя пользователя!

Откуда эта информация берется? Она берется из переменных среды (environment variables).  Вы можете увидеть их, написав

$ env

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

Вот короткий пример:

Одна, особенно важная, переменная - переменная PATH (путь). Вы можете обращаться к этой переменной, добавив $ перед именем переменной, как тут:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin

Это вернет список путей, разделенных двоеточием, которые ваша система ищет при запуске команды. Давайте скажем, что вы вручную скачали и установили пакет (package) из интернета, поместили его в нестандартную директорию и хотите запустит его командой, вы пишите $ coolcommand и консоль сообщает вам, что команда не найдена. Это довольно глупо искать исполняемый файл (binary) в каталоге, зная, что он существует. Вот, что происходит, когда переменная $PATH не проверяет этот каталог на наличие исполняемого файла, показывая ошибку.

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

Упражнения:

Какой будет вывод этой команды? Почему?

$ echo $HOME

6. cut (вырезать)

Мы собираемся изучить несколько полезных команд, которые вы можете использовать для обработки текста. Перед тем, как мы начнем, давайте создадим файл, с которым мы будем работать. Скопируйте и вставьте следующую команду, также добавьте TAB между lazy и dog (нажмите Ctrl+V+TAB).

Первая команда, о которой мы узнаем - cut. Она извлекает порции текста из файла.

Чтобы извлечь содержимое списка символов:

$ cut -c 5 sample.txt

Это выведет 5й символ каждой строки файла. В этом случае, это "q", обратите внимание, что пробелы также считаются за символ.

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

$ cut -f 2 sample.txt

Флаг -f (field) вырезает текст, основываясь на полях, по-умолчанию, он использует TABы, как ограничители, то есть все, что разделено TAB считается полем. Вы должны увидеть dog, как вывод.

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

$ cut -f 1 -d ";" sample.txt

Это изменит ограничитель TAB на ";" и, так как мы обрезаем первое, поле, результат должен быть "The quick brown".

Показать полностью
76

Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki

Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes

Всем привет!


Так получилось что я активно слежу за разработкой Elementary OS. В этот раз команда Elementary OS порадовала нас бета версией нового релиза «elementary OS 0.4 Loki» базирующегося на Ubuntu 16.04 LTS.

Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes

Разработчики обещают нам кучу новых фич и багов для пользователей и девелоперов, но предостерегают — бета есть бета и её не стоит использовать в каком либо продакшене. ОС (или дистрибутив?) находится в стадии активной разработки и постепенно будет обрастать все новыми и новыми функциями.

Что новенького нам приготовили:


1. Базовый репозиторий Ubuntu 16.04 LTS (Gtk 3.18, Vala 0.32, Linux 4.4)

2. Использование GtkPopoverMenu — нативные красивые скролбары

3. Улучшенный нотификации и панель индикаторов

4. Отказ от использования небезопасных репозиториев (по умолчанию нет утилит для работы с deb* пакетами и добавления сторонних репозиториев) и переход к модели контейниризированных изолированных приложений.

5. Новые красивые иконки и стили для GTK!



Пробуйте, пишите в багтрекер и развивайте свободный софт! Ссылка для загруки https://elementary.io/en/developer


Несколько скриншотов ОС:

Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes
Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes
Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes
Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes
Состоялся релиз бета-версии дистрибутива Elementary OS 0.4 Loki Linux, Elementary Os, Длиннопост, Geektimes

Upd: текст взят с https://geektimes.ru/post/277292/

Показать полностью 6
29

Ещё немного про консоль.

Я решил рассказать немного про используемые мной полезности.

Во-первых, только что прочитал про рекомендацию использовать питон в качестве калькулятора.

Если нужно что-то с точностью до целых, то не нужно никакого питона:

echo $((10+15))

echo $((15/2))

Последнее выдаст 7.

Для большей точности, честно говоря, я бы рекомендовал консоль браузера (f12 из него), там оно как-то мощнее и удобнее для математики :)


Другая полезная штука, которую я где-то спёр — сделать алиас sudo !! на что-нибудь. У меня это fuck :)

То есть в консоли можно писать что-то в духе:

apt-get install -y screenfetch

fuck


И про то, как сохранять свои макросы/шорткаты/ещё что: есть файлик ~/.bashrc. Он запускается при запуске баша. То есть всё необходимое стоит писать в него.


Не знаю, что ещё накапитанить, для начала будет так :)

96

Text-Fu [Часть 1]

Прошлый курс довольно неплохо был воспринят аудиторией нашего сообщества. Поэтому решил далее перевести курс по базовой обработке текста. Кроме того, прошлый перевод теперь доступен на самом linuxjourney.com! Приятного чтения.

1. stdout (Standard Out / стандартный вывод)

Сейчас мы знакомы с многими командами и их выводом, и теперь нам предстоит перейти в следующую тему I/O (input/output, ввод/вывод) потоков. Давайте запустим следующую команду и обсудим, как она работает.

$ echo Hello World > peanuts.txt

Что только что произошло? Давайте проверим директорию, откуда вы запустили эту команду, и вот вы должны увидеть файл, названный peanuts.txt, посмотрим внутрь этого файла и увидим строку Hello World. В этой команде произошло множество вещей, давайте разберем их.

Во-первых, разберем эту часть:

$ echo Hello World

Мы знаем, что эта команда выведет на экран Hello World, но как? Процессы используют I/O потоки, чтобы получить или вернуть вывод. По-умолчанию команда echo берет ввод (стандартный ввод или stdin (standard input)) с клавиатуры и возвращает вывод (стандартный вывод или stdout(standard output)) на экран. Так вот, это то, почему когда вы вводите echo Hello World в вашей консоли, вы получаете Hello World на вашем экране. Однако, перенаправление I/O позволяет нам изменить это поведение по-умолчанию, давая нам большую гибкость при манипуляции с файлами.

Давайте перейдем к следующей части нашей команды:

> - оператор перенаправления, который позволяет нам изменять направление стандартного вывода. Он позволяет нам направить вывод echo Hello World в файл, вместо экрана. Если файл не существуют, то таковой будет создан. Однако, если он существует, то он будет перезаписан (вы можете добавить флаг для предотвращения этой ситуации в зависимости от оболочки, которую вы используете).

Вот так работает перенаправление stdout!

Давайте скажем, что мы не хотим перезаписывать наш peanuts.txt, к счастью, существует оператор перенаправления, такой как >>:

$ echo Hello World >> peanuts.txt

Это добавит Hello World в конец файла peanuts.txt, если файла еще не существует, то он будет создан, также как и в случае с оператором >!

Упражнения:

Попробуйте пару команд:

2. stdin (Standard Input / стандартный ввод)

В предыдущем уроки мы узнали, что у нас есть различные stdout потоки, которые мы используем, такие как файл или экран. Существуют также различные потоки стандартного ввода (stdin / standart input, stdin / стандартный ввод). Мы знаем, что у нас есть stdin с таких устройств, как клавиатура, но мы можем использовать файлы, вывод из других процессов, а также терминал, давайте посмотрим на пример.

Мы будем использовать файл peanuts.txt из предыдущего урока, вспомните, что у нас есть текст Hello World в нем.

$ cat < peanuts.txt > banana.txt

Точно также, как и в случае с > для перенаправления stdout, мы можем использовать < для перенаправления stdin.

Обычно, используя команду cat, вы посылаете в нее файл и этот файл становится stdin, в этом случае мы перенаправили peanuts.txt, чтобы он стал нашим stdin. Затем перенаправили вывод cat peanuts.txt, который будет Hello World, в другой файл, названный banana.txt.

3. stderr (Standard Error / стандартная ошибка)

Давайте попробуем что-нибудь другое, давайте попробуем вывести список содержимого директории, которая не существует на вашей системе и перенаправим вывод в файл peanuts.txt снова.

$ ls /fake/directory > peanuts.txt

Что вы должны увидеть:

ls: cannot access /fake/directory: No such file or directory

Сейчас вы возможно думаете, должно ли это сообщение отправиться в файл? Существует другой I/O поток, который называется стандартной ошибкой (stderr / standart error). По-умолчанию stderr отправляет его вывод на экран, но это совершенно другой поток, по отношению к stdout. Так что вам нужно перенаправить его другим способом.

К сожалению, редиректор не такой приятный, как < или >, но довольно близок к этому. Нам нужно использовать дескрипторы файлов. Дескриптор файла - неотрицательное число, которое используется для доступа к файлу или потоку. Мы узнаем об этом подробнее позже, но сейчас вам достаточно знать, что дескрипторы файлов для stdin, stdout и stderr  - 0, 1 и2 соответственно.

Так вот, если мы хотим перенаправить наш stderr в файл, мы можем использовать это:

$ ls /fake/directory 2> peanuts.txt

Вы должны увидеть только stderr сообщения в peanuts.txt.

Что если я хочу увидеть stderr и stdout в одном файле? Это возможно, с дескрипторами файлов:

$ ls /fake/directory > peanuts.txt 2>&1

Это отправит результат ls /fake/directory в файл peanuts.txt, а затем перенаправит stderr в stdout по 2>&1. Важен порядок операций, 2>&1 отправляет stderr в направленный стандартный вывод. В этом случае stdout нацелен на файл, так что 2>&1 также отправит stderr в файл. Теперь если вы откроете peanuts.txt, вы увидите и stderr, и stdout. В нашем случае, команда выше выводит только stderr.

Существует более короткий способ перенаправить stdout и stderr в файл:

$ ls /fake/directory &> peanuts.txt

Теперь, что если я не хочу весь этот хлам и хочу полностью избавиться от сообщений stderr? Вы можете перенаправить вывод в специальный файл, называнный /dev/null, который уничтожает любой ввод.

ls /fake/directory 2> /dev/null
Показать полностью
48

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами!

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами! Linux, Counter-strike, Инструкция, Valve, Длиннопост

Мужик сказал - мужик сделал. Мужик сказал и не сделал - мужик пошутил.


Привет вам, красноглазые братья и сестры!

В этой статье-дополнении я расскажу как поднять свой сервер самого популярного онлайн шутера Counter-Strike на Linux. Для тех, кто в танке:

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами! Linux, Counter-strike, Инструкция, Valve, Длиннопост

Если верить Steam:

Сыграйте в лучший онлайновый экшен в мире. Примите участие в невероятно реалистичной войне с террористами в этой популярнейшей командной игре. Действуйте совместно с товарищами по команде для достижения стратегических целей. Уничтожайте опорные пункты врага. Освободите заложников. Ваши достижения влияют на успех вашей команды. Успех вашей команды влияет на ваши достижения.


Ладно, заканчиваем тянуть кота за вокальные данные и приступим к делу.


----------------------------------------------------------------

Глава 3. Непредвиденные последствия

----------------------------------------------------------------

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

Ответ прост. В предыдущей статье бонусом к установке сервера HL шла еще и установка сервера CS. Если вы выполняли действия глав 0-2, то уже сейчас можете запустить сервер командой:

./hlds_run -game cstrike +maxplayers 8 +map de_dust


при условии, что вы находитесь в каталоге с сервером.  Но (всё самое интересное асегда начинаются после слова "Но") никаких ботов и no-steam клиенты (йо-хо-хо) к вам не подключатся. Нам такого "счастья" не надо.
Исправляем ситуацию. Напомню, что у меня сервер расположен в каталоге /mnt/video/games/hlds, у вас, разумеется, свой.

cd /mnt/video/games/hlds

Как известно из пред. статьи для того, чтобы к серверу могли подключиться no-steam клиенты, нам нужен dproto. А для запуска dproto нужен metamod.

Double Protocol (dproto) - плагин для Metamod'а, решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов.

И снова я решил тупо собрать dproto, metamod и ботов и залить их на мыльное облако. Архив нужно скачать и положить в папку с сервером. Распакуем:

tar -xf cstrike.tar.xz

И положим все по местам.

mv addons cstrike/

mv dproto.cfg cstrike/

Как и в прошлый раз, отредактируем один файл. На сей раз это файл с тем же названием liblist.gam, но в папке cstike.

nano cstrike/liblist.gam

Здесь заменяем строку

gamedll_linux "dlls/cs.so"

на

для 64-битных:

gamedll_linux "addons/metamod/dlls/metamod_amd64.so"

для 32-битных:

gamedll_linux "addons/metamod/dlls/metamod_i386.so"


-------------------------------------------------

Глава 4. Серверный комплект

-------------------------------------------------

Сервер готов, пробуем запустить.

./hlds_run -game cstrike +maxplayers 8 +map de_dust

здесь:

--game cstrike - запустить контру;

+maxplayers 8 - количество игроков';

+map de_dust - карта;


Боты настраиваются в файле cstrike/addons/podbot/podbot.cfg

pb_minbots 0

pb_maxbots 16

и команда

pb add скилл_бота

Все довольно просто, поэтому перейдем к клиенту.


-----------------------------------------------------------------------------------------------

Глава 5. Мы встретили пиратскую версию Халфы Контры.

-----------------------------------------------------------------------------------------------


... и прошли мимо. Мы ведь всё еще не качаем пиратские игры, правда? Для интересующихся, первая ссылка по запросу "counter-strike linux" в гугле приведет вас куда нужно. Скачиваем, распаковываем, запускаем, играем. (Скачивание не показано)

mkdir /mnt/video/games/cs && cd /mnt/video/games/cs

В эту же папку кидаем архив с игрой.

tar -xf Counter-Strike.tar.gz

Архив теперь можно удалить, если не нужен (в пред. статье я забыл про это упомянуть).

rm Counter-Strike.tar.gz

Запускаем:

./cstrike.sh

Порубиться с ботами или с другими игроками? Не вопрос. Запусти в одной консоли сервер. В другой клиент. В клиенте нажми клавишу тильду "~" и введи команду на соединение:

connect 127.0.0.1:27015

Вместо 127.0.0.1:27015 можно набрать адрес какого-нибудь другого сервера.


------------------------------------------------------

Глава 6. Отводные псевдонимы.

------------------------------------------------------

Сделаем псевдонимы в ~/.bashrc для того, чтобы не набирать полностью команды. И вновь я напоминаю, что каталоги у вас должны быть свои.

echo "alias startcsds='cd /mnt/video/games/hlds; ./hlds_run -game cstrike +maxplayers 8 +map de_dust'" >>~/.bashrc

echo "alias startcsclient='cd /mnt/video/games/cs; ./cstrike.sh'" >>~/.bashrc

И перечитаем файл.

source ~/.bashrc

В итоге для запуска сервера контры достаточно набрать startcsds, а для запуска клиента startcsclient.

Почти все. Необязательный штрих.


--------------------------------------------------------------------

Глава 7. Подача разделенных терминалов

--------------------------------------------------------------------

Процитирую:

Мой основной эмулятор терминала terminator. Мне нравится, что можно вертикально разбить окно: слева запустить сервер, справа запустить клиент. Удобно? Удобно. Быстро? Нет. Надо исправлять. Для начала создадим отдельный шаблон для запуска игр.

В прошлый раз я насклерозил и забыл добавить файл, пришлось отдельным комментом.

Склонирую файл на pastebin  и отредактирую для контры. Ссылку просто так дать нельзя, поэтому вот - http://pastebin\.\com/6YhtJNYU (Прости, лига лени!). Обратные слеши надо убрать.

Если копируете, заменяйте папки на свои! В файле записан layout с названием csds. Запустив терминал с этим layout-ом, мы получим вертикальное разбиение окна c одновременным запуском сервера/клиента.

terminator -l csds --new-tab

И снова псевдоним.

echo "alias cd='terminator -l csds--new-tab'" >>~/.bashrc

Перечитаем файл:

source ~/.bashrc

И все. Запускается все это одной единственной командой

cs

Команда запустит отдельный экземляр эмулятора терминала, разделит окно вертикально, слева запустит сервер, справа клиент... Ну, про это я уже писал.


На этом все.

Всего хорошего и спасибо за рыбу за внимание.

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами! Linux, Counter-strike, Инструкция, Valve, Длиннопост

ps. Ура, у меня появился личный фсб-шник! xD

Запускаем сервер Counter-Strike 1.6 на Linux c хедшотами и ботами! Linux, Counter-strike, Инструкция, Valve, Длиннопост
Показать полностью 3
59

Не люблю я Microsoft. Или как поставить skype в debian stretch

Не так давно корпорация Microsoft раструбила на весь мир, что любит Linux (конечно любит... кждую неделю иски в суд таскает), даже баннер соответствующий на азуре повесили. Но сейчас не об этом.

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

После установки основного софта я принялся ставить всё то, что мне нужно в повседневной жизни, и первое, за что я взялся, это был так сильно "обожаемый" скайп. Хочу немного пояснить своё пренебрежительное отношение к скайпу на линуксе. Во-первых скайп для линукса стар как говно мамонта имеет довольно старую и не актуальную версию. Во-вторых - нет реализации 64-битной архитектуры, из-за чего приходится тянуть целую кучу библиотек для i386. Всё это не сильно то и радует, но как то я уже смирился. Но тут, при установке, я получаю сообщение о том, что скайп не может быть установлен, т.к. не разрешены некоторые зависимости. Начинаю гуглить и узнаю, что разработчики Debian выкинули из системы (и из репозитроиев) устаревшую библиотеку libssl_1.0.0. И я их полностью в этом поддерживаю. Но оказалось, что горячо любимые индусы/китайцы/арабы/или хер пойми кто там в этом майкрсофте работает прописали жёсткую зависимость скайпа от устаревшей библиотеки, а обновлять версию - не хотят. Продолжив поиск я нашёл решение проблемы, и представляю его вам.

Для начала нам понадобится скачать тот самый злополучный скайп и небольшой скрипт.

Вот скрипт изнутри:

#!/bin/bash

if [[ -z "$1" ]]; then

echo "Syntax: $0 debfile"

exit 1

fi

DEBFILE="$1"

TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1

OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb

if [[ -e "$OUTPUT" ]]; then

echo "$OUTPUT exists."

rm -r "$TMPDIR"

exit 1

fi

dpkg-deb -x "$DEBFILE" "$TMPDIR"

dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN

if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then

echo DEBIAN/control not found.

rm -r "$TMPDIR"

exit 1

fi

CONTROL="$TMPDIR"/DEBIAN/control

MOD=`stat -c "%y" "$CONTROL"`

vi "$CONTROL"

if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then

echo Not modfied.

else

echo Building new deb...

dpkg -b "$TMPDIR" "$OUTPUT"

fi

rm -r "$TMPDIR"

Кладём всё это в одну папку, открываем терминал и приступаем к подготовке пакета.

Распакуем архив и выставим права.

gzip -d videbcontrol.gz

chmod 755

Теперь можно запускать скрипт

./videbcontrol skype-debian_4.3.0.37-1_i386.deb

После этого перед нами появится редактор vj, в котором нам нужно поправить версию библиотеки libssl на 1.0.2.

Не люблю я Microsoft. Или как поставить skype в debian stretch Linux, Debian, Stretch, Skype, Microsoft, Libssl, Я красноглазый, Длиннопост

И тут нас ждёт сюрприз! Оказывается, что vi - это не просто редактор, как блокнот, и просто так вы не сможете отредактировать тут текст. Поэтому нам нужно выбрать нашу библиотеку, а точнее установить курсор на последний ноль в версии, нажать Del (это удалит символ), нажать i (это переведёт нас в режим редактирования), ввести 2, нажать Esc (для возврата в командный режим), и просто ввести на клавиатуре :wq (это запишет в файл наши изменения и выйдет из vi). после закрытия редактора скрипт продолжит работу. Дождёмся конца работы скрипта и получим в папке с исходный пакетоп скайпа модифицированный skype-debian_4.3.0.37-1_i386.modfied.deb. Теперь можно устанавливать:

dpkg -i skype-debian_4.3.0.37-1_i386.modfied.deb

Если будет ругаться на недостаток зависимостей - запускаем

apt-get install -f

Пользуемся на здоровье ;)

Показать полностью 1
Отличная работа, все прочитано!