scrobble.life
#linux

LINUXOPOLIS #41 • C

LINUXOPOLIS

A short summary of building a personal Linux environment.
Published with SteemPeak

The content was written as simple text with Vim. I keep the structure of the text blocks simple, so you can easily copy the text into your own wiki.

This document is intended to give you a first overview of a topic and to encourage you to make further searches.

ScreenshotScreenshot by Willi Glenz

CONTENTS

VIM	- Vi IMPROVED, A PROGRAMMERS TEXT EDITOR

037 • first-steps											
034 • vimrc													
001 • vim-mode in bash
035 • session									
020 • documentation
040 • github repository							
027 • ranger - a file manager with vi key bindings

BASH - BOURNE-AGAIN-SHELL

026 • bash	
012 • bashrc
008 • aliases										
015 • shortcuts
022 • one-liner & cowsay										
038 • job-control		

SCHEDULED JOBS		
								
042 • at											
028 • cron									

PROGRAMMING

030 • c												// new
025 • java
019 • python
024 • awk
030 • eclipse

ADMINISTRATION

047 • users											
046 • youtube-dl									// update				
045 • languages						
044 • raspberry pi					
043 • fish											// update			
041 • sources
039 • task & timewarrior							
036 • i3wm
033 • snap								
032 • network							 
031 • swap space						
029 • system information				
023 • memory								
021 • neofetch
018 • glances
017 • debian
016 • screen
014 • linux-from-scratch (lfs)
013 • toolbox
011 • fuzzi finder
010 • cryptocurrencies
009 • /etc/fstab
007 • ram-disk permanent
006 • ram-disk temporary
005 • sources.list for debian-stretch
004 • system update and upgrade
003 • dconf-editor							
002 • gnome-tweak-tool						

#048

048 • C
$ gcc -v

HELLO WORLD

$ vim hello.c
> #include <stdio.h>
>
> 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


<cr>

046 • YOUTUBE-DL


FISH-FUNCTION

~> vim /home/user/.config/fish/functions/yt.fish

function yt sudo -H pip install --upgrade youtube-dl end :wq

SOURCES

• Documentation : github.com/ytdl-org/youtube-dl/blob/master/README.md#readme


<br>

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


<br>

044 • RASPBERRY PI


$ clear; lsblk; lsblk -l $ dd bs=4M if=2018-10-09-raspbian-stretch.img of=/dev/sdX status=progress conv=fsync

raspi-config

MAGPI 2019

• 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

MAGPI 2018

• 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

SOURCES • Homepage : raspberrypi.org • Configuration : raspberrypi.org/documentation/configuration/ • Download : raspberrypi.org/downloads/raspbian/


<br>

043 • FISH


INSTALLATION

apt-get install fish

$ man fish

PATHS

~/.config/fish ~/.config/fish/functions

CONFIGURATION

~> fish_config ~> vim ~/.config/fish/config.fish ~> fish_vi_key_bindings -> fish_default_key_bindings

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

SOURCES

• 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


<br>

042 • AT


$ at now | midnight | noon | teatime | HH:MM

echo "Hello World!" $ from

$ tty # Terminal number $ at now +60 minutes

echo "Hello World!" > /dev/pts/2

$ at 1am tomorrow $ at now +1 minutes | hours | weeks $ at 4pm +3 days $ at 10am 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


<br>

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-ADMINISTRATOR-HANDBOOK • # apt-get install debian-handbook • $ dpkg -L debian-handbook | grep -i index • > /usr/share/doc/debian-handbook/html/en-US/index.html • > file:///usr/share/doc/debian-handbook/html/en-US/index.html

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

DEBIAN-REFERENCE • # 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-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/


<br>

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


<br>

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 + 21d $ 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/30second.html

SOURCES TIMEWARRIOR

• Tutorial taskwarrior.org/docs/timewarrior/tutorial.html • Documentation taskwarrior.org/docs/timewarrior


<br>

038 • JOB-CONTROL


$ vim ~/.vimrc +z $ vim ~/.bashrc +z $ ranger +z $ htop +z $ glances & $ jobs $ fg 1

RUN A BACKGROUNd-JOB $ sleep 10000 & $ jobs -l $ kill 12345

SOURCES $ help jobs $ help fg $ help bg


<br>

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 TO • 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

DISABLE YOUR ARROW KEYS $ vim ~/.vimrc

