maandag 2 november 2009

colors in bash

http://www.systhread.net/texts/200703bashish.php

  Kleuren met Linux terminals
Thorbjørn Ravn Andersen, ravn@dit.ou.dk
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org
v1.4, 7 augustus 1997

De meeste Linux distributies hebben een 'ls' opdracht voor het
weergeven van de inhoud van een directory. Hiermee kan de uitvoer
visueel worden versterkt door van verschillende kleuren gebruik te
maken, maar het configureren om 't uit te proberen zou weleens niet
zo'n alledaagse taak kunnen zijn. Dit document legt de diverse
aspecten uit en de eerste stappen in het wijzigen van de setup door
het configureren van bestaande software. Het geeft de lokaties van
alternatieve software, die in het algemeen niet mee worden geleverd
met Slackware of RedHat en die met de meeste versies van Unix kunnen
worden gebruikt. De HTML versie is ook beschikbaar vanaf mijn eigen
bron op .
______________________________________________________________________

Inhoudsopgave


1. Introductie

2. Snelle start voor de ongeduldigen

3. Heb ik het allemaal?

4. Uit welke kleuren kun je kiezen?

5. Hoe kleuren te configureren met ls

6. Hoe de standaard wit-op-zwart tekstmode te wijzigen

6.1 Xterm
6.2 Virtuele console
6.2.1 /etc/issue
6.2.2 /etc/profile of .profile
6.2.3 /etc/login of .login
6.3 Remote login

7. Software



______________________________________________________________________

1. Introductie

In de afgelopen jaren zijn kleurenschermen zeer gewoon geworden, en
gebruikers beginnen dit uit te buiten door programma's te gebruiken
die kleuren aanwenden om een snelle visuele terugkoppeling te geven op
b.v. gereserveerde sleutelwoorden in programmeertalen, of directe
kennisgeving van onjuist gespelde woorden.

Aangezien de Linux tekstconsole kleur ondersteunt, werd de GNU ls snel
gewijzigd om kleurenuitvoer te ondersteunen en werd dit aan Slackware
rond versie 2.0 toegevoegd. Verbeterde versies van deze patches zijn
nu verhuisd naar de standaard GNU-distributie van ls, en zouden daarom
nu onderhand onderdeel van alle nieuwe Linux-distributies moeten zijn.

Deze revisie is een update van een belangrijk herschrijven van de
initiële release, inclusief informatie over xterms en het patchen van
de kernel.

De informatie in dit document is bevestigd voor Redhat 4.1, en is van
origine gecompileerd met de 2.0.2 release van Slackware, en de 1.1.54
kernel. De informatie over de kernel-patch werd verkregen met
slackware 2.2.0 met de 1.2.13 kernel, met tcsh als de standaard-shell,
en later bevestigd met een 2.0.27 kernel. Als je een andere
configuratie of unix versie gebruikt, zou ik een notitie met
vermelding van je besturingssysteem en versie, en of
kleurenondersteuning standaard wordt ondersteund, waarderen.

2. Snelle start voor de ongeduldigen

Wijzig de volgende bestanden in je home-directory, als je een nieuwe
Linux-distributie hebt. Ze hebben na de volgende login effect.



~/.bashrc:
alias ls="ls --color"

~/.cshrc:
alias ls 'ls --color'





Dat is het!

Het kan zijn dat je ook een ``eval `dircolors $HOME/.colourrc`'' wilt
doen, om je eigen kleuren te krijgen. Dit bestand is aangemaakt met
``dircolors -p >$HOME/.colourrc'' en is rijk van commentaar voorzien
voor verdere wijziging.

3. Heb ik het allemaal?

Als eerste moet je weten of je een ls versie hebt die weet hoe het op
de juiste wijze kleuren toe moet kennen. Probeer de volgende opdracht
in een Linux tekstconsole (alhoewel ook een xterm voldoet):



% ls --color




(de % is een shell-prompt):

