Здравствуйте, sdo.daemon, Вы писали:
SD>Доброго времени суток. SD>Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем. SD>Подскажите какой багаж знаний нужно приобрести в выше указанных ОС? если можно подскажите литературу.
по мне нужно знать чуть-чуть. и пользоваться ман-ом.
желательлно хоть раз в глаза видеть
svc
cron
traceroute
netstat
vi
обязательно хоть немного работать с
grep
awk
sed
vim
Знат
bash
знать что такое файрвол и как с ним работать..
чуть-чуть понимать в сетях.
т.к. очень часто проблемы в программе бывают результатом проблем извне.
Здравствуйте, Пацак, Вы писали:
П>Все, больше случаев возникновения "мусора" в проекте я не припоминаю. У тебя всё по-другому, и такие файлы возникают регулярно?
ну например в позапрошлом проекте, в котором я участвовал, помимо мусора от vim, xemacs и kate, которыми я пользовался, генерировались исходники на sql, python, сишные хедеры для юнит тестов с константами, корбовые прокси для питона и с++, было еще немного мусора от scons, какие то непонятные логи левые вылазали в странных местах. В среднем после scons -c в trunk было около 300-400 файлов с вопросиками. Если прогнать автоматические тесты, а потом scons -c, то раза в два больше. Я пытался это хоть немного поправить, когда занялся deb пакетом, но потом плюнул на это безнадежное дело.
Проект благополучно сдан и слава богу всеми забыт нафиг
Здравствуйте, Nicht, Вы писали:
N>У svn add нет параметра --recursive. Как раз наоборот есть --non-recursive. svn add рекурсивная по умолчанию. N>svn add * не работает в том случае, если ты к примеру добавишь файл в поддиректорию которая уже в svn, то svn add * уже этот файл не добавит, ругнется что эта директория уже добавлена и рекурсию по ней не продолжает.
А, это я перепутал ключики. Помню, что-то добавить нужно было:
По умолчанию, команда svn add * пропустит любые каталоги уже находящиеся под контролем версий. Но иногда, все же, бывает нужно добавить все неверсионированные объекты в вашей рабочей копии, включая те, что находятся внутри каталогов. Указав параметр --force принудит svn add рекурсивно пройтись и по версионированным каталогам:
Доброго времени суток.
Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем.
Подскажите какой багаж знаний нужно приобрести в выше указанных ОС? если можно подскажите литературу.
Здравствуйте, sdo.daemon, Вы писали:
SD>Доброго времени суток. SD>Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем. SD>Подскажите какой багаж знаний нужно приобрести в выше указанных ОС? если можно подскажите литературу.
Как мне кажется такой же как и под Windows — знания уверенного пользователя. Владение bash, знание назначение разных стандартных директорий, процесса старта системы. Спрашивают в основном потому, что сервера чаще всего под linux и с ними желательно уметь работать. Врятли кто то от тебя будет требовать знание внитреннего устройства планировщика процессов.
Самый лучший способ, постаить себе на рабочую машину какой нибудь нормальный дистрибутив linux и начать там программировать. В процессе решения насущьный проблем очень быстро появляется беглось и выражения типа
svn status | grep ? | sed s/^?\ *//g | xargs svn add
Здравствуйте, sdo.daemon, Вы писали:
SD>Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем. SD>Подскажите какой багаж знаний нужно приобрести в выше указанных ОС
отправной список:
возможности sshd (тунеллирование и его применение для отладки)
уверенная навигация по каталогам, поиск нужных логов (cd, find, grep)
чтение логов с помощью less, cat -f
уверенное владение vi, vim (vi нужно знать для допотопных юниксов)
владение клиентскими windows-программами для доступа к nix-серверам (putty, winscp), особенно в плане настроек доступа по сертификатам и уже упомянутого туннелирования
SD>Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем. SD>Подскажите какой багаж знаний нужно приобрести в выше указанных ОС? если можно подскажите литературу.
Рискну предложить несколько экстравагантный способ "вхождения" в Linux: установка Gentoo. Распечатать Gentoo Handbook, прожечь minimal CD и установить систему на какой-нибудь физический или виртуальный компьютер. Там дана пошаговая процедура с объяснениями. Ненавязчиво знакомимся с cd, ls, cp, mv, grep, tar, links, grub, сборкой ядра, chroot, mount и тучей других полезных вещей.
C0s>владение клиентскими windows-программами для доступа к nix-серверам (putty, winscp), особенно в плане настроек доступа по сертификатам и уже упомянутого туннелирования C0s>
Putty прекрасно работает под Линуксом!
Здравствуйте, sdo.daemon, Вы писали:
SD>Доброго времени суток. SD>Собственно являюсь джавистом без опыта работы в *NIX, однако при приеме на работу часто спрашивают про экспириенс *NIX систем. SD>Подскажите какой багаж знаний нужно приобрести в выше указанных ОС? если можно подскажите литературу.
Самое главное — не пользовать jdk 1.4 от опенcоурса, (что идет в дефолтной поставке от RedHat, например) , ибо класс Date глючил и функции по работе с датой тоже не ахти работали в нашей локали ...
Здравствуйте, Nicht, Вы писали:
N>Самый лучший способ, постаить себе на рабочую машину какой нибудь нормальный дистрибутив linux и начать там программировать. В процессе решения насущьный проблем очень быстро появляется беглось и выражения типа N>
N>svn status | grep ? | sed s/^?\ *//g | xargs svn add
N>
N>перестают быть тарабарщиной.
и понимать почему так делать нельзя. особенно если проект в собранном состоянии.
dotidot wrote:
> N>перестают быть тарабарщиной. > и понимать почему так делать нельзя. особенно если проект в собранном > состоянии.
Это ещё почему? svn:ignore тебе в помощь.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ., Вы писали:
.>Это ещё почему? svn:ignore тебе в помощь.
Вы серьезно предлагаете не глядя скопом добавить весь посторонний мусор по случаю оказавшийся в директории под контролем версий (кстати скрипт с ошибкой, знак вопроса грепом искать надо не так)? На все виды мусора игнор не поставиш, его обычно только на файлы IDE и build директорию ставят. Конечно, перед коммитом можно посмотреть список добавляемых файлов, но зачем их добавлять, если этот же список можно увидеть без добавления?
ИМХО это всё таки неправильный способ упрощения жизни.
Здравствуйте, dotidot, Вы писали:
D>Вы серьезно предлагаете не глядя скопом добавить весь посторонний мусор по случаю оказавшийся в директории под контролем версий (кстати скрипт с ошибкой, знак вопроса грепом искать надо не так)? На все виды мусора игнор не поставиш, его обычно только на файлы IDE и build директорию ставят. Конечно, перед коммитом можно посмотреть список добавляемых файлов, но зачем их добавлять, если этот же список можно увидеть без добавления? D>ИМХО это всё таки неправильный способ упрощения жизни.
<imho> "посторонний мусор по случаю", в рабочей директории лежать не должен (кстати скрипт без ошибки). На штатный есть svn:ignore </imho>
Кста, после тезиса по теме — "появляется беглость и выражения ... перестают быть тарабарщиной", разговор резко отклонился и от Java, и от Линукса. В философию или закончим, пока нас модератор не закончил?
Здравствуйте, abch-1, Вы писали:
A1><imho> "посторонний мусор по случаю", в рабочей директории лежать не должен (кстати скрипт без ошибки). На штатный есть svn:ignore </imho> A1>Кста, после тезиса по теме — "появляется беглость и выражения ... перестают быть тарабарщиной", разговор резко отклонился и от Java, и от Линукса. В философию или закончим, пока нас модератор не закончил?
:~/Projects/test$ svn stat
? a
? b
:~/Projects/test$ svn status | grep ? | sed s/^?\ *//g
svn: Write error: Broken pipe
:~/Projects/test$ svn status | grep ?
svn: Write error: Broken pipe
:~/Projects/test$ svn --version
svn, version 1.4.6 (r28521)
compiled Mar 11 2008, 08:26:35
:~/Projects/test$ uname -a
Linux hvan 2.6.24-19-generic #1 SMP Wed Aug 20 22:56:21 UTC 2008 i686 GNU/Linux
:~/Projects/test$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
:~/Projects/test$ grep --version
GNU grep 2.5.3
у меня не кошерный греп, да? ИМХО даже скрипты на выброс стоит тестировать.
Здравствуйте, dotidot, Вы писали:
.>>Это ещё почему? svn:ignore тебе в помощь. D>Вы серьезно предлагаете не глядя скопом добавить весь посторонний мусор по случаю оказавшийся в директории под контролем версий (кстати скрипт с ошибкой, знак вопроса грепом искать надо не так)?
У меня, например, мусора не бывает. Перед коммитом глазками проверяю вывод "svn st | grep ?", а потом использую как раз такой же скрипт для добавления всех новых файлов.
D>На все виды мусора игнор не поставиш
Почему?
D>ИМХО это всё таки неправильный способ упрощения жизни.
Не стоит просто её усложнять.
Здравствуйте, dotidot, Вы писали:
D>Вы серьезно предлагаете не глядя скопом добавить весь посторонний мусор по случаю оказавшийся в директории под контролем версий
А откуда там возьмется "посторонний мусор? Из своей практики я помню только три таких случая:
1) Перенаправление стандартного вывода в файл для последующего анализа и ускорения сборки/тестирования. Решилось тем, что вместо текущей папки стал перенаправлять в файл из /tmp
2) Результат преобразования native2ascii и обратно. Решается через svn:ignore
3) Бэкап-файлы vim'а (с тильдой перед именем), как результат редактирования файлов "по-быстрому". Решается настройкой vim'а
Все, больше случаев возникновения "мусора" в проекте я не припоминаю. У тебя всё по-другому, и такие файлы возникают регулярно?
Здравствуйте, dotidot, Вы писали:
D>ну например в позапрошлом проекте, в котором я участвовал, помимо мусора от vim, xemacs и kate, которыми я пользовался, генерировались исходники на sql, python, сишные хедеры для юнит тестов с константами, корбовые прокси для питона и с++, было еще немного мусора от scons, какие то непонятные логи левые вылазали в странных местах. В среднем после scons -c в trunk было около 300-400 файлов с вопросиками. Если прогнать автоматические тесты, а потом scons -c, то раза в два больше. Я пытался это хоть немного поправить, когда занялся deb пакетом, но потом плюнул на это безнадежное дело. D> Проект благополучно сдан и слава богу всеми забыт нафиг
Может надо быть сразу один раз настроить процесс сборки и не парится потом с чисткой автосгенеренных файлов?
Лично у меня в каждом проекте есть папка target, куда кладутся все что появляется в проекте в процессе сборки. И эта папка заносится в svn:ignore. И все. С учетом того, что практически всю эту работу берет на себя maven2, то я вообще ничего не делаю.
А еще ,так как в проекте много модулей,у меня в корне лежит файл ignores.txt, в котором прописаны все игноры, которые должны быть во вновь созданом модуле. И после создания папки для нового модуля я просто вызываю команду
svn propset svn:ignore -f ignores.txt .
И дальше наслаждаюсь беззаботной жизнью.
Хороший профессионал, будь то программист или плотник, должен знать и любить свои инструменты.
Да, и заканчивай писать программы в emacs, ты не Столман. Нормальные IDE не оставляют мусора.
Здравствуйте, LeonidV, Вы писали:
LV>Я правильно понял, что это рекурсивное добавление всех документ в каталоге в СУВ? Тогда можно сильно проще: LV>
LV>svn add --recursive *
LV>
LV>(В точности синтаксиса не уверен, но идея абсолютно такая)
У svn add нет параметра --recursive. Как раз наоборот есть --non-recursive. svn add рекурсивная по умолчанию.
svn add * не работает в том случае, если ты к примеру добавишь файл в поддиректорию которая уже в svn, то svn add * уже этот файл не добавит, ругнется что эта директория уже добавлена и рекурсию по ней не продолжает.
Здравствуйте, Cyberax, Вы писали: C>Удобнее стандартного SSH.
Странно. Для меня преимущество работы в Linux'е с удаленным компьютером как раз заключается в полной прозрачности действий — что тут, то и там. Только профиль поменять да на отдельный виртуальный стол кинуть. С Linux putty не работал, но Windows Putty с консолью сильно не удобней работать, чем со стандартным ssh в Линуксе.
Здравствуйте, LeonidV, Вы писали:
LV>А, это я перепутал ключики. Помню, что-то добавить нужно было: LV>
LV>По умолчанию, команда svn add * пропустит любые каталоги уже находящиеся под контролем версий. Но иногда, все же, бывает нужно добавить все неверсионированные объекты в вашей рабочей копии, включая те, что находятся внутри каталогов. Указав параметр --force принудит svn add рекурсивно пройтись и по версионированным каталогам:
Здравствуйте, LeonidV, Вы писали:
LV>А почему вы считаете, что с putty удобнее?
Например, есть killer-feature — "duplicate session". Создаёт ещё одну сессию до того же хоста.
Потом, в Putty очень удобные графические настройки консоли. Например, как ты будешь отключать "xterm-style mouse reporting", чтоб не мешал делать cut&paste из Midnight Commander? В Putty — это одна галочка.
Ещё у меня авторизация по SSH-ключам, а Putty позволяет их легко указывать.