map imap map imap map imap map imap :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


<br>

036 • I3WM


Exit e Help F1

Terminal Menu d Workspace 0-9 Move a window to another workspace 0-9 Fullscreen f Kill a window q

SOURCES • Homepage : i3wm.org • ReferenceCard : i3wm.org/docs/refcard.html • Documentation : i3wm.org/docs/userguide.html • Tutorial : youtu.be/Wx0eNaGzAZU



<br>

035 • VIM-SESSION


88 test $ vim -u NONE -N 99 exit :wq :q! ZZ ZQ 01 docu $ man vim "" docu II $ firefox file:///usr/share/doc/vim-doc/html/index.html & "" docu III :help user-manual • ^] ^o "" docu IV :help edit :help grep ^d ^u

02 buffer $ ^xe "" buffer :e :edit "" buffer $ vim -O ~/.vimrc ~/.bashrc ^ww ^wr ^wc ^wq "" buffer $ vim ~/.bashrc ~/.bashrc :args :ls :next :previous :n :N "" buffer :buffers :badd :b1 :b2 :bn :bp :bf :bl

03 motion ^d ^u H M L zz zb zt z z- l h j k 04 insert i I s S a A o O C

05 window :vsplit ^wv :split ^ws "" window :set nu nonu "" window :set relativenumber norelativenumber "" window :set hls nohls * "" window :set ruler noruler "" window :set linebreak nolinebreak "" window :call matchadd('colorColumn', '%81v', 100) "" window ^ws ^wv ^wr ^wc ^wq "" window gg G ^g 50% ^e ^y ^n ^u ^d ^f ^b

06 repeat . 07 macro qa :reg a @a 08 clipboard vj"+y 09 search / f * #
:set incsearch :nhls

10 change ~ "" change :%s/one/two/g "" change :set hls * cw n :set nohls "" change ci( ci{ ci<

11 delete x d$ diw dit di" dip das 12 undo redo u U ^r 13 match [InsertMode] ^n 14 abbreviate :ab :abc :unab ^v 15 mark m1 '1 `1 marks 16 fold zf5j zo zc zd 17 visual v ^v 18 text objects iw it i" ip as f F t T /



<br>

034 • VIM-VIMRC


: echo $MYVIMRC $ vim --version | less $ vim ~/.vimrc

---> Snipit

"DISABLE ARROW KEYS map imap map imap map imap map imap

"SYNTAX HIGHLIGHTING " :h syntax-highlighting syntax enable syntax on " :syntax on | off

"NUMBERS "set number set relativenumber

"GENERAL filetype on filetype plugin on set nocompatible "set laststatus=2 "set colorcolumn=80 "set cursorline set incsearch set hlsearch set showmode set ruler set linebreak set showcmd set mouse=a set background=dark set encoding=utf8

"INDENT set autoindent

"TABs set tabstop=3 set softtabstop=3 set shiftwidth=3 set expandtab

"let mapleader = ","

"KEY MAPPINGS map :echo 'Current time is ' . strftime('%c') map :set list! map :setlocal spell! spelllang=en_us map ,c :!clear && javac % && java %:r map ,d dG map ,s :w map ,w :w

"ABBREVIATIONS :iab ii :iab psv public static void(String[] args) {}ko :iab sout System.out.println(

<---Snipit


<br>

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

SOURCES

• Homepage : snapcraft.io • Documentation : docs.snapcraft.io/snap-documentation/3781



<br>

032 • NETWORK


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

HOST

• $ inxi -i • $ w3m myip.is • $ w3m ifconfig.me • $ curl ifconfig.me/all • $ ip address show • # ifconfig • # ifconfig -a | grep -Po '\b(?!255)(?:\d{1,3}.){3}(?!255)\d{1,3}\b' | xargs nmap -A -p0- • # ifconfig eth0 down | up • # netstat -tulpn • $ netstat -ie • $ netstat -a | less • # clear; netstat -tupanc • # clear; echo; netstat -i; echo; netstat -r • $ sshfs name@server:/path/to/folder /path/to/mount/point • $ nmap --iflist • $ domainname • $ dnsdomainname • # iw dev wlan0 scan | egrep "SSID|signal" | awk -F ":" '{print $2}' | sed 'N;s/\n/:/' | sort • $ speedometer -r eth0

LAN

• # arp-scan a.b.c.d/24 • $ ip neigh show • $ 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

WAN

• $ traceroute 8.8.8.8 • $ mtr --curses 8.8.4.4

SOURCES

• linuxhowtos.org/Security/understandssh.htm • linux.die.net/Intro-Linux/chap_10.html • file:///usr/share/doc/debian-handbook/html/en-US/index.html


<br>

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


<br>

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+ • Delete line control+d • Undo control+z
• Goto line number control+l • Format control+shift+f • sysout^ • main^ 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/


<br>

029 • SYSTEM INFORMATION


LOCALHOST

• 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

NETWORK & SERVER

• ufw - ufw status # ufw status • netstat - TCP Sessions # netstat -tupan • nmap - Interfaces & Routes $ nmap --iflist • arp-scan - ARP # arp-scan --localnet • 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


<br>

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



<br>

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 : ?

Shell : S s Show hidden files : h File rename : cw :rename File delete : dD :delete File tag : t ct Go home : gh Go /etc : ge

CONFIGURATION $ vim ~/.config/ranger/rc.conf

set draw_borders true :wq

SOURCES • Homepage ranger.github.io • Documentation github.com/ranger/ranger/wiki


<br>

026 • BASH


ADVANCED-BASH-SCRIPTING-GUIDE

apt install abs-guide

$ dpkg -L abs-guide $ firefox file:///usr/share/doc/abs-guide/html/index.html &

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

SOURCES

• Homepage : gnu.org/software/bash/ • Documentation : gnu.org/software/bash/manual/html_node/index.html • Bash-Guide-for-Beginners : tldp.org/LDP/Bash-Beginners-Guide/html/index.html • Advanced-Bash-Scrip-Guide : tldp.org/LDP/abs/html/


<br>

025 • JAVA


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 2D Graphics : docs.oracle.com/javase/tutorial/2d/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

TERMINAL

apt-get install default-jdk default-jdk-doc 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 /tmp/java/{tools,test,phoenix};cd /tmp/java; ls -lisa $ vim Main.java +z fg $ ( cd /tmp/java/; vim Main.java )


<br>

024 • AWK


$ 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

DOKUMENTATION

• Manual : gnu.org/software/gawk/manual/gawk.html • Tutorial I : tutorialspoint.com/awk/index.htm • Tutorial II : tldp.org/LDP/abs/html/sedawk.html


<br>

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



<br>

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

$ alias ea='vim ~/.bash_aliases && source ~/.bash_aliases'

bash -c "sync; echo 3 > /proc/sys/vm/drop_caches"

$ cat /etc/passwd | cut -d: -f7 | sort | uniq -c | sort -nr $ cat /etc/shells $ curl wttr.in $ echo "It is now $(date +%T) on $(date +%A)" $ find -size +1G | less $ find -size +100M | less

find /home -user userxyz -size +1G

$ find . -name "*.jpg" -exec convert {} -scale 50% +repage {} ; $ find ~ -maxdepth 1 -type f -exec grep "^alias " '{}' ; -print $ find ~ -maxdepth 1 -type f -mtime 3 $ find ~ -maxdepth 1 -type f -exec grep "^alias " '{}' ; -print

find / -uid 1000 -exec chown -v 1002:1002 {} ;

find / -user userxyz -type f -exec rm -f {} ;

$ find /etc -type f -print 2> /dev/null | less $ find /etc/*tab -type f -print

find /home -user userxyz -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 /mnt/ram; mount -t tmpfs tmpfs /mnt/ram -o size=8192M

$ mkdir -p dummy/{1..100}/{1..100} $ mpg123 -zvC /home/user/music/* $ ranger ~/.local/share/Trash/ $ sudo -H pip install --upgrade youtube-dl $ watch -d -n 5 ls -l $ watch free -h $ watch mail :wq


<br>

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


<br>

020 • VIM-DOCUMENTATION


SOURCES

• Homepage - vim.org • Reference - vimhelp.org/quickref.txt.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 • 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 • TutorialsPoint - tutorialspoint.com/vim/index.htm

MODES

• Normal Mode • Insert Mode i, a, c • Visual Mode v, 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

ABBREVIATIONS

:iab psvm public static void main(String[] args) {}ko :iab sysout System.out.println("");2hi :iab ii ^v : deaktivate ab


<br>

019 • PYTHON


apt-get install python3 python-pip spyder3 diveintopython3

$ pip install --pre -U spider $ python3 $ python -m SimpleHTTPServer

INSTALL ALTERNATIVE

$ python $ python --version

update-alternatives --list python

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2

update-alternatives --list python

$ python --version

CHANGE/DELETE ALTERNATIVE

update-alternatives --config python

update-alternatives --remove python /usr/bin/python2.7

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

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

SOURCES

• Homepage : python.org • Documentation : docs.python.org/3/ • CheatSheet : cheat.sh/python/:learn • IDE : Spyder3


<br>

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


<br>

017 • DEBIAN


Homepage : debian.org Download : debian.org/distrib/netinst#smallcd 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

• Installation Guide : debian.org/releases/stable/amd64/ • Release Notes : debian.org/releases/stable/amd64/release-notes/ • FAQ : debian.org/doc/manuals/debian-faq/ • 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


<br>

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 • ctrl ac $ atop • ctrl • ctrl ac $ df -hT

CONFIGURATION

vim /etc/screenrc

$ vim ~/.screenrc


<br>

015 • SHORTCUTS


DAILY USE

• +z fg bg jobs +u +k +w +.

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


<br>

014 • LINUX-FROM-SCRATCH (LFS)


SOURCES

• Homepage : linuxfromscratch.org/lfs/index.html • Download : linuxfromscratch.org/lfs/downloads/stable/ • Online-Book : linuxfromscratch.org/lfs/view/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/


<br>

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 timeshift timewarrior tripwire V - veracrypt* vim virtualbox vym W - w3m Y - youtube-dl


<br>

012 • BASHRC


$ vim ~/.bashrc

HISTCONTROL=ignoreboth:erasedups 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


<br>

011 • FUZZI FINDER


$ fzf -e --preview 'head -100 {}'


<br>

010 • CRYPTOCURRENCIES


$ curl rate.sx $ curl rate.sx/btc@3d $ curl rate.sx/steem@3d


<br>

009 • /ETC/FSTAB


blkid

vim /etc/fstab

#RAMDISK none /media/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=1024M 0 0


<br>

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 b='clear; curl rate.sx/btc@3d' alias b3='clear; curl rate.sx/btc@3d' alias b30='clear; curl rate.sx/btc@30d' 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 cdh='\cd; clear; echo; lsd -l; echo' alias cdp='clear; \cd ~/.phoenix; echo; lsd -l; echo' alias dir='dir --color=auto' alias e='clear; cd ~/Apps; ./eclipse &' 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/user/.exclude.txt" /home/user/ /media/' alias s='clear; curl rate.sx/steem@3d' alias s3='clear; curl rate.sx/steem@3d' alias s30='clear; curl rate.sx/steem@30d' 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' :wq

$ . ~/.bashrc


<br>

007 • RAM-DISK PERMANENT


mkdir -p /media/ramdisk

vim /etc/fstab

none /media/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=1024M 0 0

mount -a

$ mount | column -t


<br>

006 • RAM-DISK TEMPORARY


mkdir -p /media/ramdisk

$ mount | column -t

mount -t tmpfs -o size=1024M tmpfs /media/ramdisk

mount -a

$ mount | column -t


<br>

005 • SOURCES.LIST FOR DEBIAN-STRETCH


• # 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


<br>

004 • SYSTEM UPDATE AND UPGRADE


alias u='clear; sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade; sudo apt-get autoremove -yy'


<br>

003 • DCONF-EDITOR


apt install dconf-editor && apt show dconf-editor

• /org/gnome/terminal/legacy/default-show-menubar


<br>

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|


<br>

001 • VIM-MODE in BASH


$ vim ~/.bashrc

set -o vi bind -m vi-insert "\C-l" # clear-screen :wq ```

Comments · 2

  • @steemengineteam(69)· 2685d

    Hello wglenz,

    @SteemEngineTeam would like to take the time to thank you for signing up and participating in our community. Your contributions and support are important to us and we hope you will continue to use our platform.

    We plan to give back to our community members, so have an upvote on us!

    Thank you.

  • @steemitboard(66)· 2685d

    Congratulations @wglenz! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

    You published a post every day of the week

    You can view your badges on your Steem Board and compare to others on the Steem Ranking If you no longer want to receive notifications, reply to this comment with the word STOP

    To support your work, I also upvoted your post!

    You can upvote this notification to help all Steem users. Learn how here!