Difference between revisions of "Linux Tips"

From LPTMS Wiki
Jump to: navigation, search
Line 1: Line 1:
 +
== Related pages ==
 +
 
* [[Using ssh]]
 
* [[Using ssh]]
* [[Handling batch jobs]]
 
 
* [[Transferring files]]
 
* [[Transferring files]]
 
* [[Working with compressed files]]
 
* [[Working with compressed files]]
  
==Using ssh==
+
== Miscellaneous ==
  
* you work on a computer and you want to easily connect another distant computer without entering you password at each time. To do so, you must generate a private and a public key on your computer to be put on the .ssh directory on your home, using, for instance, the dsa protocol:
+
===Handling batch jobs===
ssh-keygen -t dsa
 
Then, you have the two new files in the ssh directory
 
id_dsa
 
id_dsa.pub
 
Add the public key id_dsa.pub to the list of keys in the .ssh/authorized_keys file of the distant computer (create the file if it does not exist). Now it should work for you!
 
 
 
In addition, you can simplify the connection by configuring your ssh. Edit the .ssh/config file on your computer and enter
 
<pre>
 
StrictHostKeyChecking no
 
 
 
Host RemoteComputer
 
      Hostname computer.domain.com
 
      User username
 
      Protocol 2
 
      ForwardX11 yes
 
</pre>
 
Protocol 2 is for ssh2 and ForwardX11 enables you to open a remote Xwindow. Typing
 
ssh RemoteComputer
 
or
 
scp RemoteComputer:File .
 
is now sufficient to connect the distant computer without entering your password. You can add several Host in this file.
 
 
 
* you want to execute a single command on a distant computer without connecting to the computer.
 
 
 
* ssh tunnels... (to be done)
 
 
 
==Handling batch jobs==
 
 
* if you want to send a job on a computer and logout without killing the job:
 
* if you want to send a job on a computer and logout without killing the job:
 
  :> nohup ./job
 
  :> nohup ./job
 
==Transferring files==
 
 
* the ''scp'' command:
 
:> scp server:directory here
 
* if you do some regular updates, there is no ''-update'' option to ''scp''. Then, better use the ''rsync'' command. For instance with
 
:> rsync -avub -e ssh server:data/*.gz data/
 
be careful with the slash after directory names, with or without is no exactly the same behavior. Look at ''man rsync'' before using it.
 
 
==Working with zip files==
 
Linux usually provides a couple of command piping gzip
 
zgreg, zcat, zdiff, zless, zmore, zegrep,...
 
Here is a simple extension of ''tail'' and ''head'' for zipped files, that you can call ''ztail'' and ''zhead'' (example is for tail, replace "tail" with "head" everywhere to get zhead) and add to your own /bin directory:
 
<source lang="bash">
 
#!/bin/bash
 
PATH=${GZIP_BINDIR-'/bin'}:$PATH
 
 
usage="Usage: $0 [OPTIONS]... [FILES]...
 
Like 'tail', but operate on the uncompressed contents of any compressed FILEs.
 
 
Options are the same as for 'tail'."
 
 
case $1 in
 
--help)    exec echo "$usage";;
 
-h)        exec echo "$usage";;
 
esac
 
 
options=""
 
files=""
 
for i in $@; do
 
str="$i"
 
if test -f $i && [ ${str:(-3)} = ".gz" ]; then
 
    files=$files"$i "
 
else
 
    if [ ${str:0:1} = "-" ] && [ $str != "-v" ] && [ $str != "--verbose" ]; then
 
        options=$options"$i "
 
    elif [ $str != "-v" ] && [ $str != "--verbose" ]; then
 
        echo -ne "***Warning: $i is neither a regular zip file or a regular option***\n\n"
 
    fi
 
fi
 
done
 
 
for file in $files; do
 
    echo "==>"$file"<=="
 
    exec gzip -cd $file | tail $options
 
done
 
</source>
 
 
== Miscellaneous ==
 
  
 
=== The coma to point conversion in French environment ===
 
=== The coma to point conversion in French environment ===

Revision as of 14:28, 19 November 2011

Related pages

Miscellaneous

Handling batch jobs

  • if you want to send a job on a computer and logout without killing the job:
:> nohup ./job

The coma to point conversion in French environment

if you are working with a configuration of Linux which has not the dot "." as a standard format for floating points data (for instance the coma "," in French), you can add the following two lines in your .bashrc file:

LC_NUMERIC=en_US
export LC_NUMERIC

this will make the job without too many side effects.