In Linux systems,
source is a built-in shell command that reads and executes the file content in the current shell. These files usually contain a list of commands delivered to the TCL interpreter to be read and run.
This tutorial will explain how the source command works and when to use it.
- A system running a Linux distribution (learn how to install Ubuntu 20.04, how to install CentOS 7, or how to install Arch Linux)
- An account with sudo privileges
- Access to the terminal window/command line
Source Command Syntax
The source command uses the following syntax:
source [filename] [arguments]
[filename]: The name or path to the file you want the source command to execute.
[arguments]: Any arguments you provide become positional parameters when the file is executed.
Note: If you don't provide the full path to the file you want to execute,
source will search the
$PATH variable for the file. If it does not find the file there,
source will search the current directory.
The dot (period) character can be used in place of the
source command, resulting in the same output:
. [filename] [arguments]
Linux Source Command Examples
Here are some of the ways you can use the
Create a text file called example.txt in the Home directory with the following content:
source command to pass the content of this file as an argument:
The output shows that the
source command moves line by line, executing any commands listed in example.txt.
For a more complex example, change the content of example.txt to:
echo "The current directory is:"
echo "Today's date is:"
echo "The time is:"
Move the file to Home/source_command/example. With the
source command, pass the content of the file as an argument using the full path to the file:
source command also allows you to run scripts in the current shell environment, unlike the
bash command, which creates a new shell environment.
Read the Configuration File
source command also allows you to read variables from a file. Start by creating an example configuration file example_config.sh in the Home directory and adding the following content:
Create a bash script called example_bash.sh and add the following:
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
source command allows example_bash.sh to read the variables
VAR3 you defined in example_config.sh.
Run the example_bash.sh script using the
If you have functions you are using in several different scripts, you can save them as separate files and use the
source command to refer to them when writing scripts.
For instance, start by creating a function check_root.sh that checks whether the user running the script is a root user:
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
Create a script called example_script.sh and use the
source command to insert the check_root.sh function:
echo "This is the root user"
Running this script as a non-root user produces
"You must run this script as root" as the output and exits the script:
Running the script as a root user shows
"This is the root user" as the output:
sudo bash example_script.sh
Note: Using the
source command to run example_script.sh executes the script in the current shell environment. Since you cannot run the
source command as the root user, starting the script causes the terminal window to close. Use the
bash command to execute the script instead.
Refresh the Current Shell Environment
For this example, we are creating an alias command
alias ll = 'ls -l'
This command lists the files in the current directory using the extended format:
However, this command only works in the current shell session. To make it permanent, open the bashrc file with:
sudo nano ~/.bashrc
#some more ls aliases section, add the following:
alias ll = 'ls -l'
Refresh the current shell environment with the
After reading this tutorial, you should know how to use the source command in Linux to run multiple commands from a single file.
For a more comprehensive overview of useful commands, check out our Linux commands cheat sheet.