1-DAV-202 Data Management 2023/24
Previously 2-INF-185 Data Source Integration
Command-line basics
Revision as of 10:20, 12 February 2023 by Brona (talk | contribs) (→Prezeranie obsahu súboru (less))
Contents
Files and folders
- Images, texts, data, etc. are stored in files
- Files are grouped in folders (directories) for better organization
- A folder can also contain other folders, forming a tree structure
Moving around folders (ls, cd)
- One folder is always selected as the current one; it is shown on the command line
- The list of files and folders in the current folder can be obtained with the ls command
- The list of files in some other folder can be obtained with the command ls other_folder
- The command cd new_folder changes the current folder to the specified new folder
- Notes: ls is an abbreviation of "list", cd is an abbreviation of "change directory"
Example:
- When we login to the server, we are in the folder /home/username.
- We then execute several commands listed below
- Using cd command, we move to folder /tasks/perl/ (the computer does not print anything, only changes the current folder).
- Using ls command, we print all files in the /tasks/perl/ folder.
- Finally we use ls /tasks command to print the folders in /tasks
username@vyuka:~$ cd /tasks/perl/ username@vyuka:/tasks/perl$ ls fastq-lengths.pl reads-small.fastq reads-tiny-trim1.fastq series.tsv protocol.txt reads-tiny.fasta reads-tiny-trim2.fastq reads.fastq reads-tiny.fastq series-small.tsv username@vyuka:/tasks/perl$ ls /tasks bash bioinf1 bioinf2 bioinf3 cloud flask make perl python r1 r2
Absolute a relative paths
- Absolute path determines how to get to a given file or folder from the root of the whole filesystem
- For example /tasks/perl/, /tasks/perl/series.tsv, /home/username etc.
- Individual folders are separated by a slash / in the path
- Absolute paths start with a slash
- Relative path determines how to get to a given file or folder from the current folder
- For example, if the current folder is /tasks/perl/, the relative path to file /tasks/perl/series.tsv is simply series.tsv
- If the current folder is /tasks/, the relative path to file /tasks/perl/series.tsv is perl/series.tsv
- Relative paths do not start with a slash
- A relative path can also go "upwards" to the containing folder using ..
- For example, if the current folder is /tasks/perl/, the relative path .. will give us the same as /tasks and ../../home will give us /home
Commands ls, cd and others accept both relative and absolute paths.
Important folders
- Root is the folder with absolute path /, the starting point of the tree structure of folders
- Home directory with absolute path /home/username is set as the current folder after login
- Users typically store most of their files within their home directory and its subfolders, if there is no good reason to place them elsewhere
- Tilde ~ is an abbreviation for your home directory. For example cd ~ will place you there
Wildcards
- We can use wildcards to work with only selected files in a folder
- For example, all files starting with letter x in the current folder can be printed as ls x*
- The star represents any number of characters in the filename
- All files containing letter x anywhere in the name can be printed as ls *x*
Examining file content (less)
- Type less filename
- This will print the first page of the file on your screen. Then you can move around the file using space or keys Page up and Page down. You can quit the command pressing letter q (abbreviation of quit). Help with additional keys is accessed by pressing h (abbreviation of help)
- If you have a short file and to just print it all on your screen, use cat filename
- Try for example the following commands:
less /tasks/perl/reads-small.fastq # move around the file, then press q cat /tasks/perl/reads-tiny.fasta # see the whole file on the screen
Kopírovanie súborov (cp)
- cp odkiaľ kam
- Skopíruje súbor odkiaľ na miesto kam
- Môžeme použiť absolútne alebo relatívne cesty.
- Cieľové miesto kam môže byť adresár alebo celé meno súboru
Príklad: ak aktuálny adresár je /projects/data-ppb/, nasledujúce tri príkazy všetky kopírujú súbor README do poadresára events:
# relatívne cesty cp README events/ # absolútne cesty cp /projects/data-ppb/README /projects/data-ppb/events/ # celé meno súboru cp README events/README # tento príkaz kopíruje do /projects/data-ppb/events/README2 cp README events/README2 # ak sa presunieme do adresára events, môžeme kopírovať súbor do aktuálneho adresára . cd events cp ../README .
Kopírovanie súborov zo servera/na server (scp)
- Kríženec medzi ssh a cp (Secure CoPy)
- Na server (spustite na vašom linuxovom počítači napr. v učebni): scp subor meno@vyuka.compbio.fmph.uniba.sk:nove_meno_suboru
- Zo servera: scp meno@vyuka.compbio.fmph.uniba.sk:subor nove_meno_suboru
- Ak chcete kopírovať súbory medzi serverom a Windowsovým počítačom, nainštalujte si program WinSCP
#skopíruje súbor README2 do adresára /projects/data-ppb/ na serveri scp README2 hrasko37@vyuka.compbio.fmph.uniba.sk:/projects/data-ppb/ #skopíruje súbor README2 do domovského adresára užívateľa hrasko37 na serveri scp README2 hrasko37@vyuka.compbio.fmph.uniba.sk: #skopíruje súbor README2 do domovského adresára užívateľa hrasko37 pod menom README3 scp README2 hrasko37@vyuka.compbio.fmph.uniba.sk:README3 #skopíruje súbor README2 z domovského adresára užívateľa hrasko37 na serveri do aktuálneho adresára scp hrasko37@vyuka.compbio.fmph.uniba.sk:README2 .
Poznámky
Upozornenie: dvakrát meraj, raz rež
- Príkazový riadok spraví, čo napíšete, nepýta sa, či to myslíte naozaj
- Príkazy cp a scp môžu prepísať už existujúce súbory
- Neexistuje undo
- Preto si vždy dobre premyslite, čo chcete spraviť a skontrolujte príkaz pred tým, ako dáte Enter
Zjednodušenie práce
Užitočné pomôcky na príkazovom riadku:
- kláves Tab
- ak je len jeden súbor alebo adresár, ktorý pasuje na rozpísaný začiatok slova, doplní ho automaticky
- ak je súborov alebo adresárov viac, doplní, čo majú spoločné,po opakovanom stlačení ponúkne možnosti
- šípky hore/dole
- prechádzanie históriou spustených príkazov
- copy&paste myšou
- ľavým tlačidlom a ťahaním po texte označíme
- kliknutím stredného tlačidla (kolieska) vložíme kam potrebujeme
- ak nemáme stredné tlačidlo, klikneme naraz pravým aj ľavým