вторник, 30 марта 2010 г.

Команды для поиска больших файлов в заданной директории

Для вывода отсортированного списка файлов размером больше 500Мб, находящихся
в дереве файловой системы начиная с текущей директории можно использовать команду:

find . -type f -size +500M -exec ls -l {} \; | sort -k5 -n -r| less

Для вывода отсортированного по размеру списка директорий можно использовать команду:

find . -type d -maxdepth 1 -exec du -s {} \;|sort -k1 -r -n| less

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

find . -type d -exec du -s {} \;| sort -k1 -r -n| less

Найти все avi, mpg, wmv файлы можно так:

find . \( -iname "*.avi" -o -iname "*.mpg" -o -iname "*.wmv" \) -type f -exec ls -l {} \;| less

PS. Вместо ls можно было использовать встроенные опции -ls или -printf "%s %P\n",
но %P не всегда легко вспомнить, а вывод -ls не совсем привычен.

Команды пакета apt

apt-get update обновление репозитария
apt-get dist-upgrade полное обновление ОС
apt-get check проверить текущее состояние системы
apt-get install установить пакет. Всё скаченное apt-get лежит в /var/cache/apt/archives.
apt-get -f install исправить зависимости
apt-get install -d скачать пакет не устанавливая. Лежать будет в /var/cache/apt/archives.
apt-get source скачать исходный текст пакета
apt-get remove удалить пакет. Результаты можно посмотреть в /var/log/user/info
apt-cache search поиск пакета по описанию
apt-cache showpkg показать описание пакета

MySQL. Несколько полезных команд

SHOW TABLES; # показать таблицы в БД
SHOW COLUMNS FROM db; # показать поля таблицы db
USE mysql; # перейти в БД mysql
SELECT host,user FROM user; # показать поля host, user таблицы user
DROP TABLE transport; # удалить таблицу transport
DELETE FROM user WHERE user='acct' AND host='%'; # удалить конкретную запись
UPDATE db SET Delete_priv='Y' WHERE user='acct'; # изменить значение поля в записи
FLUSH PRIVILEGES; # применить внесённые изменения
mysql -u root -p12345 postfix < DB.sql # пакетное выполнение SQL выражений для базы данных postfix
ALTER TABLE mailbox ADD (uid int(10) unsigned DEFAULT '107' NOT NULL); # добавляем в таблицу mailbox обязательное поле uid со значением по умолчанию = 107
ALTER TABLE mailbox DROP uid; # удаляем поле uid из таблицы mailbox
GRANT ALL PRIVILEGES ON DBName.* TO UserName@localhost IDENTIFIED BY '12345'; # дать все права на базу DBName пользователю UserName, подключающемуся с localhost с паролем 12345
CHECK TABLE TableName; проверить целостность таблицы TableName
REPAIR TABLE TableName; исправить целостность таблицы TableName

Удобный поиск по истории команд в консоли в Debian GNU Linux

C помощью кнопок PgUp, PgDwn (страница ввсерх/вниз) можно листать хистори введенных ранее команд,
при этом в отличии от использования клавиш управления курсором, при наличии в строке ввода
каких-то символов они будут использованы в качестве маски для фильтра.
Т.е. введя "ssh" и нажав PgUp/PgDwn можно просмотреть введенные ранее команды с использованием ssh.

Стандартно, данная комбинация кнопок на Debian деактивирована.

Находим в директори /etc файл, с именем inputrc редактируем его,
добавив строки, в случае, если позиционирование по хистори не работает:
# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

обычно эти установки в Debian просто закомментированы.

Изменив этот файл, вы настраиваете данные кнопки для всех пользователей.
Если необходимо настроить для какого-то пользователя, то настройки эти есть в файле .inputrc
в домашней директории. Данный файл можно создать на основе общесистемного аналога из /etc
cp /etc/inputrc ~/.inputrc

понедельник, 29 марта 2010 г.

Подборка полезных консольных команд и приемов работы в bash

Краткий справочник svn

svn checkout http://repository.url/svn/name — извлекаем файлы проекта из репозитория, сокращение: svn co;
svn update — получаем обновления из репозитория, сокращение: svn up;
svn update -r rev_num ./file_name — извлекаем ревизию файла с номером rev_num;

Полезные ссылки