Аналог fnsplit в linux

Обновлено: 02.07.2024

Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git , основы SQL, инструменты вроде Make , jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

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

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

Заставьте каждую программу хорошо выполнять одну функцию — «Основы философии Unix»

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

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

Файл CSV с примерами доступен в онлайне. Можете скачать его для проверки материала.

Команда cat используется для составления списка из одного или нескольких файлов и отображения их содержимого на экране.

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


Если -n не указано, head выводит первые десять строк указанного файла или входящего потока.

tail — аналог head , только он выводит последние n строк в файле.


Если хотите вывести все строки, расположенном после n-й строки (включая её), можете использовать аргумент -n +n .


В нашем файле 43 строки, поэтому tail -n +42 выводит только 42-ю и 43-ю строки из него.

Если параметр -n не указан, tail выведет последние десять строк в указанном файле или входном потоке.

tail -f или tail --follow отображают последние строки в файле и каждую новую строку по мере записи в файл. Это очень полезно для просмотра активности в реальном времени, например, что записывается в логи веб-сервера и т. д.

wc (word count) выводит количество символов ( -c ), слов ( -w ) или строк ( -l ) в указанном файле или потоке.


По умолчанию отображается всё вышеперечисленное.


Если текстовые данные передаются по конвейеру или перенаправлены в stdin , то отображается только счётчик.

grep — это швейцарский нож фильтрации строк по заданному шаблону.

Например, можем найти все вхождения слова mutex в файле.


grep может обрабатывать либо файлы, указанные в качестве аргументов, либо поток текста, переданный на его stdin . Таким образом, мы можем сцеплять несколько команд grep для дальнейшей фильтрации текста. В следующем примере мы фильтруем строки в нашем файле metadata.csv , чтобы найти строки, содержащие и mutex, и OS.


Рассмотрим некоторые опции grep и их поведение.

grep -v выполняет инвертное сопоставление: фильтрует строки, которые не соответствуют шаблону аргументов.


grep -i выполняет сопоставление без учёта регистра. В следующем примере grep -i os находит как OS, так и os.


grep -l выводит список файлов, содержащих совпадение.


Команда grep -c подсчитывает, сколько раз найден образец.


grep -r рекурсивно ищет файлы в текущем рабочем каталоге и всех его подкаталогах.


grep -w показывает только совпадающие целиком слова.

cut извлекает часть файла (или, как обычно, входного потока). Команда определяет разделитель полей (который разделяет столбцы) с помощью опции -d , а порядковые номера столбцов для извлечения с помощью опции -f .

Например, следующая команда извлекает первый столбец из последних пяти строк нашего CSV-файла.


Поскольку мы имеем дело с CSV, то столбцы разделяются запятой, а за извлечение первого столбца отвечает опция -f 1 .

Можно выбрать и первый, и второй столбцы, используя опцию -f 1,2 .

paste объединяет вместе два разных файла в один многоколоночный файл.


По умолчанию paste использует разделитель табуляции, но его можно изменить с помощью параметра -d .


Ещё один распространённый способ использования paste — объединение всех строк в потоке или файле с помощью заданного разделителя, используя комбинацию аргументов -s и -d .


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

Команда sort , собственно, сортирует данные (в указанном файле или входном потоке).


sort -r выполняет обратную сортировку.


sort -n сортирует поля по их арифметическому значению.

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


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


uniq -c в начале каждой строки вставляет количество её вхождений.


uniq -u отображает только уникальные строки.

Примечание. uniq особенно полезен в сочетании с сортировкой, поскольку конвейер | sort | uniq позволяет удалить все дублирующиеся строки в файле или потоке.

awk — это чуть больше, чем просто инструмент обработки текста: на самом деле у него целый язык программирования. В чём awk действительно хорош — так это в разбиении файлов на столбцы, и делает это с особенным блеском, когда в файлах перемешаны пробелы и табы.

Как видим, столбцы разделены либо пробелами, либо табуляциями, и не всегда одинаковым количеством пробелов. cut здесь бесполезен, потому что работает только с одним символом-разделителем. Но awk легко разберётся с таким файлом.

awk '< print $n >' выводит n-й столбец в тексте.


Хотя awk способен на гораздо большее, выдача колонок составляет, наверное, 99% вариантов использования в моём личном случае.

tr расшифровывается как translate. Эта команда заменяет одни символы на другие. Она работает либо с символами, либо с классами символов, такими как строчные, печатные, пробелы, буквенно-цифровые и т. д.

На стандартных входных данных tr <char1> <char2> заменяет все вхождения <char1> на <char2>.


tr может переводить классы символов с помощью нотации [:class:] . Полный список доступных классов описан на справочной странице tr , но некоторые продемонстрируем здесь.

[:space:] представляет все типы пробелов, от простого пробела до табуляции или символа новой строки.


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

[:lower:] представляет все строчные символы, а [:upper:] — все прописные. Таким образом, преобразование между ними становится тривиальным.


tr -c SET1 SET2 преобразует любой символ, не входящий в набор SET1, в символы набора SET2. В следующем примере все символы, кроме указанных гласных, заменяются пробелами.


tr -d удаляет указанные символы, а не заменяет их. Это эквивалент tr <char> '' .


tr также может заменить диапазоны символов, например, все буквы между a и e или все числа между 1 и 8, используя нотацию s-e , где s — начальный символ, а e — конечный.


Команда tr -s string1 сжимает все множественные вхождения символов в string1 в одно-единственное. Одним из наиболее полезных применений tr -s является замена нескольких последовательных пробелов одним.

Команда fold сворачивает все входные строки до заданной ширины. Например, может быть полезно убедиться, что текст помещается на дисплеях небольшого размера. Так, fold -w n укладывает строки по ширине n символов.


Команда fold -s будет разбивать строки только на символах пробела. Её можно объединить с предыдущей, чтобы ограничить строким заданным количеством символом.

sed — это неинтерактивный потоковый редактор, который используется для преобразования текста во входном потоке строка за строкой. В качестве входных данных используется или файл, или stdin , а на выходе тоже или файл, или stdout .

Команды редактора могут включать один или несколько адресов, функцию и параметры. Таким образом, команды выглядят следующим образом:


Хотя sed выполняет множество функций, мы рассмотрим только замену текста как один из самых распространённых вариантов использования.

Замена текста

Команда замены sed выглядит следующим образом:


Пример: замена первого экземпляра слова в каждой строке в файле:


Мы видим, что в первой строчке заменяется только первый экземпляр hello . Чтобы заменить все вхождения hello во всех строках, можно использовать опцию g (означает global).


sed позволяет использовать любые разделители, кроме / , что особенно улучшает читаемость, если в самих аргументах команды есть слэши.


Адрес говорит редактору, в какой строке или диапазоне строк выполнять подстановку.


Адрес 1 указывает заменять hello на Hey I just met you в первой строке. Можем указать диапазон адресов в нотации <start>,<end> , где <end> может быть либо номером строки, либо $ , то есть последней строкой в файле.


По умолчанию sed выдаёт результат в свой stdout , но может отредактировать и оригинальный файл с опцией -i .

Примечание. В Linux достаточно только -i . Но в macOS поведение команды немного отличается, поэтому сразу после -i нужно добавить '' .

Фильтрация CSV с помощью grep и awk

В этом примере grep в файле metadata.csv сначала фильтрует строки, содержащие слово gauge , затем те, у которых query в четвёртой колонке, и выводит название метрики (1-я колонка) с соответствующим значением per_unit_name (5-я колонка).

Вывод адреса IPv4, связанного с сетевым интерфейсом

Команда ifconfig <interface name> выводит сведения по указанному сетевому интерфейсу. Например:


Затем запускаем grep для inet , что выдаст две строки соответствия.


Затем с помощью grep -v исключаем строку с ipv6 .


