Aliases for command line arguments
Description
It is possible to define custom aliases which can be then used as dnf commands or options to abbreviate longer command and option sequences.
The aliases can be configured in the TOML format and the configuration files are loaded from these drop-in directories:
/usr/share/dnf5/aliases.d/
/etc/dnf/dnf5-aliases.d/
$XDG_CONFIG_HOME/dnf5/aliases.d/
Syntax:
The configuration file must begin with the version attribute set to a required version, for example:
version = '1.1'
Each alias is defined in a separate section, using key = value pairs, for example:
['in']
type = 'command'
attached_command = 'install'
descr.C = "Alias for 'install'"
descr.cs_CZ = "Alias pro 'install'"
The section name uniquely identifies the alias. It is in a form of a path, i.e. one or more strings separated by dots, which defines the scope of the alias. For example, string “group.list.in” would identify an alias usable only within the scope of the group list subcommand.
There are the following types of aliases:
Type: command
The command alias defines an alias for a command.
- Keys:
type- Must have valuecommand.attached_command- Path to a command for which this alias is defined.descr.<locale>– Description that will be shown in help.descr.Cis used if a description for the appropriate locale is not found. Added in config file version 1.1.descr– Description that will be shown in help. Deprecated in version 1.1, but remains backward compatible. Does not support locales.group_id- A group this alias is part of if any.complete- Whether bash autocompletion should be used for this alias, default is false.required_values- Values (positional arguments) consumed by the command alias. The format is an array of tables; each must include either value_help.<locale> for the active locale or value_help.C, and may optionally include descr.<locale>. The default is an empty array. Added in config file version 1.1.attached_named_args- Options that will be used with the command. The format is an array of tables, each of which must contain anid_pathkey to specify the path to an option, and may contain also avaluekey to specify the value of the option. Thevaluecan contain${index}placeholders, which are replaced by values consumed by the command alias (as defined byrequired_values). Command arguments start at index 1. Index 0 refers to the command alias itself. If novaluekey is provided, an empty string will be passed to named arguments that expect a value.
The required keys are type, and attached_command.
- Examples:
Alias
grouplistforgroup list:['grouplist'] type = 'command' attached_command = 'group.list' descr.C = "Alias for 'group list'" descr.cs_CZ = "Alias pro 'group list'"
Alias
group.lsforgroup list:['group.ls'] type = 'command' attached_command = 'group.list' descr.C = "Alias for 'group list'" descr.cs_CZ = "Alias pro 'group list'" complete = true
Alias
list-fedora-allfor--repo=fedora list --showduplicates:['list-fedora-all'] type = 'command' attached_command = 'list' descr.C = "Alias for '--repo=fedora list --showduplicates'" descr.cs_CZ = "Alias pro '--repo=fedora list --showduplicates'" complete = true attached_named_args = [ { id_path = 'repo', value = 'fedora' }, { id_path = 'list.showduplicates' } ]
Alias
whatrequiresforrepoquery --installed --whatrequires=<requires_first_argument>:['whatrequires'] type = 'command' attached_command = 'repoquery' descr = 'Alias for "repoquery --installed --whatrequires=<whatrequires_first_argument>"' complete = true [[whatrequires.required_values]] value_help.C = 'CAPABILITY,...' descr.C = 'Limit to packages that require any of <capabilities>.' descr.cs_CZ = 'Omezí se na balíčky vyžadující něco z <capabilities>.' [[whatrequires.attached_named_args]] id_path = 'repoquery.installed' [[whatrequires.attached_named_args]] id_path = 'repoquery.whatrequires' value='${1}'
Type: cloned_named_arg
The cloned_named_arg alias defines another name for a given option.
- Keys:
type- Must have valuecloned_named_arg.long_name- Name of the alias option.short_name- One-letter shortcut of the name.source- Path to the option for which this alias is defined.group_id- A group this alias is part of if any.complete- Whether bash autocompletion should be used for this alias, default is false.
The required keys are type, either long_name or short_name, and source.
- Examples:
Alias
--nobestfor--no-best:['nobest'] type = 'cloned_named_arg' long_name = 'nobest' source = 'no-best'
Alias
repoquery --listorrepoquery -lforrepoquery --files:['repoquery.list'] type = 'cloned_named_arg' long_name = 'list' short_name = 'l' source = 'repoquery.files'
Type: named_arg
The named_arg defines an alias that can replace multiple options and can define a value for each.
- Keys:
type- Must have valuenamed_arg.long_name- Name of the alias option.short_name- One-letter shortcut of the name.descr.<locale>– Description that will be shown in help.descr.Cis used if a description for the appropriate locale is not found. Added in config file version 1.1.descr– Description that will be shown in help. Deprecated in version 1.1, but remains backward compatible. Does not support locales.has_value- Whether the option requires a value. The value is then substituted for${}strings in the values ofattached_named_args. Default is false.value_help.<locale>- The string shown in help for the value (e.g.CONFIG_FILE_PATHfor--config=CONFIG_FILE_PATH).value_help.Cis used if a string for the appropriate locale is not found. Added in config file version 1.1.value_help- The string shown in help for the value (e.g.CONFIG_FILE_PATHfor--config=CONFIG_FILE_PATH). Deprecated in version 1.1, but remains backward compatible. Does not support locales.const_value- Default constant value (specified only if the alias does not have a value on the command line). The value is then substituted for${}strings in the values ofattached_named_args.group_id- A group this alias is part of if any.complete- Whether bash autocompletion should be used for this alias, default is false.attached_named_args- Options that will be used. The format is an array of inline tables, each of which must contain anid_pathkey to specify the path to an option, and may contain also avaluekey to specify the value of the option.
The required keys are type, and either long_name or short_name.
- Examples:
Alias
list --all-availableforlist --showduplicates --available:['list.all-available'] type = 'named_arg' long_name = 'all-available' attached_named_args = [ { id_path = 'list.showduplicates' }, { id_path = 'list.available' } ]
Alias
download --dest=DESTDIRfordownload --destdir=DESTDIR:['download.dest'] type = 'named_arg' long_name = 'dest' has_value = true value_help.C = 'DESTDIR' attached_named_args = [ { id_path = 'download.destdir' } ]
Alias
--settsflags=TS_FLAGSfor--setopt=tsflags=TS_FLAGS:['settsflags'] type = 'named_arg' long_name = 'settsflags' descr.C = 'Set transaction flags' descr.cs_CZ = 'Nastavit parametry transakce' has_value = true value_help.C = 'TS_FLAGS' attached_named_args = [ { id_path = 'setopt', value = 'tsflags=${}' } ]
Type: group
The group defines a group for multiple commands or options.
- Required keys:
type- Must have valuegroup.header.<locale>– The header of the group as will be shown in help.header.Cis used if a header for the appropriate locale is not found. Added in config file version 1.1.header- The header of the group as will be shown in help. Deprecated in version 1.1, but remains backward compatible. Does not support locales.
The required keys are type and header.
The aliases are added to the group using the group_id key in their respective sections.
- Examples:
Group
query-aliasesfor subcommandrepocontaining aliasesrepo.lsandrepo.if:['repo.query-aliases'] type = 'group' header.C = 'Query Aliases:' header.cs_CZ = 'Zkratky pro dotazy:' ['repo.ls'] type = 'command' attached_command = 'repo.list' descr.C = "Alias for 'repo list'" descr.cs_CZ = "Alias pro 'repo list'" group_id = 'query-aliases' ['repo.if'] type = 'command' attached_command = 'repo.info' descr.C = "Alias for 'repo info'" descr.cs_CZ = "Alias pro 'repo info'" group_id = 'query-aliases'