Хорошо что в этой шпаргалке не открыта страшная тайна что глобальные переменные для вызова программы, и только для этой программы, можно задавать на той же строке что и сама программа, не прибегая к другим ухищрениям, и знают её только люди с классическим образованием читавшие The UNIX Programming Environment.
Так ncdu же прикладное. Выше было про фундаментальные, концептуальные знания (как UPE), которые в наше непростое время стали достоянием очень избранных и преимущественно старпёров. Собственно, сам по себе факт появления всяких этих «платформ Electron» и пропихивание всюду JS — несомненная деградация, но массы ж больше ничего не умеют и фундаментальных концепций (например, алгоритмы + структуры данных = программы) не понимают. У них, у масс, уже просто кругозора не хватает для освоения предмета. Они даже на приличных языках пишут одноразовый нечитаемый говнокод. Если люди жлобятся поставить немножко «лишних» пробелов, чтобы другие люди могли потом прочесть, это упадок, это разруха. Дальше будут гнилые смердящие клозеты.
Да нет, просто это ваше айти уже окончательно стало средством которое pays the bills, а весь нердизм и фан оттуда практически ушёл. Двадцать лет назад это началось, десять стало бросаться в глаза, сейчас этот процесс в общем-то заканчивается.
Это не только для ойти справедливо, но для всей нашей нынешней духовной жизни. Люди массово медийно-зависимые идиоты. Не в том смысле, что едят мыло, а в том, что не интересуются причинно-следственными связями реальности. Глобальная идиократия.
Однажды я читал (но не дочитал) интересную книжку. В ней авторы некоторых языков программирования рассказывают о том, как и почему сделали свои ЯП. Она располагает к размышлениям о том, почему некоторые концептуальности не интересны трудящимся массам и почему в реальной жизни облегчение какого-либо занятия приводит к его «идиотизации» (постепенному вытеснению компетентных и думающих людей и замещению их обывателями с недостаточным развитием). Скажем, чтобы для чего-нибудь выбрать язык Forth, нужно иметь умение и желание мыслить в рамках ОПЗ, однако «не выбрать» его проще, чем выбрать, ибо популярные у масс альтернативы не требуют от человека напрягаться этими вашими странными логиками, когда по телевизору так много всего захватывающего.
Да, любопытно.
С фортом я наблюдал это явление. "Обычные программисты" не въезжают в форт совершенно. Они останавливаются уже да, на ОПЗ. А хардверщики осваивали его только так. При этом форт, в те времена, был идеальной тулзой для моментального построения пирамиды абстракций.
Сейчас пора форта уже прошла давно. Размеры программ не те.
Мыслить — это трудно, без сомнений. Но человек обязан (перед самим собою и перед истиной) трудно мыслить, иначе вырождается обратно до говорящей прямоходящей обезьяны. Когда вырождается много человеков сразу, наступает идиократия.
Самое интересное в 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
Или найти в каталоге все mp3 файлы и переименовать их в соответствии с вынутыми из них id3tag-ами, перемещая в новое место и раскладывая по исполнителям/альбомам. )
Поэтому изучение юниксовой оболочки надо начинать не с вот этого всего, но с команды find, а потом сразу переходить к awk и sed. Остальное приложится либо клиент отвалится. :)
Клиент в любом случае отвалится, как ты перед ним не выплясывай — потому что не увидит прямой связи со своими рабочими функциями. Феромонами их чтоли подманивать, как у муравьёв.
Приложится и останется тот самый 0.001% седобородых с рождения, коих совершенно недостаточно чтобы закрыть потребности индустрии.
Скала эта ваша не часть системы, её надо принести откуда-то и установить. Авка же и сед, а также перл, тцл и сам шелл обычно имеются в базовой системе.
Ну, меня вот просветление шандарахнуло как раз при попытке изобразить find негодными, но уже известными средствами. Когда понял, что написал в командной строке два вложенных цикла — и эта хрень, kurwa mać, работает.
Почему команда 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.
Чтобы понять, что это такое, find можно попробовать представить себе как ещё один дополнительный неинтерактивный командный интерпретатор поверх обычной командной среды, который выполняет пакетные задания, полученные от юзера. То есть это, скажем так, не совсем «специальная утилита для поиска файлов», как пишут линупсоиды.
Такого нетипичного в системных утилитах осталось преизрядно. Собственно, и awk с sed не так уж типичны, а уж tar, если не знать его первоначального назначения, и вовсе инопланетяне подбросили. Отцы-основатели единообразием не заморачивались.
Так все упомянутые и не являются системными утилитами. Лучше рассматривать их как отдельные языки специального назначения со встроенным интерпретатором.
Основное, с чего полагается начинать новичку в Юниксе, отцы-основатели разжевали в упомянутой выше книжке («The UNIX Programming Environment») для этих самых новичков, которые во времена отцов-основателей понимались как программирующие пользователи, а не то, что в наше время.
Так и шелл пусть и странный, но довольно универсальный язык программирования.
Ну, а на мой почти что K&R GCC хоть и ругается, но компилирует в годные бинарники. По крайней мере, компилировал, пока я из этого дурдома пионеров не сбежал. С тех пор в основном шеллом и обхожусь; при моих объемах данных и нынешней скорости процессоров хватает выше крыши. Так что здесь скорее первична как раз идеология сверху донизу и на каждой ступеньке программируемой среды.
curl cheat.sh/<название комманды> Например: curl cheat.sh/find Выдает подсвеченные варианты наиболее распостраненного применения комманды, сконденсированная версия man
no subject
Date: 2022-07-03 05:23 (UTC)no subject
Date: 2022-07-03 09:56 (UTC)Да, старые знания в основном утрачены массами.
no subject
Date: 2022-07-03 11:06 (UTC)Новые приходят. Потихонечку.
no subject
Date: 2022-07-03 11:17 (UTC)no subject
Date: 2022-07-03 11:38 (UTC)Ну, ncdu не сильно новая; а вот не так давно какая-то новая меня поразила - а я и не записал. И забыл.
no subject
Date: 2022-07-03 11:46 (UTC)no subject
Date: 2022-07-03 14:13 (UTC)no subject
Date: 2022-07-03 14:19 (UTC)no subject
Date: 2022-07-04 22:02 (UTC)Когда менеджер стоит над душой и погоняет - другого и не остаётся.
no subject
Date: 2022-07-03 15:06 (UTC)А, ну да, ну да.
no subject
Date: 2022-07-03 17:59 (UTC)no subject
Date: 2022-07-03 18:21 (UTC)Да, любопытно. С фортом я наблюдал это явление. "Обычные программисты" не въезжают в форт совершенно. Они останавливаются уже да, на ОПЗ. А хардверщики осваивали его только так. При этом форт, в те времена, был идеальной тулзой для моментального построения пирамиды абстракций.
Сейчас пора форта уже прошла давно. Размеры программ не те.
no subject
Date: 2022-07-03 18:40 (UTC)Так они потому и не те, что идиократия.
Мыслить — это трудно, без сомнений. Но человек обязан (перед самим собою и перед истиной) трудно мыслить, иначе вырождается обратно до говорящей прямоходящей обезьяны. Когда вырождается много человеков сразу, наступает идиократия.
no subject
Date: 2022-07-03 10:59 (UTC)ncdu забыл. Очень полезная вещь.
seeCtrlC-CtrlV alsono subject
Date: 2022-07-03 14:10 (UTC)Навскидку:
Еще
Или вот это бывает полезно при кернельном хакерстве:
Или brace expansion + glob
no subject
Date: 2022-07-03 14:19 (UTC)no subject
Date: 2022-07-03 16:16 (UTC)no subject
Date: 2022-07-03 14:21 (UTC)no subject
Date: 2022-07-03 16:13 (UTC)Приложится и останется тот самый 0.001% седобородых с рождения, коих совершенно недостаточно чтобы закрыть потребности индустрии.
no subject
Date: 2022-07-03 17:40 (UTC)no subject
Date: 2022-07-03 16:33 (UTC)no subject
Date: 2022-07-03 17:35 (UTC)Первые два учебных часа 1 сентября —
урок мужестваvimtutor.no subject
Date: 2022-07-03 18:23 (UTC)Я когда нужно авку или сед, уже переключаюсь на скалу. На скале все можно запрограммировать, и больше.
no subject
Date: 2022-07-03 18:36 (UTC)no subject
Date: 2022-07-04 22:05 (UTC)no subject
Date: 2022-07-04 14:45 (UTC)no subject
Date: 2022-07-04 16:06 (UTC)В манах 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 можно попробовать представить себе как ещё один дополнительный неинтерактивный командный интерпретатор поверх обычной командной среды, который выполняет пакетные задания, полученные от юзера. То есть это, скажем так, не совсем «специальная утилита для поиска файлов», как пишут линупсоиды.
no subject
Date: 2022-07-04 17:06 (UTC)no subject
Date: 2022-07-04 17:09 (UTC)Основное, с чего полагается начинать новичку в Юниксе, отцы-основатели разжевали в упомянутой выше книжке («The UNIX Programming Environment») для этих самых новичков, которые во времена отцов-основателей понимались как программирующие пользователи, а не то, что в наше время.
no subject
Date: 2022-07-04 18:13 (UTC)Ну, а на мой почти что K&R GCC хоть и ругается, но компилирует в годные бинарники. По крайней мере, компилировал, пока я из этого дурдома пионеров не сбежал. С тех пор в основном шеллом и обхожусь; при моих объемах данных и нынешней скорости процессоров хватает выше крыши. Так что здесь скорее первична как раз идеология сверху донизу и на каждой ступеньке программируемой среды.
no subject
Date: 2022-07-04 18:28 (UTC)no subject
Date: 2022-07-04 18:39 (UTC)no subject
Date: 2022-07-03 18:22 (UTC)Какие классные штучки.
no subject
Date: 2022-07-04 06:43 (UTC)Например: curl cheat.sh/find
Выдает подсвеченные варианты наиболее распостраненного применения комманды, сконденсированная версия man
no subject
Date: 2022-07-04 20:20 (UTC)