127

I'm using Mac OS X. When I SSH into servers I find the ll command useful, but it's not available on my local machine. How can I install it?

Eonil
  • 4,657

11 Answers11

188

MacOS:

alias ll='ls -lG'

Linux:

alias ll='ls -l --color=auto'

Stick that in the appropriate startup file for your shell, e.g. ~/.bashrc or ~/.zshrc. To apply the setting, source the file, or quit and restart your terminal.

Stephen Kitt
  • 434,908
61

In OS X 10.9.5 since Mavericks (and at least up to El Capitan) you have to add an alias command to your .bash_profile file in your home folder:

~/.bash_profile

which is equivalent to your user path at

/Users/YOUR_USER_NAME/.bash_profile

To see that file in finder you have to activate the display of hidden files (e.g. using the app InVisible). Otherwise you can simply use your terminal to locate it and edit it with nano:

nano ~/.bash_profile

Then add an alias command to the end of that file. The standard ll alias would be

alias ll='ls -lG'

but I prefer

alias ll='ls -lGaf'

which also shows all hidden files (starting with a dot) and sorts the output case-insensitive.

Don't forget to restart your terminal app after the changes.

Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255
Jpsy
  • 711
  • 12
    you don't need to restart the terminal, it is enough to use source ~/.bash_profile to reload the new settings – Asped Aug 26 '16 at 09:38
11

macOS with zsh shell should put

alias ll='ls -lG'

to ~/.zshrc instead of ~/.bash_profile nor ~/.bashrc

Gary Tsui
  • 111
9

Run type ll to see where the ll command is coming from. ll is not a standard command, but many distributions predefine it to an alias for ls with some preset options. The output of type ll gives you the definition of the alias, or you can look for it in your shell configuration file (~/.bashrc if your shell is bash). Copy the definition to ~/.bashrc on the other machine.

Bash handles its configuration file in a slightly odd way: it loads ~/.bashrc in all interactive shells except the ones that are also login shells. Bash only loads ~/.bash_profile (if it exists, otherwise ~/.profile) in a login shell. To make sure that your .bashrc is read when it should be, put this line in your ~/.bash_profile:

case $- in *i*) . ~/.bashrc;; esac
6

Add alias ll='ls -lG' to your ~/.profile with your favorite $EDITOR.

With this method, remember that you'll have to start a new terminal session (or source ~/.profile to be able to use ll).

HalosGhost
  • 4,790
6

On macOS Ventura:

echo "alias ll='ls -la'" >> ~/.zshrc

Don't forget to close and reopen Terminal after that.

As it's explained in the article:

Apple has changed the default shell to zsh. Therefore you have to rename your configuration files. .bashrc is now .zshrc and .bash_profile is now .zprofile.

The difference between .bash_profile and .bashrc files explained in this article.

mialkin
  • 161
3

If you want it to apply in all accounts, you can also put

alias ll='ls -lG'

in /etc/profile.

don_crissti
  • 82,805
3

To summarize the best of all answers:

Mac OS X (tested on El Capitan)

echo "alias ll='ls -lGaf'" >> ~/.bash_profile 
source ~/.bash_profile 

Linux

echo "alias ll='ls -la --color=auto'" >> ~/.bash_profile
source  ~/.bash_profile
Asped
  • 131
2

(MacOS Mojave Example)

  1. Open the hidden .bash_profile file in the Vim editor:

    vim ~/.bash_profile
    
  2. Jump to the last character of the file by pressing capital G and then $.

  3. Press o to add a new line to the file.

  4. Insert your new alias like:

    alias ll='ls -lG'
    
  5. Press Esc to exit insert mode of Vim.

  6. Type following to write your new changes and exit the editor:

    :wq
    
  7. Reopen terminal and you should be able to use the alias ll

Kusalananda
  • 333,661
1

I don't have the rep points yet to comment directly on someone else's comment but, I just wanted to clarify that "alias ll='ls -lGaf'" is partly redundant. Using -f automatically enables -a as well. You can verify this in the man page for ls. So, all that's truly needed is "alias ll='ls -lGf'".

Jesse P.
  • 111
1

One thing that is missing from several answers is that this is shell-dependent. If you're using the system default shell on 10.14 on below, which is bash, then references to (.)bash_profile are correct. Modifying /etc/profile would create the alias for sh for all users (but not in bash).

If you have switched, for example, to zsh, then making a system-wide change requires adding the alias to /etc/zprofile. If you wanted to make the change for only your user, then you could add it to ~/.zprofile

jpdyson
  • 11