Als je een foutmelding krijgt die aangeeft dat ls de optie niet
begrijpt, zul je een nieuwe versie van het GNU fileutils package
moeten installeren. Als je geen geschikt upgrade package voor je
distributie hebt, dan kun je de laatste versie gewoon bij je GNU
mirror ophalen en deze direct van de bron installeren.

Als je geen foutmelding krijgt, heb je een ls die de opdracht
begrijpt. Helaas bevatten een aantal van de eerdere versies, waaronder
de bij Slackware (en mogelijk anderen) geleverde versies, fouten. De
ls geleverd bij Redhat 4.1 is versie 3.13 en deze is okay.



% ls --version
ls - GNU fileutils-3.13





Als je de opdracht ``ls -- color'' onder Linux op een op tekst
gebaseerde console uitvoerde, zou de uitvoer van kleuren moeten zijn
voorzien, overeenkomstig de standaardwaarden op het systeem, en kun je
nu beslissen of er iets is dat je wilt veranderen.

Als je het in een xterm uitvoerde, kan het zijn dat je wel of geen
kleurwijzigingen zag. Net als met ls zelf, gaf het originele xterm-
programma geen enkele ondersteuning voor kleur voor de programma's die
daaronder draaide, maar recente versies doen dit wel. Als je xterm
geen kleuren ondersteunt, zou je een nieuwe versie zoals beschreven
aan het einde van dit document, op moeten halen. Schakel in de
tussentijd gewoon naar tekstmode en ga van daaruit verder.

4. Uit welke kleuren kun je kiezen?

Dit shell-script (met dank aan de velen die me bash versies
opstuurden) toont alle standaard kleurencombinaties op de huidige
console. Als er geen kleuren tevoorschijn komen, ondersteunt je
console geen ANSI kleuren selecties.



#!/bin/bash
# Toon ANSI kleuren.
#
esc="\033["
echo -n " _ _ _ _ _40 _ _ _ 41_ _ _ _42 _ _ _ 43"
echo "_ _ _ 44_ _ _ _45 _ _ _ 46_ _ _ _47 _"
for fore in 30 31 32 33 34 35 36 37; do
line1="$fore "
line2=" "
for back in 40 41 42 43 44 45 46 47; do
line1="${line1}${esc}${back};${fore}m Normal ${esc}0m"
line2="${line2}${esc}${back};${fore};1m Bold ${esc}0m"
done
echo -e "$line1\n$line2"
done




Het nummer van de voorgrondkleur wordt links getoond, en het nummer
van de achtergrond in de omlijning. Als je benadrukte tekens wilt,
voeg je een "1" toe aan de parameters, dus helder blauw op wit is dan
"37;44;1". De hele ANSI selectie reeks is dan

ESC [ 3 7 ; 4 4 ; 1 m



Opmerking: De achtergrond kan thans niet benadrukt zijn, dus je kunt
geel alleen als voorgrondkleur hebben. (benadrukt bruin). Dit is een
beperking van de hardware.


De kleuren zijn:
0 - zwart 4 - blauw 3# is voorgrond
1 - rood 5 - magenta 4# is achtergrond
2 - groen 6 - cyan
3 - geel 7 - wit ;1 is benadrukt






5. Hoe kleuren te configureren met ls


Als je de in ls ingebouwde standaardkleurenset wilt wijzigen, heb je
een persoonlijke kopie ervan in je home-directory nodig, die je kunt
krijgen met


cd ; dircolors -p > .coloursrc




Na het wijzigen van dit goed-becommentarieerde bestand zul je het in
de omgevingsstring LS_COLORS moeten laten lezen, wat gewoonlijk wordt
bewerkstelligd met


eval `dircolors .colourrc`




Je moet deze regel in je .bashrc/.cshrc/.tcshrc (afhankelijk van je
shell) plaatsen, om dit bij iedere login te laten doen. Zie de
dircolors(1) manual page voor details.

6. Hoe de standaard wit-op-zwart tekstmode te wijzigen

Je zult de terminal driver code moeten laten weten dat je een andere
standaard wilt. Er bestaat geen standaard manier waarop je dit kunt
doen, maar onder Linux heb je het setterm programma.

"setterm" gebruikt de informatie in de terminal database om de
kenmerken in te stellen. Selecties maak je bijvoorbeeld als volgt


setterm -foreground black -background white -store




waar "-store" naast de feitelijke wijzigingen ervoor zorgt dat het ook
de standaard wordt voor de huidige console. Dit vereist dat de
huidige terminal (TERM omgevingsvariabele) "goed genoeg" is beschreven
in de termcap database. Als setterm om wat voor reden dan ook niet
werkt, zijn hier een aantal alternatieven:

6.1. Xterm

Eén van deze xterms zou beschikbaar moeten zijn en tenminste één
daarvan ondersteunt kleur.



xterm -fg white -bg blue4
color_xterm -fg white -bg blue4
color-xterm -fg white -bg blue4
nxterm -fg white -bg blue4




waar 'color_xterm' de kleurenversie van 'ls' ondersteund. Deze
bepaalde keuze lijkt op de kleuren die op een SGI worden gebruikt.

6.2. Virtuele console

Je kunt de kernel voor eens en voor altijd wijzigen, als ook in een
runtime standaard voorzien voor de virtuele consoles met een escape
sequence. Ik raad je de kernelpatch aan als je je eigen kernel hebt
gecompileerd.

Het kernel bronbestand is /usr/src/linux/drivers/char/console.c zo
ongeveer bij regel 1940 zou je het volgende moeten wijzigen



def_color = 0x07; /* white */
ulcolor = 0x0f; /* bold white */
halfcolor = 0x08; /* grey */




Ik gebruik wit op blauw met


def_color = 0x17; /* white */
ulcolor = 0x1f; /* bold white */
halfcolor = 0x18; /* grey */




De nummers zijn de attribuutcodes die door de videokaart in
hexadecimaal worden gebruikt: het meest significante cijfer (de "1" in
de voorbeeldkleuren hierboven) is de achtergrond; het minst
significant de voorgrond. 0 = black, 1 = blue, 2 = green, 3 = cyan, 4
= red, 5 = purple, 6 = bruin/geel, 7 = wit. Voeg 8 toe om "heldere"
kleuren te krijgen. Merk op dat in de meeste gevallen een heldere
achtergrond == knipperende tekens, matte achtergrond. (Van
sjlam1@mda023.cc.monash.edu.au
).

Je kunt ook een nieuwe run-time standaard voor een virtueel console
aanvullen, op een per-display basis met de niet-standaard ANSI
sequence (gevonden door het bladeren door de kernelbronnen)


ESC [ 8 ]




waarmee de standaardwaarden op de huidige voor- en achtergrondkleuren
wordt ingesteld. Vervolgens selecteert de Reset Attribuut string (ESC
[ m) deze kleuren in plaats van wit op zwart.

Je zult in feite, iedere keer dat je reboot, deze string naar de
console moeten echoën. Afhankelijk van waar je je Linux box voor
gebruikt, kunnen verscheidene plaatsen hier geschikt voor zijn:

6.2.1. /etc/issue

Dit is waar "Welcome to Linux xx.yy" onder Slackware wordt getoond, en
het is een goede keuze voor een stand-alone uitrusting. (en
waarschijnlijk verderfelijk voor gebruikers die met telnet inloggen)
Dit bestand wordt tijdens het booten aangemaakt (Slackware in
/etc/rc.d/rc.S; Redhat in /etc/rc.d/rc.local), en je zou de regels
moeten wijzigen waarin zoiets staat als

echo ""> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue




in


ESCAPE=""
echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue




Deze code zal de cursor linksboven op het scherm plaatsen, de kleur
instellen (hier wit op blauw), deze selectie opslaan en de rest van
het scherm wissen. De wijziging heeft na de volgende opstart effect.
Denk eraan de _literal_ escape-teken in het bestand in te voegen met
C-q in emacs of control-v in vi, aangezien sh, die voor het uitvoeren
van het script wordt gebruikt, de /033 syntax blijkbaar niet begrijpt.

6.2.2. /etc/profile of .profile



if [ "$TERM" = "console" ]; then
echo "\033[37;44m\033[8]" #
# of gebruik setterm.
setterm -foreground white -background blue -store
fi




6.2.3. /etc/login of .login



if ( "$TERM" == "console" ) then
echo "\033[37;44m\033[8]"
# of gebruik setterm.
setterm -foreground white -background blue -store
endif




6.3. Remote login

Je zou het programma setterm zoals hierboven moeten kunnen gebruiken.
Nogmaals, dit vereist dat de remote machine genoeg bekend is met je
terminal, en dat de terminal-emulator die in de login voorziet kleuren
ondersteunt.

In mijn ervaring zijn de beste vt100 emulaties die op dit moment voor
andere platformen beschikbaar zijn:

· MS-DOS: MS-Kermit (vrij, geen Microsoft product)

· Windows 95/NT: Kermit/95 (shareware)

· OS/2: Kermit/95 (shareware). Merk op dat de standaard
telnet kleuren begrijpt en lokaal kan worden aangepast.

Zie voor details over Kermit.

7. Software

Bij alle informatie die hier is beschreven werd uitgegaan van een
GNU/Linux installatie. Als je iets anders hebt (zoals b.v. een Sun
draaiende onder X of zo) kun je de feitelijke software zelf verkrijgen
en compileren.

De kleurenversie van 'xterm' is gebaseerd op de standaard xterm source
met een patch die vanaf elke X11R6 site beschikbaar is. Het gerucht
gaat dat de xterm gedistribueerd met R6.3 intern kleurenondersteuning
biedt, maar dat is niet door mij getest.



ftp://ftp.denet.dk/pub/X11/contrib/utilities/color-xterm-R6pl5-patch.gz




Zie de documentatie als je een oudere versie van X gebruikt.
Opmerking: Ik heb dit zelf niet uitgeprobeerd!

één van de verscheidene mirrors. Haal tenminste versie 3.13 op.


ftp://ftp.denet.dk/pub/gnu/fileutils-3.XX.tar.gz




Ik heb zelf color-ls succesvol gecompileerd op Solaris, SunOS en Irix.

Ik zou feedback over deze tekst waarderen. Mijn e-mailadres is
ravn@dit.ou.dk .

--

Thorbjørn Ravn Andersen


























donderdag 10 september 2009

VI editor

Buffers

There is a general purpose buffer, and 36 named buffers. Whenever a block of text is deleted (or yanked), it is placed in the general purpose buffer. Prefixing a delete or yank action with an apostrope followed by a letter or number places the text into the buffered with that letter or number as its name. For example, the following command yanks 3 words into buffer m:
'm3yw

VI Paradigm

Vi combines an action with a movement -- the action is performed on all lines or characters between the current cursor position and the destination cursor position. The general syntax is:
number   verb   target
where number defaults to one, verb defaults to move, and target is implied for some verbs.

The .vimrc file

Each time vi starts to run, it looks for a file in your home directory called .vimrc. If it finds this file, it will execute the instructions containined within it. Thus, you can place vi commands in this file to set preferences that you want to start with in each of your vi sessions. The following is the contents of a .vimrc file that I use.
:set ts=3
:fixdel
The first line sets tab spacing (ts) to 3. This causes vi to display tabs as 3 spaces rather than the common default 8 spaces. Remember, the contents of the file are not changed; only the manner in which a tab character is displayed is changed.

The second line allows the DEL key to work as expected on PC keyboards.

Some other settings that may be useful include the following:
:set noautoindent
:set nocindent
:hi Search NONE
The last line turns off color highlighting of strings located in searches. (Searches are done with the slash (/) character.

VIM Commands

Miscellaneous
DEL     cancel operation
ESC leave insert mode
^G display file statistics in bottom line
. repeat last change
:r f read file f, place after current line
~ change the case of a char
J join current line with next
^Vk used in insert mode to enter keystroke k
into the edit buffer
Commands inside insert mode
^U      erase to start of insert line
Searching
/abc    search forward for abc
/^abc search for occurrances of abc
only at the beginning of lines
/abc$ search for occurrances of abc
only at end of lines
?abc search backward for abc
n go to next occurrance in same direction
/ same as n, but for foward searching
N go to next occurrance in opposite direction
5G go to line 5
G go to eof
Substitute
s/abc/abcd/      substitue abc with abcd
%s/abc/abcd/g substitute abc with abcd
globally between 1,$
s/\.doc/\.txt/ substitue .doc with .txt
(you must escape special characters
used for regular expressions, such as ".")
File Commands
:w             write file
:w filename write over filename
:wq write and quite
ZZ same as :wq
:q! quit without writing
Delete (always places text in general buffer)

d) verwijderd alles tot begin file
d( tot einde alleen letter waar cursor staat niet
dw     del word (from current pos to end of word)
db del backwards (del previous word)
d4w del 4 words
dd del current line
3dd del 3 lines
'b3dd del 3 lines into buffer b
d^ del from current pos to beginning of line
d$ del from current pos to end of line
x del char
3x del 3 chars
cc del line and enter insert mode
dL del lines from current pos to end of file
d3L del lines from current pos to 3rd line from bottom
Copy (Yank)
y     same as d, but copies rahter than cuts
Paste (Note: paste is from general buffer unless otherwise specified)
p     paste after current pos
P paste before current pos
3p paste 3 copies
'kp paste from buffer k
'k3p paste 3 copies from buffer k
Insert
i  enter insert mode before cursor
a enter insert mode after cursor
A enter insert mode after end of current line
3i inserted text is replicated 3 times
o create new line below current line,
and enter insert mode
O create new line above current line,
and enter insert mode

Navigate

:5   go to line 5
5G go to line 5
G go to last line in document
L go to last line in screen
5L go to line 5 from bottom of screen
h left 1 char
3h left 3 chars
j down
k up
l right
^ beginning of line
$ end of line
% press % over an openning or closing bracket or
parenthesis in order to jump to its closing or
openning partner
^D scroll down one screen
^U scroll up one screen
^F go forward, like ^D, but overlap a few lines
^B go backward, like ^U, but overlap a few lines
`` return to previous pos in file
+ go to first non-white space of next line
- go to first non-white space of previous line
w beginning of next word
e end of word (if at end, then end of next word)
b back (go to beginning of previous word)

Replace

r  c  replace current char with c
3r c replace current char with 3 c's

Undo

u   undo previous change
3u undo last 3 changes
U undo changes made to current line
:e! undo all changes since last save

Indenting

>>            indent line one shift width
3>> indent 3 lines one shift width
:set sw=4 set shift width to 4
:syntax off turn off syntax recognition (and coloring)
:syntax on turn on syntax recognition

Settings

:set ai        set autoindent
:set noai unset autoindent
:set nu show line numbers

Customization

Place a list of vi commands -- such as the following -- into a file called .vimrc in your home directory. These commands will be run by vi when it starts.
:fixdel
:set ts=3
:set noautoindent
:set nocindent
:hi Search NONE
:filetype indent off
:filetype off

dinsdag 18 augustus 2009

Babylon zinnen

  1. Which of the following configuration files would be used to determine what port the FTP service uses?
  2. To establish the module dependencies
  3. , but in a staging area, you can
  4. Which command unloads a single unreferenced kernel module? (Choose the simplest answer.)
  5. Sandra wants to tune network parameters on the system and restrict access to local users while she is doing so
  6. Martin has just pleaded with your boss to be granted the ability to shut down his system
  7. What character(s) are used to denote the end of a possible command set in a case procedure

Wat ik moet weten over prompt aanpassen

  • Wat is BASH?
  • Wat is een Prompt?
  • Waarom een Prompt veranderen?
  • Waar is de Prompt opgeslagen?
  • De mogelijke opties
  • Aan de slag
  • Externe Commando’s gebruiken
  • Kleur gebruiken
  • Prompt permanent opslaan

Wat is BASH

BASH (Borne Again Shell) is een veel gebruikte shell (commandline) in Linux met een scala aan mogelijkheden. Veel mensen die de oudere Windows OS hebben gebruikt kunnen zich vast nog wel herinneren dat ze commando’s in DOS moesten typen. In het huidige Windows tijdperk wordt commando’s typen als irritant en te moeilijk ervaren. In Linux wordt het wel aangeraden, want het kan je veel werk en tijd besparen. Commando’s die je in je console typt zijn daadwerkelijk kleine programma’s die je leven makkelijker kunnen maken. Je kunt er specifieke taken mee laten uitvoeren, zelfs op je eigen aangegeven tijdstip. Je kunt commando’s ook met elkaar combineren zodat je een nog beter resultaat krijgt. De praktijk leert ons dat het een stuk sneller is dan in een grafische omgeving. Je kunt BASH op verschillende manieren starten,onder Linux kan je bijvoorbeeld CTR + ALT + F1 t/m F6 indrukken. Vervolgens inloggen en WHOLA. (Om weer terug te keren in de grafische omgeving druk je op CTR + ALT +F7 Dat werkt voor de meeste distributies)

Wat is een Prompt?

Ik heb er een tijdje over na zitten denken hoe ik een definitie van een Prompt kan geven. Het is iets moeilijker dat het lijkt. Ik zal het toch even proberen uit te leggen, eerst maar door middel van een definitie en vervolgens met een voorbeeld.

Een Prompt is de data die voor de cursor geprint kan worden in de Borne Again Shell. Deze data kan van alles bevatten zoals tijd, datum, directory, gebruikers, uptime etc.

Een Voorbeeld van een Prompt:
[accessko@unix /home] $

Waarom een Prompt veranderen?

Je zult misschien wel denken, waarom nou een Prompt veranderen?’ Zoals jullie misschien al weten is Linux een multi-user systeem, dat betekent dat er meerdere gebruikers (ook tegelijkertijd) op één systeem kunnen werken. Het is dan handig om bijvoorbeeld bepaalde gebruikers een kleur te geven zodat je weet met welke gebruiker je werkt, zo voorkom je misschien dat je de bestanden verwijderd die je niet wilde verwijderen. Persoonlijk gebruik ik een Prompt om de informatie die ik altijd beschikbaar wil hebben weer te geven.

Waar is de Prompt opgeslagen

De Prompt wordt opgeslagen in de zogenoemde $PS String, er zijn vier PS strings, $PS1, $PS2, $PS3, $PS4. Ik beperkt me tot de $PS1 String, daar gaan we mee werken, de andere PS Strings zijn voor de gevorderde gebruikers en bevatten ook andere data.

[accessko@unix] echo $PS1
[\u@\H]
[accessko@unix]

Door middel van echo commando wordt de $PS1 string geprint op het scherm. Deze Prompt bevat een aantal opties:

  • \u staat voor user (gebruiker)
  • \H staat voor hostname
  • De @ en [ ] zijn optioneel. Dit betekent dat je zelf de tekens mag kiezen die je graag in je Prompt terug ziet.

Jouw output bevat natuurlijk eigen data, zoals jouw gebruikersnaam, computernaam, datum, tijd etc.

De mogelijke opties

De Prompt heeft een aantal opties die je aan de $PS1 string kan meegeven. Ik zal ze niet allemaal behandelen. Voor het complete overzicht verwijs ik je naar de handleiding van BASH, toets in de Shell het volgende commando: $ man bash om de handleiding te kunnen lezen. Aantal opties die mogelijk zijn:

  • \d De datum “Weekdag, Maand, Dag” voorbeeld “Tue Feb 28″
  • \H De gebruikers naam.
  • \j Het aantal jobs in de huidige shell.
  • \l De basisnaam van de shell.
  • \n Nieuwe regel (Enter)
  • \t De huidige tijd in 24 uur HH:MM:SS formaat
  • \T De huidige tijd in 12 uur HH:MM:SS formaat
  • \u De gebruikersnaam van de huidige gebruiker.
  • \v Het versie nummer van BASH
  • \w De huidige werk directory
  • \W De basisnaam van de huidige werk directory
  • \! De geschiedenis van de commando’s
  • \# Het aantal keren dat de commando’s zijn gebruikt

Aan de slag.

We gaan hier voor het eerst de $PS1 string aanpassen. Ik zal hieronder een aantal voorbeelden laten zien hoe je dat doet.

[accessko@unix] PS1="\u#\H [\w] $ "
accessko#unix [/home] $

accessko#unix [/home] $ echo $PS1
\u#\H [\w] $
accessko#unix [/home] $

Zoals je ziet heb je de Prompt veranderd. We hebben de optie \w toegevoegd en de [ ] verplaatst. Ook hebben we de @ teken veranderd in # en een dollarteken $ toegevoegd.

accessko#unix [/home] $ PS1="[\t] [\d] \u@\H $ "
[22:45:31] [Tue Feb 28] accessko@unix $

Zoals je al ziet hebben we hier de tijd en datum toegevoegd. Ik zou zeggen probeer maar gewoon wat uit, wat voor jou het handigste lijkt. De $PS1 string is alleen aan deze sessie gekoppeld. Wanneer je de shell afsluit zal de default Prompt weergegeven worden. Om de Prompt permenent op te slaan zal je de bashrc script aan moeten aanpassen. Hoe je dat doet vertel ik je later.

Externe commando’s gebruiken

Je hoeft je niet beperken tot alleen de opties zoals \u, je kunt ook externe commando’s in je Prompt verwerken. Deze mogelijkheid opent veel deuren. zodat je niet beperkt hoeft te zijn in alleen de opties. Wel wil ik erbij vermelden dat je de commando’s goed moet uitzoeken. Sommige commando’s kunnen veel uitput printen en je zou niet willen dat jouw Prompt tien of meer regels bevat. Kies daarom de commando’s met zorg uit, juist diegene die zich beperken tot een kleine hoeveelheid tekens. Een externe commando roep je met een dollar $ teken op. Een voorbeeld:

accessko@unix [/home] $ PS1=="[\$ (date +%H%M)] \u@\H [\w]: $
[12:00] accessko@unix [/home]: $
[12:01] accessko@unix [/home]: $

Wat we hier gedaan hebben is een tijd toegevoegd door middel van date commando. Date commando hebben we beperkt tot (%H) uren en (%M) minuten. Het commando ziet er als volgt uit:
\$ (date +%H%M)
De backslash (\) voor de $ teken betekent dat het commando elke keer opnieuw wordt uitgevoerd. Zonder deze backslash zou je de hele sessie dezelfde tijd geprint krijgen. Nog een voorbeeld:

accessko@unix [/home] $ PS1="\$(echo "Tijd") \$(date +%H:%M) \u@\H [\w]$ "
Tijd 16:41 accessko@unix:[/home]$

In dit voorbeeld heb ik twee commando’s gebruikt. (Je ziet ook twee maal \$ teken) Het eerste commando echo print het woord “Tijd” op het scherm. Het tweede commando date zag je al in het eerste voorbeeld, deze print het (16:41) op het scherm.

Kleur Gebruiken


Zoals ik al eerder vermelde is het mogelijk om in de Prompt verschillende kleuren te gebruiken. Het is mogelijk om de tekstkleur te veranderen maar ook de achtergrondkleur. Het is wat het beste bij jou past. De kleuren worden gedefinieerd door middel van een kleurcode die uit cijfers bestaat. Ik zal eerst een kleine lijst weergeven met de meest gebruikte kleuren.

kleur-code.jpg
De kleurcode wordt als volgt gedefinieerd: \[\033[\...

accessko@unix [/home]$: PS1=”\[\033[0;31m [\$ (date +%H:%M)] \u@\H [\w]$: \[\033[0m"
Ziet het als volgt uit:
[15:22] accessko@unix [/home]$:

  • \[\033[0;31m is de code die de rode kleur weergeeft.
  • \[\033[0m zorgt ervoor dat de tekst die je na je Prompt typt op default staat (meestal wit). Wanneer je deze regel weglaat zal de tekst die je na je Prompt typt ook rood zijn.

Het is ook mogelijk om je achtergrondkleur te kiezen. Net als bij tekstkleur gebruik je hier een kleurcode die uit cijfers bestaat, bijvoorbeeld kleur groen is 42, rood 41, blauw 44 etc. De achtergrond maakt geen gebruik van lichte of donkere kleuren zoals bijvoorbeeld Donker Rood.
accessko@unix [/home]$: PS1=”\[\033[42;0;31m [\$ (date +%H:%M)] \u@\H [\w]$: \[\033[0m”

Prompt permanent opslaan

Al deze bovengenoemde voorbeelden zijn gekoppeld aan een sessie, sluit je de sessie af en zal de Default PS1 String weer optreden. Wanneer je toch besluit om je Prompt permanent op te laten slaan zal je het bashrc script moeten aanpassen. Eerst moet je het bashrc-script lokaliseren. Er zijn verschillende Linux distributies die bashrc-script in verschillende folders plaatsen. De meest voorkomende plaatsen zijn: /etc/bashrc, /etc/profile, ~/.bashrc Vervolgens open je het bestand met je favorite editor en lokaliseer de PS1 string. Verander deze na je eigen smaak en sla dit bestand weer op. Dit bestand heeft root rechten en zal je dus als root ingelogt moeten zijn.

donderdag 2 juli 2009

user rechten instellen in /var/www

Waarom gooi je het roer niet op en maak je gebruik van ssh. Dit kan je op de server installeren met:
Code:
sudo apt-get install openssh-server
Ik ga er van uit dat je ook een ubuntu pc hebt. Dan kan je eenvoudig een netwerkverbinding opzetten via Locaties --> Verbinden met server. Kies voor diensttype ssh en gebruik het de gebruikersnaam/wachtwoord waarmee de server is geïnstalleerd.
Het kan bijna niet missen of je kan nu bestanden kopiëren naar je persoonlijke map (Home --> gebruikersnaam).
Ook je map van de webserver (standaard /var/www) kan je zo inzien. Dan is het alleen nog een "uitdaging" om je rechten te geven in deze map.

Dit kan door via een terminalscherm een ssh verbinding te maken en de opdracht te geven:
Code:
sudo chown -R $USER:$USER /var/www

Als je een windows pc hebt kan de bestanden met de server via ssh uitwisselen met een windows pakket WinSCP, maar daar heb ik geen ervaring mee.

Het is maar een idee, je zal ook de ftp server aan de praat moeten kunnen krijgen. Aan de andere kant is ssh veel als ftp. Zo kan ssh, in tegenstelling tot ftp, bijvoorbeeld je wachtwoorden versleutelen.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


you could always run chmod this way, I find it's a heck of a lot easier than using the octal bits:
sudo chmod u=rwx,g=rx,o=rx /your/file/here
sudo chmod a+r yourfile.txt
sudo chmod u=rw,g-rwx,o-rwx folder/thisotherfile

where a = all three
where u = user (owner)
where g = group
where o = others (everyone else)

But here's a quick rundown on those
7 = rwx
6 = rw
5 = rx
4 = r
3 = wx
2 = w
1 = x

211 = the 2 is changing the owner's permissions
121 = the 2 is changing the group permissions
112 = the 2 is changing everyone else's (other's) permissions

eh?

so your 644 works on files, changing them to the appropriate permissions. Also note, in order to navigate a folder, you have to have the x permission set. Seriously, this messed me up alot I don't quite understand it, but folders need at least 555 set in order to view the contents.

Basically, you'll want to set folders as 755, and files as 644. You don't want all of your files being 755, as this lets them be executed (not a good idea)

dinsdag 30 juni 2009

dinsdag 23 juni 2009

mount usb drive

mkdir /mnt/usb
mount -t ntfs /dev/sdb1 /mnt/usb