Command Window / Terminal Gebruik

Op deze pagina vindt je info over Command Window / Terminal Gebruik
Het raampje is de terminal, je typt er je commando's in, de output daarvan komt weer in de terminal terug.
Het programma dat dit allemaal doet, heet shell.
Daar zijn er verschillende van.  De Linux standaard shell is bash. Mijn favoriet is ksh. Je ziet, ze eindigen beide op sh.
Heb je er geen mening over : niets veranderen en gewoon bash gaan gebruiken.

Ik zelf heb dus ksh geinstalleerd.
Die is nog ! completer dan bash.
Ik ben in de 90-er jaren op unix thuisgeraakt in de ksh.
Eerder gebruikte ik in Linux de Public Domain Korn shell (pdksh).
Inmiddels is de enige echte ksh ook in Linux beschikbaar,

Zie ook de sub pagina's
(onderaan, waaronder de Boodschappen Optellen - Oneliner)

Je kunt tegenwoordig, met een Linux versie als Ubuntu en Mint, zo'n beetje alles doen wat je wilt, zonder de terminal te gebruiken.

Als je echter snel wilt werken, configuraties wil veranderen, of software wilt installeren, is de commando lijn vaak de meest effectieve manier.

Veel mensen zijn wat bang van de command line, omdat ze gewend zijn aan een grafische gebruikers interface, maar met wat oefening zal het snel makkelijker worden. Zeker de moeite waard om in de vingers te krijgen.

Het enige wat je echt in gedachten moet houden, is dat je het in het begin al lerend langzaam aandoet, en oefent wat je geleerd hebt. Probeer niet alles tegelijkertijd te onthouden, gebruik wat je weet, en leer meer als het nodig is... 
En houdt een tekst file bij met je opgedane kennis. Noteer daar doorlopend je opgedane wijsheid.

Het leren werken met de terminal begint met :
  • lezen
  • afkijken
  • de linux site computertip doorwerken om je pc verder in en af te richten

Een goede plek om beginnen met kennis op te doen over het gebruik van de Linux Terminal is
https://nl.wikipedia.org/wiki/Bash, met daarop oa de uitleg :
"Vanwege de rijke syntaxismogelijkheden van bash is het ook mogelijk in bash ingewikkelde opdrachtregels uit te voeren. Deze opdrachten kunnen worden opgeslagen in afzonderlijke bestanden (meestal omwille van hun lengte) en vormen dan scripts."

Linux Quick Reference Guide (pdf)

Zie ook de LinuxZOB pagina Scripts

Terminal werk met systeem beheers rechten


in de terminal, op de commandline kun je ook als gebruiker root van alles doen
Vooral werken met de commandos die voor gewone gebruikers niet beschikbaar zijn,
of voor akties, waar een gewone gebruiker geen rechten voor heeft.

De betreffende commando's ontdek je vanzelf. Bij geen rechten wordt dat nl altijd gemeld.

De basis manier om dan zo een commando toch te kunnen gebruiken is (voor Ubuntu en Mint) het commando laten beginnen met
sudo of gksudo.
het verschil tussen deze twee is me even niet duidelijk : ????
In de Linux site compertip  wordt altijd aangegeven welke je nodig hebt.


Je kunt in de shell ook als user root inloggen, met oa de commando's als
sudo -s
en/of
su - root
paswoord ingeven en alles wat je nu doet, doe je met root rechten.
Handig. En link. Oppassen dus.

