Unix & shell concepts made simple
Whether you're just starting your terminal journey or brushing up on fundamentals, this glossary breaks down commands, concepts, and Caro features into easy-to-digest bites. Terminal knowledge for everyone.
Understanding your AI shell companion
Your AI-powered shell command assistant. Caro translates natural language into safe, executable shell commands. Think of it as having a Unix expert by your side.
caro "find all large files over 100MB"
Caro's built-in protection that analyzes commands before execution. It catches dangerous
patterns like rm -rf / and asks for confirmation on risky operations.
The AI engine powering Caro's language understanding. Options include local models (Ollama, MLX) for privacy or cloud APIs (Claude, OpenAI) for power.
Preview mode that shows what a command would do without actually executing it. Perfect for learning or verifying complex operations.
caro --dry-run "delete all temp files" A conversational shell session where you can ask follow-up questions, refine commands, and explore options naturally.
Running AI models directly on your machine. Your commands and data never leave your computerโperfect for sensitive work environments.
The foundation of command-line mastery
The program that interprets your commands. Common shells include bash, zsh, and fish. It's the interface between you and the operating system.
The window application that displays your shell. Examples: Terminal.app, iTerm2, Windows Terminal, or Alacritty. The terminal is the container; the shell runs inside it.
Command Line Interface. Any program you interact with by typing commands rather than clicking. Git, npm, dockerโall CLIs.
Portable Operating System Interface. A set of standards ensuring commands work consistently across Unix-like systems (Linux, macOS, BSD).
The text that appears before your cursor, indicating the shell is ready for input.
Often shows username, hostname, and current directory: user@host:~$
An environment variable listing directories where the shell looks for executable programs.
When you type git, the shell searches PATH to find it.
echo $PATH
Named values available to all programs. Used for configuration like API keys,
paths, and preferences. Access with $VARIABLE_NAME.
export MY_VAR="hello" A custom shortcut for a longer command. Define frequently used commands once, use a short name forever.
alias ll="ls -la" Navigate and manage your filesystem
List directory contents. The first command everyone learns.
ls -la List all files with details Change Directory. Navigate between folders.
cd ~/Documents Go to Documents folder Print Working Directory. Shows your current location.
pwd Output: /home/user/projects Make Directory. Create new folders.
mkdir -p path/to/new Create nested directories Remove. Delete files or directories. Use with caution!
rm -i file.txt Delete with confirmation Copy. Duplicate files or directories.
cp -r src/ dest/ Copy directory recursively Move. Relocate or rename files/directories.
mv old.txt new.txt Rename a file Create empty files or update timestamps.
touch newfile.txt Create empty file Search for files by name, type, size, date, and more.
find . -name "*.js" Find all JavaScript files ~ for home directory, . for current,
.. for parent, and - for previous directory.
Search, filter, and transform text like a pro
Concatenate. Display file contents or combine multiple files.
cat file.txt Show file contents Global Regular Expression Print. Search text using patterns. One of the most powerful Unix tools.
grep -r "TODO" ./src Find all TODOs in source code Stream Editor. Find and replace text, or transform streams with powerful pattern matching.
sed 's/old/new/g' file Replace all occurrences A complete text-processing language. Extract columns, compute values, and format output from structured data.
awk '{ print $1 }' file Print first column View the beginning or end of files. Great for logs and large files.
tail -f app.log Follow log in real-time Sort lines and filter duplicates. Often used together in pipelines.
sort file | uniq -c Count unique lines Word Count. Count lines, words, and bytes in files.
wc -l *.txt Count lines in all text files Connect commands together. Output of one command becomes input to the next. The secret sauce of Unix philosophy.
cat log | grep error | wc -l Count error lines in log Control who can do what with your files
Change Mode. Modify file permissions (read, write, execute) for owner, group, and others.
chmod +x script.sh Make script executable Change Owner. Transfer file ownership to another user or group.
chown user:group file Change owner and group Superuser Do. Run commands with administrator privileges. With great power comes great responsibility.
sudo apt update Update as administrator Octal notation for permissions: 4=read, 2=write, 1=execute. Combine for each group (owner/group/others).
chmod 755 script.sh rwxr-xr-x (owner all, others read+execute) Manage running programs and background tasks
Process Status. List running processes and their details.
ps aux | grep node Find all Node.js processes Real-time process monitor. See CPU, memory usage, and manage processes interactively. htop is the colorful modern version.
Send signals to processes. Commonly used to terminate misbehaving programs.
kill -9 12345 Force kill process 12345 Run a command in the background, freeing up your terminal for other work.
npm run dev & Start server in background Ctrl+Z suspends current process. fg brings it back to foreground. bg resumes it in background.
No Hangup. Keep process running after you close the terminal.
nohup ./server & Run server persistently Connect, transfer, and debug network operations
Transfer data from or to a server. The Swiss Army knife of HTTP requests.
curl -X POST -d '{key":"val}' url Send JSON POST request Download files from the web. Great for fetching resources and mirroring sites.
wget -O file.zip url Download with custom filename Secure Shell. Connect to remote machines securely. The backbone of server administration.
ssh user@hostname Connect to remote server Secure Copy. Transfer files between machines over SSH.
scp file.txt user@host:/path Copy file to remote server Test network connectivity to a host. Sends packets and measures response time.
ping google.com Check internet connectivity
Display network connections, routing tables, and port usage.
ss is the modern replacement for netstat.
ss -tulpn Show listening ports Speed up your terminal workflow
Let Caro translate your natural language into perfectly crafted shell commands. No more memorizing syntaxโjust describe what you want to do.