The core building elements of any system administrator’s toolbox are Linux commands. They give you the ability to manage users and permissions, monitor system performance, and solve problems, and many other things. We’ll look at some of the essential Linux commands for system administration.
Table of Contents
Sudo
The sudo command allows a user to execute a command with the privileges of another user, typically the root user. It is commonly used in Linux systems to perform administrative tasks that require elevated permissions.
The basic syntax of the sudo command is as follows:
sudo [options] command
Here are some of the most commonly used options for the sudo command:
-uThis option allows you to specify a user other than root to execute the command as.-sThis option starts a new shell as the specified user or root.-iThis option is used to launch a new shell with root privileges, which means that the user will have full administrative access to the system.-lThis option lists the commands that the current user is allowed to execute withsudo.-k– This option invalidates the user’s cached credentials, forcing them to re-enter their password the next time they usesudo.-v– This option extends the timeout period for the user’s cached credentials.
Additionally, you can also use the sudo command with the -E option to preserve the environment variables of the user who executed the sudo command.
Here are some examples of how to use the sudo command with different options:
To execute a command as root:
sudo command
To execute a command as another user:
sudo -u username command
To start a new shell as another user:
sudo -s -u username
To execute a command with a clean environment:
sudo -i command
To list the commands that the current user can execute with sudo:
sudo -l
To invalidate the user’s cached credentials:
sudo -k
To extend the timeout period for the user’s cached credentials:
sudo -v
To preserve the environment variables of the user who executed the sudo command:
sudo -E command
ls
The ls command is used to list the contents of a directory in Linux. It provides a quick and easy way to view the files and directories in a particular directory, as well as their permissions, ownership, size, and modification time.
The basic syntax of the ls command is as follows:
ls [options] [file/directory]
Here are some of the most commonly used options for the ls command:
-aThis option shows all files and directories, including hidden files (those that start with a.-lThis option displays a long format list that includes additional information about each file, such as the file size, ownership, permissions, and modification time.-hThis option displays the file sizes in a human-readable format (e.g., 1K, 2M, 3G).-tThis option sorts the files and directories by modification time, with the most recently modified files listed first.-rThis option reverses the order of the sort, so the oldest files are listed first.-RThis option recursively lists the contents of all subdirectories within the specified directory.-iThis option displays the inode number for each file or directory.-FThis option appends a character to the end of each file or directory name to indicate its type (e.g.,/for directories,*for executables).
Additionally, you can also use the ls command with the -d option to list only the directory itself, rather than its contents.
Here are some examples of how to use the ls command with different options:
To list the contents of the current directory:
ls
To list the contents of a specific directory:
ls /path/to/directory
To display all files and directories, including hidden files:
ls -a
To display a long format list of the contents of a directory:
ls -l /path/to/directory
To sort the contents of a directory by modification time:
ls -t /path/to/directory
To display the file sizes in a human-readable format:
ls -lh
To recursively list the contents of all subdirectories within a directory:
ls -R /path/to/directory
To display the inode numbers for each file or directory:
ls -i
To append a character to the end of each file or directory name to indicate its type:
ls -F
To list only the directory itself, rather than its contents:
ls -d /path/to/directory
mkdir
The mkdir command is used to create a new directory in Linux. It allows you to quickly and easily create a new directory to store files, organize your file system, and perform other administrative tasks.
The basic syntax of the mkdir command is as follows:
mkdir [options] [directory]
Here are some of the most commonly used options for the mkdir command:
-pThis option creates any parent directories that do not exist. For example,mkdir -p /path/to/new/directorywill create thenewanddirectorydirectories, as well as any parent directories (pathandto) that do not exist.-mThis option sets the permissions of the new directory using the specified octal mode. For example,mkdir -m 777 newdirwill create a new directory callednewdirwith permissions set torwxrwxrwx.-vThis option displays a message for each directory that is created, indicating the name of the directory.-ZThis option sets the SELinux context of the new directory to the default context for directories.
Here are some examples of how to use the mkdir command with different options:
To create a new directory:
mkdir newdir
To create a new directory with a specific name:
mkdir /path/to/newdir
To create a new directory and its parent directories:
mkdir -p /path/to/new/directory
To create a new directory with specific permissions:
mkdir -m 777 newdir
To display a message for each directory that is created:
mkdir -v newdir1 newdir2 newdir3
To set the SELinux context of the new directory to the default context for directories:
mkdir -Z newdir
cd
The cd command is used to change the current working directory in Linux. It is one of the most commonly used commands in Linux, as it is used to navigate through the file system and access different directories.
The basic syntax of the cd command is as follows:
cd [options] [directory]
Here are some of the most commonly used options for the cd command:
-PThis option forces thecdcommand to follow symbolic links, rather than using the symbolic link itself as the new directory.-LThis option forces thecdcommand to use the symbolic link itself as the new directory, rather than following the link.-This option changes the current directory to the previous directory you were in. It is equivalent to typingcd $OLDPWD.
Additionally, you can also use the cd command with the .. argument to move up one directory in the file system, or the ~ argument to move to your home directory.
Here are some examples of how to use the cd command with different options:
To change the current working directory to a specific directory:
cd /path/to/directory
To force the cd command to follow symbolic links:
cd -P /path/to/symlink
To force the cd command to use the symbolic link itself as the new directory:
cd -L /path/to/symlink
To move up one directory in the file system:
cd ..
To move to your home directory:
cd ~
To change the current directory to the previous directory you were in:
cd -
rm
The rm command is used to remove files and directories in Linux. It is a powerful command and should be used with caution, as it can permanently delete files and directories.
The basic syntax of the rm command is as follows:
rm [options] [file(s) or directory(s)]
Here are some of the most commonly used options for the rm command:
-rThis option recursively removes directories and their contents. Use with caution, as it can delete a large number of files.-fThis option forces the removal of files without prompting for confirmation, even if the file is write-protected.-iThis option prompts the user for confirmation before removing each file.-vThis option displays detailed information about each file that is removed.
Additionally, you can also use the rm command with the -d option to remove an empty directory.
Here are some examples of how to use the rm command with different options:
To remove a file:
rm myfile.txt
To remove multiple files:
rm file1.txt file2.txt file3.txt
To remove a directory:
rm -r mydirectory
To remove an empty directory:
rm -d emptydirectory
To force the removal of files without prompting for confirmation:
rm -f myfile.txt
To prompt the user for confirmation before removing each file:
rm -i myfile.txt
To display detailed information about each file that is removed:
rm -v myfile.txt
chown
The chown command is used to change the ownership of files and directories in Linux. It allows you to change the owner of a file or directory to another user or group.
The basic syntax of the chown command is as follows:
chown [options] user[:group] file(s)
Here are some of the most commonly used options for the chown command:
-cThis option displays a message for each file that is changed.-fThis option suppresses error messages if thechowncommand encounters a file that it cannot change the ownership of.-RThis option recursively changes the ownership of all files and directories within a directory.
The user argument specifies the new owner of the file or directory. The group argument, which is separated from the user argument by a colon (:), specifies the new group that the file or directory belongs to. If the group argument is omitted, the file or directory will be assigned to the user’s primary group.
Here is an example of how to use the chown command with different options:
To change the owner of a file:
chown newowner myfile.txt
To change the owner and group of a file:
chown newowner:newgroup myfile.txt
To change the owner of a directory and all files and directories within it:
chown -R newowner mydirectory
To display a message for each file whose ownership is changed:
chown -c newowner myfile.txt
To suppress error messages if the chown command encounters a file that it cannot change the ownership of:
chown -f newowner myfile.txt
chmod
The chmod command is used to change the permissions of files and directories in Linux. It allows you to set permissions for the owner, group, and other users who can access the file or directory.
The basic syntax of the chmod command is as follows:
chmod [options] mode file(s)
Here are some of the most commonly used options for the chmod command:
-cThis option displays a message for each file that is changed.-fThis option suppresses error messages if thechmodcommand encounters a file that it cannot change the permissions of.-vThis option displays detailed information about each file whose permissions are changed.
The mode argument specifies the new permissions for the file or directory. The permissions can be specified using either the symbolic mode or the octal mode.
Here is an overview of the symbolic mode for specifying permissions:
u– This specifies the permissions for the owner of the file or directory.g– This specifies the permissions for the group that the file or directory belongs to.o– This specifies the permissions for other users who can access the file or directory.a– This specifies the permissions for all users (owner, group, and other).
Here are some of the most commonly used symbols for specifying permissions:
r– This grants read permission to the file or directory.w– This grants write permission to the file or directory.x– This grants execute permission to the file or directory.
The permissions can be combined using the + and - symbols to add or remove permissions, respectively.
Here is an example of how to use the chmod command with different options:
To grant read, write, and execute permissions to the owner of a file:
chmod u+rwx myfile.txt
To grant read and write permissions to the group that a file belongs to:
chmod g+rw myfile.txt
To remove execute permission from other users who can access a file:
chmod o-x myfile.txt
To grant read, write, and execute permissions to all users:
chmod a+rwx myfile.txt
To display a message for each file whose permissions are changed:
chmod -c myfile.txt
To suppress error messages if the chmod command encounters a file that it cannot change the permissions of:
chmod -f myfile.txt
To display detailed information about each file whose permissions are changed:
chmod -v myfile.txt
ps
The ps command is used to display information about the processes that are currently running on a Linux system. It provides a quick and easy way to view the process ID (PID), the CPU and memory usage, the user who started the process, and other details about each process.
The basic syntax of the ps command is as follows:
ps [options]
Here are some of the most commonly used options for the ps command:
-aThis option displays information about all processes, including those that are not associated with a terminal.-uThis option displays information about processes owned by the specified user or users.-xThis option displays information about all processes, including those that are not associated with a terminal, as well as those that are started by other users.-eThis option displays information about all processes, including those that are not associated with a terminal, as well as those that are started by other users.-fThis option displays a full format listing of all processes, including the process ID (PID), the parent process ID (PPID), the CPU usage, the memory usage, and other details.-lThis option displays a long format listing of all processes, including the process ID (PID), the parent process ID (PPID), the user who started the process, the CPU usage, the memory usage, and other details.-hThis option suppresses the display of column headers in the output.
Here are some examples of how to use the ps command with different options:
To display information about all processes owned by the current user:
ps -u $USER
To display a full format listing of all processes:
ps -f
To display a long format listing of all processes:
ps -l
To display information about all processes, including those that are not associated with a terminal, as well as those that are started by other users:
ps -e
To suppress the display of column headers in the output:
ps -h
To display information about all processes, including those that are not associated with a terminal, as well as those that are started by other users, using the x option:
ps -x
top
The top command is used to display real-time information about the processes and system resources on a Linux system. It provides a dynamic view of the system, showing the CPU usage, memory usage, and other details about each process.
The basic syntax of the top command is as follows:
top [options]
Here are some of the most commonly used options for the top command:
-dThis option sets the refresh interval fortop, in seconds.-uThis option displays only the processes owned by the specified user or users.-pThis option displays only the specified processes.-nThis option sets the number of timestoprefreshes before quitting.-bThis option runstopin batch mode, which is useful for scripting or redirecting the output.-cThis option displays the full command line for each process.-HThis option displays individual threads of a process.
Here are some examples of how to use the top command with different options:
To display the system summary and a list of the top CPU-consuming processes:
top
To set the refresh interval to 5 seconds:
top -d 5
To display only the processes owned by the user johndoe:
top -u johndoe
To display only the process with the PID of 1234:
top -p 1234
To set the number of times top refreshes before quitting to 10:
top -n 10
To run top in batch mode and redirect the output to a file:
top -b > top-output.txt
To display the full command line for each process:
top -c
To display individual threads of a process:
top -H
ss
The ss command is used to display information about the network connections, sockets, and network interfaces on a Linux system. It provides a powerful way to monitor network activity and troubleshoot network issues.
The basic syntax of the ss command is as follows:
ss [options]
Here are some of the most commonly used options for the ss command:
-aThis option displays all sockets, including those that are not connected.-eThis option displays the extended socket information, including the user and process ID (PID) that are associated with each socket.-nThis option displays the numeric form of the addresses and ports, instead of resolving them to hostnames and service names.-pThis option displays the process that is using each socket.-tThis option displays only the TCP sockets.-uThis option displays only the UDP sockets.-lThis option displays only the sockets that are in listening mode.-sThis option displays the statistics for each protocol.
Here are some examples of how to use the ss command with different options:
To display all sockets:
ss -a
To display the extended socket information:
ss -e
To display the process that is using each socket:
ss -p
To display only the TCP sockets:
ss -t
To display only the UDP sockets:
ss -u
To display only the sockets that are in listening mode:
ss -l
To display the statistics for each protocol:
ss -s
To display the numeric form of the addresses and ports:
ss -n
ip
The ip command is a powerful tool for configuring and managing network interfaces, addresses, routes, tunnels, and other networking-related settings. The ip command has both options and objects that can be used to manage network configuration. Here’s the difference between ip command options and objects:
The basic syntax of the ip command is as follows:
ip [options] [command]
Here are some of the most commonly used options for the ip command:
-sThis option displays more detailed output for some commands.-hThis option displays help for theipcommand.-oThis option displays output in a machine-readable format.-cThis option specifies the number of times to repeat the command.-fThis option specifies the format of the output.-brThis option displays the network interfaces in a brief and readable format.
Here are some of the most commonly used ip objects:
To display the IP address of a network interface:
ip addr show eth0
To set the IP address of a network interface:
ip addr add 192.168.1.10/24 dev eth0
To delete an IP address from a network interface:
ip addr del 192.168.1.10/24 dev eth0
To display the routing table:
ip route show
To add a route to the routing table:
ip route add 192.168.2.0/24 via 192.168.1.1
To delete a route from the routing table:
ip route del 192.168.2.0/24 via 192.168.1.1
To display the network interfaces in a brief and readable format:
ip -br link show
To display the network interfaces in a machine-readable format:
ip -o link show
ping
The ping command is used to test the connectivity between two hosts on a network. It sends packets of data to a remote host and measures the time it takes for the packets to be returned. The ping command is commonly used to troubleshoot network connectivity issues.
The basic syntax of the ping command is as follows:
ping [options] destination
Here are some of the most commonly used options for the ping command:
-cThis option specifies the number of packets to send.-iThis option specifies the interval between packets.-wThis option specifies the timeout for each packet.-sThis option specifies the size of the packets.-vThis option displays more verbose output.
Here are some examples of how to use the ping command with different options:
To send 5 packets to a remote host:
ping -c 5 example.com
To send packets with a size of 500 bytes:
ping -s 500 example.com
To set the interval between packets to 2 seconds:
ping -i 2 example.com
To set the timeout for each packet to 5 seconds:
ping -w 5 example.com
To display more verbose output:
ping -v example.com
grep
The grep command is used to search for a specific pattern or regular expression in a file or stream of data. It is a powerful tool for filtering and processing text-based data.
The basic syntax of the grep command is as follows:
grep [options] pattern [file ...]
Here are some of the most commonly used options for the grep command:
-iThis option ignores case sensitivity.-vThis option displays only the lines that do not match the pattern.-nThis option displays the line number of each match.-rThis option recursively searches directories and subdirectories for files that match the pattern.-wThis option searches for whole words that match the pattern.-lThis option displays only the filenames of the files that match the pattern.-cThis option displays the count of the number of matches.
Here are some examples of how to use the grep command with different options:
To search for the pattern “error” in a file named “log.txt”:
grep error log.txt
To search for the pattern “error” in multiple files:
grep error file1.txt file2.txt file3.txt
To ignore case sensitivity when searching for the pattern:
grep -i error log.txt
To display only the lines that do not match the pattern::
grep -v error log.txt
To display the line number of each match:
grep -n error log.txt
To recursively search directories and subdirectories for files that match the pattern:
grep -r error /var/log/
To search for whole words that match the pattern:
grep -w error log.txt
To display only the filenames of the files that match the pattern:
grep -l error *
To display the count of the number of matches:
grep -c error log.txt
tar
The tar command is used to create and manipulate archive files. It can be used to combine multiple files and directories into a single archive file, and to extract the contents of an archive file. The name “tar” stands for “tape archive,” which refers to the original use of the command to create archive files on magnetic tape.
The basic syntax of the tar command is as follows:
tar [options] [archive] [files ...]
Here are some of the most commonly used options for the tar command:
-cThis option creates a new archive file.-xThis option extracts the contents of an archive file.-vThis option displays verbose output, showing the files being processed.-fThis option specifies the name of the archive file to create or extract.-zThis option compresses or decompresses the archive file using gzip.-jThis option compresses or decompresses the archive file using bzip2.-tThis option lists the contents of an archive file.
Here are some examples of how to use the tar command with different options:
To create a new archive file called archive.tar that includes all files in the current directory:
tar -cvf archive.tar *
To extract the contents of an archive file called archive.tar:
tar -xvf archive.tar
To create a new archive file called archive.tar.gz that is compressed using gzip and includes all files in the current directory:
tar -czvf archive.tar.gz *
To extract the contents of an archive file called archive.tar.gz that is compressed using gzip:
tar -xzvf archive.tar.gz
To create a new archive file called archive.tar.bz2 that is compressed using bzip2 and includes all files in the current directory:
tar -cjvf archive.tar.bz2 *
To extract the contents of an archive file called archive.tar.bz2 that is compressed using bzip2:
tar -xjvf archive.tar.bz2
To list the contents of an archive file called archive.tar:
tar -tvf archive.tar
conclusion
For any system administrator, Linux commands are essential tools for managing and troubleshooting Linux systems. We have discussed a few of the crucial Linux system management commands in this blog post. These include instructions for controlling users and permissions, keeping an eye on system performance, debugging network problems, and more.
System administrators may effectively manage Linux systems and make sure they are working well by becoming familiar with these Linux commands. There are other other Linux commands that are helpful for system administration, thus this list is not all-inclusive. As a result, system administrators should keep learning and experimenting with new Linux commands to expand their knowledge and boost their productivity when maintaining Linux systems.
Overall, having a firm grasp of Linux commands is crucial for any system administrator, and it’s critical to continuously update your abilities and knowledge when new Linux versions with additional commands and choices are introduced.
Links:
https://man7.org/linux/man-pages/
Got any queries or feedback? Feel free to drop a comment below!