Ik heb mint 18 wederom geinstalleerd, met als eerste gebruiker "Linux Admin" met als account linuxadmin. Na de installatie heb ik user hans plus de rest erbij gemaakt. User hans heeft dus geen extra rechten, zoals ubuntu en mint dat standaard doen met de eerst aangemaakte user. Mij met mijn unix solaris systeembeheer ervaring een doorn in het oog.
Daarnaast heb ik user root wakker gemaakt door in de terminal in te typen : # sudo su. Zelfde paswoord ingegeven gebruiker linuxadmin (das handig te onthouden >:-)
In de (gnome !) terminal heb ik een profiel aangemaakt voor user Root. Als aangepaste opdracht heb ik daar staan : su -. En het kleuren schema op "zwart op geel" gezet = de root default kleuren.
In de (gnome !) terminal heb ik een profiel aangemaakt voor user Hans. Als aangepaste opdracht heb ik daar staan : ksh -l. En gele letters op een donker blauwe achtergrond. Veel mooier dan dat zwarte gat >;-)





Terminal Handleiding



In Linux Mint is het terminal programma : gnome-terminal
dus de handleiding ervan vraag je op met
man gnome-terminal

in de terminal draait een shell programma. Standaard is dat dus /bin/sh
dus de handleiding ervan vraag je op met
man sh
of
man bash

of als je, zoals ik, de Kornshell draait :
man ksh

Internet

zoek op linux met "terminal, shell, bash, command line, cli", etc
zoek op nederlands en van het jongste jaar
en vermeld hier de gevonden links met relevante en bruikbare pagina's,

https://community.linuxmint.com/tutorial/view/244
LinuxCommand.org/
Penguin Tutor Linux - Command Basics Reference
http://www.gnu.org/software/bash/manual/bashref.html
Wikipedia : Bash

https://wiki.archlinux.org/index.php/Command-line_shell

http://www.linux.com/learn/tutorials/842251-must-know-linux-commands-for-new-users
http://linux.pindanet.be/cursus2/scripts.html
http://www.thegeekstuff.com/bash-101-hacks-ebook/
http://nl.flossmanuals.net/linux
http://en.flossmanuals.net/command-line/sed/
http://www.gnu.org/software/sed/manual/sed.txt

Unix, Linux, and variants
http://www.shellhacks.com/en/Printing-Specific-Columns-Fields-in-Bash-using-AWK
http://www.commandlinefu.com/commands/browse/sort-by-votes
http://www.commandlinefu.com/commands/view/1497/using-awk-to-sumcount-a-column-of-numbers.
http://en.flossmanuals.net/command-line/sed/
http://www.howtogeek.com/t/linux/
http://www.howtogeek.com/125157/8-deadly-commands-you-should-never-run-on-linux/
http://www.shellhacks.com/en/Printing-Specific-Columns-Fields-in-Bash-using-AWK

http://stackoverflow.com/questions/16956810/finding-all-files-containing-a-text-string-on-linux

http://nl.flossmanuals.net/Linux/BasicTextEditors

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html
http://tldp.org/LDP/abs/html/comparison-ops.html

Fish Shell

http://unix.stackexchange.com/questions/163481/a-command-to-print-only-last-3-characters-of-a-string


Foto bewerken
jhead
imagemagick : convert en mogrify

http://www.imagemagick.org/script/convert.php
http://www.imagemagick.org/script/mogrify.php

Internet - Youtube

Unix Commands Tutorial for Beginners - 1
Intro to the Command Line - BASH Basics
The Most Important Thing You'll Learn in the Command Line - Nixie Pixel
5 Fun Commands in the CLI

Computer Tip

Op de Computertip - Linux Mint site wordt heel veel gebruik gemaakt van de terminal, met steeds de elementaire uitleg. Daaruit blijkt het belang van de terminal. Maar er wordt geen les gegeven in het gebruik van die terminal mogelijkheden.

LinuxZOB


###########################################

Aan de slag met de Terminal


Opstarten van de Terminal

In Linux Mint 17.2 zijn er meerdere mogelijkheden
  • vanuit het paneel : Terminal knop zit er standaard op
  • vanuit het menu : Menu - Hulpmiddelen - Terminalvenster
  • vanuit de bestandenbladeraar Nemo :
    • Klik op een map. Rechter muis knop : In Terminal openen

Basis instellingen voor de Terminal