Наконец, с помощью awk запрашиваем второй столбец в этой строке: это IPv4-адрес, связанный с нашим сетевым интерфейсом en0 .

Примечание. Мне предложили заменить grep inet | grep -v inet6 такой надёжной командой awk :


Она короче и конкретно нацелена на IPv4 с условием $1 == "inet" .

Извлечение значения из файла конфигурации

В файле конфигурации git текущего пользователя ищем значение editor = , обрезаем знак = , извлекаем второй столбец и удаляем все пробелы вокруг.

Извлечение IP-адресов из файла журнала


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


Затем awk '< print $12 >' извлекает из строки IP-адрес.


Команда sed 's@/@@' удаляет начальный слэш.

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

sort | uniq -c сортирует IP-адреса в лексикографическом порядке, а затем удаляет дубликаты, добавляя перед IP-адресами количество вхождений каждого.


sort -rn | head -n 10 сортирует строки по количеству вхождений, численно и в обратном порядке, чтобы главные нарушители выводились в первую очередь, из которых отображаются 10 строк. Последняя команда awk < print $2 >извлекает сами IP-адреса.

Переименование функции в исходном файле

Представим, что мы работаем над проектом и хотели бы переименовать недачно названную функцию (или класс, переменную и т. д.) в исходном файле. Можно сделать это с помощью команды sed -i , которая выполняет замену прямо в оригинальном файле.

Примечание. На macOS вместо sed -i используйте sed -i '' .

Однако мы переименовали функцию только в оригинальном файле. Это сломает импорт bool_from_str в любом другом файле, поскольку эта функция больше не определена. Нужно найти способ переименовать bool_from_str повсюду в нашем проекте. Такого можно добиться с помощью команд grep , sed , а также циклов for или с помощью xargs .

Чтобы заменить в нашем проекте все вхождения bool_from_str , сначала нужно рекурсивно найти их с помощью grep -r .


Поскольку нас интересуют только файлы c совпадениями, также необходимо использовать опцию -l/--files-with-matches :

Затем можем использовать команду xargs для осуществления действий с каждой строки выходных данных (то есть всех файлов, содержащих строку bool_from_str ).


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

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


Если команда, которую вы вызываете с помощью xargs (в нашем случае sed ), поддерживает несколько аргументов, то следует отбросить аргумент -n 1 для производительности.


Эта команда затем исполнит

Примечание. Из синопсиса sed на ман-странице видно, что команда может принять несколько аргументов.


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

Мы видим, что произведены замены для всех вхождений bool_from_str .


Как это часто бывает, существует несколько способов достижения одного и того же результата. Вместо xargs мы могли бы использовать циклы for , чтобы перебирать строки по списку и выполнять действие над каждым элементом. У этих циклов такой синтаксис:


Если обернуть нашу команду grep в $() , то оболочка выполнит её в подоболочке, результат чего затем будет повторён в цикле for .


Эта команда выполнит


Синтаксис циклов for кажется мне более чётким, чем у xargs , однако последняя может выполнять команды параллельно, используя параметры -P n , где n — максимальное количество параллельных команд, выполняемых одновременно, что может дать выигрыш в производительности.

Все эти инструменты открывают целый мир возможностей, так как позволяют извлекать и преобразовывать данные, создавая целые конвейеры из команд, которые, возможно, никогда не предназначались для совместной работы. Каждая из них выполняет относительно небольшую функцию (сортировка sort , объединение cat , фильтры grep , редактирование sed , вырезание cut и т. д.).

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

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

  • grep строк, которые соответствуют шаблону строк с IP-адресами
  • найти столбец с IP-адресом, извлечь его с помощью awk
  • отсортировать список IP-адресов с помощью sort
  • устранить смежные дубликаты с помощью uniq
  • подсчитать количество строк (то есть уникальных IP-адресов) с помощью wc -l

