История команд в GRASS (Linux, bash)

Решенные задачи, первая запись - описание решения.
Ответить
Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

История команд в GRASS (Linux, bash)

Сообщение Александр Мурый » 28 июл 2011, 13:02

  • При создании нового набора с помощью модуля g.mapset GRASS продолжает использовать историю команд старого набора. Чтобы "переключить" историю в новый набор, надо выполнить команды:

    Код: Выделить всё

    history -w
    history -r /$GISDBASE/$LOCATION/$MAPSET/.bash_history
    HISTFILE=/$GISDBASE/$LOCATION/$MAPSET/.bash_history
    
    , где $LOCATION --- текущая область, $MAPSET --- текущий набор.
  • Сохранение истории командной строки в файл:

    Код: Выделить всё

    $ history > grass_history_28.07.2011.txt
  • Увеличение размеров хранимой истории:

    См. переменные окружения HISTSIZE и HISTFILESIZE. Например, задать размер истории в 10000 команд можно так:

    Код: Выделить всё

    $ export HISTSIZE=10000
  • Найти файл истории

    См. переменную окружения HISTFILE:

    Код: Выделить всё

    $ echo $HISTFILE
  • Выбрать из истории команды с 200-й по 300-ю (например):

    Код: Выделить всё

    $ history | awk '{ if ($1 > 200 && $1 < 300 ) print $0; }'


    То же, только сохранить в файл

    Код: Выделить всё

    $ history | awk '{ if ($1 > 200 && $1 < 300 ) print $0; }' > cmd_hist.txt 
  • Удалить определённую строку из истории (например, 257):

    Код: Выделить всё

    $ history -d257
  • Отключение / включение истории команд

    Отключение:

    Код: Выделить всё

    $ set +o history
    Повторное включение:

    Код: Выделить всё

    $ set -o history
  • Посмотреть номер последней команды:

    Код: Выделить всё

    $ echo $HISTCMD
  • Вывести последние 20 команд:

    Код: Выделить всё

    $ history 20
    или

    Код: Выделить всё

    $ history | tail -n 20
  • Вывести первые 100 команд:

    Код: Выделить всё

    $ history | head -n 100
  • Вывести первые 10 из последних 100 команд:

    Код: Выделить всё

    $ history | tail -n 100 | head -n 10
  • Поиск по истории команд (например, ищем слово «raster»):

    – Интерактивный — Ctrl+R и набираем побуквенно, следя за строкой поиска: «r a s t..», во, команда с искомым словом найдена. Если нужны предыдущие команды с этим словом, жмём Ctrl+R до посинения.
    – Неинтерактивный — grep:

    Код: Выделить всё

    $ history | grep "raster"
    Команда выше выведет ВСЕ строки, где встречается слово «raster».
Последний раз редактировалось Александр Мурый 28 июл 2011, 13:30, всего редактировалось 2 раза.
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: История команд в GRASS (Linux, bash)

Сообщение Voltron » 28 июл 2011, 13:05

Я извиняюсь, но GRASS тут по большому счету вроде как и не при делах или я не прав? Это стандартные линуксовые вещи, и в СамиЗнаетеКакой ОС они не будут работать
Последний раз редактировалось Voltron 28 июл 2011, 14:07, всего редактировалось 1 раз.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: История команд в GRASS (Linux, bash)

Сообщение Александр Мурый » 28 июл 2011, 13:17

Да, но т.к. GRASS -- чисто юниксовая по сути штука, то (IMHO) удобно иметь памятку "под рукой". Т.к. это исп-ся в работе, я считаю, что этому вполне место в "рецептах".
Вообще, примерно так же история команд будет вести себя в Mac OS X, *BSD-cистемах, Solaris, HP-UX, AIX (где там еще запускали грасс :twisted: ?)
Редактор материалов, модератор форума

Ответить

Вернуться в «Рецепты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя