четверг, 30 января 2014 г.
Еще инсайты о скрине
Убить сессию снаружи со всеми окнами:
Ctrl+a :remove
-X command -- послать снаружи скрину специальную команду
Ctrl-D -- kill tab in Ubuntu
screen -S screen -X quitИли изнутри
Ctrl+a :remove
-X command -- послать снаружи скрину специальную команду
Ctrl-D -- kill tab in Ubuntu
You can do it in
screen the terminal multiplexer.- To split vertically: ctrla then |.
- To split horizontally: ctrla then S (uppercase one).
- To unsplit all: ctrla then Q (uppercase one).
- To unsplit one: ctrla then X (uppercase one).
- To switch from one to the other: ctrla then tab
Note: After splitting, you need to go into the new region and start a new session via ctrla then cbefore you can use that area.
EDIT, basic screen usage:
- New terminal: ctrla then c.
- Next terminal: ctrla then space.
- Previous terminal: ctrla then backspace.
- N'th terminal ctrla then [n]. (works for n∈{0,1…9})
- Switch between terminals using list: ctrla then " (useful when more than 10 terminals)
- Send ctrla to the underlying terminal ctrla then a.
Расширенное создание/копирование файлов, со всеми правами и т.д.
Утилита для копирования файлов с установкой атрибутов
Создали папку /etc/profile.d, собственник рут, група папки тоже рут, указаны также права чтения/записи/выполнения
http://linux.about.com/library/cmd/blcmdl1_install.htm
install --directory --mode=0755 --owner=root --group=root /etc/profile.d
Создали папку /etc/profile.d, собственник рут, група папки тоже рут, указаны также права чтения/записи/выполнения
http://linux.about.com/library/cmd/blcmdl1_install.htm
Ярлыки:
Linux
Мультистрочный записть в файл из консоли
Перетереть все что есть в файле(создать файл):
Добавить строки в конец файла:
$ cat > /path/to/myfile << "EOF" line1 line2 ... lineN EOF
Добавить строки в конец файла:
$ cat >> /path/to/myfile << "EOF" line1 line2 ... lineN EOF
Ярлыки:
Linux
воскресенье, 26 января 2014 г.
MongoDB Updating: update and remove
Курсор
В монго также есть понятие курсора.cur = db.people.find();null;//нал в конце обеспечивает, что выборка не начинается мгновенно
cur.hasNext();
cur.next();
while(cur.hasNext()) printjson(cur.next());
cur.limit(5);null;
cur.sort({name: -1});null;
limit, skip и sort могут быть применены только сразу после получения курсора. Их эффект срабатывает на стороне сервера, а не клиента, то есть по сети летит именно готовый результат ограничения и сортировки, а не все как есть, а потом на стороне клиента он обрезается.
Эти команды срабатывают только до момента когда курсор подвинулся (до вызова hasNext & next).
cur.sort().limit(5).skip(2);null;
db.scores.find({type: "exam"}).sort({score: -1}).skip(50).limit(20);
Доказательство того, что все происходит на стороне сервера, можно увидеть с помощью команды skip:
> cur.sort({ name: -1}).limit(3).skip(2); null;
> while (cur.hasNext()) printjson(cur.next());
{"id" : ...}
{"id" : ...}
{"id" : ...}
Если бы это выполнялось бы на клиенте, мы бы увидели один результат, мы же видим три - просто из сортировки были выкинуты первые два результата, предоставлены последующие три.
Counting
db.score.count({type: "exam"});
Редактирование
Апдейт в MongoDB делается только на одно поле, если селектору подходят много, то изменяется только первый документ/рекорд.
Обновление документа целиком
db.people.update(selector, exact_replasor);
Все документы прошедшие фильтрацию потеряют все свои поточные поля кроме _id и получать только те, которые находятся в exact_replasor.
Обновление $set
А так мы можем изменить только конкретные поля документа:
exact_replasor = {
$set: {
age: 31
}
};
exact_replasor = {
$inc: {
age: 1
}
};
Upsets
- директива, которая при установленном флаге в тру, создает новую запись и обеспечивает ее указанными для обновления свойствами, если ни одна запись не подошла селектору, если же подошла, то изменяются существующие.db.foo.update({username:'bar'}, {'$set':{'interests':['cat', 'dog']}}, {upsert: true} );
При этом в новосозданную запись вставляются также поля фильтра(селектора). Тоесть допустим у нас в коллекции не оказалось юзернейм с именем бар, тогда в коллекцию вставится следующая запись:
{ "_id" : ObjectId("507b78232e8dfde94c149949"), "interests" : [ "cat", "dog" ], "username" : "bar" }
Multi-update
Но все же возможно и заапдейтить несколько документов, для этого нужно указать директиву.
db.people.update({}, {'$set':{'title': 'Dr'}}, {multi: true} );
{} - под этот селектор подходят все документы.Мульти редактирование не атомарно - в монго только один сред отвечает за изменения в базу, при мульти изменяется 10 записей и лок возвращается, что другие запросы на запись могли сработать и потом он продолжается и так пока все поля подошедшие под селектор не обновятся.
Эти паузы совуться йилдинг ( pausing is called yeilding).
Если нам нужна транзакционность, нам нужно ее организовывать на уровне приложения и работать через приложение.
Removing
.remove(selector) - удаляет один за одним подошедшие документы, если мы не указываем селектор, удаляются все, но опять же один за одним, при этом их метадата(индексы) может оставаться на диске. Тут таже история, что и мультиапдейт - по десять и делаются паузы для передачи котнроля другим правкам. Единственный способ удалить только некоторые документы из колекции..drop() - одним махом удаляет все документы коллекции, намного эффективнее по-элементного удаления. По-идее это атомарная операция. Этим способом мы не можем удалить только некоторые документы коллекции - метод не принимает селектор.
Удаление определенных полей в документах
db.people.update($selector, { $unset: {field1: 1, feld2: 1}});
Правка массивов
i-го элемента(в данном случае 3-го)
db.colect.update(selector, {$set: {"arrname.3": 5}})
Добавление в конец
db.colect.update(selector, {$push: {"arrname": 6}})
db.colect.update(selector, {$pop: {"arrname": N}})
Удалить первых N(за счет -N)
db.colect.update(selector, {$pop: {"arrname": -N}})
Удалить по значению
db.colect.update(selector, {$pull: {"arrname": "this_val_will_be_removed"}})
Удалить несколько $pullAll
Добавить, если только элемента нет в массиве - $addToSet
Ярлыки:
MongoDB
вторник, 21 января 2014 г.
Как понять что произошло с базой в результате последней команды
Для этого существует команда, которая выведет что произошло от применения предыдущей до нее команды. Если была ошибка, мы увидим конкретику:
Эта команда наверно самая полезная когда мы делаем апдейт с директивой апсерта, она даст нам понять был ли изменен существующий документ или создан новый.
db.runCommand({ getLastError : 1 });
Эта команда наверно самая полезная когда мы делаем апдейт с директивой апсерта, она даст нам понять был ли изменен существующий документ или создан новый.
Ярлыки:
MongoDB
воскресенье, 19 января 2014 г.
MongoDB выборка
CRUD MongoDB SQL
Create Insert Insert
Read Find Select
Update Update Update
Delete Remove Delete
Команды:
db - показать поточную базу.
db.people.{action}
db - key word
people - collection (like table in sql)
Create Insert Insert
Read Find Select
Update Update Update
Delete Remove Delete
Команды:
db - показать поточную базу.
db.people.{action}
db - key word
people - collection (like table in sql)
Ярлыки:
MongoDB
четверг, 16 января 2014 г.
Архиватор с шифрованием gpg. Как розархивировать.
$ gpg --output destination --decrypt sourcefile.gpg
Ярлыки:
Linux
среда, 15 января 2014 г.
Оценка использования дискового пространства
Вывести 10-ть самых тяжелых в системе:
А вот пример для поточной директории
# du -a / | sort -n -r | head -n 10А вот пример для поточной директории
du -hsx * | sort -rh | head -10- du command -h option : display sizes in human readable format (e.g., 1K, 234M, 2G).
- du command -s option : show only a total for each argument (summary; не углубляться и не расписывать все деревья поддиректорий).
- du command -x option : skip directories on different file systems.
- sort command -r option : reverse the result of comparisons.
- sort command -h option : compare human readable numbers. This is GNU sort specific option only.
- head command -10 OR -n 10 option : show the first 10 lines.
Ярлыки:
Linux
вторник, 14 января 2014 г.
oracle jdk installation ubuntu
http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-6-7-jre-or-jdk
http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-6-7-jre-or-jdk/68227#68227
Более автоматический способ (тоже есть среди приведенных выше):
NB: These packages provide Oracle Java JDK, which includes Java JDK, JRE and the Java browser plugin. And the webupd8team/java PPA contains only these installers, which simply connect to Oracle Java download site and install the latest JDK.
Переключаться между версиями:
sudo update-java-alternatives -s java-7-oracle
http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-6-7-jre-or-jdk/68227#68227
Более автоматический способ (тоже есть среди приведенных выше):
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installersudo apt-get install oracle-java7-installersudo apt-get install oracle-java8-installer
NB: These packages provide Oracle Java JDK, which includes Java JDK, JRE and the Java browser plugin. And the webupd8team/java PPA contains only these installers, which simply connect to Oracle Java download site and install the latest JDK.
Переключаться между версиями:
sudo update-java-alternatives -s java-7-oracle
Ярлыки:
Linux
понедельник, 13 января 2014 г.
source ~/.bashrc
Чтобы сразу применить изменения в
~/.bashrc, не перезапуская терминал -$ source ~/.bashrc
Ярлыки:
Linux
пятница, 10 января 2014 г.
Как перенаправить аутпут из консоли mysql в какой-нибудь файл?
mysql> tee ~/somefile.txt Logging to file '~/somefile.txt' mysql> select * from something where smth like "Special" \G .....output to console which will be save in file as well..... mysql>noteeКоманда
notee перестает аутпут выводить в файл
Ярлыки:
MySQL
Подписаться на:
Сообщения (Atom)