Примеры в этой статье были надуманными, но я предлагаю вам прочитать удивительную статью «Инструменты командной строки могут быть в 235 раз быстрее, чем ваш кластер Hadoop», чтобы получить представление о том, насколько полезны и мощны эти команды на самом деле и какие реальные проблемы они могут решить.

  1. Подсчитайте количество файлов и каталогов, расположенных в вашем домашнем каталоге.
  2. Отобразите содержимое файла только прописными буквами.
  3. Подсчитайте, сколько раз встречалось каждое слово в файле.
  4. Подсчитайте количество гласных в файле. Отсортируйте результат от наиболее распространённой до наименее распространённой буквы.

Если интересно поучаствовать в проекте, подписывайтесь на список рассылки!

Добрый вечер! Сегодня хочу продолжить тему перехода на линукс.

Вот Вы решились установить пингвина себе второй/основной системой, начинаете искать своего тюкса , а в поисковике их столько, что глаза разбегаются. Что выбрать и в чем отличие? Расскажу примерно из чего состоит любой дистрибутив. Поехали!

Линукс в массы. ч2 - Выбираем дистрибутив. Линукс в массы, Linux, Видео, Длиннопост

Зарождение линукс как операционной системы началось из этого доброго бородатого дядьки в правом верхнем углу - Ричарда Столлмана. Именно он основал лицензию на бесплатный софт с открытым исходным кодом (GNU GPL License). После того как было написано достаточно много свободных программ, возникла потребность в операционной системе, на то время было почти все готово, кроме собственно ядра системы, которым начал заниматься Линус Торвальдс - финский программист.

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

Итак , что общего во всех дистрибутивах :

2. Программное обеспечение

3. Графические оболочки

Что их различает:

1. Версия ядра и софта ("свежесть" - новее не всегда лучше)

2. Предустановленный набор софта

3. Графическая оболочка по умолчанию

4. Пакетный менеджер (не во всех дистрибутивах)

5. Наличие фирменных "плюшек" от разработчиков дистрибутива + набор патчей

Где все это можно найти?

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

Хочу пробежаться по этому топу и немного рассказать о каждом из них

1. Linux Mint - есть 2 версии , первая основана на последнем релизе Ubuntu, вторая на основе Debian. Популярность скорее всего обоснована легкостью установки, приятным внешнем видом (серо- зеленым) и меньшим количеством багов, ошибок (по моему ощущению). Как то в прошлом посте мне писал человек, что минт в плане стабильности хуже убунты, но в нем я не ловил никаких багрепортов, критов и так далее, и выходит она немного позже ubuntu (что может быть хорошим признаком того, что дистрибутив вылизывают перед релизом от багов). Дистрибьюторы Linux Mint не ограничены во времени релиза, в отличии от Ubuntu, которая должна выпустить свое детище в заданные сроки. Хорошим плюсом будет то, что разработчики Linux Mint являются не коммерческой организации в отличии от убунты, поэтому внутри вы не встретите никаких левых сервисов Amazon, по умолчанию даже Google не является поисковиком по умолчанию. Вообщем для новичков самое то , но поковыряться в консоли изредка придется. Так же программисты linux mint разрабатывают собственные форки графических оболочек - Mate( форк заброшенного проекта GNOME 2) и Cinnamon (форк текущего GNOME 3, который многим не идет по вкусу). Называют свои выпуски редкими женскими именами (например Maya). Программы распространяются в виде .deb пакетов. Программа установки apt-get , aptitude.

2. Debian - отец и дед для всех deb-пакетных дистрибутивов. С него выросли такие дистрибутивы как Ubuntu , Mint , Knoppix, Kali Linux и другие. Установка в новых версия не сложнее минта или убунты. Существует 4 основных ветки - old-stable, stable, sid(Testing), experimental. Old-stable - предыдущий стабильный , но еще поддерживаемый, софт в нем лет 5-7 как устарел, но обновления безопасности он еще получает, так что можно ставить.

Stable - текущий стабильный, софт в нем уже устаревает с момента выпуска, но проблем с ним нет. Sid - тестовый дистрибутив , находиться в стадии тестирования и скоро может стать следующим стабильным, софт в нем почти самой последней свежести, но еще могут быть баги и серьезные ошибки в работе, ставить следует тем кто уже не боится консоли и хочет программы последних версий. Ну и eprerimental - в нем есть все самое свежее , но самое не стабильное и не отлаженное. Из этой ветки пакеты попадают в Sid , где тщательно проходят тестирование и правки. Cтавить только если вы разработчик Debian :D.

В общем впечатление от использование положительное, но лазить в консоль придется чаще минта. За все время использования stable проблем не было. Пакеты .deb.Пакетный менеджер apt-get aptitude. Называют свои дистрибутивы персонажами из мультика Toys Story. На текущий момент ols-stable Wheezy , Stable - Jessie, Testing - он всегда Sid (тот мальчик из мультфильма который ломал игрушки). Так же есть Squeeze и Lenny old-stable, которые подойдут для слабых пк, но поддержка Lenny уже закончилась, а Squeeze вот вот закончиться.

3. Ubuntu - "Большая и страшная"(c) - дочь Debian , мать Linux mint. Как ранее писал разрабатывается коммерческой организацией Cannonical. Из плюсов могу отметить легкую установку(хотя этим сейчас никого не удивишь), собственную уникальную графическую оболочку Unity (основанной на GNOME 3) и большое комьюнити. Впринципе с ней проблем особых нету , но все же бывают капли дёгтя. После релиза, если это не LTS(длительная поддержка, да и LTS бывает), вечно вылетают всякие баги, надоедает окно отправки багрепорта (видимо у Microsoft фишку стырили) и бывает другое по мелочи(у меня проблемы к коннектом SSH на CentOS, если кто знает решение в комментах плз). Вообщем использовать можно, но надо все равно консоль ковырять. Еще из коронных фишек в убунте есть патч Nvidia-prime , будет полезно кто хочет легко и без заморочек использовать гибридную графику INTEL + NVIDIA. А так по сути это Debian Testing + патчи Ubuntu + оболочка Unity. Из хороших новостей - в новой убунте 16.04 обещают очень много новшеств, Unity 8, этот дистр начинает дальше уходить от своих собратьев и возможно хочет пойти по стопам MacOS. Буду надеяться из этого что-то выйдет.Как и в дебиане, пакеты .deb, менеджер apt-get, aptitude , но добавлен свой Software Center (глючный и тормоз правда, не пользуюсь им :В). Имена своим релизам дают по латинскому алфавиту 2 слова , 1 слово - прилагательное , второе - название животного. Часто его рекомендуют новичкам , но как по мне Ubuntu намного проблемнее Linux Mint и Debian. При покупке ноутбуков без ОС/Linux часто на витрине чтобы продемонстрировать что ноутбук рабочий ставят убунту (свой G580 так брал).

4.OpenSuse - честно скажу , не использовал, на прошлой работе сталкивался пару раз, поэтому мое мнение может хромать в описании. На самом деле система является детищем Suse Linux Entrerprice - коммерческой версии, и если меня не подводит логика то Open Suse используется скорее в целях тестирования пользователями нового дистрибутива для коммерческих целей. С виду - приятная, установка графическая, пользовался ей бывший

начальник по персоналу. Рабочий стол по умолчанию KDE - более "виндовс_7_подобный", более привычный. Пакетный менеджер YAST (если мне память не изменяет), программы в формате .rpm. Проблем с пользованием нащальнике не испытывал, багов не было замечено. К сожалению больше рассказать не могу.

5. Fedora - тоже не смогу много рассказать (ну не люблю RPM), ставил баловался немного и сносил. Так же имеет .rpm пакеты, далекий родственник красной шапочки (Red Hat). Рабочий стол - Gnome 3, в то время как 1 день пользовался проблем не было. Сейчас ничего не могу сказать конкретнее.

7. Manjaro (не зря я арч поставил выше в список, хотя по рейтингу он ниже) - это форк ArchLinux, появился не очень давно (год может и меньше). Дистрибутив , как утверждают разработчики, cохранил всю мощь и гибкость системы , но в то же время он имеет графический установщик, полную автоматическое определение устройств и установку драйверов. Использует так же Pacman, но свои репозитории с ПО. Без лазания в консоль можно обновить ядро линукс, сменить графический драйвер, обновить ПО. Сделан приятный внешний вид, по умолчанию предлагают 2 версии граф. оболочки - KDE, XFCE.

При личном пользовании проблем я не замечал , хотя тру Арчеводы хаят и плюются в его сторону. Как по мне отличный дистр для новичка, есть свой софтцентер, в консольку лазить не нужно. По рейтингу (которому не стоит доверять) поднялся в 10-ку почти сразу после старта.

8. Mageia - тоже не плохой дистрибутив - но уже не "торт". Когда то еще когда я не сильно увлекался линуксом, был замечательный французский дистр - Mandriva. Тогда очень много пользователей любили его за простоту и красоту и стабильность. Потом организация, которая спонсировала проект прикрыла лавочку, и некоторые разработчики через пару лет собрались снова в Mageia. На себе я испробовал 2 версию. По ощущениям как убунту, вроде все свеженькое, красивенькое и не требует глубоких знаний от пользователя, но часто бывают мелкие косяки и баги, которые портят ощущения от пользования системой. Софт ставиться из софтцентра, с этим проблем не должно быть. При моем пользовании в консоль не приходилось лазить.

9. CentOS - аналогично Open Suse , по сути не коммерческая версия Red Hat Enterprise Linux, возможно используется для тестирования коммерческой, возможно основана на последней Red Hat (точно не могу сказать). В основном применяется на серверах,так как очень стабильная, но и требует хороших знаний для полноценного использования. Я пользовался ею только в качестве сервера, про декстоп версию могу только сказать про рабочий стол по дефолту - GNOME 3 и пакетный менеджер yum c пакетами rpm.

10. Kali Linux - тот же Debian Sid с его плюсами и минусами + набор утилит для тестирования безопасности и "хакинга". Такая себе "хацкерская бубунта". Обычному пользователю не нужна, сам один раз поставил, посмотрел, снес. А кому нужна, уже давно за VPN и в этих ваших "торах" сидят ибо за ними ФСБ следит )))

Что я могу посоветовать начинающему Linux user'у :

впервые ставите линукс - Windows + VirtualBox/VMware - экспериментируйте

хотите установить основной/второй системой и не знаете консоли - Ubuntu, Mint , Manjaro

немного что-то умеете в консоли, но не уверенны в силах - Debian , Opensuse, Fedora, Mageia

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

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

Спасибо за внимание!

PS: Недавно, снял сервер для личных нужд, сейчас в процессе настройки. После окончания настройки смогу выделить примерно 10-15 людям бесплатный хостинг на 1 год.

1. Начинающим веб-девелоперам.(могу выделить доменное имя 3 уровня)

2. Небольшим стартапам.(нужно будет купить домен)

3. Начинающим блогерам. (нужно будет купить домен)

Естественно просьба, если Вам реально не нужно, оставьте место тому, кому это необходимо, а не просто поиграться и забыть. Так же прошу не устраивать свалок и всяких спам рассылок, парсеров яндекс маркета и другого сильно нагружающего систему.

(выводить табличку умножения 1млн*1млн, и запросы mysql в цикле) - буду просто удалять аккаунт со всем. Не размещать пиратский контент, и все что запрещено законами РФ (настучат по башке за это всё мне, потом буду вынужден просто вырубить аккаунт)

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

Зачем это мне ? - я даю хостинг , если есть ошибки или недочеты, в процессе пользования, вы поможете мне сделать его лучше, возможно если Вам понравиться у меня, станете через 1 год моим клиентом))

PPS: Если есть кто-то из Медногорска, буду рад личному общению по теме линукса, хостинга, программирования )))

