---
# System prepended metadata

title: Usefull commands on UBUNTU
tags: [Ubuntu]

---

###### tags: `Ubuntu`
# Usefull commands on UBUNTU

## Conda (miniconda3)
### Activate/deactivate enviroment "base" on console
`conda config --set auto_activate_base false`
`conda config --set auto_activate_base true`

## FOLDER @ home 
"cd ..""  goto home directory
/homes$ ls -list

## Finding directory
```
$ pwd
/homes/sabraun
```
## Porecourse directory
```
$ cd /vol/porecourse
vol/porecourse$ ls -l
insgesamt 25642889
drwxr-sr-x  2 cruecker porecourse          32 Okt 19  2017  bin
drwxrwsr-x  7 jueneman porecourse         551 Sep 14 10:23  DATA
-rw-r--r--  1 nkleinbo porecourse  6441306010 Sep 14 15:41  Data.tar.gz
drwx--S---  5 jueneman porecourse          77 Sep 19 10:38  errorstat
drwxr-sr-x  3 nkleinbo porecourse         276 Sep 18 12:58  files
drwxr-sr-x  2 nkleinbo porecourse          60 Sep 14 15:01  image
drwxrwxr-x  2 nkleinbo porecourse       81616 Nov  7  2017  Nanopore_small
-rw-r--r--  1      121 porecourse   248807246 Feb 20  2018  Nanopore_small.tar.gz
drwxrwxr-x 54 nkleinbo porecourse        4007 Nov 23  2017  Results_old
-rw-r--r--  1 nkleinbo porecourse 12107811967 Sep 14 15:07  Results.tar.gz
drwxrws---  3 jueneman porecourse          21 Okt 27  2017  share
drwxr-sr-x  3 nkleinbo porecourse          77 Sep 17 10:32  testing
drwxr-sr-x  2 tstitzle porecourse       81616 Nov 23  2017 'ubuntu@$'

/porecourse$ ls -lrth 
(-l list r -reverse -t nach Änderungszeit sortieren, neueste zuerst -h -human-readable )

insgesamt 25G
drwxr-sr-x  2 cruecker porecourse   32 Okt 19  2017  bin
drwxrws---  3 jueneman porecourse   21 Okt 27  2017  share
drwxrwxr-x  2 nkleinbo porecourse  80K Nov  7  2017  Nanopore_small
drwxr-sr-x  2 tstitzle porecourse  80K Nov 23  2017 'ubuntu@$'
drwxrwxr-x 54 nkleinbo porecourse 4,0K Nov 23  2017  Results_old
-rw-r--r--  1      121 porecourse 238M Feb 20  2018  Nanopore_small.tar.gz
drwxrwsr-x  7 jueneman porecourse  551 Sep 14 10:23  DATA
drwxr-sr-x  2 nkleinbo porecourse   60 Sep 14 15:01  image
-rw-r--r--  1 nkleinbo porecourse  12G Sep 14 15:07  Results.tar.gz
-rw-r--r--  1 nkleinbo porecourse 6,0G Sep 14 15:41  Data.tar.gz
drwxr-sr-x  3 nkleinbo porecourse   77 Sep 17 10:32  testing
drwxr-sr-x  3 nkleinbo porecourse  276 Sep 18 12:58  files
drwx--S---  5 jueneman porecourse   77 Sep 19 10:38  errorstat
```
## The manual of a command
```
man ls
```
>manual of the command "ls" --> list
## Useful commands
mkdir --> make directory
touch --> create a file
cp --> copy file
mv --> move/rename a file
rm --> delete a file
rmdir --> delete a directory
## Create links
```
ln -s
```
>Softlink create a link to a directory or file 
```
ln
```
>Hardlink
link to /vol/porcourse/sabraun
Beispiel:
cd /vol/porecourse
```
/vol/porecourse$ mkdir sabraun
/vol/porecourse$ cd ..
: ln -s /vol/porecourse/sabraun workdir
: ls -l
insgesamt 14
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Bilder
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Dokumente
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Downloads
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Musik
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Öffentlich
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Schreibtisch
lrwxrwxrwx  1 sabraun users 43 Sep 19 10:39 thindrives -> /var/opt/thinlinc/sessions/sabraun/8/drives
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Videos
drwxr-xr-x+ 2 sabraun users  2 Sep 19 10:39 Vorlagen
lrwxrwxrwx  1 sabraun users 23 Sep 19 11:38 workdir -> /vol/porecourse/sabraun
```
## Display file content

head -n X  >>display first X lines in file
tail -n X  >>display last X lines in file
less       >>display file page-wise
Beispiel
```
~/workdir$ head -n 20 seqs.fasta
~/workdir$ tail -n 20 seqs.fasta
~/workdir$ less seqs.fasta
    mit "/" in Datei suche
```    
## Wildcards

