vak: (Default)
[personal profile] vak
Сбацал на скорую руку шпаргалку по линуксной командной строке:

https://sergev.org/text/linux-cli

Date: 2022-07-03 05:23 (UTC)
From: [personal profile] dijifi
Хорошо что в этой шпаргалке не открыта страшная тайна что глобальные переменные для вызова программы, и только для этой программы, можно задавать на той же строке что и сама программа, не прибегая к другим ухищрениям, и знают её только люди с классическим образованием читавшие The UNIX Programming Environment.

Date: 2022-07-03 09:56 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
> …и знают её только люди с классическим образованием читавшие The UNIX Programming Environment.


Да, старые знания в основном утрачены массами.

Date: 2022-07-03 11:06 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Новые приходят. Потихонечку.

Date: 2022-07-03 11:17 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Какие, например?

Date: 2022-07-03 11:38 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Ну, ncdu не сильно новая; а вот не так давно какая-то новая меня поразила - а я и не записал. И забыл.

Date: 2022-07-03 11:46 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Так ncdu же прикладное. Выше было про фундаментальные, концептуальные знания (как UPE), которые в наше непростое время стали достоянием очень избранных и преимущественно старпёров. Собственно, сам по себе факт появления всяких этих «платформ Electron» и пропихивание всюду JS — несомненная деградация, но массы ж больше ничего не умеют и фундаментальных концепций (например, алгоритмы + структуры данных = программы) не понимают. У них, у масс, уже просто кругозора не хватает для освоения предмета. Они даже на приличных языках пишут одноразовый нечитаемый говнокод. Если люди жлобятся поставить немножко «лишних» пробелов, чтобы другие люди могли потом прочесть, это упадок, это разруха. Дальше будут гнилые смердящие клозеты.

Edited Date: 2022-07-03 11:48 (UTC)

Date: 2022-07-03 14:13 (UTC)
From: [personal profile] ex0_planet
Да нет, просто это ваше айти уже окончательно стало средством которое pays the bills, а весь нердизм и фан оттуда практически ушёл. Двадцать лет назад это началось, десять стало бросаться в глаза, сейчас этот процесс в общем-то заканчивается.

Date: 2022-07-03 14:19 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Это не только для ойти справедливо, но для всей нашей нынешней духовной жизни. Люди массово медийно-зависимые идиоты. Не в том смысле, что едят мыло, а в том, что не интересуются причинно-следственными связями реальности. Глобальная идиократия.

Date: 2022-07-04 22:02 (UTC)
From: [personal profile] ivanrubilo
Вот это точно подмечено.
Когда менеджер стоит над душой и погоняет - другого и не остаётся.

Date: 2022-07-03 15:06 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

А, ну да, ну да.

Date: 2022-07-03 17:59 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Однажды я читал (но не дочитал) интересную книжку. В ней авторы некоторых языков программирования рассказывают о том, как и почему сделали свои ЯП. Она располагает к размышлениям о том, почему некоторые концептуальности не интересны трудящимся массам и почему в реальной жизни облегчение какого-либо занятия приводит к его «идиотизации» (постепенному вытеснению компетентных и думающих людей и замещению их обывателями с недостаточным развитием). Скажем, чтобы для чего-нибудь выбрать язык Forth, нужно иметь умение и желание мыслить в рамках ОПЗ, однако «не выбрать» его проще, чем выбрать, ибо популярные у масс альтернативы не требуют от человека напрягаться этими вашими странными логиками, когда по телевизору так много всего захватывающего.

Date: 2022-07-03 18:21 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Да, любопытно. С фортом я наблюдал это явление. "Обычные программисты" не въезжают в форт совершенно. Они останавливаются уже да, на ОПЗ. А хардверщики осваивали его только так. При этом форт, в те времена, был идеальной тулзой для моментального построения пирамиды абстракций.

Сейчас пора форта уже прошла давно. Размеры программ не те.

Date: 2022-07-03 18:40 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
> Размеры программ не те.


Так они потому и не те, что идиократия.

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

Date: 2022-07-03 10:59 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

ncdu забыл. Очень полезная вещь. see CtrlC-CtrlV also

Edited Date: 2022-07-03 11:00 (UTC)

Date: 2022-07-03 14:10 (UTC)
From: [personal profile] ex0_planet
Самое интересное в unix shell это когда начинаешь сочетать команды и приёмы. Без этого непонятно в чём цимес, ну написал ls, оно тебе список файлов, действительно, я лучше коммандер возьму.

Навскидку:
sudo !! # повтор предыдущей команды с правами root


Еще
(cd path/to/dir && command) # выполнение command в поддиректории и сабшелле, без влияния на текущий шелл


Или вот это бывает полезно при кернельном хакерстве:
echo enable | sudo tee /sys/some/important/feature/control # запись в файл, права на который есть только у рута
# без этого приходится городить городухи вида sudo su -c 'echo foo > /sys/bar'
# - бонусный балл за то чтобы сослаться на переменную окружения там
# - два балла за правильно расставить кавычки
# - три балла если в именах есть пробелы


