cheats/linux.md

3.3 KiB

Linux Cheats

General (tested in Debian)

Create directory recursivly: mkdir -p these/folders/doesnt/exist

-p for "parent"


List directory sorted by file-size: ls -lhS /path

-S sorts them. -lh gives a list with "human-readable" file-sizes.


Find the size of each item in a folder: du -sm *
You can sort them by adding: du -sm * | sort -nr

You can add -h, but it won't sort correctly

To find the largest 20 files in a directory:

du -ah ./ | sort -rh | head -20


Find the total size of a folder: du -hs /foldername


Set script as startup

If, for some reason, apache isn't startup:

sudo update-rc.d apache2 defaults

Check a package version/info

dpkg -l matrix-synapse

See logs for services:

sudo journalctl -e -u matrix-synapse
(-f instead of -e to keep it running)


Installing from tar.gz

Pure binaries:

sudo tar --directory=/opt -xvf <file>.tar.[bz2|gz]
add the directory to your path: export PATH=$PATH:/opt/[package_name]/bin


More:


SSH

Copy files to/from an SSH connection: (SSH format: user@host:/path )

scp <source> <destination>

Recursivly give directories execute privileges: (-type f for files instead)

find /path/to/base/dir -type d -exec chmod +c {} +


GROUPS

Create groups

groupadd <groupName>

Add user to a group

usermod -a -G <group> <user>

List all groups

getent group

List all members of a group

getent group <group>


Open ports with iptables

Don't do that. Use UFW instead.

Allow a connection with UFW:

sudo ufw allow <port/service>

Enable ufw service:

sudo ufw enable


Partitioning and mounting drives

List connected drives (?):

lsblk

It might give you something like:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931.5G  0 disk
├─sda1        8:1    0   200M  0 part
└─sda2        8:2    0 931.3G  0 part /media/massStorage
mmcblk0     179:0    0   7.4G  0 disk
├─mmcblk0p1 179:1    0  41.8M  0 part /boot
└─mmcblk0p2 179:2    0   7.4G  0 part /

Use that info like this: (NB: Not permanent)

mount /dev/sda2 /media/massStorage

To mount partition permanently, first find the UUID by:

ls -la /dev/disk/by-uuid/

Then instert the following into /etc/fstab:

UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff /opt ext4 defaults 0 2


Arduino

Find what 'channel'(?) the Arduino is plugged in at: dmesg | grep tty

Do following commands to "talk" with an Arduino (with a set script):

> python
> import serial
> ser = serial.Serial('/dev/ttyACM0',115200)
> ser.readline()
> ser.write("PP\n")

To set the time of current clock-program, continue with:

> from datetime import datetime
> ser.write("T"+datetime.now().strftime("%y%m%d0%w%H%M%S")+"\n")
> ser.readline()