"*" any character
"?" Exactly one character
[A-Z] letter
[ACGT] one with this characters
{1-20} numbers
Beispiel
```
/vol/biotools/bin$ ls blast*
/vol/biotools/bin$ ls -l blast?
/vol/biotools/bin$ ls -l [ab]*[cd] (alle Dateien mit A und B und endet mit C und D)
```
## Useful tool grep
```
~/workdir$ grep ">" sequences_1.fasta
>gi|406593966|ref|NC_018627.1|-40485/1
>gi|406593966|ref|NC_018627.1|-40485/2
>gi|406593966|ref|NC_018627.1|-40483/1
>gi|406593966|ref|NC_018627.1|-40483/2
>gi|406593966|ref|NC_018627.1|-40481/1
>gi|406593966|ref|NC_018627.1|-40481/2
>gi|406593966|ref|NC_018627.1|-40479/1
>gi|406593966|ref|NC_018627.1|-40479/2
>gi|406593966|ref|NC_018627.1|-40477/1
>gi|406593966|ref|NC_018627.1|-40477/2
>gi|406593966|ref|NC_018627.1|-40475/1
>gi|406593966|ref|NC_018627.1|-40475/2
>gi|406593966|ref|NC_018627.1|-40473/1
>gi|406593966|ref|NC_018627.1|-40473/2
>gi|406593966|ref|NC_018627.1|-40471/1
>gi|406593966|ref|NC_018627.1|-40471/2
>gi|406593966|ref|NC_018627.1|-40469/1
>gi|406593966|ref|NC_018627.1|-40469/2
>gi|406593966|ref|NC_018627.1|-40467/1
>gi|406593966|ref|NC_018627.1|-40467/2
>gi|406593966|ref|NC_018627.1|-40465/1
>gi|406593966|ref|NC_018627.1|-40465/2
>gi|406593966|ref|NC_018627.1|-40463/1
>gi|406593966|ref|NC_018627.1|-40463/2
>gi|406593966|ref|NC_018627.1|-40461/1
~/workdir$ grep -c  ">" sequences_1.fasta
25
```
## Usefool tool: wc
```
~/workdir$ grep -c "Ch" Araport11_genes.gff 
   -c nur zählen der Zeilen in der Datei
~/workdir$ grep -c "^Chr1" Araport11_genes.gff
    -c zählen alle zeilen mit Anfang Chr1
```
Finde  "Romeo und Juliet" file    
```
/vol/porecourse/files$ grep -r "Romeo and Juliet"
congratulations/you/found/me:"Romeo and Juliet" is intended for secondary school students who 
```
Kombiniere grep mit umleiten in Datei > and >>
```
 grep "^Chr1" Araport11_genes.gff | less
 grep "^Chr1" Araport11_genes.gff > gene_selection.gff (weiterleiten an neue Datei)
 grep "^Chr2" Araport11_genes.gff >> gene_selection.gff (weitelten an die selbe datei mit >>)
 grep "^>" sequences.fasta | head -n 20 | tail -n 10 > headers 11-20.txt
 grep -v ">" sequences.fasta | wc (alle zeilen ohne ">")
 ```
## Usefool tool: cat
 ```
 cat ~/workdir/sequence_1.fasta
 cat sequences_*.fasta > sequences.fasta
 
     #Summary all assembly info files of a flye run
 cat BC*/ass*.txt >> assembly_info_all.csv 
     
 ```
## Root 
sudo bash

## Vergabe von Rechten an Sascha nur über root
chown sascha:sascha abricate/

## Anlegen von Ordnern
mkdir <Name>

## proxy 
### Einrichten
1. open terminal
2. type in

```
$ sudo bash
$ cd /etc/apt/
$ gedit apt.conf

## copy these two lines in apt.conf :
Acquire::http::proxy "http://proxy.clondiag.jena:8080/";
Acquire::https::proxy "https://proxy.clondiag.jena:8080/";
##
```
3. save apt.conf
4. restart machine!
### Abfragen
https://www.shellhacks.com/linux-proxy-server-settings-set-proxy-command-line/
```
$ env | grep -i proxy
```
## Print working directory
pwd

## Alle Befhle in Konsole
history

## Editor:
gedit

## Suchen ausgewählter Zeilen in Fasta
grep '>' <Dateiname>.fasta

## Diskusage
```
$ du
$ du -sm "name" #(-m MByte, -s summarize)
```
## Deinstallation 
```
$ apt-get purge "packet"
$ apt-get remove "packet"
```
List of one named Depian Package
```
$ dpkg -l| grep -i "name"
```
## kill processes
```
$ ps -ef
$ kill "number of process"
```

## Translate lowercase to uppercase letters
```
tr a-z A-Z < EIEC_chromosome_polished_complete2.fasta > EIEC_chromosome_polished_complete3.fasta
```

## Counting letters in fastX files
```
grep "letter" filename | wc
grep "^letter" filename | wc #only letter at a start of lines
```

## Zeilenumbrüche oder Zeichen aus Fasta entfernen

```
tr -d "\n" < dateiname > neuer dateinamen
tr -d "-" < dateiname > neuer dateinamen
```
## Leerzeilen eintfernen und single lines erzeugen in FASTA 

