Наиболее часто употребимые команды и инструменты.
От: Sharov Россия  
Дата: 13.04.22 11:11
Оценка:
Здравствуйте.

Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?
Я, наример, узнал про такую мега, кмк, полезную штуку как ldd
Автор: AlexGin
Дата: 11.04.22
. Может еще что-то
в этом роде (про gcc, gdb вкурсе)?

Какие инструметы для разработки используете, если максимально абтсрагироваться от языка? Ну т.е. что-то вроде vim, vs code, git и т.п.?
Может еще какие полезные кросс-языковые, но линукс специфичные интсрументы посоветуете?
Особых отличий в pipelin'e для разработки в линукс от разработки в венде, я думаю, нету.

Это не совсем дублирование пред. темы
Автор: Basil2
Дата: 08.04.22
, хотелось бы именно больше конкретики.
Т.е. в баше вообще можно сделать что-то типа history| count (...) и статистику по последним 200 -300 (или сколько там)
командам.

(Ну и было бы здорово что-нибудь для администрирования линупса -- что-то кроме iptables надо знать уметь на уровне
продвинутого пользователя?)

Заранее благодарю.
Кодом людям нужно помогать!
Отредактировано 13.04.2022 11:18 Sharov . Предыдущая версия .
Re: Наиболее часто употребимые команды и инструменты.
От: Sheridan Россия  
Дата: 13.04.22 12:24
Оценка: 20 (3)
Здравствуйте, Sharov, Вы писали:

S>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?

Лучше не bash а zsh+oh-my-zsh. Заметно удобнее.

S>Я, наример, узнал про такую мега, кмк, полезную штуку как ldd
Автор: AlexGin
Дата: 11.04.22
. Может еще что-то

S>в этом роде (про gcc, gdb вкурсе)?
astyle например или clang-format позволяет отформатировать исходники под одну гребенку. Правда тут как правило приходится подбирать под себя + местами по новому форматировать ибо оба два имеют недостаточно рычагов...
wc — считает строки, символы в файлах
graphviz — визуализатор всяких графов с простым языком dot
doxygen — генерирует документацию из исходников, опираясь на оформленные комменты + рисует графы зависимостей, включений итд

S>Какие инструметы для разработки используете, если максимально абтсрагироваться от языка? Ну т.е. что-то вроде vim, vs code, git и т.п.?

S>Может еще какие полезные кросс-языковые, но линукс специфичные интсрументы посоветуете?
S>Особых отличий в pipelin'e для разработки в линукс от разработки в венде, я думаю, нету.
jq потрогай — удобно им json смотреть. pydf — удобночитаемо пишет про забитость дисков.
xclip — закидывает приехавшее ему в пайп буффер обмена (cat smth.file | xclip -selection clipboard -i)
xdotool — управлять мышой об скрипты. Бывает полезно автоматизировать графику

S>(Ну и было бы здорово что-нибудь для администрирования линупса -- что-то кроме iptables надо знать уметь на уровне

S>продвинутого пользователя?)
Лучше сразу в nftables иди. Оно получше написано и конфиг у него именно конфиг. К тому же оно умеет сразу и ipv4 и ipv6 в одном флаконе.

S>Заранее благодарю.

Сложно вот так сидеть вспоминать чтото полезное. Лучше спрашивай целенаправленно.
Matrix has you...
Re: Наиболее часто употребимые команды и инструменты.
От: vsb Казахстан  
Дата: 13.04.22 12:35
Оценка: 10 (1)
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте.


S>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?


  stats
grep -v '#' ~/.bash_history |sed 's/\(\S\+\).*/\1/'|sort|uniq -c|sort -n|tail -n 50|wl-copy
     27 kill
     28 clear
     28 python
     30 du
     30 for
     31 rmdir
     32 pwgen
     33 bc
     33 wc
     35 openssl
     35 xdg-open
     36 wl-paste
     39 ps
     41 pwd
     45 dnf
     45 host
     46 node
     47 ./start.sh
     49 grep
     55 npm
     58 date
     60 java
     63 scp
     66 setjava
     67 rg
     70 find
     82 psql
     85 head
     90 go
     90 mkcdtmp
     97 mv
    110 cp
    117 curl
    118 echo
    124 mvn
    125 mkdir
    140 sudo
    173 rm
    185 ping
    202 cat
    345 git
    358 man
    363 docker
    413 less
    417 docker-compose
    471 ll
    486 vim
    649 ssh
    984 cd
   1426 ls



S>Я, наример, узнал про такую мега, кмк, полезную штуку как ldd
Автор: AlexGin
Дата: 11.04.22
. Может еще что-то

S>в этом роде (про gcc, gdb вкурсе)?

