as explained in https://stackoverflow.com/a/2763014/2891692 i created for days many alias in my config file ~/.config/fish/config.fish and it works.

every new alias i add today don't work.

Example of not working alias:

alias bla  = "cd ~/Desktop" 
alias bla2  = "ls -a" 

enter image description here

but the alias i added before today. for example: alias gitStatus="git status"

enter image description here

full ~/.config/fish/config.fish here:

function fish_greeting
     echo 'try nr 5'
alias bla2  = "ls -a" 
alias gitStatus="git status"

each try i update the welcome message. this works

How could i fix this?


if used alias bla = "cd ~/Desktop"

Command 'bla' not found, did you mean:
  command 'bls' from deb bacula-sd (9.4.2-2ubuntu5)

if type part of the alias is first red. but its not a error (confused me first)

Operating System:

Kubuntu 20.04
KDE Plasma Version: 5.18.8
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.13.0-41-generic
OS Type: 64-bit
  • 3
    You have spaces around the = , does it work if you write the alias with no spaces, like this: alias bla2="ls -a"?
    – terdon
    Commented May 16, 2022 at 8:51
  • 1
    Then please edit your question to include that and the exact error you get when you try.
    – terdon
    Commented May 16, 2022 at 11:35
  • While it doesn't contribute to your problem, I really suggest you read my answer to that same question on why you should not define aliases in your config.fish. That's the "bash/zsh" way of doing things -- Fish has better methods available. Commented May 16, 2022 at 12:16

1 Answer 1


alias in fish takes arguments in one of two forms:

  • As two arguments, the name and the code (the csh syntax)
  • As one argument with a = separating the name and the code (the ksh syntax)

In your case, because you have spaces around the =, this passes it as three arguments to alias, which it won't understand.

In fact it should be printing an error:

alias: expected <= 2 arguments; got 3

So: Do

alias bla "cd ~/Desktop" 
alias bla2 "ls -a" 


alias bla="cd ~/Desktop" 
alias bla2="ls -a" 
  • found that it works also without the = with many spaces alias bla "cd ~/Desktop" yes now this error makes since to me alias: expected <= 2 arguments; got 3
    – SL5net
    Commented May 16, 2022 at 12:22
  • 1
    Yes, that is how argument passing in shells typically works. Spaces outside of quotes separate words, but how many there are doesn't matter.
    – faho
    Commented May 16, 2022 at 12:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .