Caution
JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.
Dictionary
- Angular Dictionary
- ASP.NET Dictionary
- AWS Dictionary
- Bootstrap Dictionary
- C Language Dictionary
- COBOL Dictionary
- Linux & Mac & Bash Command Dictionary
- C++ Dictionary
- C# Dictionary
- CSS Dictionary
- Dart Dictionary
- Django Dictionary
- Docker Dictionary
- Express Dictionary
- FastAPI Dictionary
- Flask Dictionary
- Fortran Dictionary
- Go Dictionary
- Haskell Dictionary
- HTML Dictionary
- Java Dictionary
- jQuery Dictionary
- JavaScript Dictionary
- Kotlin Dictionary
- Laravel Dictionary
- Lisp Dictionary
- Lua Dictionary
- Next.js Dictionary
- Node.js Dictionary
- Pascal Dictionary
- Perl Dictionary
- PHP Dictionary
- Python Dictionary
- R Language Dictionary
- Rails Dictionary
- React Dictionary
- Ruby Dictionary
- Rust Dictionary
- Sass Dictionary
- Shell Script Dictionary
- Spring Dictionary
- SQL Dictionary
- Swift Dictionary
- Tailwind CSS Dictionary
- IT Terms & History Dictionary
- TypeScript Dictionary
- vi & vim & Neovim Dictionary
- Vue Dictionary
- Zig Dictionary
- Home
- Linux & Mac & Bash Command Dictionary
Linux & Mac & Bash Command Dictionary Index
| Beginners Guide: Overview, Features, and Learning Path | An overview of Bash, its features, and how execution works, along with a recommended learning path through the dictionary. |
| Comments (#) | Comment syntax in #, when to write comments, and when not to. |
| [Setup] Bash Environment | Steps to set up an environment for creating and running Bash scripts. |
| Creating and Running .sh Files | How to write and run .sh files. |
| ls | Displaying a list of files. |
| cd / pwd | Navigating directories and checking the current location. |
| cp / mv / rm | Copying, moving, and deleting files and directories. |
| mkdir / rmdir / touch | Creating directories and files. |
| find | Searching for files. |
| ln | Creating symbolic links and hard links. |
| chmod / chown / chgrp | Changing permissions and ownership. |
| stat / file / du / df | Checking file information and disk usage. |
| cat / tac | Displaying file contents in order and in reverse. |
| less / more | Browsing a file with paging. |
| head / tail | Displaying the beginning or end of a file. |
| echo / printf | Outputting strings. |
| wc / sort / uniq | Counting lines and words, sorting, and removing duplicates. |
| grep | Searching text for patterns. |
| sed | Line-based text substitution and editing. |
| awk | Field processing and aggregation of text. |
| cut / paste / join | Cutting, pasting, and joining fields. |
| tr / col / expand | Converting and formatting characters. |
| diff / patch | Comparing file differences and applying patches. |
| | (Pipe) | Passing the output of one command to the next. |
| &&(AND) / ||(OR) / !(NOT) / ;(Sequential) / &(Background) | Chaining commands with conditional execution. |
| > (Output Redirect) | Redirecting stdout and stderr. |
| < (Input Redirect) / Heredoc | Redirecting stdin and using here documents. |
| tee | Writing to a file in the middle of a pipe. |
| xargs | Running commands from a list of arguments. |
| Defining and Referencing Variables | Declaring, assigning, and referencing shell variables. |
| export / env / printenv | Setting and checking environment variables. |
| ${Parameter Expansion} | Advanced variable expansion and default value settings. |
| Special Variables | Special shell variables used in scripts. |
| $((Arithmetic Expansion)) | Integer arithmetic. |
| {} (Brace Expansion) | Generating sequences and strings. |
| $() (Command Substitution) | Using command output as a value. |
| if / elif / else | Conditional branching. |
| test / [ ] / [[ ]] | Evaluating conditional expressions. |
| case | Multi-way branching by value. |
| for | Looping over a list or range. |
| while / until | Conditional loops. |
| select | Generating an interactive menu. |
| Defining and Calling Functions | Basics of shell functions. |
| Function Arguments and Return Values | Receiving arguments and returning values. |
| read | Reading from standard input. |
| Shebang / chmod +x | Creating and executing script files. |
| source / . (Dot) | Loading another script file. |
| set (Shell Options) | Configuring and unsetting shell behavior options. |
| alias / unalias | Setting and removing command aliases. |
| crontab | Scheduling recurring tasks. |
| sudo / su | Privilege escalation commands. |
| history | Managing command history. |
| /etc/hosts (Manual Host Resolution) | Syntax of /etc/hosts and using it to resolve hostnames before querying DNS. |
| which / type / command | Finding command locations and types. |
| sleep / seq | Waiting and generating sequences. |
| Array | Working with arrays in Bash. |
| String Manipulation (Parameter Expansion) | String manipulation using parameter expansion. |
| getopts | Parsing script options. |
| eval / exec | Dynamic execution and process replacement. |
| systemctl / service | Managing system services. |
| umask | Default permissions for new files. |
| ps / top / htop | Checking running processes. |
| kill / pkill / killall | Stopping processes and sending signals. |
| & (Background Execution) | Running in the background and managing jobs. |
| wait / trap | Waiting for processes and catching signals. |
| curl | Sending and receiving HTTP requests. |
| wget | Downloading files. |
| ssh / scp / rsync | Connecting to remote hosts and transferring files. |
| ping / nslookup / dig | Network diagnostics and name resolution. |
| tar | Creating and extracting archives. |
| gzip / bzip2 / zip / unzip | Compressing and extracting files. |
| date / cal | Getting and manipulating dates and times. |
| Bash vs zsh Differences | Summary of key differences including arrays, globs, and prompts. |
| ACL (Access Control List) | A mechanism that supplements Unix permissions by granting individual access rights to specific users or groups; use setfacl to configure and getfacl to inspect. |
| Apache HTTP Server Overview and Configuration | A widely used open-source web server that organizes configuration per module and virtual host, with optional per-directory overrides via .htaccess. |
| AppArmor | A Mandatory Access Control framework built into Ubuntu and Debian. Profiles restrict each process's access to files, network resources, and system calls. |
| apt | The standard package management tool for Debian and Ubuntu. Use update to refresh the package list, then install, upgrade, and remove to manage software. |
| auditd | A daemon that works with the Linux kernel audit subsystem to log file access, command execution, and user operations. Use auditctl to configure rules and ausearch or aureport to analyze the collected data. |
| chmod / chown / chgrp | Commands for changing file permissions, owning user, and owning group. Essential for correctly configuring permissions when deploying web applications. |
| /etc/cron.d and anacron | System cron directories such as /etc/cron.d and /etc/cron.daily, plus anacron which runs missed jobs after the system powers back on. |
| Deploying Django Apps (Gunicorn + Nginx) | Steps for deploying Django to production: isolate the environment with virtualenv, register Gunicorn as a systemd WSGI server, and place Nginx in front as a reverse proxy. |
| Deploying C# / .NET Apps (Kestrel + Nginx) | Production deployment for .NET apps: publish with dotnet publish, register Kestrel as a systemd service, and place Nginx in front as a reverse proxy. |
| Deploying Node.js / Express Apps (PM2 + Nginx) | Deploy Node.js/Express to production using PM2 as a process manager for daemonization and auto-restart, with Nginx in front as a reverse proxy. |
| Deploying Go Apps (Single Binary + Nginx) | Go compiles to a single binary requiring no runtime installation. Transfer the binary to the server, register it as a systemd service, and configure Nginx as a reverse proxy. |
| Deploying PHP Apps (Nginx + PHP-FPM) | A step-by-step guide to deploying PHP on Ubuntu: install PHP-FPM, configure an Nginx virtual host, and set correct file permissions. |
| Deploying Ruby on Rails Apps (Puma + Nginx) | Rails production deployment using rbenv for Ruby, Bundler for gems, Puma as a systemd service, and Nginx as a reverse proxy over a Unix socket. |
| df / du | Use df to check free space across filesystems and du to identify disk usage per directory. Also covers ncdu for interactive drill-down investigation. |
| fdisk / parted (Disk Partition Management) | fdisk for interactive MBR/GPT partition management and parted for scriptable non-interactive partition operations on large disks. |
| Linux Distribution Comparison | A comparison of Debian-based (Ubuntu, etc.) and RHEL-based (AlmaLinux, etc.) distributions, covering package management, release cycles, and support periods. |
| dnf / yum | The standard package manager for RHEL and AlmaLinux. Manage packages with install, update, and remove, and supports EPEL repositories and package group installs. |
| DNS Resolution Mechanism and Configuration | How Linux resolves hostnames to IP addresses; lookup order is controlled by /etc/nsswitch.conf, and DNS servers are configured via /etc/resolv.conf or systemd-resolved. |
| fail2ban | A security tool that automatically detects brute-force attacks and blocks offending IPs via iptables when failed attempts exceed a threshold. Configured per-service in "jail" units. |
| Linux Filesystem Hierarchy (FHS) | The Linux directory layout defined by the Filesystem Hierarchy Standard (FHS), covering the roles of /etc, /var, /usr, /home, /tmp, /proc, and more. |
| mkfs (Creating Filesystems) | A family of commands that format partitions to create filesystems. Covers the differences and use cases for ext4, XFS, and Btrfs. |
| firewalld | The standard firewall daemon for RHEL and AlmaLinux. Organizes rules by zone and service, and lets you dynamically open ports and persist changes via firewall-cmd. |
| groupadd / groupdel / usermod (Group Management) | Commands for creating and deleting Linux groups and managing group membership. Group information is stored in /etc/group. |
| iptables | A command-line tool for controlling Netfilter in the Linux kernel. Add rules to the INPUT, OUTPUT, and FORWARD chains to allow or deny network traffic. |
| journalctl | A command for viewing systemd journal logs. Use -u to filter by service, -p to set error level, and --since/--until to narrow by time range. |
| Linux Kernel Update | Update the Linux kernel with apt upgrade on Ubuntu or dnf update kernel on RHEL/AlmaLinux. Use needs-restarting to decide if a reboot is needed and auto-remove old kernels. |
| Let's Encrypt + certbot (Free SSL Certificates) | A system for automatically obtaining and renewing free SSL/TLS certificates. Run certbot --nginx or --apache to handle certificate issuance and web server configuration automatically. |
| Linux Basics | Core Linux concepts including the kernel/user-space separation, process management, daemons, and the role of the shell. |
| logrotate | A tool that automatically rotates, compresses, and deletes log files. Place config files in /etc/logrotate.d/ and set rotation triggers with daily, weekly, or size directives. |
| LVM (Logical Volume Manager) | A Linux disk abstraction layer with three tiers — Physical Volumes (PV), Volume Groups (VG), and Logical Volumes (LV) — enabling live expansion and snapshot backups. |
| ss / netstat (Checking Socket Status) | ss (iproute2) for fast socket status display and the legacy netstat (net-tools). Use ss -tlnp to list all listening ports. |
| ip / nmcli (Network Interface Management) | The ip command for checking, adding, and removing IP addresses and routes, alongside nmcli for persistent NetworkManager configuration. |
| Nginx Overview and Basic Configuration | Nginx as a high-performance web server and reverse proxy. Configuration follows the http → server → location hierarchy for virtual hosts, PHP-FPM integration, and reverse proxying. |
| Nginx Performance Tuning | Key Nginx performance settings: worker_processes for CPU core alignment, keepalive_timeout for connection reuse, sendfile for static files, and gzip for compression. |
| Nginx + PHP-FPM | A setup where Nginx serves static files and delegates PHP processing to PHP-FPM via fastcgi_pass, offering better performance and scalability than Apache + mod_php. |
| Nginx Reverse Proxy | Forwards client requests to a backend application server (Node.js, Django, Rails, etc.) using proxy_pass. Also handles HTTPS termination and load balancing. |
| pacman (Arch Linux Package Manager) | The standard package manager for Arch Linux and derivatives like Manjaro. Use -Syu to update, -S to install, and yay for AUR packages outside the official repositories. |
| /etc/passwd and /etc/shadow | Two Linux files managing user information: /etc/passwd stores basic user data (world-readable), while /etc/shadow holds password hashes with strict permissions. |
| rpm / dpkg (Low-Level Package Management) | Low-level package tools that operate beneath dnf and apt. Directly install, remove, query, and verify .rpm and .deb package files. |
| rsync (Incremental Backup) | A command that incrementally synchronizes files between local and remote locations. Transfers only changed files for speed and bandwidth efficiency; widely used with SSH for secure backups. |
| rsyslog | A Linux system log collection daemon. Routes log output based on facility and severity combinations, and supports forwarding to remote servers with the @@ notation. |
| sar / sysstat (Performance Recording and Analysis) | The sar command from the sysstat package collects and stores CPU, memory, I/O, and network statistics over time, allowing historical analysis of past performance issues. |
| SELinux | A mandatory access control (MAC) framework built into the Linux kernel. Attaches security labels (contexts) to all resources and enforces a policy that allows only explicitly permitted operations. Standard on RHEL and AlmaLinux. |
| Server Hardening (Initial Security Configuration) | Initial security steps for a new server: disable unnecessary services, switch to SSH key auth, enable a firewall, and configure automatic security updates to minimize attack surface. |
| Special Permissions (setuid / setgid / sticky bit) | Three special permissions beyond rwx: setuid runs a file with the owner's privileges, setgid inherits the directory's group, and sticky bit prevents users from deleting others' files in shared directories. |
| authorized_keys (SSH Public Key Authentication) | Register your client-generated public key in ~/.ssh/authorized_keys on the server for passwordless login. The .ssh/ directory requires 700 and authorized_keys requires 600 permissions. |
| ~/.ssh/config (SSH Client Configuration) | An SSH client config file where you specify HostName, User, Port, and IdentityFile per host, allowing shorter alias names instead of long command-line options. |
| ssh-keygen (Generating SSH Key Pairs) | A command for generating SSH key pairs. Register the public key on the server and keep the private key locally. ED25519 is recommended for new keys due to its security and speed. |
| SSH Port Forwarding (Tunneling) | A mechanism to forward arbitrary TCP ports through an encrypted SSH connection. Local (-L), remote (-R), and dynamic (-D) forwarding enable secure database access, internal service exposure, and more. |
| sshd_config (SSH Server Configuration) | The SSH server config file at /etc/ssh/sshd_config. Always set PasswordAuthentication no and PermitRootLogin no as baseline security hardening. |
| Nginx SSL/TLS Configuration | Nginx SSL config combines certificate paths, TLS version selection, cipher suites, and HSTS headers. Disable TLS 1.0/1.1 and allow only 1.2/1.3 to achieve an A+ rating on SSL Labs. |
| SSL/TLS Overview | A protocol for encrypting internet communication. SSL is the old name; TLS is what is actually used today. Hybrid encryption prevents eavesdropping, tampering, and impersonation, with CAs verifying server identity. |
| sudo / visudo | sudo delegates root-level operations to regular users; visudo safely edits the /etc/sudoers configuration file with syntax checking. |
| systemd Targets | systemd targets replace SysVinit runlevels. Covers multi-user.target (runlevel 3), graphical.target (runlevel 5), and how to switch or set the default target. |
| systemd Timers | Schedule periodic tasks using .timer unit files paired with .service files. Advantages over cron include centralized logging via journalctl and relative time scheduling. |
| systemd Unit Files (.service) | Register your own application as a daemon by creating a .service file with [Unit], [Service], and [Install] sections. Then manage start, stop, and auto-start with systemctl. |
| top / htop (Real-Time Process Monitoring) | top displays real-time CPU, memory, and load average; htop extends it with color, mouse support, and tree view for more intuitive process inspection and signal sending. |
| ufw (Uncomplicated Firewall) | A simplified firewall management tool built into Ubuntu that wraps iptables. Use intuitive commands like ufw allow, deny, and status to manage packet filtering rules. |
| useradd / userdel / usermod (User Management) | Three commands for managing Linux users: useradd creates a user with home directory, shell, and group; usermod modifies settings; userdel -r deletes the user along with their home directory. |
| /var/log (System Log Directory) | The standard Linux directory for logs including kernel messages, authentication records, and service access logs. Monitor in real time with tail -f, search with grep, and query rotated logs with zcat/zgrep. |
| vmstat / iostat (Performance Statistics) | vmstat outputs real-time memory, swap, CPU, and I/O statistics; iostat shows per-disk I/O throughput and latency. Both are lightweight tools for quickly identifying performance bottlenecks. |