Таким не пользуюсь, не знаю, зачем оно мне.

S>Какие инструметы для разработки используете, если максимально абтсрагироваться от языка? Ну т.е. что-то вроде vim, vs code, git и т.п.?


vim для редактирования файлов по-быстрому. Для разработки пользуюсь Intellij Idea. Пробовал vs code, хорошая штука, но идее уступает на мой взгляд. git для сложных ситуаций, а так обычно из идеи коммичу и тд.

S>Может еще какие полезные кросс-языковые, но линукс специфичные интсрументы посоветуете?


Самое полезное это освоить sh, bash или zsh и все сопутствующие инструменты (grep, sed, awk, bc, head, tail и тд). Ну less, man из очевидного.

Из неупомянутого — рекомендую разобраться с неочевидными возможностями ssh (в частности прокидывание портов, socks-прокси), а также socat — улётная штука. Ещё tcpdump тоже рекомендую потыкать, очень помогает в отладке сетевых проблем.

S>Особых отличий в pipelin'e для разработки в линукс от разработки в венде, я думаю, нету.


В целом да. В линуксе чуть удобней терминал.

>командам.


S>(Ну и было бы здорово что-нибудь для администрирования линупса -- что-то кроме iptables надо знать уметь на уровне

S>продвинутого пользователя?)

iptables не уверен, что надо, давно им не пользовался. И вообще он уже устарел, его заменил nftables. Для фаервола в ubuntu используют ufw, в rhel — firewalld.

Не знаю, даже, что там надо уметь. Есть дистрибутив, есть к нему официальное руководство. Вот его почитай, там всё будет. В первую очередь это управление пакетами. Ну и там дистрибутиво-специфичные технологии, в RHEL надо с SELinux будет разобраться, в Ubuntu видимо с этими снапами и тд. Из задач надо исходить, смотря что тебе надо.
Отредактировано 13.04.2022 12:37 vsb . Предыдущая версия .
Re: Наиболее часто употребимые команды и инструменты.
От: Zhendos  
Дата: 13.04.22 12:57
Оценка: 5 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте.


S>Я, наример, узнал про такую мега, кмк, полезную штуку как ldd
Автор: AlexGin
Дата: 11.04.22
. Может еще что-то

S>в этом роде (про gcc, gdb вкурсе)?
S>Какие инструметы для разработки используете, если максимально абтсрагироваться от языка? Ну т.е. что-то вроде vim, vs code, git и т.п.?
S>Может еще какие полезные кросс-языковые, но линукс специфичные интсрументы посоветуете?

Еще есть lld, ликовщик от LLVM. У меня на примерно ~10 секунд ускорил линковку.
perf в качестве профилировщика не плох. strace часто позвоялет без исходного
кода докапаться почему этот конкретный исполняемый файл не работает,
откуда он берет конфиги и т.д.

emacs+magit весьма крут как GUI для git.
Re: Наиболее часто употребимые команды и инструменты.
От: AlexGin Беларусь  
Дата: 13.04.22 16:24
Оценка: 10 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?


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

Возникает необходимость во-первых найти идентификатор процесса. Значение PID (process ID) — в UNIX совпадает с ID главного потока исполнения.
Просмотреть PID "моегоприложения" можно:
из командной строки:
$ pidof myapplication

или так:
$ ps aux | grep myapplication

во втором случае — покажет также и PID самого процесса grep.
Есть также и GUI утилита — System Monitor — можно для определения значения PID воспльзоваться и ею.

Если в нашем приложении более одного потока исполнения, можно просмотреть их ID (TID — thread ID) уже упомянутой утилитой ps:
$ ps -T -p 11739

Где число 11739 — это PID нашего приложения, выясненный ранее.

Наконец, увидеть реально — сколько ресурсов CPU "выжирает" каждый из потоков исполнения можно так:
$ htop -p 11739

это приложение в "псевдографике" покажет много информации насчёт наших потоков.

P.S. Есть ещё утилита bpytop — также просмотр процессов. ИМХО — на любителя.
Отредактировано 13.04.2022 17:32 AlexGin . Предыдущая версия .
Re: Наиболее часто употребимые команды и инструменты.
От: Muxa  
Дата: 13.04.22 19:49
Оценка: 5 (1)
Помимо команд/инструментов я часто использую переменные окружения: LD_LIBRARY_PATH, LD_PRELOAD, LD_DEBUG
Re: Наиболее часто употребимые команды и инструменты.
От: vaa  
Дата: 14.04.22 01:23
Оценка: +1 :))
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте.


S>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?


sleep 600 && espeak "wakeup! standup!"
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Наиболее часто употребимые команды и инструменты.
От: AlexGin Беларусь  
Дата: 14.04.22 02:30
Оценка: 5 (1)
Здравствуйте, Muxa, Вы писали:

M>Помимо команд/инструментов я часто использую переменные окружения: LD_LIBRARY_PATH, LD_PRELOAD, LD_DEBUG


LD_LIBRARY_PATH, LD_PRELOAD — установка альтернативных путей поиска *.so библиотек:
https://stackoverflow.com/questions/13428910/how-to-set-the-environmental-variable-ld-library-path-in-linux
https://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick

LD_DEBUG — из той же сферы, для отладки
https://unix.stackexchange.com/questions/231323/how-an-expression-which-contains-ld-debug-is-processed

Так, если их не установил, то их нет — как не ищи.
ни так:
$ env | grep LD_LIBRARY_PATH
... LD_PRELOAD
... LD_DEBUG

ни этак:
$ echo $LD_LIBRARY_PATH
... LD_PRELOAD
... LD_DEBUG


P.S. Вывести весь список *.so файлов, сохраненных в конфигах /etc/ld.so.conf.d/*.conf — можно так:
$ ldconfig -p > ld_out.txt

результаты перенаправил в файл ld_out.txt — так как там реально большой объём.
Отредактировано 14.04.2022 2:43 AlexGin . Предыдущая версия . Еще …
Отредактировано 14.04.2022 2:39 AlexGin . Предыдущая версия .
Re: Наиболее часто употребимые команды и инструменты.
От: Miroff Россия  
Дата: 14.04.22 02:36
Оценка: 4 (1)
Здравствуйте, Sharov, Вы писали:

S>Может еще какие полезные кросс-языковые, но линукс специфичные интсрументы посоветуете?


Джентльменский набор для анализа данных позвляющий построить map/reduce чисто на пайпах и стандартных утилитах командной строки, которые есть везде: find --exec + cut + xargs + parallel

... && telegram_send позволят получить нотификацию, когда команда закончится.

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



S>Это не совсем дублирование пред. темы
Автор: Basil2
Дата: 08.04.22
, хотелось бы именно больше конкретики.


Есть еще вот эта тема http://rsdn.org/forum/unix/8254316
Автор: AlexGin
Дата: 11.04.22
Re: Наиболее часто употребимые команды и инструменты.
От: vaa  
Дата: 14.04.22 02:46
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Какие инструметы для разработки используете, если максимально абтсрагироваться от языка?


emacs отличный выбор для линукса в плане разработки после vs code конечно.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Наиболее часто употребимые команды и инструменты.
От: Sheridan Россия  
Дата: 14.04.22 05:24
Оценка: 4 (1) +1
Здравствуйте, AlexGin, Вы писали:

AG>P.S. Есть ещё утилита bpytop — также просмотр процессов. ИМХО — на любителя.

ну оно больше про красивости, чем про полезности. htop таки удобнее заметно.
Matrix has you...
Re[2]: Наиболее часто употребимые команды и инструменты.
От: Dair Россия  
Дата: 17.04.22 03:25
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?

S>Лучше не bash а zsh+oh-my-zsh. Заметно удобнее.

Я почитал про фичи oh-my-zsh и не понял, чего там сильно полезного. Расскажи, пожалуйста, чем ты там чаще всего пользуешься?
Re[3]: Наиболее часто употребимые команды и инструменты.
От: Sheridan Россия  
Дата: 18.04.22 09:48
Оценка: 4 (1)
Здравствуйте, Dair, Вы писали:

D>Я почитал про фичи oh-my-zsh и не понял, чего там сильно полезного. Расскажи, пожалуйста, чем ты там чаще всего пользуешься?

Тема, git (показывает ветку репы, статус в строке приглашения когда в каталоге с репой находишься), история удобная, автокомплит по опциям разных приложений (git в том числе — например черрипик таб — показывает коммиты) ну и всякие полезности типа работающего home-end (в ванильном zsh емнип не пашет)
Matrix has you...
Re: Наиболее часто употребимые команды и инструменты.
От: A13x США  
Дата: 18.04.22 19:47
Оценка: 4 (1)
Здравствуйте, Sharov, Вы писали:

S>Вопрос к опытным разработчикам-линуксоводам -- какие утилиты (bash) вы наиболее часто используете?

S>...

Для быстрого копирования с сервера А на сервер Б, когда нет ssh ключа на А для доступа на Б, удобно копировать файлы через netcat:

На Б (прием файла, ip=10.0.0.1 для примера):

nc -l -p 8080 > file.bin


На А (отправитель файла):

nc -w 3 10.0.0.1 8080 < file.bin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.