How to get real-time completion/suggestions in Fedora terminal?

I would like to have something similar to everything in windows (using locate): every time I press a key, the file list that matches the current inputs gets updated immediately.

I am wondering is that possible to do real-time text completion in terminal and how should I do that?

[Edit] I wanted to make it more clear what’s happening in case a future user is looking for this info.

zsh would give you this sort of auto complete. Run the following as root or prepend with “sudo”:

Install the package with the following:

dnf install zsh -y

Switch to the shell with the following. This is temporary until you exit the shell or start a new session:


If you like the shell you can permanently set is as your default shell like so:

usermod -s /bin/zsh <username>
1 Like

Thank you for your reply it was helpful. I already had zsh installed and after I entered the commands there is still no change. Is there a restart required ?

1 Like

What terminal are you using currently? If you’re using Konsole, you need to create a new profile. If you’re using any other terminal you just need to start a new session.

I am using standard Fedora terminal , that the strange part. It’s same with powerline , it’s not working. I haven’t made any changes a part from the preferences tab which I used to customize terminals look.

With the default terminal, opening a new terminal should put you in your new shell. At the end of your prompt do you have a # or a %? zsh by default will have a %. Also did you run usermod with sudo? zsh will also have you go through some setup steps on first run. I’d run the shell manually first with /bin/zsh and see if anything changes or not.

You might already be using zsh but opted out of the completion when you went through the setup. You can change all that by running

autoload -U zsh-newuser-install
zsh-newuser-install -f

Another possibility is in your settings for Gnome-Terminal you have it set to run the command /bin/bash which will override the default shell setting on your account.

Do you have powerline set to autostart with your terminal? Exit your powerline session, or disable it temporarily and see if zsh starts by default. I use tmux and hadn’t used it since switching to zsh, but when I started tmux it put me in bash.

Well , I was able to confirm that I wasn’t in zsh and I did configure completion but it’s for some reason still disabled :rofl: ,this is how my terminal looks so no changes here.I did run usermod with sudo and nothing happened.

It seems I am stuck with Tab key command completion for now.

To see which shell you are currently running you can use echo $SHELL
To set the shell for any user you can use sudo usermod -s /usr/bin/zsh <username>

If the files from /etc/skel are not already in the users home directory you may need to (as the user) cp -i /etc/skel/.??* ~/. This gets the proper config for the user to use the selected shell.

Setting the shell and making certain that user has the proper dot files should be all that is needed for that user to log in using the the desired shell.

1 Like