# A (Live) List of Shell Commands and Tools
Any of these commands can be prefixed with `sudo` in order to run them as a system administrator. Some of them, such as `apt`, can only be run as an administrator. All programs with an asterisk (`*`) next to them do not come pre-installed in the [Codespaces Desktop](https://github.com/dianalin2/desktop).
## Common Linux Commands
| Command | Description |
| -------- | -------- |
| `ls` | List directory contents |
| `pwd` | Print the full path of the current (working) directory |
| `cd` | Move to another directory |
| `cat` | Print the contents of a file |
| `cp` | Copy a file/folder from one location to another |
| `mv` | Move a file/folder from location to another |
| `mkdir` | Create a directory |
| `rm` | Delete files/folders |
| `clear` | Clear the terminal display |
| `./<program>` | Run an executable file in the current directory |
## Package Managers
| Command | Description |
| -------- | -------- |
| `apt install` | Install a package on a Debian-based distribution (including Ubuntu) |
| `pip install` | Install a Python package |
## Editing Files
| Command | Description |
| -------- | -------- |
| `nano` | Open a (relatively) user-friendly command line text editor |
| `vim`* | Open a less user-friendly but very powerful command line text editor |
## Connecting to Servers
| Command | Description |
| -------- | -------- |
| `nc` | Establish a connection to a server |
| `ssh` | Connect to a remote computer to access a shell on that computer |
| `curl` | Make an HTTP request |
| `wget` | Make an HTTP request and download the response body |
## File Permissions
| Command | Description |
| -------- | -------- |
| `chmod` | Change the access permissions of a file |
| `chown` | Change the file owner of a file |
| `chgrp` | Change the group owner of a file |
## File Forensics
| Command | Description |
| -------- | -------- |
| `grep` | Search for a file that has contents that matches a specific pattern of characters |
| `file` | Print the file type of a file based on its contents, not the file extension |
| `strings` | Print the "printable" bits of text of a file out |
| `find` | Print out the files that match a certain specified criteria |