Вы не упоминаете свою оболочку - это действительно зависит от оболочки.
В большинстве оболочек вы можете использовать псевдонимы и функции. Это может значительно снизить количество набранных вами команд для повторяющихся команд или повторяющихся подмножеств команд.
псевдонимы лучше для повторных команд. функции могут принимать аргументы, поэтому они более эффективны, когда у вас есть похожие, но не точные копии команд.
Лично я также настраиваю bash-дополнения для подобных вещей. Например, у меня есть подкаталог, в котором есть каталоги всех моих рабочих проектов. У меня есть дополнения для различных действий над проектами (проверьте, извлекаются ли файлы для проекта, создайте установочный пакет и т.д.)
Для завершения bash. Вы пишете функцию, которая может проверить текущий аргумент, предыдущий аргумент и командную строку и выяснить, что имеет смысл в текущем контексте. Затем прикрепить эту функцию к разыскиваемой команде с complete
Башем встроенных командами.
«Что имеет смысл в текущем контексте» может быть чем угодно - это могут быть каталоги, файлы, другие аргументы. вообще ничего. Посмотрите примеры в комплекте bash-дополнений, чтобы увидеть некоторые примеры.
Код завершения bash был заимствован из zsh, поэтому, если у вас есть zsh, вы также сможете использовать его. Фактически, код завершения bash был заимствован рано из zsh, и zsh расширил его, поэтому zsh завершение, возможно, более мощное.