1. entferne alle Bindestriche mit gedit oder notepadd++
2. lösche alle leerzeilen mit
```
grep "\S" dateiname > dateinamen1
```
3. erzeuge single lines mit awk
```
awk '{if (substr($0,1,1)==">"){print "\n"$0} else printf("%s",$0);p++;}END{print "\n"}' dateinamen2 > dateinamen3
```

## Type

```
type --help
type "program-name"
```
Shows the path of the executable program.

## screen
### WAS IST DAS?
https://wiki.ubuntuusers.de/Screen/
### install
```sudo apt-get install screen ```
### Befehle
```screen -S NAME``` new SCREEN
```screen -r NAME``` returen to SCREEN
```screen -ls NAME```list SCREEN
```screen -S NAME``` neues SCREEN

## CPU info

```watch "grep 'cpu MHz' /proc/cpuinfo"```
```watch -n 0.5 sensors```

## automatic rename and copy files in different folders to another folder
```for subdir in *; do cp $subdir/assembly.fasta $subdir.fasta; done;``` 

## more
When there is more than one input file, the more command concatenates them and also includes each filename as a header.

To concatenate to a file:

```more *.txt > out.txt```

To concatenate to the terminal:

```more *.txt | cat```

Example output:
```
::::::::::::::
file1.txt
::::::::::::::
This is
my first file.
::::::::::::::
file2.txt
::::::::::::::
And this is my
second file.
```
## Delete header in multifasta file via awk

```
Example:
>cellulase
ATGCTA
>gyrase
TGATGCT
>16s
TAGTATG

$  awk 'BEGIN {print ">"ARGV[1]};!/^>/{print}' test.fasta > test_noheader.fasta

>test_noheader.fasta
ATGCTA
TGATGCT
TAGTATG

```
## Set default python version for installation

Create a symlink from /usr/bin/python2.7 to /usr/bin/python and set the group name as “python”. Later, group name will be used to switch links.

Do not forget to set the priority in the end of the command 

```sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 3
```
Switch between python version with:
```
sudo update-alternatives --config python
```

This works with any python version

## Batch rename files with name-list.txt

Note: make a copy of your original files as backup in a TMP folder

1. create a txt-file with all names (same number of lines/names vs. files to rename)
- use excel to combine BC + name + ID + .fasta (OVERVIEW_ALL_SEQ_RUNS.xlsx)
- replase tabstop by copy/paste \t to underline unsing notepad++
- delete CR at notebook++ via copy/paste \r at the end of each line 
```
BC01_Staph-Stamm_Dubai-01_Mediclinic-041_291122__97812_.fasta
BC02_Staph-Stamm_Kuwait_122_Z4326_181217__309651_.fasta
BC03_Staph-Stamm_Trinidad-Tobago_2020-009_371M_140820__95809_.fasta
BC06_AERO_CH_Nord36_R409_IMP-1_14-07-15__240758_.fasta
BC07_AERO_CH_Nord37_R412_IMP-2_14-07-15__240759_.fasta
BC08_AERO_CH_Nord38_R414_IMP-13_14-07-15__240760_.fasta
BC09_AERO_CH_Nord39_R417_IMP-15_14-07-15__240761_.fasta
BC10_AERO_CH_Nord40_R418_IMP-19_14-07-15__240762_.fasta
BC11_AERO_CH_Nord41_R419_IMP-29_14-07-15__240763_.fasta
BC12_SALM_CH_Nord42_R421_IMP-4_14-07-15__240764_.fasta
BC13_SMAR_CH_Nord43_R422_IMP-11_14-07-15__240765_.fasta
BC14_CIND_CH_Nord44_R424_IND-1_14-07-15__240766_.fasta
BC15_CIND_CH_Nord45_R425_IND-2_14-07-15__240767_.fasta
BC16_CIND_CH_Nord47_R430_IND-4_14-07-15__240769_.fasta
BC17_ACBA_CH_Nord48_R431_NDM-1_14-07-15__240770_.fasta
BC18_COLI_CH_Nord50_R452_NDM-1_14-07-15__240772_.fasta
BC20_COLI_CH_Nord52_R468_NDM-4_14-07-15__240774_.fasta
BC21_COLI_CH_Nord53_R470_NDM-5_14-07-15__240775_.fasta
BC22_COLI_CH_Nord54_R473_NDM-7_14-07-15__240776_.fasta
BC24_FREU_CH_Nord56_R539_VIM-4_14-07-15__240778_.fasta
```

2. goto terminal and the folder where the files are and copy the rename.txt in folder
3. use follwing command:
```
 paste -d' ' <(ls *.fasta) rename.txt | xargs -n2 mv
```
4. done

## Create multiple files at once on command line

```touch recovery{0001..0022}.csv```


## Compress with tar and xz (multithreading)

```tar -c -I 'xz -9 -T0' -f archive.tar.xz [list of files and folders]```