Instellingen aanpassen : Bewerken - Profielvoorkeuren

Tab Algemeen
  • Verander de Profiel naam in iets wat je leuk vindt
  • Menu balk tonen standaard in nieuwe terminalvensters : aanzetten
Tab Titel en Opdracht
  • Verander BeginTitel in iets wat je leuk vindt, of maak m gelijk aan de Profielnaam (Tab algemeen)
Tab Kleuren
  • Verander de achtergrond bijvoorbeeld in blauw en de letterkleur in geel
  • In kleur ziet het er veel vriendelijker uit
Tab Achtergrond
  • Effen kleur : aan
  • Transparante achtergrond : uit
Tab Schuiven
  • Zet de schuifbalk aan de linkerkant

Terminal : Profielen

En dan kun je zo dus meerdere profielen maken
Een profiel voor jouzelf : blauwe achtergrond met gele tekst, of paarse achtergrond, met grijze tekst
Een profiel voor root : geel achtergrond met zwarte tekst

Toetsenbord

Menu - Voorkeuren - Toetsenbord
  • Kies een toetsenbord indeling, waarmee je alle tekens op je toetsen rechtstreeks met een toets aanslag in de terminal kunt intypen.
    • `1234567890-=
    • ~!@#$%^&*()_+
    • []
    • {}
    • ;'
    • :"
    • ,.
    • <>?
  • Voor de handliggende toetsenbord indelingen zijn :
    • Engels - VS met het euroteken op 5
    • Engels - VS (die met de dode toetsen)
  • De truuk is er een instellen en dan alle toetsen checken of ze doen wat erop staat


Terminal handigheid

  • Tekst kopieeren en in de terminal plakken
    • Selecteer ergens tekst met je linkermuisknop en plak die met de middelste muisknop in de terminal
  • Directory en bestandsnamen : auto completion
    • Druk de tab toets bij het intypen van een bestands- of directory naam. Als het ingetype begin uniek is in betreffende directory, wordt de rest automatisch aangevuld
  • Het hele scherm als terminal gebruiken ?
  • Linux heeft ook wat 'virtual terminals' beschikbaar die op een alternatief scherm kunnen draaien.
    • Je kunt daarheen springen met Ctrl+Alt+F1 tot en met Ctrl+Alt+F6
    • Wil je terug naar de grafische interface, dan druk je Ctrl+Alt+F8.
    • Pas op met Ctrl+Alt+BackSpace :
      • Dit is de noodrem
        • Stopt je windowmanager met alle lopende programma's
        • waarna het inlog scherm weer opkomt ...
Auto Completion voorbeeld oefening :
  • cd /home/jijzelf/Documenten/linux
  • oftewel : Type in cd /home/jijzelf/Doc en druk dan de TAB toets !Als Doc dan uniek is in zijn directory, dan wordt de naam vanzelf gecompleteerd naar Documenten. Type dan /l en weer de TAB toets, waarna verlengd wordt naar "linux". Als die met de l tenminste unique in deze map is ...


En nou aan het werk met dat ding !

Terminal werk : Informatie opvragen

Eerst deze maar eens :
whoami
pwd
date
file *

allerlei variabelen die beschikbaar zijn in de terminal komen te voorschijn met :
env
set
export

En van al die variabelen kun je dus op allerlei manieren dankbaar gebruik maken !

Calendar
  • cal
  • cal 04 1492
  • cal 11 2015
  • cal 2015
man ls
man man
man vrouw

ls -l; date; echo "ff wachtuhhh"; sleep 3; cal 12 2015; whoami; pwd; sleep 3; clear

Help informatie

man <linux commando>
man <linux commando> | less


Terminal : Tekst files lezen met cat, more or less

Tekstfiles lezen in de terminal, daar is het een en ander voor beschikbaar. Nogal !

cd /etc
cat passwd
    de hele tekst schuift over je scherm.
more  passwd
    met more blader je al spatie balk drukkend door de tekst tot het eind. Met q - enter sluit je m af
less passwd
    Less heeft allerlei commando's beschikbaar als letters. Probeer eerst de h van help.

probeer bovenstaande voorbeelden in plaats van met met /etc/passwd vooral ook met langere tekstfiles

de terminal commando's hebben ook allemaal een handleiding (manual) aan boord.
vraag die op met : man commando
bijvoorbeeld : man  cat

Met less een tekst file bekijken  :
    doe je in de terminal, met : less tekstfile
    kun je met de pijltjes omhoog en omlaag scrollen.
    met / kun je zoeken op een op te geven zoekwoord. Met n kun je dat herhalen.
    less kun je afsluiten met q.
    de less manual komt ook tevoorschijn als je een manual opvraagt van een terminal commando,
    zoals : man cat, en dan met h (gewoon intypen dat ding) de help opvraagt ... Zo mooi, mn Linux

Nog meer voorbeelden :
man ifconfig | more
man ifconfig | less

cat /etc/adduser.conf | less

aantal regels tellen :
cat /etc/adduser.conf | wc -l




Terminal : Navigeren door directories

Door bestanden en directories/mappen bladeren kun je natuurlijk ook met tools zoals Nemo (de standaard bestandenbladeraar in Mint) en Gnome-Commander (zelf installeren)

In Nemo klik je op een map, en dan zit er onder rechtermuis knop de optie : "In Terminal openen" !!! Handig !!!

In Gnome Commander kun je in een de ene map (het ene raam) bestanden selecteren en ze vandaaruit naar een andere map (in het andere raam) copieeren of verplaatsen. Handig is de optie om beide mappen met elkaar te kunnen vergelijken (shift F2, in het menu Markering), waarna de betreffende bestanden geselecteerd worden. Zodat je er jou gewenste opdracht op kunt loslaten.

En dan heb je ook de mogelijkheid om dit in de Terminal te doen.
Waarom zou je ?
Leer eerst maar eens hoe het werkt, het waarom inzicht komt dan vanzelf

Bestand systeem verkennen

pwd
cd ~ : gaat naar /home/jijzelf
cd .. : gaat een map niveau omhoog
cd / : gaat naar /
cd - " gaat naar de vorige map
cd /home/jijzelf/Documenten/linux : Inderdaad. daarheen !

Bestanden kijken in de huidige map

ls -l
ls -1
ls -a
ls -lR
ls -alR

Werken met bestanden

cp
mv
rm
\rm (deze gooit alles direct weg. Pas er mee op.)
mkdir
rmdir

Let op : Linux maakt gebruik van verborgen bestanden en directories. Ze beginnen met een ... punt !
ls -l
ls -la
ls -a

In Nemo en andere tools kun je het zien daarvan ook aan/uitzetten.

Terminal : werken met bestanden
Hieronder voorbeelden van wat je op de command line kunt doen (veel !) :

# zet alle rechten op standaard 755 en 644, in huidige directorie en alles er onder
# d = directory
# f = files
# . = huidige dir

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

# zet alles dicht met 700 en 600
find . -type d -exec chmod 700 {} \;
find . -type f -exec chmod 600 {} \;


Maak een directory struktuur multilevel, in een keer
mkdir -p /home/jijzelf/linux/handboek

zet wat bestanden in map /home/jijzelf/linux/handboek
touch file_1.txt file_2.txt file_3.txt

for i in 1 2 3 4 5; do touch /home/jijzelf/linux/handboek/file$i.txt; done
for i in 1 2 3 4 5; do touch /home/jijzelf/linux/handboek/bestandje_$i.txt; done

clear; cd /home/jijzelf//linux/handboek; ls -l; sleep 3; clear;cd;pwd;whoami

CD/DVD speler openen : eject

Terminal : Eigen commando's samenstellen

Een eigen gemaakt terminal commando heet : alias

Hier een hele leuke
alias -x kijkmijnmap='clear; cd ~; whoami; pwd; date; cal'

Hier een setje prettig bruikbare :
###################################################################################

alias f="ls -lF"
alias c="clear"
alias cf="clear; ls -lF"
alias d="ls -l | grep '^d'"
alias fd="ls -lF"
alias lsd="ls -ltcr"
alias lsdr="ls -ltc"
alias lsn="ls -lF | sort +8 -9"
alias lsnr="ls -lF | sort -r +8 -9"
alias lsp="ls -lF | sort +0 -1"
alias lspr="ls -lF | sort -r +0 -1"
alias lss="ls -lF | sort +4 -5 -n"
alias lssr="ls -lF | sort -r +4 -5 -n -r"

###################################################################################

Terminal : Editor openen

Editors zijn tooltjes om met tekst files te werken
zoals leafpad, gedit en geany

Een tekst bestand openen in een van deze editors doe je zo:

leafpad mijntekst_1.txt &
gedit mijntekst_2.txt &
geany mijntekst_3.txt &

Als het bestand nog niet bestaat, dan wordt ie aangemaakt.

de & mag. Met & krijg je je prompt terug. Zonder blijft de terminal bezet door het opgestarte programma.

In Linux (Mint / Ubuntu) kun je ook als systeem beheerder root een tekst file opstarten.
Daarvoor start je de editor op zoals hierboven, voorafgegaan door het commando sudo

sudo gedit mijntekst_2.txt

Terminal : Systeem Inventarisatie

Zie ook Systeem Info

Om te beginnen  aantal commando's die info verschaffen :

uname -a

info
info -h
info <linux commando>, bijvoorbeeld : info mount

inxi -Fzx
free
date

mount
fdisk -l

set
env

Netwerk configuratie :
clear; ifconfig; route -n

Beschikbare partities en netwerklocaties (inclusief je nas en usbsticks etc) :
clear; mount | grep sd[abcdefghijklm]| sort

Software inventariseren :
dpkg --get-selections > ~/installedsoftware.txt; cd; pwd; ls -l installed*txt; sleep 2; less installedsoftware.txt
Zie elders meer uitleg over less

Terminal : Software installeren

apt-get install programmanaam
Zie verder bij Software Info

Terminal : Software beheren


apt-get -f install # correct broken dependencies

Terminal werk info

Hiermee krijg je een lijst van al je zojuist gebruikte commando's :
fc -l

Wil je een commando nog eens doen
r <nummertje uit de listing van fc -l>

Terminal : /etc/passwd bekijken

Gevonden op http://kremvax.net/howto/passwd-munge.html
Sorteer /etc/passwd op de 4e column
cat /etc/passwd | sort -g -t : -k 4

Zoek alleen de reguliere users
clear; cat /etc/passwd | sort -g -t : -k 4 | grep bin | egrep -v '65534|false|nologin|var'

Met Awk,grep en sed

Awk : met kolommen tekst werken
Grep : zoeken op regels met opgegeven zoekwoorden
Sed : zoek en vervang

Print all columns.
$ awk -F: '{print $0}' /etc/passwd

Print the 3rd column.
$ awk -F: '{print $3}' /etc/passwd

Print the 1st and the 3rd columns.
$ awk -F: '{print $1 $3}' /etc/passwd

Print de eerste 5 kolommen keurig opgemaakt
awk -F: '{ printf "%-19s %-3s %-7s %-7s %-19s\n", $1, $2, $3, $4, $5}' /etc/passwd

# Doe een zoek en vervang van alle gevonden zoekwoorden (wat) voor  "anders"
sed -i 's/wat/anders/g' /home/jijzelf/jouwtekst.txt
Met daarin :
     $ echo "James Bond" | sed -E 's/(.*) (.*)/The name is \2, \1 \2./'
     The name is Bond, James Bond.


Tekst schrijven en wijzigen op de command line

Met vi
Ter info : Vi is voor gevorderden. Het kan allemaal ook zonder. Kijk maar ff verder

Toch met vi aan de gang. Proficiat. Volhouden en je leert het.
Zie vooraan deze pagina de internet info links onderj "Vi / Vim Command Line Editor"
Handig om er bij te hebben en te houden is de

Vi Quick Reference Guide

Voorbeeld 1

Maak een tekstfiletje met je eigen verhaal
uitleg volgt

Voorbeeld 2

Verander in /etc/defaults/grub de 10 seconden in 600
uitleg volgt


Configuratie files aanpassen

Dat kun je dus doen met vi. Maar dat is een mooie uitdaging voor gevorderden.
Een alternatief is dat wat op Computertip ook steeds weer gedaan wordt : een teksteditoortje opstarten vanuit de terminal
Leafpad is de voorkeur van Computertip, maar waarom zou je als er al een standaard in Linux Mint aan boord is : gedit

Hoe je dat weet ?
Ga naar het Mint Menu - Hulpmiddelen - Teksteditor.
Kijk in de help - info hoe dat progje heet !? : gedit

Dus, in de terminal type je in
gedit mijntekstje.txt

En je kunt mijntekstje.txt voltypen en saven.

En nou wil je in /etc/default/grub de 10 seconden veranderen in 600 (dat is 10 minuten >;-)
BIj opstarten van Mint blijft dan de bootloader 590 seconden langer wachten totdat de default OS opgestart wordt

Doe eerst eens
cat /etc/default/grub

deze config file komt in beeld ? Nee ? Dan zoek het maar uit. Foutje ergens. Wel goed ?
gedit /etc/default/grub

Bestand gedit /etc/default/grub komt in de gedit, maar let op : "Alleen lezen" staat er boven aan !
Je moet admin rechten hebben om dit bestandje te mogen wijzigen.
Sluit gedit af en probeer het nog eens met

sudo gedit /etc/default/grub
hier het juiste !!! paswoord in geven.
Dan de regel
GRUB_TIMEOUT=10
veranderen in
GRUB_TIMEOUT=600
en het ding opslaan en afsluiten


Nog een variatie hierop :
start gedit alsvolgt :
gedit mijntekstje.txt &

door de & krijg je je prompt terug, waarna je zowel in gedit als op de terminal verder kunt met werken

Terminal info opslaan

De output van een commando kun je wegschrijven naar een tekstfile :
ls -l > dirlijst.txt

als de file al bestaat wordt die zonder pardon overschreven

als de file al bestaat kun je er tekst aan toevoegen
ls -l >> dirlijst.txt

In voorkomende gevallen wil je de output en op het scherm, en wegschrijven naar bestand.

Hiermee komt de output van ls -l en op het scherm, en in de tekstfile dirlijst.txt
ls -l | tee dirlijst.txt

Idem, maar dan wordt de output toegevoegd (onderaan) aan de tekstfile dirlijst.txt
ls -l | tee -a dirlijst.txt




En dat dit nog

Kijk ook eens op Linux Humor

Terminal : ook leuk
In de terminal intypen :
  • ddate
  • apt-get moo
  • sl (installeer het programmaatje sl, als dat nog niet werkt)
  • telnet towel.blinkenlights.nl\




Kladblok

Hieronder staat nog teen en tander wat ergens een plekkie moet krijgen

In de terminal lopende programma's stoppen met : CTRL D
(probeer altijd eerst CTRL D, niet met C / als CTRL C niet werkt)






found on http://www.commandlinefu.com/commands/browse/sort-by-votes
<space>command

'ALT +'

reset



BASH

https://www.youtube.com/watch?annotation_id=annotation_173586791&feature=iv&src_vid=q7-aEspwwEI&v=x73WTEltyHU

s -R | grep ";$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--g' -e 's/^//' -e 's/-/|/'

pwd

halt

Subpagina''s (1): Boodschappen Optellen
Comments