Here’s a list of important Linux commands I refer to when I can’t remember a command that I need.
Even basic Linux commands sometimes escape my memory. This is a cheat sheet that saves me a lot of time I would otherwise waste searching for them.
Run command as root.
sudo
Restart Apache2.
service apache2 restart
Restart MySQL.
service mysql restart
Compress directory with gzip.
tar -zcvf archive-name.tar.gz directory-name
Extract a compressed file to the current directory.
tar -zxvf archive-name.tar.gz
Extract a compressed file to a different directory.
tar -C /directory-name -zxvf archive-name.tar.gz
Extract a compressed file without the first “container” directory.
tar -xvf archive-name.tar.gz --strip-components 1
Delete file.
rm file-name
Rename file, move file.
mv old-file-name new-file-name
Delete an empty directory.
rmdir directory-name
Delete directory and its contents recursively.
rm -r directory-name
Delete directory and its contents recursively (remove the files without prompting for confirmation, regardless of the file’s permissions).
rm -rf directory-name
Delete directory contents recursively, but do not delete the target directory itself. Note: Does not remove hidden files from the target directory. Note: Does not remove hidden files from the target directory.
rm -r directory-name/*
Delete directory and its contents recursively, but do not delete the target directory itself (remove the files without prompting for confirmation, regardless of the file’s permissions). Note: Does not remove hidden files from the target directory.
rm -rf directory-name/*
Create directory.
mkdir directory-name
Change owner of a file.
chown someuser:somegroup file-name
Change owner of directory and all it’s contents recursively.
chown -R someuser:somegroup directory-name
Change permissions for a file or directory.
chmod 644 some_file_or_directory
Change permissions for a directory and subdirectories.
find directory-name -type d -exec chmod 755 {} \;
Change permissions for all files in a directory and subdirectories.
find directory-name -type f -exec chmod 644 {} \;
Show current directory (Print Working Directory).
pwd
Copy the content of directory a to directory b, including hidden files (.), preserve file ownership, permissions, etc. (-a).
cp -a a/. b
Download latest version of WordPress.
wget https://wordpress.org/latest.tar.gz
Then unzip the package.
tar -xzvf latest.tar.gz
Download the package list from the repositories, get information on the newest versions of packages.
sudo apt-get update
Install the newest versions of all packages currently installed on the system.
sudo apt-get upgrade
In addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages.
sudo apt-get dist-upgrade
Performs the function of upgrade but may also remove installed packages if that is required in order to resolve a package conflict.
sudo apt-get full-upgrade
MySQL / MariaDB
Log in to MySQL / MariaDB shell.
mysql -u username -p
Create new database.
create database databasename;
Delete database.
drop databasename;
Show all databases.
show databases;
Select database.
use databasename;
Show all tables.
show tables;
Show table structure.
describe tablename;
Create database user and grant all privileges.
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
Back up database into a file with mysqldump.
mysqldump -u username -p databasename > filename
Restore database from a file.
mysql -u username -p databasename < filename