DEBIAN A short summary of building a personal Linux environment.Published with SteemPeak
Screenshot by Willi Glenz
UPDATES
044 raspberry pi v3 19 -06 update
SUMMARY
DEBIAN ~ THE UNIVERSAL OPERATING SYSTEM
017 DEBIAN v2 19 -05
097 releases v1 19 -05
092 faq v1 19 -05
086 reference - handbook v1 19 -05
081 administrator - handbook v1 19 -05
091 installation v1 19 -05
004 system - update v2 19 -05
036 i3wm v2 19 -05
095 dwm v1 19 -05
093 stretch to buster v1 19 -05
015 shortcuts v1 19 -05
052 systemv v1 19 -05
080 systemd v2 19 -05
042 at v1 19 -05
028 cron v1 19 -05
031 swap space v1 19 -05
007 ramdisk v2 19 -05
045 languages v1 19 -05
047 users v1 19 -05
049 backup v2 19 -05
079 hard disk v1 19 -05
044 raspberry pi v3 19 -06 update
082 dhcp - server v1 19 -05
084 http - server - apache2 v2 19 -05
005 / etc / apt / sources . list v2 19 -05
009 / etc / fstab v1 19 -05
041 sources v2 19 -05
SYSTEM - INFORMATION
096 host v2 19 -05
023 └ memory v1 19 -05
006 └ disk v3 19 -05
098 └ arp - cache v1 19 -05
032 lan v3 19 -05
029 wan v1 19 -05
BASH ~ BOURNE - AGAIN - SHELL
026 BASH v3 19 -05
012 ~ / . bashrc v1 19 -05
094 bash - guide - for - beginners v1 19 -05
085 bash - scripting - guide v1 19 -05
008 aliases v2 19 -05
022 one - liner & cowsay v3 19 -05
038 job - control v1 19 -05
055 bash - to - fish | zsh v3 19 -05
043 fish v2 19 -05
090 zsh v1 19 -05
VIM ~ A PROGRAMMER ’ S EDITOR
020 VIM v4 19 -05
034 ~ / . vimrc v5 19 -05
037 first - steps v4 19 -05
053 vim - compressed v7 19 -05
101 movement v1 19 -05
072 buffers v1 19 -05
070 windows v2 19 -05
075 tabs v3 19 -05
077 marks v1 19 -05
078 folds v1 19 -05
099 ex - commands v1 19 -05
083 macros v1 19 -05
001 vim - mode in bash v3 19 -05 update
067 vim - mode in fish v1 19 -05
040 github repository v1 19 -05
027 ranger v2 19 -05
074 tutorials v1 19 -05
073 sources v1 19 -05
TOOLBOX
013 TOOLBOX V2 19 -05
024 awk v2 19 -05
016 screen v1 19 -05
063 inxi v1 19 -05
033 snap v1 19 -05
018 glances v1 19 -05
039 task & timewarrior v1 19 -05
050 gpg v3 19 -05
014 linux - from - scratch ( lfs ) v2 19 -05
046 youtube - dl v3 19 -05
057 R v1 19 -05
021 neofetch v1 19 -05
011 fuzzi finder v1 19 -05
010 cryptocurrencies v1 19 -05
003 dconf - editor v1 19 -05
002 gnome - tweak - tool v1 19 -05
054 firefox v2 19 -05
076 javascript v1 19 -05
048 c v2 19 -05
066 perl v1 19 -05
061 git v1 19 -05
JAVA - PLATFORM
060 JAVA v1 19 -05
059 primitive - data - types v1 19 -05
065 operators v1 19 -05
035 modifier v1 19 -05
069 cli v1 19 -05
056 basic - cli - snippet v2 19 -05
062 basic - gui - snippet v1 19 -05
064 jar - file v2 19 -05
068 intellij - idea v5 19 -05
030 eclipse v1 19 -05
058 netbeans v1 19 -05
071 scanner v1 19 -05
025 tutorials v4 19 -05
PYTHON
019 PYTHON v4 19 -05
088 installation v2 19 -05
087 tutorials v1 19 -05
WEB - STACK
051 HTML v2 19 -05
089 selfhtml ( de ) v1 19 -05
100 sources v1 19 -05
#104
101 • VIM ~ MOVEMENT
h j k l . . . . . . . . . . . . . . . . . . . character . . . . . . . . . . left , down , up , right
b ge w e . . . . . . . . . . . . . . . . . . word . . . . . . . . . . . . . . . . . . . . . . . . . back , right
0 ^ gm $ . . . . . . . . . . . . . . . . . . sentence . . . . . . . . . . . . . . start , middle , end
( ) . . . . . . . . . . . . . . . . . . . . . . . sentence . . . . . . . . . . . . . . . . . . next , previous
{ } . . . . . . . . . . . . . . . . . . . . . . . paragraph . . . . . . . . . . . . . . . . . next , previous
H M L . . . . . . . . . . . . . . . . . . . . . window . . . . . . . . . . . . . . . . . high , middle , low
gg G . . . . . . . . . . . . . . . . . . . . . . document . . . . . . . . . . . . . . . . first , last line
% . . . . . . . . . . . . . . . . . . . . . . . . . brace , bracket , comment . . . . . . . . . . . . . next
100 • HTML ~ SOURCES
Netzmafia ( de ) : netzmafia . de / skripten / easyhtml / index . html
Tutorialspoint : tutorialspoint . com / html /
W3Schools : w3schools . com / html /
099 • VIM ~ EX - COMMANDS
: s / abc / xyz /
: s / abc / xyz / gc
: % s / ^ /# /
: % s / $ / ; /
098 • ARP - CACHE
# arp-scan --localnet
# arp-scan --localnet | awk '/192\.168\.0/ {print $0}' | tee hosts.txt
# arp-scan --localnet | awk '/192\.168\.0/ {print $1}' | xargs nmap
097 • DEBIAN RELEASES
STABLE STRETCH VERSION 9.9
• the latest released distribution
• production
• security updates
• debian . org / releases / stretch /
TESTING BUSTER
• more recent software versions
• admins
• no security updates
• debian . org / releases / buster /
UNSTABLE SID
• active development
• devs
• wild wild west
• debian . org / releases / sid /
Source : debian . org / releases /
096 • HOST
• IP - Address $ hostname - i
• Runtime and load $ watch uptime
• Last reboot history $ last reboot
• System information I # inxi -v7
• System information II # inxi -v7 -c0 | tee system.txt
• Hostname I $ hostname ; hostname - f ; hostname - d
• Hostname II $ cat / etc / hostname ; hostnamectl ; uname - - nodename
• Hostname III $ cat / proc / sys / kernel / hostname
• Hostname IV # hostname mars
• Prelogin message $ cat / etc / issue
• Shell $ echo $0
• Operating system $ cat / etc / os - release ; lsb_release - a ; uname - - operating - system
• Debian version $ cat / etc / debian_version
• Debian Upgradeable packets $ apt - show - versions - u > upgradeableVersions . txt ; vim upgradeableVersions . txt
• Kernel $ uname - a
• Kernel name $ uname - - kernel - name
• Kernel release $ uname - - kernel - release
• Kernel version $ uname - - kernel - version
• Kernel ring buffer I # dmesg | less
• Kernel ring buffer II # dmesg | tail -n 25
• Rootkit scanner # chkrootkit
• System log I # logwatch | less
• System log II # tail -f /var/log/syslog
• Systemd journal # journalctl
• CPU Model $ cat / proc / cpuinfo
• Memory $ watch free - h
• Physical Memory $ grep MemTotal / proc / meminfo
• MEM Info $ cat / proc / meminfo
• Processes I $ ps auxw | sort | less
• Processes II $ atop
• Processes III $ htop
• Processes IV $ top
• Processes V $ glances
• Disk I # lshw -short -class disk
• File System Hierarchy ( FHS ) $ man hier
• Disk II $ df - hT
• Disk III # e4defrag /home -c
• Disk IV # du -hs /home/userxyz
• Disk V # du -h --max-depth=1 /home/userxyz | sort -n
• Disk VI # du -h --max-depth=1 / 2>/dev/null | sort -n
• Volumes # lshw -short -class volume
• USB # usbview; lsusb
• Documentation $ man - k . | less
# clear; echo; netstat -i; echo; netstat -r
# clear; netstat -tupanc
# ifconfig
# ifconfig -a | grep -Po '\b(?!255)(?:\d{1,3}\.){3}(?!255)\d{1,3}\b' | xargs nmap -A -p0-
# ifconfig eth0 down | up
# iw dev wlan0 scan | egrep "SSID|signal" | awk -F ":" '{print $2}' | sed 'N;s/\n/:/' | sort
# netstat -tulpn
$ dnsdomainname
$ domainname
$ inxi - i
$ ip address show
$ ip neigh show
$ netstat - a | less
$ netstat - ie
$ nmap - - iflist
$ speedometer - r enp1s0f2
$ speedtest
$ sshfs name @ server : /path/ to / folder / path / to / mount / point
CONFIGURATION
/etc/ hosts
/etc/ hostname
/etc/ resolv . conf
/etc/ network / interfaces
/etc/ init . d / networking
/etc/ NetworkManager / system - connections /
/etc/ ssh / ssh_config
# macchanger -r eth0
# nm-connection-editor
# hostname mars; cat /proc/sys/kernel/hostname
095 • DWM
# apt install dwm
< shift - alt - enter > terminal
< shift - alt - c > kill a window
< shift - alt - q > quit dwm
< alt - j > next window
< alt - k > previous window
< alt - t > tiled layout mode
< alt - f > floating layout mode
< alt - m > monocle layout
$ man dwm
• dwm . suckless . org
094 • BASH ~ BASH - GUIDE - FOR - BEGINNERS
ldp . org / LDP / Bash - Beginners - Guide / html / index . html
093 • DEBIAN ~ UPGRADE STRETCH TO BUSTER
$ hostnamectl
# apt update
# apt upgrade
# apt dist-upgrade
# cp /etc/apt/sources.list /etc/apt/sources.list.backup1
# sed -i.backup2 's/stretch/buster/g' /etc/apt/sources.list
# apt update
# apt upgrade
# apt dist-upgrade
$ hostnamectl
092 • DEBIAN ~ FAQ
# apt-get install debian-faq
$ dpkg - L debian - faq | grep - i index
> /usr/ share / doc / debian / FAQ / index . en . html
> file : ///usr/share/doc/debian/FAQ/index.en.html
FAQ : debian . org / doc / manuals / debian - faq /
091 • DEBIAN ~ INSTALLATION
• Installation Guide : debian . org / releases / stable / amd64 /
• Release Notes : debian . org / releases / stable / amd64 / release - notes /
090 • ZSH
$ apt install zsh
OH - MY - ZSH
• github . com / robbyrussell / oh - my - zsh
$ sh - c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
$ uninstall_oh_my_zsh
• MAN - Pages : $ man zsh
• FAQ : zsh . sourceforge . net / FAQ /
089 • HTML - SELFHTML ( DE )
# apt install selfhtml
# apt show selfhtml
$ dpkg - L selfhtml | less
> file : //usr/share/doc/selfhtml/html/index.htm
088 • PYTHON ~ INSTALLATION
# snap install pycharm-community --classic
# apt-get install python3 idle3 spyder3 python-pip diveintopython3
$ which python ; python - V
$ which python3 ; python3 - V
$ python3
$ python - m SimpleHTTPServer
INSTALLATION v3 .7 .3
$ mkdir ~ /tmp; cd ~/ tmp ;
$ wget https : //www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
$ xz - - uncompress Python -3.7 .3 . tar . xz
$ tar - xf Python -3.7 .3 . tar
$ rm Python -3.7 .3 . tar
$ cd Python -3.7 .3 /
$ view README . rst
$ . / configure
$ make
$ make test
# make install
$ rm - r ~ / tmp ; ls - lisa ~
UPDATE - ALTERNATIVE
$ python < tab > < tab >
$ python - - version
# update-alternatives --list python
# update-alternatives --install /usr/local/bin/python3 python /usr/bin/python3.7 1
# update-alternatives --config python
# update-alternatives --list python
$ python - - version
# update-alternatives --remove python /usr/bin/python2.7
• Download : python . org / downloads /
• Documentation : docs . python . org / 3.7 /
087 • PYTHON - TUTORIALS
• Python from Scratch : open . cs . uwaterloo . ca / python - from - scratch /
• Tutorial : docs . python . org / 3 / tutorial / index . html
• Dive Into Python 3 : file : ///usr/share/doc/diveintopython3/html/index.html
• Tutorial : file : ///usr/share/doc/python3.5/html/tutorial/index.html
086 • DEBIAN - REFERENCE - HANDBOOK
# apt-get install debian-reference
$ dpkg - L debian - reference
$ ls - l / usr / share / doc / debian - reference / docs / | grep - i index
> /usr/ share / doc / debian - reference / docs / index . en . html
> file : ///usr/share/doc/debian-reference/docs/index.en.html
debian . org / doc / manuals / debian - reference /
085 • BASH - SCRIPTING - GUIDE
# apt search abs-guide
# apt show abs-guide
# apt install abs-guide
$ dpkg - L abs - guide
> file : ///usr/share/doc/abs-guide/html/index.html
tldp . org / LDP / abs / html /
084 • APACHE - HTTP - SERVER
# apt search apache2
# apt show apache2
# apt install apache2 apache2-doc
$ ip a
$ w3m localhost | - - - . - - - . - - - . - - -
$ / var /www/ html / index . html
$ systemctl status apache2 . service
$ ps aux | grep - i apache
# netstat -tulpn
# tail -f /var/log/apache2/access.log
# tail -f /var/log/apache2/error.log
$ dpkg - L apache2 - doc | less
> file : ///usr/share/doc/apache2-doc/manual/en/mod/index.html
083 • VIM ~ MACROS
[ qa q @ a ] start stop run
[ : reg ] register
[ : put a ] edit a
[ 0 "ay$ ] update a
:map a=strftime(" % c ")
:map ggVG" + y
: map < F2 > : set list !
082 • DHCP - SERVER
INSTALLATION
$ apt - cache show isc - dhcp - server
# apt-get install isc-dhcp-server
# man dhcpd
# man dhcpd.conf
CONFIGURATION
# ifconfig; ip a
# service isc-dhcp-server start | stop | restart
# systemctl start isc-dhcp-server
# systemctl enable isc-dhcp-server
# ufw allow 67/udp
# ufw reload
# vim /etc/dhcp/dhcpd.conf
> option broadcast - address 192.168 .0 .255 ;
> option domain - name "linux.local" ;
> default - lease - time 3600 ;
> max - lease - time 7200 ;
> authoritative ;
>
> subnet 192.168 .0 .0 netmask 255.255 .255 .0 {
> option routers 192.168 .0 .1 ;
> option subnet - mask 255.255 .255 .0 ;
> option domain - search "linux.local" ;
> option domain - name - servers 8.8 .8 .8 , 8.8 .4 .4 ;
> range 192.168 .0 .10 192.168 .0 .100 ;
> range 192.168 .0 .150 192.168 .0 .200 ;
> }
SOURCES
• isc . org / downloads / dhcp /
• help . ubuntu . com / community / isc - dhcp - server
• tools . ietf . org / html / rfc1531
• en . wikipedia . org / wiki / Dynamic_Host_Configuration_Protocol
081 • DEBIAN ~ ADMINISTRATOR - HANDBOOK
# apt-get install debian-handbook
$ dpkg - L debian - handbook | grep - i index
> /usr/ share / doc / debian - handbook / html / en - US / index . html
$ firefox file : ///usr/share/doc/debian-handbook/html/en-US/index.html
080 • SYSTEMD
$ systemctl
$ systemctl list - units | grep . service
$ systemctl list - unit - files
$ systemctl is - enabled ufw . service
$ systemctl status apache2 . service
$ systemctl status ssh . service
# systemctl enable|disable apache2.service
# systemctl start|stop|restart apache2.service
# journalctl
# journalctl -b
# journalctl -b -p err
# journalctl -b -u NetworkManager
# journalctl -b -u NetworkManager --since='yesterday'
# journalctl -b -u NetworkManager --since='yesterday' -p err
/etc/ systemd /
/etc/ systemd / system /
079 • HARD DISK
$ lsblk
# blkid /dev/sda1
# badblocks -v /dev/sdb
# tune2fs -l /dev/sdb
# tune2fs -m 0 /dev/sdb
$ cat / sys / devices / virtual /thermal/ thermal_zone0 / temp
# fdisk -l
# hwinfo --short | less
# hwinfo --disk
# lshw -short | less
$ mount | column - t
# mount -t tmpfs -o size=2048M tmpfs /media/ramdisk
# mount -o loop /home/user/iso/xyz.iso /mnt/
# smartctl -i /dev/sda
$ sync
078 • VIM ~ FOLDS
$vim ~ / . vimrc
[ autocmd BufWinLeave * . * mkview ]
[ autocmd BufWinEnter * . * silent loadview ]
: wq
[ zf ] create
[ zo zn ] [ : % foldopen ] open none
[ zc zm ] [ : % foldclose ] close more
[ zd ] delete
[ : mkview : loadview ] save load
[ : set foldmethod : set fdm ] foldmethod
077 • VIM ~ MARKS
[ ma 'a `a ] set mark
[ :marks :marks ABC ] list marks
[ mA mB ' A ' B ] different files
[ : delmarks A - Z a , b , c : delmarks ! ] delete marks
076 • JAVASCRIPT
TUTORIALS
• JavaScriptInfo : javascript . info
• W3Schools : w3schools . com / Js /
• TutorialsPoint : tutorialspoint . com / javascript /
075 • VIM ~ TABS
[ : tabnew ] tab new
[ : tabe dummy . txt ] tab edit
[ : tab split ] tab split
[ : tabn : tabn2 : tabp ] [ gt 3 gt gT ] tab next previous
[ : tabmove 0 ] tab move
[ : tab ba ] tab buffer all
[ : tabonly ] tab only
[ : tabm : tabm 0 ] tab move
[ : tabclose : q ] tab close quit
074 • VIM ~ TUTORIALS
• TutorialsPoint : tutorialspoint . com / vim / index . htm
• Bram Moolenaar : moolenaar . net / habits . html
• Ben McCormick I : benmccormick . org / 2014 / 06 / 30 / learning - vim - in -2014 - the - basics
• Ben McCormick II : benmccormick . org / 2014 / 07 / 02 / learning - vim - in -2014 - vim - as - language
073 • VIM ~ SOURCES
[ $ man vim ]
[ : help : h : resize ]
[ : h user - manual : resize ]
[ file : ///usr/share/doc/vim-doc/html/index.html ]
• Documentation I - vimhelp . org
• Documentation II - vimhelp . org / usr_toc . txt . html
• FAQ - vimhelp . org / vim_faq . txt . html
• Wiki - vim . wikia . com / wiki / Vim_Tips_Wiki
072 • VIM ~ BUFFERS
[ : buffer : ls ] buffers list
[ : bp : b # :bn :b1 ] buffer previous next 1
[ : set hidden | nohidden : bp ! : bn ! ] buffer hidden
[ : bd ] buffer delete
[ : mks : mks ! ] save session
071 • JAVA ~ SCANNER
import java . util . Scanner ;
Scanner scanner = new Scanner ( System . in ) ;
System . out . print ( "Input: " ) ;
String msg = scanner . nextLine ( ) ;
scanner . close ( ) ;
file : ///usr/share/doc/openjdk-11-jre-headless/api/java.base/java/util/Scanner.html
070 • VIM ~ WINDOWS
split [ ^ ws ^ wv ] [ : sp : vs : vs | b2 ]
resize [ ^ w = ^ w_ ^ w20 < ^ w | ] [ : res : vertical res 120 ]
rotate [ ^ wr ^ wR ^ wx ]
new [ ^ wn ]
close [ ^ wc ^ wq ] [ : q : close ]
docu [ ] [ : h ^ w ]
move [ ^ whjkl ^ wt ^ wb ^ wp ^ ww ^ wx ]
buffer [ ^ wo ] [ : ls : ba : vert ba : vert 2 ba : vs | b2 ]
session [ : mks session $ vim - S session ]
vimrc [ : set splitright laststatus = 2 ]
069 • JAVA ~ CLI
# apt-get install default-jdk default-jdk-doc
# apt-get install openjdk-11-jdk openjdk-11-doc
$ java - version ; javac - version
# update-java-alternatives -l
# update-java-alternatives -s java-1.11.0-openjdk-amd64
# update-alternatives --display java
# update-alternatives --config java
$ mkdir - p ~ /Projects/ Phoenix / source / { tools , docu , de / wglenz / phoenix } ;
$ cd ~ /Projects/ source ; tree
$ vim - O de / wglenz / phoenix / Main . java de / wglenz / phoenix / Class2 . java
$ vim , ^ wt ^ wl : terminal ^ wr htop ^ wt ^ w =
068 • INTELLIJ IDEA
Step 1 : Running IntelliJ for the first time : youtu . be / c0efB_CKOYo
Step 2 : Importing an Eclipse project : youtu . be / eRmX3Msivoo
Step 3 : Code Generation and Completition : youtu . be / sx7_SS8y - _o
KEYMAP
< shift - F10 > run
< ctrl - alt - l > reformat code
INSTALLATION
# snap refresh
# snap install intellij-idea-community --classic
TUTORIALS
• JetBrains : jetbrains . com / idea / documentation /
• TutorialsPoint : tutorialspoint . com / intellij_idea / index . htm
Homepage : jetbrains . com / idea /
Download : jetbrains . com / idea / download / #section=linux
Documentation : jetbrains . com / idea / documentation /
067 • VIM - MODE IN FISH
~ > vim . config / fish / config . fish
#fish_default_key_bindings
fish_vi_key_bindings
: wq
~ > < ctrl - d >
066 • PERL
# apt-get install perl-doc
$ perldoc perlintro
$ perl - v
$ vim ~ /scripts/ file . pl
#!/usr/bin/perl
use strict ;
use warnings ;
: w
TUTORIALS
• Learning : perl . org / learn . html
• TutorialsPoint : tutorialspoint . com / perl /
• Beginning Perl : learn . perl . org / books / beginning - perl
Homepage : perl . org
Documentation : perl . org / docs . html
CPAN : cpan . org
065 • JAVA OPERATORS
Arithmetic + - * / & + + - -
Relational = = ! = > < > = < =
Bitwise & | ^ ~ < < > > > > >
Logical & & | | !
Assignment = + = - = * = / = % = < < = > > = & = ^ = | =
Miscellaneous ? : instanceof
064 • JAR - FILE
PROJECT - FOLDER
$ cd ~ ; clear ; lsd - l
$ mkdir - p ~ /projects/ phoenix / source / de / wglenz / phoenix
$ clear ; lsd - l
$ tree ~ / projects
SOURCE - CODE
$ cd ~ /projects/ phoenix / source /
$ tree
$ vim de / wglenz / phoenix / Main . java
> package de . wglenz . phoenix ;
> public class Main { . . . }
: wq
$ tree . .
BYTE - CODE
$ cd ~ /projects/ phoenix / source /
$ javac - d . . /classes de/ wglenz / phoenix / * . java
$ tree . .
MANIFEST - FILE
$ cd ~ /projects/ phoenix / classes /
$ tree . .
$ vim manifest . txt
> Main - Class : de . wglenz . phoenix . Main
: wg
$ tree . .
JAR - FILE
$ cd ~ /projects/ phoenix / classes /
$ tree . .
$ jar - cvmf manifest . txt phoenix . jar de
$ jar - tf phoenix . jar
$ tree . .
$ tree ~ /projects/
RUN - APPLICATION
$ tree ~ /projects/
$ cd ~ /projects/ phoenix / classes /
$ java - jar phoenix . jar
063 • INXI
$ vim ~ /scripts/ check
1 #!/bin/bash
2 # check [host cpu disk network]
3 # Wrapper for inxi, nmap and ip
4 #
5
6 clear
7
8 while [ - n "$1" ]
9 do
10 case "$1" in
11 "host" )
12 echo
13 inxi - v7
14 echo
15 ; ;
16 "cpu" )
17 echo
18 inxi - f
19 echo
20 ; ;
21 "disk" )
22 echo
23 inxi - Dp
24 echo
25 ; ;
26 "network" )
27 echo
28 inxi - i
29 nmap - - iflist
30 ip neigh
31 echo
32 ; ;
33 esac
34 shift
35 done
36
37 exit
: wq
062 • JAVA BASIC - GUI - SNIPPET
package de . wglenz . java ;
import java . awt . BorderLayout ;
import java . awt . event . ActionEvent ;
import java . awt . event . ActionListener ;
import javax . swing . JButton ;
import javax . swing . JFrame ;
import javax . swing . JLabel ;
import javax . swing . JPanel ;
public class Main {
JFrame frame ;
JPanel panelWest ;
JPanel panelCenter ;
JLabel label ;
JButton buttonWest ;
JButton buttonSouth ;
JButton buttonEast ;
public Main ( ) {
super ( ) ;
panelWest = new JPanel ( ) ;
panelCenter = new JPanel ( ) ;
label = new JLabel ( "LabelCenter" ) ;
buttonWest = new JButton ( "ButtonWest" ) ;
buttonWest . addActionListener ( new Listener1 ( ) ) ;
buttonSouth = new JButton ( "ButtonSouth" ) ;
buttonSouth . addActionListener ( new Listener2 ( ) ) ;
buttonEast = new JButton ( "ButtonEast" ) ;
buttonEast . addActionListener ( new Listener3 ( ) ) ;
frame = new JFrame ( "Phoenix v 0.003" ) ;
frame . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE ) ;
frame . getContentPane ( ) . add ( BorderLayout . CENTER , panelCenter ) ;
frame . getContentPane ( ) . add ( BorderLayout . WEST , panelWest ) ;
frame . getContentPane ( ) . add ( BorderLayout . SOUTH , buttonSouth ) ;
frame . getContentPane ( ) . add ( BorderLayout . EAST , buttonEast ) ;
frame . setSize ( 1200 , 600 ) ;
frame . setVisible ( true ) ;
panelCenter . add ( label ) ;
panelWest . add ( buttonWest ) ;
}
public static void main ( String . . . args ) {
Main phoenix = new Main ( ) ;
phoenix . run ( ) ;
}
class Listener1 implements ActionListener {
public void actionPerformed ( ActionEvent e ) {
label . setText ( "ButtonWest: OK" ) ;
}
}
class Listener2 implements ActionListener {
public void actionPerformed ( ActionEvent e ) {
label . setText ( "ButtonSouth: OK" ) ;
}
}
class Listener3 implements ActionListener {
public void actionPerformed ( ActionEvent e ) {
label . setText ( "ButtonEast: OK" ) ;
}
}
public void run ( ) {
//
}
}
061 • GIT
• Videos : git - scm . com / videos
• Git - Book : git - scm . com / book / en / v2
# apt install git
Homepage : git - scm . com
Reference : git - scm . com / docs
060 • JAVA API
$ apt - cache show openjdk -11 - jdk
# apt install openjdk-11-doc
$ firefox file : ///usr/share/doc/openjdk-11-jre-headless/api/index.html
059 • JAVA PRIMITIVE - DATA - TYPES
PRIMITIVE DATA TYPES
TYPE SIZE RANGE DEFAULT CLASS & FIELD
byte 8 bit -2 ^ 7 to 2 ^ 7 -1 0
short 16 bit -2 ^ 15 to 2 ^ 15 -1 0
int 32 - bit -2 ^ 31 to 2 ^ 31 -1 0 Integer . MIN_VALUE to Integer . MAX_VALUE
long 64 bit -2 ^ 63 to 2 ^ 63 -1 0 L
float 32 bit -3.4E38 to 3.4E38 0 f
double 64 bit -1.7E308 to 1.7E308 0 d
char 16 bit '\u0000' to '\uffff' '\u0000'
( 0 to 65 , 565 )
boolean 1 bit false
WRAPPER CLASSES
public Short ( short | String value | s )
public Integer ( int | String value | s )
public Long ( long | String value | s )
public Float ( float | double | String value | value | s )
public Double ( double | String value | s )
public Character ( char value )
public Boolean ( boolean | String value | s )
058 • NETBEANS
• Homepage : netbeans . apache . org
• Documentation : docs . oracle . com / cd / E50453_01 / doc .80 / e50452 . pdf
• Shortcuts : netbeans . org / project_downloads / usersguide / shortcuts -80 . pdf
# snap install netbeans
alt + insert : Generate code
alt + shift + f : Format selection
ctrl + x : Delete line
ctrl + e : Delete line
shift + ctrl + minus | plus : Collaps | Expand all
057 • R
• Homepage : r - project . org
• CRAN : cloud . r - project . org / index . html
• Journal : journal . r - project . org
• Manual : cran . r - project . org / manuals . html
$ R
> help . start ( )
TUTORIALS
• Introduction to R Programming : youtu . be / 92 zCRV3eQxw
• An Introduction to R : cran . r - project . org / doc / manuals / r - release / R - intro . pdf
056 • JAVA BASIC - CLI - SNIPPET
package de . wglenz . phoenix ;
import java . util . Scanner ;
public class Main {
private String msg ;
private Scanner scanner ;
public Main ( ) {
super ( ) ;
msg = "Hello World!" ;
scanner = new Scanner ( System . in ) ;
}
public static void main ( String [ ] args ) {
Main phoenix = new Main ( ) ;
phoenix . run ( ) ;
}
public void run ( ) {
System . out . print ( "Input: " ) ;
msg = scanner . nextLine ( ) ;
System . out . println ( msg ) ;
scanner . close ;
}
}
055 • BASH - TO - FISH | ZSH
$ grep - i user / etc / passwd
$ echo $SHELL
$ cat / etc / shells
# apt install fish zsh
$ cat / etc / shells
• Option 1 : # vim /etc/passwd
• Option 2 : $ chsh - s / usr / bin / fish
• Option 3 : # usermod -s /bin/bash user
$ chsh - s / usr / bin / fish
$ chsh - s / bin / fish
$ cat / etc / passwd | cut - d : - f7 | sort | uniq - c | sort - nr
054 • FIREFOX
send . firefox . com
about : blank
about : cache
about : config
about : crashes
about : downloads
about : memory
about : performance
about : plugins
about : profiles
about : serviceworkers
about : support
053 • VIM - COMPRESSED
[ : ab : abc : unab ^ v ] abbreviate
[ a A i I o O s S C ~ ] append insert substitute
[ $ vim - u NONE - N ] baseline
[ : ls : buffers : badd : b1 : b2 : bn : bp : bf : bl ] buffer
[ r x ~ ] character replace delete change
[ ci ( ci { ci < ci " ] change inner ...
[ v j " + y ] clipboard
[ < esc > gg v G "+ y ] copy
[ dd D x d$ dip diw daw dit di" das ] delete
[ $ vim - O ~ /.vimrc ~/ . bashrc ^ ww ^ wr ^ wc ^ wq ] edit
[ ~ : e : edit $ ^ xe ] edit
[ zf5j zo zc zd ] folding
[ : ve ^ g g ^ g ] information
[ qa : reg a @ a ] macros
[ m1 '1 `1 marks ] mark
[ [InsertMode] ^n ] match
[ hjkl gj gk gg G HML ] move cursor
[ 1% 50% 100% zz zb zt z ] move cursor
[ :set nu|nonu :set rnu|nornu ] numbers
[ . ] repeat
[ / f * # q/ q? q: :%s/one/two/g ] search
[ /\cabc /\Cabc /\ :nohl ] search
[ :set incsearch noincsearch :set hls nhls ] search
[ $ vimtutor en ] tutorial
[ u U ^r ] undo redo
[ ^wv ^ws ^wq ^ww ^wr ^wc ] windows
[ gg G ^g 50% ^e ^y ^n ^u ^d ^f ^b ] windows
[ :set ruler noruler ] windows
[ :set linebreak nolinebreak ] windows
[ :call matchadd(' colorColumn ', ' \ % 81 v ' , 100 ) ] windows
[ : q : q ! : qa : qa ! : wq : wqa : exit ZZ ZQ ] exit
052 • SYSTEMV
# tasksel
# tasksel --list-tasks
# service --status-all | less
# service --status-all | awk '/[+]/ { print $4 }' | tee /tmp/active.txt
# service network-manager restart
# service ssh status
# service cron status
# service apache2 start | restart | stop
# apt-get install printer-driver-cups
# ufw status
051 • HTML
BASE - DOCUMENT
< ! DOCTYPE html >
< html lang = "en-US" >
< head >
< meta charset = "utf-8" >
< title > Homepage < / title >
< / head >
< body >
< h1 > Heading 1 < / h1 >
< h2 > Heading 2 < / h2 >
< p > This is the first paragraph < / p >
< p > This is the second paragraph < / p >
< center > < b > text < /b></ center >
< a href = "url" > text < / a >
< / body >
< / html >
EDITOR
$ apt install bluefish
SOURCES
• w3schools . com / html / default . asp
• tutorialspoint . com / html / index . htm
• open . cs . uwaterloo . ca / web - basics
050 • GPG - GnomePrivacyGuard
• Homepage : gnupg . org
• Documentation : gnupg . org / documentation / manuals / gnupg . pdf
• HowTo : dewinter . com / gnupg_howto / english / GPGMiniHowto . html
FIRST - STEPS
$ gpg - - version
$ gpg - - dump - options | less
$ tree ~ / . gnupg
KEY - GENERATION
$ gpg - - full - gen - key
ENCRYPTION
$ echo "Hello World!" > > file
$ gpg - r abc . xyz @ gmail . com - e file
$ shred - u file
DECRYPTION
$ gpg - d file . gpg
$ gpg - d file . gpg > > file
049 • BACKUP
$ archivemount archive . tar . gz ~ /mnt/
# dd if=/dev/sdABC of=/dev/sdXYZ bs=64K conv=noerror,sync
$ tar - cvzf ~ /backup/ backup . tar . gz ~ / java
$ tar - tvf backup . tar . gz
$ ssh user @ a . b . c . d "tar -zcf - /home/user/scripte" > scripte . tar . gz
TOOLS
• grsync rsync
048 • C
$ gcc - v
HELLO WORLD
$ vim hello . c
> #include
>
> int main ( )
> {
> printf ( "Hello, World! \n" ) ;
> return 0 ;
> }
: wq
$ gcc hello . c
$ . / a . out
SOURCES
• TutorialsPoint : tutorialspoint . com / cprogramming /
047 • USERS
PATHS
/etc/ passwd
/etc/ shadow
/etc/ group
/etc/ profile
/etc/ default / useradd
~ / . bashrc
~ / . profile
STATUS
# passwd -S user1
$ clear ; finger ; echo ; finger user1 ; echo
$ cut - d : - f1 < /etc/ passwd | sort | xargs
# find /home -uid 1000 | wc -l
# find /home -uid 1000 | tee 1000-files.txt
# find / -uid 1000 -exec chown -v 1002:1002 {} \;
$ id - u root
$ id - u user1
$ id user1
$ fuser - v / media / xyz
$ getent passwd user1
CREATING I // Debian
# ls -lisa /etc/skel
# vim /etc/adduser.conf
# adduser user1
# passwd -S user1
$ clear ; finger ; echo ; finger user1 ; echo
$ id user1
CREATING II // Low level
# ls -lisa /etc/skel
# useradd -D
# vim /etc/default/useradd
# useradd user1 // Default
# useradd user1 -c "User's full name" -d /home/test -u 1099 // Modified
# passwd user1
# passwd -S user1
$ clear ; finger ; echo ; finger user1 ; echo
$ id user1
MODIFYING
# usermod -c "Another full name" user1
# chown -R user1:user1 /home/userxyz
# vim /etc/sudoers
DELETING
# passwd -u user1
# passwd -l user1
# userdel -r user1
046 • YOUTUBE - DL
• Documentation : github . com / ytdl - org / youtube - dl / blob / master / README . md #readme
FISH - FUNCTION
~ > vim / home / user / . config / fish / functions / yt . fish
function yt
sudo - H pip install - - upgrade youtube - dl
end
: wq
045 • LANGUAGES
INSTALLATION / CONFIGURATION
• # apt-get purge locales
• # apt-get install locales
• # dpkg-reconfigure locales
• # dpkg-reconfigure keyboard-configuration
• # locale-gen
PATHS
• /etc/ locale . gen
• /etc/ default / locale
• /etc/ environment ( login - gdm - ssh )
COMMANDS
• $ locale
• $ apt - cache show locales
• $ locale - a
LANGUAGE - CODE
• language - code_COUNTRY - CODE
• ISO -8859 -1 “ Latin 1 ”
• ISO -8859 -15 “ Latin 9 ”
• UTF -8 unicode . org
SOURCES
• file : ///usr/share/doc/debian-handbook/html/en-US/basic-configuration.html#sect.config-language-support
• wiki . debian . org / Locale
• unicode . org
044 • RASPBERRY PI
MAGPI
• Issue 82 2019 -06 : raspberrypi . org / magpi - issues / MagPi82 . pdf
• Issue 81 2019 -05 : raspberrypi . org / magpi - issues / MagPi81 . pdf
• Issue 80 2019 -04 : raspberrypi . org / magpi - issues / MagPi80 . pdf
• Issue 79 2019 -03 : raspberrypi . org / magpi - issues / MagPi79 . pdf
• Issue 78 2019 -02 : raspberrypi . org / magpi - issues / MagPi78 . pdf
• Issue 77 2019 -01 : raspberrypi . org / magpi - issues / MagPi77 . pdf
• Issue 76 2018 -12 : raspberrypi . org / magpi - issues / MagPi76 . pdf
• Issue 75 2018 -11 : raspberrypi . org / magpi - issues / MagPi75 . pdf
• Issue 74 2018 -10 : raspberrypi . org / magpi - issues / MagPi74 . pdf
• Issue 73 2018 -09 : raspberrypi . org / magpi - issues / MagPi73 . pdf
• Issue 72 2018 -08 : raspberrypi . org / magpi - issues / MagPi72 . pdf
• Issue 71 2018 -07 : raspberrypi . org / magpi - issues / MagPi71 . pdf
• Issue 70 2018 -06 : raspberrypi . org / magpi - issues / MagPi70 . pdf
• Issue 69 2018 -05 : raspberrypi . org / magpi - issues / MagPi69 . pdf
• Issue 68 2018 -04 : raspberrypi . org / magpi - issues / MagPi68 . pdf
• Issue 67 2018 -03 : raspberrypi . org / magpi - issues / MagPi67 . pdf
• Issue 66 2018 -02 : raspberrypi . org / magpi - issues / MagPi66 . pdf
• Issue 65 2018 -01 : raspberrypi . org / magpi - issues / MagPi65 . pdf
DOCUMENTATION
• Beginners Guide : raspberrypi . org / magpi - issues / Beginners_Guide_v1 . pdf
• Beginners Book : raspberrypi . org / magpi - issues / Beginners_Book_v1 . pdf
$ clear ; lsblk ; lsblk - l
$ dd bs = 4 M if = 2018 -10 -09 - raspbian - stretch . img of = /dev/ sdX status = progress conv = fsync
# raspi-config
Homepage : raspberrypi . org
Configuration : raspberrypi . org / documentation / configuration /
Download : raspberrypi . org / downloads / raspbian /
043 • FISH
• Homepage : fishshell . com
• Tutorial : fishshell . com / docs / current / tutorial . html
• Documentation : fishshell . com / docs / current / index . html
• Commands : fishshell . com / docs / current / commands . html
• FAQ : fishshell . com / docs / current / faq . html
• Design : fishshell . com / docs / current / design . html
# apt-get install fish
$ man fish
~ > fish_config
~ > cd ~ /.config/ fish / functions
CONFIGURATION
~ > fish_config
~ > vim ~ /.config/ fish / config . fish
~ > fish_vi_key_bindings
- > fish_default_key_bindings
PATHS
~ /.config/ fish
~ /.config/ fish / functions
EXAMPLES
$ fish
~ > help
function c
clear
echo
neofetch
cowsay - W 131 - f moose ( cat ~ /bin/ oneliner . txt | shuf - n1 )
echo
end
function s - d "Steem Price"
if $argv = "" ;
set argv 3 ;
end
set STEEM rate . sx / steem @ { $argv } d
clear
curl $STEEM
end
042 • AT
$ at now | midnight | noon | teatime | HH : MM
> echo "Hello World!"
> < ctrl - d >
$ from
$ tty # Terminal number
$ at now +60 minutes
> echo "Hello World!" > /dev/ pts / 2
> < ctrl - d >
$ at 1 am tomorrow
$ at now +1 minutes | hours | weeks
$ at 4 pm +3 days
$ at 10 am Jul 31
$ at noon shutdown - h now
$ atq : list pending jobs
$ atrm id : id from atq
SOURCES
$ man at
$ man at . allow
$ man at . deny
$ man atd
• time specification can be found in /usr/ share / doc / at / timespec
041 • SOURCES
MAN - PAGES ( - ? - - help man info pinfo / usr / share / doc )
• $ manpath
• $ mandb
• $ man man
• $ man - a bash
• $ man - t bash | lp
• $ man - k bash ; apropos bash ; whatis bash
DEBIAN - REFERENCE - CARD
• # apt-get install debian-refcard
• $ dpkg - L debian - refcard | grep - i index
• > /usr/ share / doc / debian - refcard / index . html
• > file : ///usr/share/doc/debian-refcard/index.html
• > file : ///usr/share/doc/debian-refcard/refcard-en-a4.pdf.gz
DEBIAN - DOCUMENTATION
• $ ls - l / usr / share / doc | less
• $ man man
• wiki . debian . org
LINUX
• linux . com
• kernel . org
• linuxlinks . com
• tldp . org / LDP / intro - linux / html / index . html
• tldp . org / sorted_howtos_full . html
OPEN - BOOKS
• O ' Reilly - oreilly . com / openbook
• Rheinwerk ( de ) - rheinwerk - verlag . de / openbook /
040 • VIM - GITHUB REPOSITORY
$ cd ~ / Apps # Place of your local installations
$ git clone https : //github.com/vim/vim.git # At the first time
$ git pull # Update to the latest version
$ cd vim / src
# make distclean # If you build Vim before
# make
# make install
SOURCE
• vim . org / git . php
039 • TASK & TIMEWARRIOR
INSTALLATION
$ apt - cache search taskwarrior timewarrior
# apt-get install taskwarrior tasksh timewarrior
$ apt - cache show taskwarrior taskwarrior
$ man task
CONFIGURATION TASKWARRIOR
$ vim ~ / . taskrc
CONFIGURATION TIMEWARRIOR
$ ls - l ~ / . timewarrior
$ cp / usr / local / share / doc / timew / ext / on - modify . timewarrior ~ /.task/ hooks /
$ chmod + x ~ /.task/ hooks / on - modify . timewarrior
$ vim ~ /.timewarrior/ timewarrior . cfg
> define exclusions :
> monday = < 9 : 00 12 : 30 -13 : 00 > 17 : 00
> tuesday = < 9 : 00 12 : 30 -13 : 00 > 17 : 00
> wednesday = < 9 : 00 12 : 30 -13 : 00 > 17 : 00
> thursday = < 9 : 00 12 : 30 -13 : 00 > 17 : 00
> friday = < 9 : 00 12 : 30 -13 : 00 > 17 : 00
> saturday = > 0 : 00
> sunday = > 0 : 00
: wq
STOPWATCH
$ timew
$ timew start
$ timew stop
TASKWARRIOR
$ task
$ task add project : Phoenix Task1
$ task add project : Running Task2
$ task
$ task 1 edit
$ task 1 modify priority : H
$ task 1 modify due : eow
$ task 1 modify due : eom
$ task 1 modify project : Java
$ task 1 start
$ task 1 stop
$ task 1 information
$ task calc now + 21 d
$ task calendar 2019
$ task
$ task 1 done
$ task 2 delete
$ task
$ task burndown . daily ; task burndown . weekly ; task burndown . monthly
$ alias t = 'clear; task'
$ alias tt = 'clear; task burndown.daily'
TIMEWARRIOR
$ timew start | stop | continue
$ timew running start | stop
$ timew day | week | month
$ timew tags
$ timew summary
SOURCES TASKWARRIOR
• Homepage taskwarrior . org
• Documentation taskwarrior . org / docs
• Tutorial taskwarrior . org / docs / 30 second . html
SOURCES TIMEWARRIOR
• Tutorial taskwarrior . org / docs / timewarrior / tutorial . html
• Documentation taskwarrior . org / docs / timewarrior
038 • JOB - CONTROL
$ vim ~ / . vimrc < ctrl > + z
$ vim ~ / . bashrc < ctrl > + z
$ ranger < ctrl > + z
$ htop < ctrl > + z
$ glances &
$ jobs
$ fg 1
RUN A BACKGROUNd - JOB
$ sleep 10000 &
$ jobs - l
$ kill 12345
SOURCES
$ help jobs
$ help fg
$ help bg
037 • VIM FIRST - STEPS
INSTALL VIM
# apt-get install vim gvim vim-doc vim-scripts
$ dpkg - L vim - doc
# update-alternatives --config editor
$ vim - - version | less
REMAP < CAPS LOCK > TO < ESC >
• GNOME - TWEAK - TOOL : Typing - Tab > Caps Lock key behaviour > Make Caps Lock an additional ESC
LEARN AND TRAIN THE BASICS
$ vimtutor en
$ firefox vim - adventures . com
• vim , : h user - manual : resize
DISABLE YOUR ARROW KEYS
$ vim ~ / . vimrc
map < up > < nop >
imap < up > < nop >
map < down > < nop >
imap < down > < nop >
map < left > < nop >
imap < left > < nop >
map < right > < nop >
imap < right > < nop >
: wq
CONFIGURE YOUR BASH - ENVIRONMENT
: echo $MYVIMRC
# update-alternatives --config editor
$ vim ~ / . bashrc
EDITOR = /usr/ bin / vim
VISUAL = $EDITOR
export EDITOR VISUAL
: wq
ACTIVATE VIM - MODE IN BASH
$ vim ~ / . bashrc
set - o vi
bind - m vi - insert "\C-l" # clear-screen
: wq
ACTIVATE VIM - PLUGIN IN FIREFOX
Plugin : Vim Vixen
036 • I3WM
Exit < alt > < shift > e
Help F1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Terminal < alt > < enter >
Menu < alt > d
Workspace < alt > 0 -9
Move a window to another workspace < alt > < shift > 0 -9
Fullscreen < alt > f
Kill a window < alt > < shift > q
Homepage : i3wm . org
Documentation : i3wm . org / docs / userguide . html
ReferenceCard : i3wm . org / docs / refcard . html
Tutorial : youtu . be / Wx0eNaGzAZU
035 • JAVA MODIFIER
Class Package Subclass World
private ok - - -
default ok ok - -
protected ok ok ok -
public ok ok ok ok
034 • VIM - VIMRC
[ $ vim ~ /.vimrc ] edit ~/ . vimrc
[ vim , : w ~ /.vimrc_backup ] backup ~/ . vimrc
"IDE
syntax on
set autoindent
set smartindent
set cindent
" FOLDING
autocmd BufWinLeave * . * mkview
autocmd BufWinEnter * . * silent loadview
let mapleader = "," "Leaderkey
set scrolloff=99 " Scrolling behaviour
set splitright "Splitting behaviour
set rnu " Relative line numbers
set nonu "Line numbers
set nocompatible
set showmode
set ruler
set linebreak
set showcmd
set laststatus=1
set background=dark
set encoding=utf8
filetype on
filetype plugin on
set mouse=a
" set colorcolumn = 80
"set cursorline
" DISABLE ARROW KEYS
map < up > < nop >
imap < up > < nop >
map < down > < nop >
imap < down > < nop >
map < left > < nop >
imap < left > < nop >
map < right > < nop >
imap < right > < nop >
"SEARCH
set nohlsearch
set incsearch
" TABs
set tabstop = 4
set softtabstop = 4
set shiftwidth = 4
"set expandtab
" KEY MAPPINGS
"map :echo 'Current time is ' . strftime('%c')
nmap ggVG" + y
map < F5 > : set list ! < CR >
map < F6 > : setlocal spell ! spelllang = en_us < CR >
map < F8 > : set nu ! < CR >
map < Leader > < F8 > : set rnu ! < CR >
map < Leader > , : w < CR >
" ABBREVIATIONS
: iab ii < esc >
: iab psv public static void ( String [ ] args ) { < cr > } < esc > ko
: iab sout System . out . println (
033 • SNAP
INSTALLATION
# apt update && apt install snapd
$ snap version
$ whereis snapd
$ vim ~ / . bashrc
> export PATH = /snap/ bin : $PATH
: wq
PACKAGES
$ snap find idea
$ snap info intellij - idea - community
# snap install intellij-idea-community --classic
$ snap find eclipse
$ snap info eclipse
# snap install eclipse --classic
UPDATE
$ snap list
# snap refresh
Homepage : snapcraft . io
Documentation : docs . snapcraft . io / snap - documentation / 3781
032 • LAN
• ufw - ufw status # ufw status
• netstat - TCP Sessions # netstat -tupan
• nmap - Interfaces & Routes $ nmap - - iflist
• arp - scan - ARP # arp-scan --localnet
# arp-scan --localnet | awk '/192\.168\.0/ {print $0}' | tee hosts.txt
# arp-scan --localnet | awk '/192\.168\.0/ {print $1}' | xargs nmap
• ip - Neighbours $ ip neigh ; ip monitor
• mtr - Network diagnostic $ mtr - - curses google . com
• sntop - Network status $ sntop
• nmap - Services $ nmap - A - T4 - Pn a . b . c . d
• nmap - Identify Internet Services $ nmap a . b . c . d ; nmap - sP a . b . c . d / 24
• SYSSTAT $ sar - o file 10 8640
Homepage : sebastien . godard . pagesperso - orange . fr / index . html
Documentation : sebastien . godard . pagesperso - orange . fr / documentation . html
Tutorial : sebastien . godard . pagesperso - orange . fr / tutorial . html
• BLEACHBIT # bleachbit --gui &
Homepage : bleachbit . org
Documentation : docs . bleachbit . org
Tutorial : bleachbit . org / videos
• CACTI : localhost / cacti : user admin
Homepage : cacti . net
Documentation : cacti . net / documentation . php
Tutorial : nwlab . net / tutorials / cacti / cacti - tutorial . html
• ZABBIX
Homepage : zabbix . com
Documentation : zabbix . com / documentation / 1.8 / start
Tutorial : zabbix . com / documentation / 1.8 / manual / tutorials
• $ ip route show
• $ ping - c4 8.8 .8 .8
• $ ping router . linux . local
• $ host 8.8 .4 .4
• $ nmap - A - T4 a . b . c . d
• $ nmap - sP a . b . c . d / 24
• $ ssh - X user @ a . b . c . d
linuxhowtos . org / Security / understandssh . htm
linux . die . net / Intro - Linux / chap_10 . html
file : ///usr/share/doc/debian-handbook/html/en-US/index.html
031 • SWAP SPACE
CHECK
$ free - h
$ top | htop | atop | glances
$ vmstat - w
$ cat / proc / swaps
# fdisk -l
$ cat / proc / sys / vm / swappiness
TROUBLESHOOTING
01 # swapon -s
02 # ls -lh /tmp
03 # dd if=/dev/zero of=/tmp/swap_tmp bs=1024 count=1000000
04 # ls -lh /tmp
05 # chmod 600 /tmp/swap_tmp
06 # mkswap /tmp/swap_tmp
07 # swapon /tmp/swap_tmp
08 # swapon -s
09 # echo 100 > /proc/sys/vm/swappiness
PERMANENT
# blkid
# vim /etc/fstab
> # Emergency swap partition
> UUID = ( value from blkid ) none swap sw 0 0
: wq
030 • ECLIPSE
KEYS
• Activate Editor F12
• Quick Assist control +1 control +2 control +3
• Content Assist control + space
• Active Keybindings shift + control + l
• Full Screen alt + F11
• Maximum Editor control + m
• Open Declaration F3
• Toggle Breakpoint shift + control + b
• Insert line shift + enter shift + control + enter
• Run Debug control + F11 F11
EDITING
• Toggle Comment control + shift + /
• Format control + shift + f
• Maximum View control + m
• Folding control + < Num - Div >
• Delete line control + d
• Undo control + z
• Goto line number control + l
• Format control + shift + f
• sysout ^ < space >
• main ^ < space >
FOLDING
• control + shift + num - div
• control + num - plus
• control + num - minus
• control + num - multiply
SOURCES
• Homepage eclipse . org
• Download eclipse . org / downloads / download . php ? file = /oomph/ epp / 2018 -12 / R / eclipse - inst - linux64 . tar . gz
• Documentation help . eclipse . org / 2019 -03 / index . jsp
• Tutorial tutorialspoint . com / eclipse /
029 • WAN
$ w3m myip . is
$ w3m ifconfig . me
$ curl ifconfig . me / all
$ traceroute 8.8 .8 .8
$ mtr - - curses 8.8 .4 .4
028 • CRON
COMMANDS
$ ls - ld / etc / cron *
# ranger /etc/cron.d
# crontab -l
# crontab -e
$ crontab - e
DAEMON
$ systemctl status cron . service
# service cron status
# service --status-all | less
CONFIGURATION
$ crontab - u user - e
> ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ minute ( 0 - 59 )
> │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ hour ( 0 - 23 )
> │ │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ day of month ( 1 - 31 )
> │ │ │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ month ( 1 - 12 )
> │ │ │ │ ┌ ─ ─ ─ ─ ─ ─ ─ ─ day of week ( 0 - 6 ) Sunday to Saturday
> │ │ │ │ │
> * * * * * echo "Test" > > /tmp/ crontest . txt
> 0 9 * * * tar - zcf / var /backups/ eclipse . tgz / home / user / eclipse - workspace /
> 0 9 * * 4 rm - rf / home / user / tmp /*
> 0 0 1,15 * * echo "Test" >> /tmp/crontest.txt
> */ 10 * * * * echo "Test" > > /tmp/ crontest . txt
> 0 0 -5 * * * echo "Test" > > /tmp/ crontest . txt
> 0 0 * /2 * * echo "Test" >> / tmp / crontest . txt
> * /30 9/ 17 * * 1 -5 echo "Test" > > /tmp/ crontest . txt
> 0 12 * * * /usr/ sbin / tripwire - - check
: wq
SOURCES
$ w3m crontab . guru
$ man cron
$ man - a crontab
$ man 5 crontab
027 • RANGER - A console file manager with VI key bindings
F1 F2 F3 F4 F5 F6 F7 F8 F10
help rename view edit copy cut mkdir delete exit
Exit : q
Help : ? < f1 >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Shell : S s
Show hidden files : < ctrl > h
File rename : < ctrl > cw : rename
File delete : < ctrl > dD : delete
File tag : t ct
Go home : gh
Go / etc : ge
INSTALLATION
# pip install ranger-fm
CONFIGURATION
$ ranger - - copy - config = all
$ vim ~ /.config/ ranger / rc . conf
> set draw_borders true
: wq
SOURCES
• Homepage : ranger . github . io
• Documentation : github . com / ranger / ranger / wiki
• User - Guide : github . com / ranger / ranger / wiki / Official - user - guide
• Wiki - Arch - Linux : wiki . archlinux . org / index . php / Ranger
026 • BASH
SESSION
$ sudo ! !
# apt-get update && apt-get upgrade && apt-get dist-upgrade; apt-get autoremove -yy
# init 0
# init 6
# shutdown -c
# shutdown -h 1:00
# shutdown -r now
SUDO
# visudo
> Defaults : user timestamp_timeout = 30
Homepage : gnu . org / software / bash /
Documentation : gnu . org / software / bash / manual / html_node / index . html
025 • JAVA
• Homepage : oracle . com / java /
• Whitepaper : oracle . com / technetwork / java / langenv -140151 . html
• Download : oracle . com / technetwork / java / javase / downloads / index . html
• Documentation : docs . oracle . com / en / java / javase / 12 / index . html
• API : docs . oracle . com / en / java / javase / 12 / docs / api / index . html
TUTORIALS
• Bradley Kjell : chortle . ccsu . edu / java5 / index . html
• TutorialsPoint : www . tutorialspoint . com / java / index . htm
• JavaTpoint : www . javatpoint . com / java - tutorial
ORACLE - TUTORIALS
Index : docs . oracle . com / javase / tutorial / reallybigindex . html
Getting Started : docs . oracle . com / javase / tutorial / getStarted
Language Basics : docs . oracle . com / javase / tutorial / java / nutsandbolts / index . html
OOP Concepts : docs . oracle . com / javase / tutorial / java / concepts / index . html
Classes and Objects : docs . oracle . com / javase / tutorial / java / javaOO / index . html
Annotations : docs . oracle . com / javase / tutorial / java / annotations / index . html
Interfaces and Inheritance : docs . oracle . com / javase / tutorial / java / IandI / index . html
Numbers and Strings : docs . oracle . com / javase / tutorial / java / data / index . html
Generics : docs . oracle . com / javase / tutorial / java / generics / index . html
Packages : docs . oracle . com / javase / tutorial / java / package / index . html
Exceptions : docs . oracle . com / javase / tutorial / essential / exceptions / index . html
Basic I / O : docs . oracle . com / javase / tutorial / essential / io / index . html
Concurrency : docs . oracle . com / javase / tutorial / essential / concurrency / index . html
Platform Environment : docs . oracle . com / javase / tutorial / essential / environment / index . html
Regular Expressions : docs . oracle . com / javase / tutorial / essential / regex / index . html
Collections : docs . oracle . com / javase / tutorial / collections / index . html
Date & Time : docs . oracle . com / javase / tutorial / datetime / index . html
Deployment : docs . oracle . com / javase / tutorial / deployment / index . html
Swing : docs . oracle . com / javase / tutorial / uiswing / index . html
JavaFX : docs . oracle . com / javase / 8 / javase - clienttechnologies . htm
Networking : docs . oracle . com / javase / tutorial / networking / index . html
Generics : docs . oracle . com / javase / tutorial / extra / generics / index . html
Internationalization : docs . oracle . com / javase / tutorial / i18n / index . html
JavaBeans : docs . oracle . com / javase / tutorial / javabeans / index . html
JDBC : docs . oracle . com / javase / tutorial / jdbc / index . html
RMI : docs . oracle . com / javase / tutorial / rmi / index . html
Reflection : docs . oracle . com / javase / tutorial / reflect / index . html
Security : docs . oracle . com / javase / tutorial / security / index . html
Sound : docs . oracle . com / javase / tutorial / sound / index . html
2 D Graphics : docs . oracle . com / javase / tutorial / 2 d / index . html
AWK • SWING • JavaFX
• O ' Reilly : oreilly . com / openbook / javawt / book / index . html
• Bradley Kjell : chortle . ccsu . edu / java5 / Notes / chap55 / ch55_1 . html
• TutorialsPoint : tutorialspoint . com / swing / index . htm
• Oracle Trail : docs . oracle . com / javase / tutorial / uiswing /
• Oracle JavaFX : docs . oracle . com / javase / 8 / javase - clienttechnologies . htm
024 • AWK
$ printenv | awk '/PATH|HOME|USER|SHELL/ {print $0}'
$ awk 'BEGIN { print "Don\47t Panic!" }'
$ awk - F : '{ print $1 }' /etc/ passwd | sort | tee user . txt
$ awk - F : '$1 == "userxyz" { print $0 }' /etc/ passwd
$ awk - F : '/userxyz|root/ { print $0 }' /etc/ passwd
INSTALLATION
# apt-get install gawk gawk-doc
$ dpkg - L gawk - doc | less
> file : ///usr/share/doc/gawk-doc/gawk-html/index.html#Top
Manual : gnu . org / software / gawk / manual / gawk . html
Tutorial I : tutorialspoint . com / awk / index . htm
Tutorial II : tldp . org / LDP / abs / html / sedawk . html
023 • MEMORY
SYSTEM - INFORMATION
$ top $ htop $ atop $ glances
$ watch free - h
$ less / proc / meminfo
$ cat / proc / sys / vm / swappiness
# sysctl -a
TROUBLESHOOTING
# sysctl -a
# sysctl vm.swappiness=15
# sysctl -a
# sysctl -a
# bash -c "sync; echo 3 > /proc/sys/vm/drop_caches"
# sysctl -p
# sysctl -a
022 • ONE - LINER & COWSAY
INSTALLATION
$ cp ~ /.bashrc ~/ . bashrc_old
$ echo 'clear' > > ~ / . bashrc
$ echo 'echo' > > ~ / . bashrc
$ echo 'neofetch' > > ~ / . bashrc
$ echo 'cowsay -W 80 -f moose $(cat ~/bin/oneliner.txt | shuf -n1)' > > ~ / . bashrc
$ echo 'echo'
$ . ~ / . bashrc
ONE - LINER - TEXTFILE
$ vim ~ /bin/ oneliner . txt
# bash -c "sync; echo 3 > /proc/sys/vm/drop_caches"
# find / -uid 1000 -exec chown -v 1002:1002 {} \;
# find / -user userxyz -type f -exec rm -f {} \;
# find /home -user userxyz -mtime -3
# find /home -user userxyz -size +1G
# mkdir -p /mnt/ram; mount -t tmpfs tmpfs /mnt/ram -o size=8192M
$ alias ea = 'vim ~/.bash_aliases && source ~/.bash_aliases'
$ cat / etc / passwd | cut - d : - f7 | sort | uniq - c | sort - nr
$ cat / etc / shells
$ curl cheat . sh / : list | less
$ curl wttr . in
$ echo "It is now $(date +%T) on $(date +%A)"
$ find - size +100 M | less
$ find - size +1 G | less
$ find . - name "*.jpg" - exec convert { } - scale 50 % + repage { } \ ;
$ find / etc - type f - print 2 > /dev/ null | less
$ find / etc / * tab - type f - print
$ find ~ - maxdepth 1 - type f - exec grep "^alias " '{}' \ ; - print
$ find ~ - maxdepth 1 - type f - exec grep "^alias " '{}' \ ; - print
$ find ~ - maxdepth 1 - type f - mtime 3
$ mkdir - p Backups / { Sales , Development , HR } /{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}/ { Sun , Mon , Tue , Wed , Thu , Fri , Sat }
$ mkdir - p dummy / { 1 . .100 } / { 1 . .100 }
$ mount | column - t
$ mpg123 - zvC / home / user / music / *
$ ranger ~ /.local/ share / Trash /
$ scp - r folder / user @ a . b . c . d : ~
$ scp dummy . txt user @ a . b . c . d : ~
$ sudo - H pip install - - upgrade youtube - dl
$ watch - d - n 5 ls - l
$ watch free - h
$ watch mail
: % sort
: wq
021 • NEOFETCH
$ apt - cache search neofetch
$ apt - cache show neofetch
# apt install neofetch
$ cp ~ /.bashrc ~/ . bashrc_old
$ \ ls - lisa ~ / . bashrc *
$ echo "neofetch" > > ~ / . bashrc
$ . ~ / . bashrc
- - -
$ inxi - v1
020 • VIM
MODES
• Normal Mode < esc >
• Insert Mode i , a , c
• Visual Mode v , V , < ctrl - v >
• Command - line Mode : , / , ?
INSERT MODE
i : Insert text before the cursor .
I : Insert text before the first non - blank in the line .
s : Delete character under the cursor and start insert mode .
S : Delete line and start insert mode .
a : Enter insert mode after cursor .
A : Enter insert mode at the end of the line .
o : Enter insert mode on the next line .
O : Enter insert mode on th above line .
C : Delete from cursor to end of line and begin insert .
TEXT OBJECTS
aw : a word
aW : a WORD
iw : inner word
iW : inner WORD
ap : a paragraph
ip : inner paragraph
ab : a bracket
ib : inner bracket
at : a tag
it : inner tag
i " : inner quotes
ip : inner paragraph
i { : inner brackets
as : a sentence
Homepage : vim . org
Reference : vimhelp . org / quickref . txt . html
019 • PYTHON
CheatSheet : cheat . sh / python / : learn
IDE : Spyder3
DIVE - INTO - PYTHON -3
# apt install diveintopython3
$ dpkg - L diveintopython3 | grep - i index
> /usr/ share / doc / diveintopython3 / html / index . html
> file : ///usr/share/doc/diveintopython3/html/index.html
Homepage : python . org
Documentation : docs . python . org / 3.7 /
Download : python . org / downloads /
018 • GLANCES
$ apt - cache search glances
# apt install glances glances-doc
$ apt - cache show glances
$ man glances
$ dpkg - L glances
$ w3m / usr / share / doc / glances / html / quickstart . html
ALTERNATIVE
• Github : github . com / nicolargo / glances
# pip install --upgrade glances
017 • DEBIAN
Tutorials : debiantutorials . com
DistroWatch : distrowatch . com / table . php ? distribution = debian
w3Tech : w3techs . com
Debian News : debian . org / News
Debian Security : debian . org / security / #DSAS
Debian Version $ cat / etc / debian_version
Package Documentation : /usr/ share / doc
Sources List Generator : debgen . simplylinux . ch
Debian Backports : backports . org
DOCUMENTATION
• Documentation : debian . org / doc
• Wiki : wiki . debian . org / FrontPage
• Debian & Java : debian . org / doc / manuals / debian - java - faq / index . en . html
• Securing Debian : debian . org / doc / manuals / securing - debian - howto / index . en . html
• Menu System : debian . org / doc / packaging - manuals / menu . html / ch1 . html
• Networking HowTo : tldp . org / HOWTO / NET3 -4 - HOWTO . html
• Gnome : help . gnome . org
• Reference Card # apt install debian-refcard
$ dpkg - L debian - refcard | less
$ w3m / usr / share / doc / debian - refcard / index . html
• Reference : debian . org / doc / manuals / debian - reference /
# apt install debian-reference-en
$ dpkg - L debian - reference - en
$ w3m / usr / share / doc / debian - reference / docs / index . en . html
• Handbook : debian . org / doc / manuals / debian - handbook /
# apt install debian-handbook
$ dpkg - L debian - handbook | less
$ w3m / usr / share / doc / debian - handbook / html / en - US / index . html
Homepage : debian . org
Download : debian . org / distrib / netinst #smallcd
016 • SCREEN
# apt install screen
DOCUMENTATION
$ man screen
$ w3m gnu . org / software / screen / manual / screen . html
• ctrl a ? : Keybindings
SESSIONS
$ screen - S firstsession glances
$ screen - X - S firstsession quit
$ screen - ls : List screen sessions
$ screen - r : Reattaching
$ screen - x : Attach to a not detached screen session
• ctrl ad : Detach session
• ctrl ax : Lock session
WINDOWS
• ctrl ac : Create window
• ctrl aA : Rename window
• ctrl aa : Toggle window
• ctrl a [ 0 . . 9 ] : Toggle window
• ctrl a | : Split window vertically
• ctrl aS : Split window horizontally
• ctrl aX : Kill pane
• ctrl an : Next window
• ctrl ap : Previous window
• ctrl ak : Kill window
• ctrl a \ : Kill all windows
• ctrl aw : Window bar
• ctrl a " : Window list
• ctrl ah : Hardcopy
EXAMPLE
$ screen - S firstsession
• ctrl aS
• ctrl a |
$ htop
• ctrl a < tab >
• ctrl ac
$ atop
• ctrl < tab >
• ctrl ac
$ df - hT
CONFIGURATION
# vim /etc/screenrc
$ vim ~ / . screenrc
015 • SHORTCUTS
DAILY USE
• < ctrl > + z fg bg jobs < ctrl > + u < ctrl > + k < ctrl > + w < alt > + . < bash - vim - mode >
CHARACTER
• ctrl f : Move forward one character
• ctrl b : Move backward one character
• ctrl h : Generate a backspace character
• ctrl d : Delete one character
EDITOR
• ctrl xe : Editor
DESKTOP
• alt F2 : Run Command
HISTORY
• ctrl r : Search from history searching mode
• ctrl g : Escape from history searching mode
• alt . : Use the last word of the previous command
LINE
• esc # : Making the line a comment
• ctrl a : Go to the beginning of the line
• ctrl e : Go to the end of the line
• ctrl xx : Move between start of commandline and current position and back again
• ctrl eu : Clear the line
• ctrl k : Delete from cursor to the end of the line
• ctrl u : Delete from cursor to the start of the line
TERMINAL
$ gnome - terminal
• ctrl alt F3
• reset : Reset the terminal
• ctrl d or exit : Exit the terminal
• shutdown - h now : Shut down the system
SCREEN
• ctrl + - : Size
• ctrl l : Clear the screen
• ctrl s : Stop output to the screen
• ctrl q : Allow output to the screen
014 • LINUX - FROM - SCRATCH ( LFS )
• Homepage : linuxfromscratch . org / lfs / index . html
• Documentation : linuxfromscratch . org / lfs / view / stable /
• Download : linuxfromscratch . org / lfs / downloads / stable /
• DistroWatch : distrowatch . com / table . php ? distribution = lfs
PROJECTS
• Linux From Scratch : linuxfromscratch . org / lfs /
• Beyond Linux From Scratch : linuxfromscratch . org / blfs /
• Automated Linux From Scratch : linuxfromscratch . org / alfs /
• Cross Linux From Scratch : trac . clfs . org /
STEPS
03 Virtualbox : # apt install virtualbox
02 Debian Live - CD : cdimage . debian . org / debian - cd / current - live / amd64 / iso - hybrid /
01 RTFM : linuxfromscratch . org / lfs / view / stable /
013 • TOOLBOX
# apt install ...
A - alacarte atop aview
B - backintime - qt4 bluefish boostnote
C - calcurse clipit cherrytree cmus
E - espeak
F - firmware - iwlwifi firmware - realtek focuswriter fzf
G - gdebi gkrellm glances gnome - clocks gnome - do gparted grsync guake
H - htop hwinfo
I - inxi i3 - wm
K - kismet
L - libreoffice links lsd lvm2
M - mc menulibre
N - netcat net - tools nmap
P - powertop printer - driver - cups
R - ranger
S - screen sudo syncthing
T - taskwarrior terminator tilda timeshift timewarrior tripwire
V - veracrypt * vim virtualbox vym
W - w3m
Y - youtube - dl
012 • BASHRC
$ vim ~ / . bashrc
>
> HISTCONTROL = ignoreboth : erasedups
> HISTSIZE = 1000
> HISTFILESIZE = 1000
>
> alias h = 'clear; echo; history 30; echo'
>
> set - o vi
> bind - m vi - insert "\C-l" : clear - screen
> EDITOR = /usr/ bin / vim
> VISUAL = $EDITOR
> export EDITOR VISUAL
>
: wq
011 • FUZZI FINDER
$ fzf - e - - preview 'head -100 {}'
010 • CRYPTOCURRENCIES
$ curl rate . sx
$ curl rate . sx / btc @ 3 d
$ curl rate . sx / steem @ 3 d
009 • /ETC/ FSTAB
# blkid
# vim /etc/fstab
> #RAMDISK
> none / media / ramdisk tmpfs nodev , nosuid , noexec , nodiratime , size = 1024 M 0 0
008 • ALIASES
$ alias
$ ls - l ~ / . bash_aliases
$ cp ~ /.bash_aliases ~/ . bash_aliases_backup
$ alias > ~ / . bash_aliases
$ vim ~ / . bash_aliases
alias a = 'clear; echo; alias; echo'
alias b30 = 'clear; curl rate.sx/btc@30d'
alias b3 = 'clear; curl rate.sx/btc@3d'
alias b = 'clear; curl rate.sx/btc@3d'
alias bu = 'buku'
alias c = 'clear; neofetch; cowsay -W 131 -f moose $(cat ~/bin/oneliner.txt | shuf -n1); echo'
alias cc = 'clear; ncal -wy'
alias cd2 = 'clear; \cd ~/2019; echo; lsd -l; echo'
alias cdh = '\cd; clear; echo; lsd -l; echo'
alias cdp = 'clear; \cd ~/.phoenix; echo; lsd -l; echo'
alias d = 'clear; curl rate.sx/dash@3d'
alias dir = 'dir --color=auto'
alias ea = 'vim ~/.bash_aliases && source ~/.bash_aliases'
alias egrep = 'egrep --color=auto'
alias fgrep = 'fgrep --color=auto'
alias g = 'clear; glances'
alias grep = 'grep --color=auto'
alias h = 'clear; echo; history 30; echo'
alias i = 'intellij-idea-community &'
alias l = 'clear; echo; lsd -l; echo'
alias ls = 'ls --color=auto'
alias p = '(clear; \cd ~/.phoenix; java -jar phoenix.jar)'
alias py = 'clear; python3'
alias r = 'ranger'
alias rs = 'clear; rsync -avzP --delete --stats --exclude-from "/home/user1/.exclude.txt" /home/user1/ /media/veracrypt1/'
alias s30 = 'clear; curl rate.sx/steem@30d'
alias s3 = 'clear; curl rate.sx/steem@3d'
alias s = 'clear; curl rate.sx/steem@3d'
alias sc = 'screen -S firstsession'
alias ss = 'clear; curl rate.sx/steem@1d; gnome-screenshot -ac'
alias t = 'clear; task; timew week; timew summary'
alias tm = 'clear; timew month'
alias tt = 'clear; task burndown.daily'
alias ttt = 'clear; task calendar 2019'
alias tw = 'timew'
alias u = 'clear; sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade; sudo apt-get autoremove -yy'
alias vdir = 'vdir --color=auto'
alias yt = 'sudo -H pip install --upgrade youtube-dl'
: wq
$ . ~ / . bashrc
007 • RAMDISK
$ df - hT : active tmpfs
$ free - h : free ram for a new tmpfs
TEMPORARY - TMPFS
# mkdir -p /media/ramdisk
$ mount | column - t
# mount -t tmpfs -o size=1024M ramdisk /media/ramdisk
# mount -a
$ mount | column - t
# umount ramdisk
$ mount | column - t
PERMANENT - TMPFS
# mkdir -p /media/ramdisk
# vim /etc/fstab
> ramdisk / media / ramdisk tmpfs nodev , nosuid , noexec , nodiratime , size = 1024 M 0 0
# mount -a
$ mount | column - t
# umount ramdisk
$ mount | column - t
006 • DISK
# du -a /home/user | sort -nr | head -n 10
# du -hs / 2> /dev/null
# du -kx /home/user | sort -nr -k1 | head -n 10
$ du - b - - max - depth 1 | sort - nr | perl - pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e'
$ du - h - - max - depth = 1 | sort - rh
$ du - s / home / userxyz / * | sort - nr | head | awk 'BEGIN {printf "%12s %s\n", "SIZE", "PATH" } { printf "%12d %s\n", $1, $2 }' | tee / tmp / report . txt
$ du - sch ~
$ du - sk ~ / * | sort - r - n | head -10
005 • DEBIAN ~ /ETC/ APT / SOURCES . LIST
• # vim /etc/apt/sources.list
• # Security updates
• deb http : //security.debian.org/debian-security stretch/updates main contrib non-free
• deb - src http : //security.debian.org/debian-security stretch/updates main contrib non-free
• # Base repository
• deb http : //ftp.de.debian.org/debian/ stretch main contrib non-free
• deb - src http : //ftp.de.debian.org/debian/ stretch main contrib non-free
• # Stable updates
• deb http : //ftp.de.debian.org/debian/ stretch-updates main contrib non-free
• deb - src http : //ftp.de.debian.org/debian/ stretch-updates main contrib non-free
• # Stable backports
• deb http : //ftp.debian.org/debian stretch-backports main contrib non-free
• deb - src http : //ftp.debian.org/debian stretch-backports main contrib non-free
• # Virtualbox
• deb https : //download.virtualbox.org/virtualbox/debian stretch contrib
004 • DEBIAN ~ SYSTEM - UPDATE
alias u = 'clear; sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade; sudo apt-get autoremove -yy'
UNATTENDED - UPGRADES
# apt-get install unattended-upgrades apt-listchanges
# vim /etc/apt/apt.conf.d/50unattended-upgrades
# vim /etc/apt/apt.conf.d/20auto-upgrades
# vim /etc/apt/listchanges.conf
# dpkg-reconfigure -plow unattended-upgrades
# unattended-upgrade -d
UnattendedUgrades : wiki . debian . org / UnattendedUpgrades
003 • DCONF - EDITOR
# apt install dconf-editor && apt show dconf-editor
• /org/ gnome / terminal / legacy / default - show - menubar
002 • GNOME - TWEAK - TOOL
# apt install gnome-tweak-tool && apt show gnome-tweak-tool
• Typing - Tab > Caps Lock key behaviour > Make Caps Lock an additional ESC |
001 • VIM - MODE in BASH
$ vim ~ / . bashrc
set - o vi
bind - m vi - insert "\C-l" # clear-screen
: wq
Source : sanctum . geek . nz / arabesque / vi - mode - in - bash /