at 18:00 shutdown now cria uma tarefa "at", que é executada na hora especificada pelo daemon at ou talvez pelo daemon cron , dependendo do sistema.
shutdown 18:00 inicia um processo no seu shell que aguarda até a hora especificada e, em seguida, executa o desligamento. Este comando pode ser terminado se, e. sua sessão de shell é terminada.
O resultado líquido na maioria dos casos será o mesmo: o sistema é encerrado às 18:00.
Uma diferença é que, se você usar at , o trabalho será armazenado e se o sistema for desligado por algum outro meio antes das 18:00, após a inicialização novamente, o trabalho ainda estará aguardando para ser executado; se a hora já tiver passado, o desligamento será executado imediatamente, o que pode ser bastante inesperado.
Outra diferença é que shutdown 18:00 criará um arquivo /run/nologin 5 minutos antes do horário agendado para evitar que as pessoas façam login após esse momento. Também mensagens de broadcast serão enviadas para avisar os usuários logados que o sistema está prestes a ser desligado.
Você precisa considerar essas diferenças para decidir qual usar.