When I enter command
ls
I see a list of files and directories in current directory, the list displayed is quite annoying.
Rather, I like to execute ls command with -1 option like
ls -1
My question is how to change default behavior of ls command such that it will always execute with -1 option. i.e how to display files and directories in one column with ls command.
Thanks.
One way would be by creating alias in your
~/.bashrc
file:alias l1='ls -1'
then by typing
l1
,ls -1
will be executedIn your Home directory, open .bashrc file in editor and add alias ls='ls -1'.
First open the terminal ( Press ControlAltT), enter
gedit ./.bashrc
to open your .bashrc file in the editor.Find the section that has some aliases for ls. In mine (stock 11.10) it looks like:
Add the following line after the ls aliases:
Save the file, exit gedit and the terminal and reboot. Now the ls command should execute ls -1 by default.
Just to clarify something to @RobDavenport answer. You can't use a function to override a command that has the same name.
e.g. to add a default param to the
ls
command you can do :This will add a new alias called
ls
so it will be called instead of the original command. It will add the-1
option and forward every parameter$@
to the originalls
command.You could also do
It would have the same effect but you must use a different name for your function. Otherwise it will call itself again and again.
zetah's answer is the best. To elaborate:
Aliases are best used for short, simple, often used modifications of command default parameters. They are stored in memory (after being read from their source file), for better performance or repetitive use.
Functions are appropriate for more complex activity that are often used, and are also stored in memory.
Scripts are appropriate for the most complex and least often used commands.
See this question and answers on unix stackexchange - explains the difference in best use between aliases, functions, and scripts.