Самые мощные примеры команд или скриптов Unix, которые должен знать каждый программист - PullRequest
27 голосов
/ 09 июля 2009

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

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

Слева от них находилась машина для разработки Windows XP, а справа - коробка с Linux. Я думаю, что это была Ubuntu. Во всяком случае, они сказали мне, что использовали его, потому что он предоставлял мощные операции Unix, которые Windows не могла выполнить в процессе разработки.

Мне любопытно узнать, как инженер-программист, что, по вашему мнению, является одним из самых мощных сценариев / команд / применений, которые вы можете выполнять в операционной системе Unix / Linux, которые каждый программист должен знать для решения реальных задач что не обязательно относится к написанию кода?

Мы все знаем, что делают sed , awk и grep . Я заинтересован в некоторых реальных сценариях Unix / Linux, которые решили сложную проблему для вас, так что другие программисты могут получить выгоду. Пожалуйста, предоставьте свою историю и источник.

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

Обновление: Люди, кажется, неправильно истолковывают вопрос. Я не спрашиваю имена отдельных команд Unix, скорее код UNIX snippets , который решил проблему для вас.

Лучшие ответы от сообщества


Пройдите по дереву каталогов и распечатайте пути к любым файлам, которые соответствуют регулярному выражению:

find . -exec grep -l -e 'myregex' {} \; >> outfile.txt 

Вызовите редактор по умолчанию (Nano / ViM)

(работает на большинстве систем Unix, включая Mac OS X) Редактор по умолчанию любой Переменная окружения " EDITOR " установлен в. т.е.: экспорт РЕДАКТОР = / usr / bin / pico который находится в ~ / .profile под Mac OS X.

Ctrl+x Ctrl+e

Список всех работающих сетевых подключений (включая приложение, к которому они принадлежат)

lsof -i -nP

Очистить историю поиска Терминала (Еще один из моих любимых)

history -c

Ответы [ 25 ]

0 голосов
/ 09 июля 2009

Grep (попробуйте Windows Grep )

sed (попробуйте Sed для Windows)

На самом деле, есть большой набор портов действительно полезных * nix-команд, доступных на http://gnuwin32.sourceforge.net/. Если у вас * nix-фон и теперь вы используете windows, вам, вероятно, стоит их проверить.

0 голосов
/ 13 июля 2009

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

export MYLIST=`ldd amule | awk ' { print $3; }'`; for a in $MYLIST; do cksum $a; done

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

0 голосов
/ 13 июля 2009

То, что вы можете использовать -name и -iname несколько раз в команде поиска, было для меня откровением.

[findplaysong.sh]

#!/bin/bash
cd ~
echo Matched...
find /home/musicuser/Music/ -type f  -iname "*$1*" -iname "*$2*" -exec echo {} \;
echo Sleeping 5 seconds
sleep 5
find /home/musicuser/Music/ -type f  -iname "*$1*" -iname "*$2*" -exec mplayer {} \;
exit
0 голосов
/ 09 июля 2009

Тебе было бы лучше, если бы ты держал чит-лист с собой ... нет ни одной команды, которую можно назвать наиболее полезной. Если команда perticular делает вашу работу полезной и мощной

Редактировать Вы хотите мощные скрипты оболочки? Сценарии оболочки - это программы. Правильно составьте основы, постройте отдельные команды, и вы получите то, что называется мощным скриптом. Тот, который служит вашим потребностям, могущественен, иначе он бесполезен. Было бы лучше, если бы вы упомянули проблему и спросили, как ее решить.

0 голосов
/ 09 июля 2009

С этим можно делать что угодно ...

НКУ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...