image

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

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

  • Если вы сидите на ветке Debian (Ubuntu, Debian, Mint, Pop!_os) попробуйте поискать программы на Launchpad, пакеты в репозиториях утилит формата .deb
  • Если вы сидите на ветке Arch (Arch, Manjaro, Void Linux) то попробуйте поискать программу в AUR репозиториях, сами утилиты и программы в формате .appimage (если это графические утилиты), а также PKGBUILD файлы для компилирования исходников автоматически
  • Если вы сидите на ветке RedHat (Fedora, CentOS), то попробуйте воспользоваться встроенной в большинство дистрибутивов ветки RedHat утилитой Flatpak (аналог Snap). Также, попробуйте поискать пакеты в формате .rpm

Если говорить обо мне, то у меня стоит Manjaro CLI, с установленной на неё i3-gaps и собственными конфигурациями, если кому интересно — можете пользоваться, остальным же советую просто придерживаться правил вверху и помнить, что любая проблема в Linux решается простым гуглением и логическими размышлениями.

Администрирование

    — программа для визуализации процессов (аналог htop)
    Установка с помощью Snap:

snap install gotop --classic


    — ещё один аналог htop, однако на этот раз более функциональный
    Установка с помощью pip

pip install glances


Веб-разработка

    — если вам по какой-то причине не нравится консоль браузера, то всегда можно сделать те же операции в терминале — утилита для легкого запуска локального сервера с автообновлением при изменении index.html (или другого файла)
    Установка с помощью npm
    sudo npm i live-server -g — утилита для администрирования сайта на WordPress с помощью консоли
    Установка с помощью копирования исходника из репозитория

Приложения, которые облегчают работу без GUI

  • nmtui — утилита с TUI для выбора и настройки сети прямо из терминала



    — удобный редактор с поддержкой асинхнронного скачивания плагинов и линтинга языков




Дополнения

Если у вас есть утилиты, которые вам нравятся, напишите о них в комментариях и я дополню ими статью! Спасибо за то, что дочитали.

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Многие пользователи Unix-систем знакомы с терминальными командами. Они позволяют моментально выполнять операции с файлами, следить за системой и настраивать её без надобности использовать ПО с графическим интерфейсом. Modern Unix — это коллекция программ, созданных независимыми разработчиками, которые заменят собой стандартные и наиболее распространённые команды. Эти альтернативы удобнее, функциональнее, а порой и быстрее.

bat вместо cat

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

bat — это аналог часто используемой команды cat для вывода содержимого файлов. В отличие от оригинала, bat умеет подсвечивать синтаксис и не выводит все данные в окно терминала, а открывает файл отдельно, как в текстовом редакторе nano или vim. С помощью отдельных клавиш можно листать содержимое по строке или сразу нескольким.

exa вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Команда ls используется для отображения списка файлов в текущей директории. exa справляется с этой задачей ещё лучше, предоставляя больше фич — здесь куда больше возможностей отображения (деревом, перевернутой сеткой, списком, таблицей). Эта альтернатива по стандарту выделяет отдельные типы файлов разными цветами, она быстрая, легковесная и удобная для пользователей. Содержимое папок можно отобразить в древовидной структуры.

lsd вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Ещё одна альтернатива команде ls. Утилита lsd или LSDeluxe умеет выводить список содержимого папок в цветном виде с иконками. А ещё она написана на Rust, что делает её быстрее аналогичных решений. Для правильного отображения иконок придётся дополнительно установить специальный шрифт.

delta вместо diff

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

delta — это инструмент для сравнения содержимого файлов. В отличие от обычного diff, он умеет подсвечивать синтаксис, имеет оформление в стиле git, возможность сравнивать файлы бок о бок, нумерацию строк и множество других фич. Также может использоваться для команд git: git show или git diff.

dust вместо du

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Более удобный и дружелюбный к пользователю аналог команды du, которая позволяет узнать, сколько места на диске занимают директории. В отличие от стандартной утилиты, dust умеет выводить информацию в виде дерева, выделяя в конечных папках самые «тяжёлые» файлы. По стандарту отображает объём не в блоках, а в привычных единицах измерения. Самое «вкусное» — отображение процентного соотношения директорий, позволяющее сразу выявить самые крупные директории. Утилита написана на Rust, отсюда и её название.

duf вместо df

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

К числу утилит, облегчающих менеджмент свободного места на накопителях, можно отнести и duf — аналог df. Стандартная программа выводит статистику использования всех подключённых дисков. duf делает это лучше — он отображает данные в виде таблицы, окрашивая некоторые элементы цветами и чётко структурируя их. Такое представление намного лучше воспринимается пользователем. Доступен и другой вывод — в формате JSON.

broot вместо команд для навигации

broot — это отличный способ избавиться от команд для навигации по файловой системе. Утилита показывает список директорий в виде интерактивного дерева, позволяя перемещаться стрелками, входить в папки клавишей Enter, возвращаться Esc и открывать файлы. Последние можно искать, копировать и перемещать с помощью команд в специальной строке.

fd вместо find

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

ripgrep вместо grep

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Инструмент для поиска по содержимому файлов с названием ripgrep быстрее своих аналогов и выдаёт более читабельный вариант, чем стандартный grep. Утилита следует заданным в gitignore правилам и по умолчанию пропускает игнорируемые и скрытые файлы. Предоставляет мощный функционал с поддержкой множества кодировок и поиском по сжатым форматам.

ag вместо grep (и ack)

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

За командой ag скрывается приложение с названием The Silver Searcher, которое нацелено на поиск по файлам с кодом. Создатель заявляет, что это аналог другой сторонней утилиты ack, но с упором на скорость. Как и предыдущая программа, The Silver Searcher игнорирует файлы, заданные в .gitignore и .hgignore.

fzf вместо обычного поиска

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

mcfly вместо стандартной истории

Заменяет обычный поиск по истории команд, запускающийся сочетанием Ctrl+R. McFly представляет из себя интеллектуальный поисковой движок с небольшой встроенной нейросетью, которая в реальном времени выдаёт подсказки исходя из контекста.

choose вместо awk

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Быстрый и удобный аналог awk — мощной встроенной команды для работы с текстом и фильтрации нужных данных. choose использует более понятный синтаксис Rust для регулярных выражений, быстрый выбор части файла похож на синтаксис слайсов в Python, обходит конкурентов на больших объёмах данных.

jq вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Аналог sed, но разработан для работы с JSON-форматом. Проводит операции со структурированными данными в виде потока и выводит соответствующий результат. Написан на C, не имеет зависимостей — достаточно скачать только бинарный файл. Из минусов jq — отсутствие нормальной документации и прекращённая несколько лет назад поддержка.

sd вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

cheat вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

tldr вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

bottom вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

glances вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

gtop вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Третья программа в подборке для просмотра статистики о машине. Вдохновлена htop, выдаёт структурированные данные с графиками, меняющимися в реальном времени.

hyperfine вместо сложных замеров скорости

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

gping вместо ping

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Тот же ping для проверки соединения с другим узлом сети, но с красивым и информативным графиком.

procs вместо ps

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Современная замена команде ps, выводящей список процессов в системе. Показывает данные в удобном для пользователя формате, с цветами и автоматической темой, основанной на цветах терминала. Имеется поиск, добавлена информация, которой нет в обычной ps, больше данных о памяти, древовидное отображение. procs написана на Rust и активно поддерживается разработчиком.

curlie вместо curl

zoxide вместо cd

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

zoxide — молниеносная и интеллектуальная замена привычной команде cd. Отслеживает наиболее используемые директории и благодаря этому предлагает подсказки.

dog вместо dig

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

DNS-клиент на Rust, позволяющий узнать адрес узла по доменному имени. Имеет большое количество опций для запросов, цветной вывод, а также отображение данных в JSON-формате.

Читайте также: