scrobble.life
#linux

LINUXOPOLIS #40 • USERS

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 • eclipse  							
025 • java								
024 • awk
019 • python			

ADMINISTRATION

047 • users										// new
046 • youtube-dl									
045 • languages						
044 • raspberry pi					
043 • fish											
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						

#047

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 ``` ``` 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

CONFIGURATION

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

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

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


<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

No comments yet — be the first.