cheats/linux.md

140 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2020-02-13 20:20:26 +01:00
# Linux Cheats
2020-03-23 11:14:49 +01:00
## General (tested in Debian)
2020-04-17 00:35:35 +02:00
Create directory recursivly: `mkdir -p these/folders/doesnt/exist`
> -p for "parent"
<br>
2020-04-17 00:35:35 +02:00
List directory sorted by file-size: `ls -lhS /path`
> -S sorts them. -lh gives a list with "human-readable" file-sizes.
2020-04-17 00:35:35 +02:00
<br>
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`
<br>
2020-03-23 11:14:49 +01:00
2021-03-05 09:50:52 +01:00
Find the total size of a folder: `du -hs /foldername`
<br>
2020-03-23 11:14:49 +01:00
### Set script as startup
2020-02-18 18:19:28 +01:00
If, for some reason, apache isn't startup:
> `sudo update-rc.d apache2 defaults`
2020-03-23 11:14:49 +01:00
### Check a package version/info
2020-03-16 14:46:04 +01:00
> `dpkg -l matrix-synapse`
2020-04-05 15:58:22 +02:00
### See logs for services:
> `sudo journalctl -e -u matrix-synapse`
> (`-f` instead of `-e` to keep it running)
2020-03-23 11:14:49 +01:00
<br>
2020-02-18 18:19:28 +01:00
2020-04-02 13:38:13 +02:00
### 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`
<br>
2020-04-02 21:05:39 +02:00
#### More:
+ [Creating custom services](https://wiki.debian.org/systemd/Services)
<br>
2020-02-13 20:20:26 +01:00
## 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 {} +`
2020-03-23 11:14:49 +01:00
<br>
2020-02-13 20:20:26 +01:00
## GROUPS
Create groups
> `groupadd <groupName>`
Add user to a group
> `usermod -a -G <group> <user>`
2020-02-18 18:19:28 +01:00
2020-04-22 11:23:32 +02:00
List all groups
> `getent group`
List all members of a group
> `getent group <group>`
<br>
2020-03-23 11:14:49 +01:00
### Open ports with iptables
2020-02-18 18:19:28 +01:00
Don't do that. Use [UFW](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-debian-10) instead.
Allow a connection with UFW:
> `sudo ufw allow <port/service>`
Enable ufw service:
> `sudo ufw enable`
2020-03-23 11:14:49 +01:00
+ [Source](https://www.linuxquestions.org/questions/linux-security-4/how-to-open-ports-with-iptables-237939/)
+ [Source2](https://www.digitalocean.com/community/tutorials/iptables-essentials-common-firewall-rules-and-commands)
2020-02-18 18:19:28 +01:00
2020-03-23 11:14:49 +01:00
<br>
2020-02-18 18:19:28 +01:00
2020-06-02 09:50:32 +02:00
### Partitioning and mounting drives
List connected drives (?):
> `lsblk`
It might give you something like:
```bash
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`
2020-03-10 17:06:27 +01:00
2020-03-23 11:14:49 +01:00
<br>
## Arduino
Find what 'channel'(?) the Arduino is plugged in at:
`dmesg | grep tty`
2020-06-02 09:50:32 +02:00
Do following commands to "talk" with an Arduino (with a set script):
```python
> python
> import serial
> ser = serial.Serial('/dev/ttyACM0',115200)
> ser.readline()
> ser.write("PP\n")
```
2020-03-23 11:14:49 +01:00
To set the time of current clock-program, continue with:
2020-06-02 09:50:32 +02:00
```python
> from datetime import datetime
> ser.write("T"+datetime.now().strftime("%y%m%d0%w%H%M%S")+"\n")
> ser.readline()
```