Или brace expansion + glob
wc -l *.{c,h} # количество строк во всех .c и .h файлах
cp document.md{,.backup} # self-explanatory

Edited Date: 2022-07-03 14:14 (UTC)

Date: 2022-07-03 14:19 (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
Или найти в каталоге все mp3 файлы и переименовать их в соответствии с вынутыми из них id3tag-ами, перемещая в новое место и раскладывая по исполнителям/альбомам. )

Date: 2022-07-03 16:16 (UTC)
From: [personal profile] ex0_planet
Ну или да, массовое переименование какое-нибудь с помощью PCRE.

Date: 2022-07-03 14:21 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Поэтому изучение юниксовой оболочки надо начинать не с вот этого всего, но с команды find, а потом сразу переходить к awk и sed. Остальное приложится либо клиент отвалится. :)

Date: 2022-07-03 16:13 (UTC)
From: [personal profile] ex0_planet
Клиент в любом случае отвалится, как ты перед ним не выплясывай — потому что не увидит прямой связи со своими рабочими функциями. Феромонами их чтоли подманивать, как у муравьёв.

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

Date: 2022-07-03 16:33 (UTC)
From: [personal profile] dijifi
Find с -exec или с | xargs? Есть существенная разница в стиле и читаемости

Date: 2022-07-03 17:35 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Почему ИЛИ? И!

Первые два учебных часа 1 сентября — урок мужества vimtutor.

Date: 2022-07-03 18:23 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Я когда нужно авку или сед, уже переключаюсь на скалу. На скале все можно запрограммировать, и больше.

Date: 2022-07-03 18:36 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Скала эта ваша не часть системы, её надо принести откуда-то и установить. Авка же и сед, а также перл, тцл и сам шелл обычно имеются в базовой системе.

Date: 2022-07-04 22:05 (UTC)
From: [personal profile] ivanrubilo
Вот-вот, а то и питон вообще.

Date: 2022-07-04 14:45 (UTC)
doldonius: (Default)
From: [personal profile] doldonius
Ну, меня вот просветление шандарахнуло как раз при попытке изобразить find негодными, но уже известными средствами. Когда понял, что написал в командной строке два вложенных цикла — и эта хрень, kurwa mać, работает.

Date: 2022-07-04 16:06 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Почему команда find такая странная и отличается от прочих средств командного мира — отдельный философский вопрос.

В манах BSD написано лучше, вернее, точнее и короче, чем у GNU (я подчеркнул важные смысловые отличия):


find -- walk a file hierarchy

find recursively descends the directory tree for each file listed, evaluating an expression (composed of the “primaries” and “operands” listed below) in terms of each file in the tree.

(man.netbsd.org/find.1)


Чтобы понять, что это такое, find можно попробовать представить себе как ещё один дополнительный неинтерактивный командный интерпретатор поверх обычной командной среды, который выполняет пакетные задания, полученные от юзера. То есть это, скажем так, не совсем «специальная утилита для поиска файлов», как пишут линупсоиды.

Date: 2022-07-04 17:06 (UTC)
doldonius: (Default)
From: [personal profile] doldonius
Такого нетипичного в системных утилитах осталось преизрядно. Собственно, и awk с sed не так уж типичны, а уж tar, если не знать его первоначального назначения, и вовсе инопланетяне подбросили. Отцы-основатели единообразием не заморачивались.

Date: 2022-07-04 17:09 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Так все упомянутые и не являются системными утилитами. Лучше рассматривать их как отдельные языки специального назначения со встроенным интерпретатором.


Основное, с чего полагается начинать новичку в Юниксе, отцы-основатели разжевали в упомянутой выше книжке («The UNIX Programming Environment») для этих самых новичков, которые во времена отцов-основателей понимались как программирующие пользователи, а не то, что в наше время.

Edited Date: 2022-07-04 17:19 (UTC)

Date: 2022-07-04 18:13 (UTC)
doldonius: (Default)
From: [personal profile] doldonius
Так и шелл пусть и странный, но довольно универсальный язык программирования.

Ну, а на мой почти что K&R GCC хоть и ругается, но компилирует в годные бинарники. По крайней мере, компилировал, пока я из этого дурдома пионеров не сбежал. С тех пор в основном шеллом и обхожусь; при моих объемах данных и нынешней скорости процессоров хватает выше крыши. Так что здесь скорее первична как раз идеология сверху донизу и на каждой ступеньке программируемой среды.

Date: 2022-07-04 18:28 (UTC)
From: [personal profile] dijifi
Была как-то мысль попридуряться и написать бэкенд с си на шелл

Date: 2022-07-04 18:39 (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
В этом вся соль. Для этого и делали.

Date: 2022-07-03 18:22 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Какие классные штучки.

Date: 2022-07-04 06:43 (UTC)
sjtonic: (Default)
From: [personal profile] sjtonic
curl cheat.sh/<название комманды>
Например: curl cheat.sh/find
Выдает подсвеченные варианты наиболее распостраненного применения комманды, сконденсированная версия man