8,560
edits
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
__TOC__ | __TOC__ | ||
==What's | ==What's a bashrc? What's a alias?== | ||
* '''.bashrc''' is the ''configuration file'' for bash, a linux shell/command interpreter. | * '''.bashrc''' is the ''configuration file'' for bash, a linux shell/command interpreter. | ||
* An '''alias''' is a ''substitute for a (complete) command''. It can be thought of as a shortcut. | * An '''alias''' is a ''substitute for a (complete) command''. It can be thought of as a shortcut. | ||
* '''.bashrc''' is found in the ''home folder'' of a user ( ~ ) . It is a hidden file, to see it show hidden files in your file manager or use '''ls -a''' | * '''.bashrc''' is found in the ''home folder'' of a user ( ~ ) . It is a hidden file, to see it show hidden files in your file manager or use '''ls -a''' | ||
==Backup your current .bashrc== | ==Backup your current ~/.bashrc== | ||
It can be useful to backup the ~/.bashrc before editing it, as it allows one to be able to easily recover from the unexpected. To make a backup of your current .bashrc . Open a terminal and execute | It can be useful to backup the ~/.bashrc before editing it, as it allows one to be able to easily recover from the unexpected. To make a backup of your current .bashrc . Open a terminal and execute: | ||
{{UserCmd|command=cp ~/.bashrc ~/.bashrc.bak}} | {{UserCmd|command=cp ~/.bashrc ~/.bashrc.bak}} | ||
The original .bashrc can be restored with by executing | The original .bashrc can be restored with by executing | ||
{{UserCmd|command=cp -i ~/.bashrc.bak ~/.bashrc}} | {{UserCmd|command=cp -i ~/.bashrc.bak ~/.bashrc}} | ||
==Note== | ==Note== | ||
Any changes made to the .bashrc will have no effect on any currently open terminal windows. To test newly updated changes in your .bashrc open a new terminal or use the command: | Any changes made to the ~/.bashrc will have no effect on any currently open terminal windows. To test newly updated changes in your ~/.bashrc open a new terminal or use the command: | ||
{{UserCmd|command=source .bashrc}} | {{UserCmd|command=source ~/.bashrc}} | ||
== Aliases Examples == | == Aliases Examples == | ||
Aliases can turn a complex command string into a simple custom made command that one can type in the Terminal. | Aliases can turn a complex command string into a simple custom made command that one can type in the Terminal. | ||
The | === Standard syntax === | ||
Creating aliases in bash is very straight forward. The syntax is as follows: | |||
{{File|file=~/.bashrc| | |||
content=<pre>... | |||
alias alias_name="command_to_run" | |||
...</pre>}} | |||
=== For updating your system === | === For updating your system === | ||
To upgrade the system via pacman, the command used is | To upgrade the system via pacman, the command used is | ||
{{UserCmd|command=sudo pacman -Syu}} | {{UserCmd|command=sudo pacman -Syu}} | ||
This can be aliased in .bashrc with | This can be aliased in ~/.bashrc with | ||
{{File|file=~/.bashrc| | {{File|file=~/.bashrc| | ||
content=<pre>... | content=<pre>... | ||
Line 32: | Line 37: | ||
...</pre>}} | ...</pre>}} | ||
=== For editing commonly used files === | === For editing commonly used files === | ||
To edit '''.bashrc''' itself and automatically reload bash configuration file (so that changes made to .bashrc can be implemented in current terminal session) | To edit '''~/.bashrc''' itself and automatically reload bash configuration file (so that changes made to .bashrc can be implemented in current terminal session) | ||
{{File|file=~/.bashrc| | {{File|file=~/.bashrc| | ||
content=<pre>... | content=<pre>... | ||
Line 53: | Line 58: | ||
alias grubup="sudo update-grub" | alias grubup="sudo update-grub" | ||
...</pre>}} | ...</pre>}} | ||
==Creating Bash Aliases with Arguments (Bash Functions)== | |||
Sometimes you may need to create an alias that accepts one or more arguments. That’s where bash functions come in handy. | |||
The syntax for creating a bash function is very easy. They can be declared in two different formats: | |||
{{File|file=~/.bashrc| | |||
content=<pre>... | |||
function_name () { | |||
[commands] | |||
} | |||
...</pre>}} | |||
or | |||
{{File|file=~/.bashrc| | |||
content=<pre>... | |||
function function_name { | |||
[commands] | |||
} | |||
...</pre>}} | |||
To pass any number of arguments to the bash function simply, put them right after the function’s name, separated by a space. The passed parameters are $1, $2, $3, etc., corresponding to the position of the parameter after the function’s name. The $0 variable is reserved for the function name. | |||
Let’s create a simple bash function which will create a directory and then navigate into it: | |||
{{File|file=~/.bashrc| | |||
content=<pre>... | |||
mkcd () | |||
{ | |||
mkdir -p -- "$1" && cd -P -- "$1" | |||
} | |||
...</pre>}} | |||
Now instead of using mkdir to create a new directory and then cd to move into that directory , you can simply type: | |||
{{UserCmd|command=mkcd new_directory}} | |||
==Keeping bash alias in a different file== | |||
Bash allows you to add local aliases in your ~/.bashrc file. To do this create a file called ~/.bash_aliases and add these contents in your ~/.bashrc file: | |||
{{File|file=~/.bashrc| | |||
content=<pre>... | |||
if [ -e $HOME/.bash_aliases ]; then | |||
source $HOME/.bash_aliases | |||
fi | |||
...</pre>}} | |||
Now you can add any aliases in your ~/.bash_aliases file and then load them into your Bash session with the source ~/.bashrc command. | |||
==Conclusion== | ==Conclusion== | ||
This list is not comprehensive. Almost anything that is commonly used can be shortened with an alias | This list is not comprehensive. Almost anything that is commonly used can be shortened with an alias | ||
==See Also== | ==See Also== | ||
[https://www.gnu.org/software/bash/manual/html_node/index.html Bash documentation] | [https://www.gnu.org/software/bash/manual/html_node/index.html Bash documentation] | ||
[https://wiki.archlinux.org/title/bash#Aliases ArchWiki] | |||
[[Category:Contents Page{{#translation:}}]] | [[Category:Contents Page{{#translation:}}]] | ||
[[Category:Terminal{{#translation:}}]] | [[Category:Terminal{{#translation:}}]] |