# $@ - all input parameters # "$@" - all input parameters, but without executions for any special characters
четверг, 27 февраля 2014 г.
bash scripting. All input parameters
вторник, 25 февраля 2014 г.
понедельник, 24 февраля 2014 г.
Как настроить ssh доступ чтобы не вводить пароль
Нужно создать у себя на локальном пару private/public и public зарегать на удаленке. Делается єто так:
Если у нас не установлен ssh-copy-id из пакета openssh-client, то тогда нужно поработать руками:
Ну и потом еще в локальном ~/.ssh/config, чтобы меньше вводить буков:
[user@local:~/]$ cd ~/.ssh [user@local:~/]$ [user@local:~/.ssh/]$ ssh-keygen -t dsa Enter file in which to save the key (/home/user/.ssh/id_dsa): id_dsa.remote [user@local:~/.ssh/]$ [user@local:~/.ssh/]$ chmod 600 * [user@local:~/.ssh/]$ chmod 700 ~/ssh [user@local:~/.ssh/]$ [user@local:~/.ssh/]$ ssh-copy-id -i id_dsa.remote.pub ruser@remote
Если у нас не установлен ssh-copy-id из пакета openssh-client, то тогда нужно поработать руками:
[user@local:~/.ssh/]$ scp id_dsa.remote.pub ruser@remote:~/.ssh/ [user@local:~/.ssh/]$ ssh ruser@remote:~/.ssh [ruser@remote:~/.ssh/]$ cat id_dsa.remote.pub >> ~/.ssh/authorized_keys [ruser@remote:~/.ssh/]$ rm id_dsa.remote.pub [ruser@remote:~/.ssh/]$ exit
Ну и потом еще в локальном ~/.ssh/config, чтобы меньше вводить буков:
[user@local:~/.ssh/]$ cat >> ~/.ssh/config << "EOF"
Host short-name
HostName remote
User ruser
IdentityFile /home/user/.ssh/id_dsa.remote
EOF
Теперь заходить удаленно вообще просто, особенно когда доменное имя remote, намного длиннее по названию за short-name
Инициализация коллекций
Инициализация хешмапы через инит блок анонимного класса
Это имеет смысле делать для статитик файнал полейprivate static final Map<string, string> URLS = new HashMap<string, string>() {
{
put("URL to here", "one");
put("URL to there", "two");
}
};
private static final Map<string, string< URLS = new HashMap<string, string>() {{
put("URL to here", "one");
put("URL to there", "two");
}};
Инициализация множества
public static final Setexample = new TreeSet<>( Arrays.asList("String1", "String2"));
суббота, 22 февраля 2014 г.
Git aliases
$ git config --global alias.mylog \
"log --pretty=format: '%h %s [%an]' --graph"
$ git config --global alias.lol \
"log --graph --decorate --pretty=oneline --abbrev-commit --all"
Ежедневные:
$ git config --global alias.st status # git st
$ git config --global alias.co checkout # git co
$ git config --global alias.br branch # git br
$ git config --global alias.ci commit # git ci
"log --pretty=format: '%h %s [%an]' --graph"
$ git config --global alias.lol \
"log --graph --decorate --pretty=oneline --abbrev-commit --all"
Ежедневные:
$ git config --global alias.st status # git st
$ git config --global alias.co checkout # git co
$ git config --global alias.br branch # git br
$ git config --global alias.ci commit # git ci
Ярлыки:
git
История гита, как не комитить то что не нужно
$ git config --global color.ui true
$ git log
$git log --pretty=oneline
08f2302691c4758475847584754dfgdf787 Commit message
$ git log --pretty=format: "%h %ad- %s [%an]"
$ git log
$git log --pretty=oneline
08f2302691c4758475847584754dfgdf787 Commit message
$ git log --pretty=format: "%h %ad- %s [%an]"
| placeholder | replace with |
|---|---|
| %ad | author date |
| %an | author name |
| %h | SHA hash |
| %s | subject |
| %d | ref names |
Ярлыки:
git
среда, 19 февраля 2014 г.
Git rebase
Основной сценарий:
git fetch - стягивает удаленные изменения в ветках, но не мерджит с локальными.
git rebase - берет комиты локаного master и размещает в temp, потом берет все удаленные комиты и заливает в локальный master, после этого из temp заливате в след локальные. Так мы получаем не мерджи, а последовательные комиты в истории.
git fetch - стягивает удаленные изменения в ветках, но не мерджит с локальными.
git rebase - берет комиты локаного master и размещает в temp, потом берет все удаленные комиты и заливает в локальный master, после этого из temp заливате в след локальные. Так мы получаем не мерджи, а последовательные комиты в истории.
Ярлыки:
git
понедельник, 17 февраля 2014 г.
alternatives
alternatives - утилита для установки разных версий одной утилиты в linux.
В убунту и наверно в семействе Debian команда называется update-alternatives
Делаем это так(установить еще одну альтернативную реализацию утилиты):
Где
alternatives --install {path/to/slink/of/util} {name_of_util} {/real/path/to/util}
Чтобы переключить версию утилиты на другую реализацию:
В убунту и наверно в семействе Debian команда называется update-alternatives
Делаем это так(установить еще одну альтернативную реализацию утилиты):
# alternatives --install /usr/bin/java java /opt/jdk1.7.0_51/bin/java 20000
Где
alternatives --install {path/to/slink/of/util} {name_of_util} {/real/path/to/util}
Чтобы переключить версию утилиты на другую реализацию:
# alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 2 /usr/lib/jvm/jre-1.4.2-gcj/bin/java *+ 3 /opt/java/jdk-1.7.9/bin/java Enter to keep the current selection[+], or type selection number:
Ярлыки:
Linux
воскресенье, 16 февраля 2014 г.
Как удалить напиханные стартовые страницы
mail.ru и прочие наглые ресурсы совают себя хрому в настройки, почиститься от них можно тут:
chrome://chrome/settings/ startup
chrome://chrome/settings/
Ярлыки:
Chrome
суббота, 8 февраля 2014 г.
Cisco VPN client on ubutu
apt-get install network-manager-vpnc
И дальше через панель настраиваем впн и выбираем тип циски
И дальше через панель настраиваем впн и выбираем тип циски
пятница, 7 февраля 2014 г.
и снова гит
git is Distributed Version Control System (DVCS)
Official Git Site - http://git-scm.com/
$ git help - общий хелп
$ git help config - хелп по конкретной команде
$ git config --global user.name "Andrii Ieremenko"
$ git config --global user.email "andrew.yeremenko@gmail.com"
$ git config --global color.ui true pretty command line colors
$ git config --global core.editor emacs
$ git config --global merge.tool opendiff
Чтобы поставить настройку не глобально, а толь дла данного репозитория делаем:
$ git config core.editor emacs
$ git config --list # увидеть поточное состояние настроек, которые ме настроили выше указанными командами
На одно поле может быть установлено несколько настроек, чтобы быть уверенным какая настройка точно испльзуется в данном репозитории:
$ git config user.email
$ git config --global core.editor emacs
$ git config --global merge.tool opendiff
Чтобы поставить настройку не глобально, а толь дла данного репозитория делаем:
$ git config core.editor emacs
$ git config --list # увидеть поточное состояние настроек, которые ме настроили выше указанными командами
На одно поле может быть установлено несколько настроек, чтобы быть уверенным какая настройка точно испльзуется в данном репозитории:
$ git config user.email
Эти команды редактируют файл .git/config префикс у имени это имя блока к которому относится команда.
Ярлыки:
git
четверг, 6 февраля 2014 г.
Кеширования лейаутов и кеширования запросов в liferay
Фильтр кеширования лейаутов
Чтобы его включить нужно включить в пропертях portal-ext.properties:com.liferay.portal.servlet.filters.cache.CacheFilter=true
Дальше те портлеты которые не создают постоянно динамический лейаут должны у себя в liferay-portlet.xml:
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.0.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_0_0.dtd"> <liferay-portlet-app> ... <portlet> ... <layout-cacheable>true</layout-cacheable> ... </portlet> ... </liferay-portlet-app>Таким образом мы не компилируем каждый раз лейаут, а возвращает кеш на него, но это вроде только для гестов.
Фильтр кеширования запросов
В этом случае это не лайфрейная фишка, а стандарта контейнера портлетов. Чему доказательство настраивание фичи в файле portlet.xml:
Ярлыки:
Liferay,
Liferay performance
воскресенье, 2 февраля 2014 г.
Файлы запуска оболочки Bash
/etc/profile - файл определения общесистемных глобальных переменных и запуска стартапных скриптов, которые обычно находятся в директории /etc/profile.d/*.sh
~/.bash_profile (~/.profile) - в этом файле должные неходиться личные общесистемные глобальные переменные и личные стартапные скрипты.
PS1 - общесистемная переменная, которая определяет, как будет выглядеть приглашение баша
/etc/bashrc( /etc/bash.bashrc - debian family) - в этом файле находятся общесистемные алиасы и функции
~/.bashrc - личные общесистемные алиасы и функции
/etc/inputrc - глобальная настройка функциональных клавиш оболочки баш. Этот файл или его юзерспесифик колега управляют функцией readline, применяемой внутри баш для обработки ввода из клавиатуры.
~/.inputrc - личная настройка функциональных клавиш оболочки баш.
Есть несколько оболочек:
1) Interactive login shell. Она читает /etc/profile ~/.bash_profile. Эта интсранция баша запускается после успешного срабатывания утилиты /bin/login, которая читает /etc/passw находит там имя юзера, наличия его пароля хеширует введенное значение и сравнивает из сохраненным паролем для совпадшего юзера. Когда юзер покидает эту оболочку вызывается срипт ~/.bash_logout.
2) Interactive non-login shell. Эта инстанция баша появляется в результате нашего вызова из командной строки команд /bin/bash или /bin/su. Также при запуске графических консолей xterm или konsole. Этот вид перенимает настройки отцовской консоли, а также запускает ~/.bashrc ( которая также вызывает /etc/bashrc)
3) Non-interactive shell. Эта инстанция баша создается когда запускается какой-то скрипт, в этот момент оболочка никак не реагирует на инпут юзера. Эта инстанция только хранит в себе переменные из отцовской оболочки и не вызывает при своем старте никаких скриптов.
Чтобы обеспечить новозоданных юзеров файлами запуска баш( и наверно других ) нам нужно их разместить в директории /etc/skel/
~/.bash_profile (~/.profile) - в этом файле должные неходиться личные общесистемные глобальные переменные и личные стартапные скрипты.
PS1 - общесистемная переменная, которая определяет, как будет выглядеть приглашение баша
/etc/bashrc( /etc/bash.bashrc - debian family) - в этом файле находятся общесистемные алиасы и функции
~/.bashrc - личные общесистемные алиасы и функции
/etc/inputrc - глобальная настройка функциональных клавиш оболочки баш. Этот файл или его юзерспесифик колега управляют функцией readline, применяемой внутри баш для обработки ввода из клавиатуры.
~/.inputrc - личная настройка функциональных клавиш оболочки баш.
Есть несколько оболочек:
1) Interactive login shell. Она читает /etc/profile ~/.bash_profile. Эта интсранция баша запускается после успешного срабатывания утилиты /bin/login, которая читает /etc/passw находит там имя юзера, наличия его пароля хеширует введенное значение и сравнивает из сохраненным паролем для совпадшего юзера. Когда юзер покидает эту оболочку вызывается срипт ~/.bash_logout.
2) Interactive non-login shell. Эта инстанция баша появляется в результате нашего вызова из командной строки команд /bin/bash или /bin/su. Также при запуске графических консолей xterm или konsole. Этот вид перенимает настройки отцовской консоли, а также запускает ~/.bashrc ( которая также вызывает /etc/bashrc)
3) Non-interactive shell. Эта инстанция баша создается когда запускается какой-то скрипт, в этот момент оболочка никак не реагирует на инпут юзера. Эта инстанция только хранит в себе переменные из отцовской оболочки и не вызывает при своем старте никаких скриптов.
Чтобы обеспечить новозоданных юзеров файлами запуска баш( и наверно других ) нам нужно их разместить в директории /etc/skel/
.bash_logout .bashrc ...
Подписаться на:
Сообщения (Atom)