Related to some recent discussions at meetups, here are a few command-line tools that make working with servers easier:
ssh – connect to a remote server
$ ssh -p 22 <username>@<ip_address>
scp – copy files between computers
scp is is a good alternative to FTP clients.
Copy files from a remote server to current location on the local computer:
$ scp -r -P 22 <username>@<ip_address>:/home/<username>/path/to/dir/* .
Copy files from the current directory to a remote server:
$ scp -r -P 22 . <username>@<ip_address>:/home/<username>/path/to/dir/
rsync – synchronize directories between computers
Synchronize a remote directory to a local directory over SSH:
$ rsync -avzhe ssh <username>@<ip_address>:/home/<username>/path/to/dir/* .
If the download gets interrupted, it won’t need to start over.
If downloading a large number of files, a small shell script like this will create a notification (on Linux) that displays the progress every minute:
while true; do notify-send 'Downloaded files' "$(ls -alR | wc -l) of <total_number>" sleep 60 done
ls -alR | wc -l on the remote server to find the number to insert in