93

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?

  • 4
    alias ll='ls -al' from cli (I like -al, so I can see hidden files too) – VenomFangs Dec 10 '15 at 18:03
139

MacOS:

alias ll='ls -lG'

Linux:

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

Stick that in ~/.bashrc.

  • 4
    Ah right, BSD ls doesn't support --color. – Ignacio Vazquez-Abrams Jan 6 '12 at 7:12
  • 8
    One more, I had to add the command ~/.profile instead of ~/.bashrc to make it work. Maybe this is Mac OS X specific. – Eonil Jan 6 '12 at 12:12
  • 9
    You need alias ll='ls -lG' for the same effect in macosx. – Burhan Khalid Jan 6 '12 at 13:01
  • 7
    I needed to add alias ll='ls -lG' to my ~/.bash_profile to make it work (in Lion, if that matters) – jessica Jul 28 '12 at 1:58
  • 2
    Even lazier: $ echo "alias ll='ls -lG'" >> ~/.bashrc – Avishai Mar 6 '14 at 21:28
45

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.

  • 2
    This is what I was looking for and worked on OSX El Capitan. (Also, remember to logout from the terminal or close the app and restart). – crmpicco Jul 7 '16 at 2:05
  • 1
    Thanks @crmpicco, I have updated the answer accordingly. – Jpsy Jul 7 '16 at 10:34
  • 8
    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 9:38
8

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
5

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).

  • Giving users steps to reproduce your solution is great, but being specific and concise is too. – HalosGhost Sep 15 '14 at 19:30
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
2

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

alias ll='ls -lG'

in /etc/profile.

  • 1
    Does OSX even have an /etc? – jasonwryan May 2 '16 at 0:11
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'".

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

1

(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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.