Linux Cheatsheet

Print lines of code (amount) for all .php files in current directory

find . -name '*.php' | xargs wc -l

Show all group memberships for current user


Get username for Apache service

ps aux | grep apache

(Relatively) secure permissions on public html folder for Apache/nginx

The goal is to set root as file owner and add the www-data as group (www-data is the group of the user running apache/nginx). Then, for every user which requires write-permission, simply add them to the www-data group.

sudo chown root:www-data /path/to/htdocs/* -R 
sudo chmod 775 /path/to/htdocs/* -R
chmod 775 gives everyone R/W/X except public because they shouldn’t have write permissions

Change www-data with whatever group belonging to the user account which is running apache/nginx.

Create an alias for bash commands and/or custom functions

First you need to open your bash profile config file. If preferred, you can use nano and open it with: nano ~/.bashrc

Example: Add a shorthand command for ls and tail with some extra parameters:

alias l="ls -lahS"
alias t='tail -n 200 $1'

As you can see, the tail command also reads file argument given to the command.

Example: Add a custom function for searching for a string in all files in current directory:

grepfor() {
grep -rnw './' -e "$1"

When done, reload your config file by running:
. ~/.bashrc

Search for string in files

grep -rnw '/path/to/dir/' -e 'stringpattern'

List only files with size above 100 MB

find . -type f -size +100M -exec ls -lh {} \;

This command scans the current dir for files above 100 MB and then executes the ls -lh command for those files. You could also say -size -10M to do the same for files below 10 MB in size.

Clean/format USB drives

sudo fdisk -l
sudo mkdosfs /dev/xxx # (i.e sdb1)
sudo mkdir /media/usb
sudo mount /dev/xxx /media/usb

See uptime and average load


Change timezone

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Oslo /etc/localtime

Replace Europe/Oslo with your preferred timezone

Remove password for local user (make it passwordless)

sudo passwd --delete username

See current users logged on server

users (usernames only)


who(includes extra information like logon time and IP address etc)

Show IP addresses for all local network cards (including local loopback)

ifconfig | grep inet | cut -d: -f2 | cut -d" " -f1


ifconfig | grep 'inet addr' | cut -d: -f2 | awk '{print $1}'

If you wish to see the IP address for a specific NIC (network interface card), simply append the name after ifconfig, like ifconfig eth0 | ...

Map network share

$ sudo mkdir /mnt/ShareName
$ sudo mount -t cifs -o username=domain\username,password=pw //server/share /mnt/ShareName

List automated ssh attacks to your server from syslog:

$ sudo cat /var/log/* | grep BREAK-IN

This post will be continually updated with useful commands and other notes for Linux environments

Related posts: