Linux: Difference between revisions

From Piszczynski
No edit summary
No edit summary
Line 78: Line 78:
== Get Linux Info ==
== Get Linux Info ==
Get current build and Linux OS data:
Get current build and Linux OS data:
<syntaxhighlight lang="bash">cat /etc/os-release</syntaxhighlight>
<syntaxhighlight lang="bash">cat /etc/os-release</syntaxhighlight>Get init system the server uses<syntaxhighlight lang="bash">
ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1
 
 
</syntaxhighlight>


== Remote Desktop Protocol App for linux ==
== Remote Desktop Protocol App for linux ==
Line 191: Line 195:
Restart ssh service:
Restart ssh service:
<syntaxhighlight lang="bash">sudo systemctl restart ssh</syntaxhighlight>
<syntaxhighlight lang="bash">sudo systemctl restart ssh</syntaxhighlight>
== Services ==
Show services:<syntaxhighlight lang="bash">
sudo systemctl status #show all services info
sudo systemctl | grep service #get all services by name
</syntaxhighlight>Set service to start on boot (linux systemd init)<syntaxhighlight lang="bash">
sudo systemctl start <service name>
</syntaxhighlight>

Revision as of 20:07, 1 April 2024

Basic Commands

Useful everyday commands

List directory contents:

ls
in long format -l
list all -a

List block devices (all drives)

lsblk
in list: -l

Get info on system

uname -a

Change file mode bits (file permissions)

chmod <options> <filename>
chmod 777 script.sh (gives read write execute permission to owner, group, world)

Change ownership of file

chown <newowner>:<newgroup> <filename>
chown dave:users notes.txt

Compress file

tar -zxvf <filename>
tat -zxvf something.tar.gz
extract:
    tar -xvf something.tar.gz

Display file contents or join files

cat <filename>
join files:
    cat file1.txt file2.txt
combine files:
    cat file1.txt file2.txt >> file3.txt

Copy

Copy a file:

cp <file> <Destination>

copy multiple files:

cp <file1> <file2> <Destination>

Prevent overwriting: (will overwrite files by default)

cp -n <source> <dest> (can also use -i option to decide for each file)

Copy directory:

cp -r <source> <destination>

Copy contents of directory to another directory:

cp <source>/. <destination>

Sort

Pipe output to sort to sort it or display contents of file sorted:

<command> | sort
sort <options> <filename>

Sort on numerical value:

sort -n

sort in reverse order:

sort -r

Sort by specific column (useful with commands that return data in columns like du)

sort -k <column number>
sort -k 3nr (will sort by the 3rd column in reverse number order)

Sort and remove duplicates

sort -u

Ignore case when sorting

sort -f

sort by human numeric values:

sort -h

Redirect output to another file:

sort > <other file>

zip

Decompress tar.gz files:

tar –xvzf documents.tar.gz

Get Linux Info

Get current build and Linux OS data:

cat /etc/os-release

Get init system the server uses

ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1

Remote Desktop Protocol App for linux

Remmina can be used for RDP connections to windows computers using RDP as well as VNC SSH and others


To user also need to install xrdp and tightvnc:

sudo apt install xrdp xorgxrdp -y
echo env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS cinnamon-session>~/.xsession

Other newer option is xserver-xorg-core


Change or Set IP address

With Newer Ubuntu versions netplan is used as the network management tool.

Get ip address and interfaces with:

ifconfig
ip -c a
ip link

Set the network interface settings on the configuration files located in the netplan directory. Netplan will parse all the files in this directory:

sudo nano /etc/netplan/<name of config file eg 00-installer-config.yaml>

Example of the .yaml file:

network:
  ethernets:
    ens160:
      dhcp4: no
      addresses:
        - 192.168.50.15/24
      gateway4: 192.168.50.1
      nameservers:
        addresses: [192.168.50.3, 1.1.1.1]
  version: 2

Apply the changes using netplan apply:

sudo netplan apply

The use of gateway4: option to set the default gateway has ben depreciated so you need to set a default route with the following option now:

routes:
  - to: default
    via: 192.168.50.1

Swap File

Check size of swap file:

swapon -s

increase swap file to 8GB:

sudo swapoff -a #turn off swap file
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 #set size of blocks for swap file and create
sudo chmod 0600 /swapfile #Assign it read/write permissions for root only
sudo mkswap /swapfile #Format the file as swap
sudo swapon -a #enable swap file - will also be activated on next reboot without this command


Alternate commands to make 8GB swap file

sudo swapoff /swapfile
sudo rm  /swapfile
sudo fallocate -l 8G /swapfile

App Image

Apps can be downloaded as an appimage which is the application with everythign it needs to run in one file.

You will need to make the appimage executable to be able to run it:

chmod u+x <appimage file>

SSH

Enable SSH

Install openssh server:

sudo apt-get install openssh-server

login.

Enable login using ssh Keys

Generate keys: Be careful if you have already generated a key as this will overwrite the current key

ssh-keygen

This gets stored in ~/.ssh

Copy key to server (must have ssh via password enabled)

ssh-copy-id name@server

This gets sored on remote server in ~/.ssh/authorized_keys file. you can append keys to this fille to add more logins:

cat ~/.ssh/id_rsa.pub | ssh name@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Copy over manually:


Check public key

cat ~/.ssh/id_rsa.pub

Make dir:

mkdir -p ~/.ssh

copy key over:

echo <public_key_string> >> ~/.ssh/authorized_keys

Disable Password Authentication

Edit config file:

sudo nano /etc/ssh/sshd_config

Change:

PasswordAuthentication no

Restart ssh service:

sudo systemctl restart ssh

Services

Show services:

sudo systemctl status #show all services info
sudo systemctl | grep service #get all services by name

Set service to start on boot (linux systemd init)

sudo systemctl start <service name>