O comando para definir a hora do sistema é date . Você precisa ser root para definir a hora do sistema. date define o tempo para o tempo determinado, não para um valor relativo do tempo atual, porque esse último comportamento seria bastante inútil. Você pode criar um comando que modifique a hora atual em um valor relativo, fazendo um cálculo na saída de date e retornando a date , por exemplo. (em Linux não embarcado)
date $(date +%m%d%H%M%Y.%S -d '1 hour ago')
Tenha em atenção que, se estiver a executar um sistema de marcação de horas, como o NTP, alterar o relógio desta forma irá confundi-lo. Pare primeiro.
A execução de date define a hora do sistema, não o relógio do hardware. No Linux, execute hwclock --systohc para copiar a hora do sistema para o relógio do hardware; isso é feito automaticamente em um desligamento limpo.
Se você quiser ver a hora em um fuso horário diferente, esqueça tudo isso e defina o fuso horário desejado. No Linux, execute tzselect para definir o fuso horário do sistema. Para executar um programa em um fuso horário diferente, defina a variável de ambiente TZ , por exemplo,
export TZ=Asia/Tokyo
emacs
Se você quiser executar um programa e acreditar que o tempo é diferente do que realmente é, execute-o no programa faketime .
faketime '1 hour ago' date