Linux Reference Sheet
9/19/2021
This is a very basic list of common commands used when administering a Debian system, typed up for a friend who is just getting started with Linux administration.
Note: This resource may occasionally be updated to include new information. The publish date will remain unchanged.
Moving, Viewing, Editing Files
List files:
ls
List all files, even hidden ones:
ls -a
Show where you currently are:
pwd
Change to a new folder:
cd <foldername>
For example:
cd /home/john/Documents
Print out the contents of a file:
cat <nameoffile>
Example:
cat /var/www/html/index.html
Edit a file:
nano <nameoffile>
Example:
nano /var/www/html/index.html
Move or rename a file (renaming a file is just moving it with a new name):
mv <oldfilename> <newfilename>
Example moving and renaming at the same time:
mv /home/John/Documents/oldphoto.jpg /home/John/Pictures/oldphoto1.jpg
Tips:
If a file or folder has certain types of characters in its name, such as spaces or $, you need to put ‘’ around the file name.
Examples:
nano '/home/john/Documents/tax information.txt'
SFTP
Files can be transferred to and from the server using SFTP. SFTP is very versatile, but this will describe the most straightforward way to use it.
To start the SFTP tool, use the same command as you would for SSH, but use the word “sftp” instead of “ssh”. For example, if the following is used to log into a server:
ssh -i ~/.ssh/mykey user@host
Then the SFTP tool would be started with:
sftp -i ~/.ssh/mykey user@host
When the tool starts, it acts as a connection between your machine and the server.
It simply waits for commands. There are four main commands that are most useful:
ls
cd
get
put
Use ls
to list the files on the server.
Use lls
to list the files on your machine.
Use cd
to change where you are on the server.
Use lcd
to change where you are on your machine.
So, after starting the tool, you might use cd
to move to a location on the server where you want to upload files, and you might use lcd
to move to a location on your machine where you have files to upload.
Once you’re in place, you can use put
to upload files, and put -R
to upload folders.
You can use get
to download files and get -R
to download folders.
Here’s an example uploading dog-picture.jpg
to a website, with # in front of the explanations about what is happening;
# Start the tool
$ sftp -i ~/.ssh/myserverkey root@example
# Now the tool is started. Use ls to see what is on the server
sftp> ls
trash
old-files
notes
# We realize this isn't where we want to upload to. We want to upload to the apache website folder
# Use cd to switch there
sftp> cd "/var/www/html"
# Check what's there - to see if this is the right place
sftp> ls
blog
index.html
me-picture.jpg
# We are in the right place
# Now we want to see what is on our laptop
sftp> lls
Documents
Downloads
Pictures
Videos
# We know that we keep our website files in the Documents folder. Use lcd to switch there
sftp> lcd Documents
# List the files
sftp> lls
art
my website
school
taxes
# Here we see the folder 'my website', which we know has all the website files.
# Switch into it
sftp> lcd "my website"
# List the files
sftp> lls
blog
dog-picture.jpg
index.html
me-picture.jpg
# Here we are! The folder where we keep our website files.
# Now we can upload `dog-picture.jpg`
sftp> put dog-picture.jpg
# When it's done uploading, check to make sure it's there:
sftp> ls
blog
dog-picture.jpg
index.html
me-picture.jpg
# Now that we're done, exit sftp
sftp> exit
Just remember these steps:
- Log in
- Use
ls
andcd
to get the server side in place - Use
lls
andlcd
to get your machine’s side in place - Use get or put to either download or upload the files/folders you’re interested in.
It might be helpful to have an ssh connection up in one window, and an sftp connection in another one. This makes it easy to switch back and forth between uploading/downloading files and doing things like moving those files around, restarting programs, etc. without having to log back in and out.
System Administration
Run a command as administrator:
sudo <command>
Example (works with almost any command):
sudo apt update
Change your password:
passwd
Change another user’s password:
passwd <username>
Example:
passwd john
Reboot the whole machine:
reboot
Power off the whole machine:
poweroff
Check the resource useage of the machine:
htop
Update everything:
apt update
apt upgrade
Search for a package by name:
apt search <packagename>
Example:
apt search htop
Install a package by name:
apt install <packagename>
Example:
apt install htop
Managing system services:
systemctl restart <service>
systemctl stop <service>
systemct start <service>
systemctl disable <service>
systemctl enable <service>
Example:
systemctl restart apache2
Etc.
View status of a service:
systemctl status <service>
Example:
systemctl status apache2