Страница 1 из 1

История команд в 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».

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

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

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

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