preload
Dez 20

If you want to download a file with curl type the following code into bash:

1
curl -O http://www.url.de/file.html

-O means to output to a file and not to stdout, normally the screen.

What if you need to resume a download of a big file?

1
curl -C - -O http://www.url.de/file.html

With -C – you continue downloading the current file. If is important to write -C -. Don’t forget the -

You can also set a referrer and the user agent.

1
curl -C - -O -A http://www.url.de -e "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6" http://www.url.de/file.html

With -A you can set the referrer and -e sets the user agent.

Pretty helpful.

Tagged with:
Nov 25

To replace a string in all files inside a folder you can create a bash file:

1
vi replace.sh

Put inside this file:

1
2
3
4
5
6
#!/bin/bash
for file in $(ls -1);
do
sed 's/me/you/g' $file > /tmp/dummy.txt;
mv /tmp/dummy.txt $file;
done

Save it and make it executeable (chmod 777 replace.sh)

In this case the string “me” will be replace with “you” in all files of the actual folder and the files will be overridden.
Another example
Your want to replace the tag <b> with <strong> in all files inside a special folder. Further you want to backup the original files with suffix .old and the new files will be overridden.
Simply type on the console:
1
2
3
4
5
for file in $(ls -1);
do
mv $file $file.old
sed 's/&lt;b&gt;/&lt;strong&gt;/g' $file.old &gt;  $file;
done
You can modify the script(s). Maybe by adding parameters etc.

Another option is to use sed with -i command or direct editing:

1
2
3
4
for file in $(ls -1);
do
sed -i 's/text_to_replace/text_replacement/g' $file
done
Tagged with:
Nov 25

People often underestimate the usefulness of the linux-command screen.

What does screen do? Screen creates a terminal session for the actual user.

Type:

1
screen

to create a terminal session.

Or type:

1
screen -S <sessionname>

where <sessionname> should be replaced with your own name.

Create a new window:

1
Crtl+a c

which means (Press Control and a together and after that press c)

Now we created a second window. To list all created windows in the actual session type:

1
Crtl+a "

Germans have to press Shift+2 for “.

Now the two created windows will be shown:

Bildschirmfoto 2009-11-25 um 14.55.07

Just choose one Window and press enter.

To quit your actual work an detach the session:

1
Crtl+a d

To list all active sessions:

1
screen -list

You should see a similar picture like the following:

Bildschirmfoto 2009-11-25 um 15.03.27

Here you can see the name of the session: 1597.stefan

To restore the session simply type:

1
screen -r stefan

Maybe you have to type the complete id with 1597.stefan if there exist another session with the same name.

Tagged with:
Nov 19

When switching from Mac to Linux and vice versa, I always have to think a bit about how to use the command top and sort by CPU.

With Linux it is

top

and then press

shift+p

Mac:

top -o cpu

I hope I can remember this :-)

Tagged with:
Feb 29

Möchte man mit scp kopieren so ist das generell kein Problem:

scp *.java user@servername.de:/home/user/

Läuft ssh über einen anderen Port, so ist das auch kein Problem:

scp -P 12345 *.java user@servername.de:/home/user/

Beachte: Bei ssh muss man ein kleines -p für die Angabe des Ports benutzen, bei scp muss dies ein große -P sein.

Soweit so gut und auch alles von Linux bekannt also völlig identisch.

Ich verbinde mit immer über ein Key-File:

ssh-add myprivatekeyfile

Anschließend muss man seine Passphrase eingeben. Befindet sich der Publikkey nun auf dem zu verbindenen Server in der authorized_keys, so kann man jetzt ohne Passwort mit dem Server per ssh verbinden.

So füge ich die Datei in die authorized_keys ein:

cat mypublickey >> ~/.ssh/authorized_keys

Damit wird der Inhalt des Public Keys in die Datei angefügt.

Aber zurück zum eigentlichen Thema. Ich konnte auf einen bestimmten Server nicht kopieren und war erst völlig ratlos. Nach längerer Analyse hab ich festgestellt, dass in der .bashrc-Datei, also die Datei die bei Login eines Users aufgerufen wird, der Inhalt einer Datei mittels cat ausgegeben wird. So eine Art Begrüssung. Diese Art von Begrüssung unterbindet den Verbindungs- und Kopiervorgang.

Also: Keine Ausgaben in der .bashrc, sonst hat man Probleme beim Kopieren mit scp!!!

Tagged with: