1-DAV-202 Data Management 2023/24
Previously 2-INF-185 Data Source Integration
Difference between revisions of "Command-line basics"
Jump to navigation
Jump to search
Line 123: | Line 123: | ||
* Linux gives us some control over which files we share and which we keep private. | * Linux gives us some control over which files we share and which we keep private. | ||
* Each file (and folder) has its owner (usually the user who created it) and a group of owners it is assigned to. | * Each file (and folder) has its owner (usually the user who created it) and a group of owners it is assigned to. | ||
− | * It has three | + | * It has three level of permissions: for its owner (abbreviated u, as user), for its group (g) and for every user on the system (o, as other). |
+ | * At each level, we can grant the right to read the file (abbreviated r), to write or modify it (abbreviated w) and to execute the file (abbreviated x) | ||
==See also== | ==See also== | ||
* [http://tldp.org/LDP/gs/node5.html Linux tutorial] | * [http://tldp.org/LDP/gs/node5.html Linux tutorial] |
Revision as of 20:37, 8 June 2023
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 viewer 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 want 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
Organizing files and folders
Creating new folders (mkdir)
- To create a new folder (directory), use a command of the form mkdir new_folder_path
- The path to the new folder can be relative or absolute
- For example, assume that we are in the home folder, the following two commands both create a new folder called test and folder test2 within it.
mkdir test # change the next command according to your username mkdir /home/username/test/test2
Copying files (cp)
- To copy files, use a command of the form cp source destination
- This will copy file specified as the source to the destination.
- Both source and destination can be specified via absolute or relative paths.
- The destination can be a folder into which the file is copied or an entire name of the copied file.
- We can also copy several files to the same folder as follows: cp file1 file2 file3 destination
Example: Let us assume that the current directory is /home/username and that directories test and test2 were created as above. The following will copy file /tasks/perl/reads-small.fastq to the new directory test and afterwards also to the current folder (which is the home directory). In the third step it will be copied again to the current folder under a new name test.fastq. In the final steps it will be copied to the test directory under this new name as well.
# change the next command according to your username # this copies an existing file to the home directory using absolute paths cp /tasks/perl/reads-small.fastq /home/username/ # now we use relative paths to copy the file from home to the new folder called test cp reads-small.fastq test/ # now the file is copied within current folder under a new filename test.fastq cp reads-small.fastq test.fastq # change directory to test cd test # copy the file again from the home directory to the test directory under name test.fastq cp ../test.fastq . # we can copy several files to a different folder cp test.fastq reads-small.fastq test2/
- Copying whole folders can be done via cp -r source destination
- While using cp, it is good to add -i option which will warn us in case we are going to overwrite some existing file. For example:
cd ~ cp -i reads-small.fastq test/
- To move files to a new folder or rename them, you can use mv command, which works similarly to cp, i.e. you specify first source, then destination. Option -i can be used here as well.
- Command rm will delete specified files, rm -r whole folders.
- An empty folder can be deleted using rmdir
Beware: be very careful on the command-line
- The command-line will execute whatever you type, it generally does not ask for confirmation, even for dangerous actions.
- You can very easily remove or overwrite some important file by mistake.
- There is no undo.
- Therefore always check your command before pressing Enter. Use -i option for cp, mv, and possibly even rm.
File permissions and other properties
- Linux gives us some control over which files we share and which we keep private.
- Each file (and folder) has its owner (usually the user who created it) and a group of owners it is assigned to.
- It has three level of permissions: for its owner (abbreviated u, as user), for its group (g) and for every user on the system (o, as other).
- At each level, we can grant the right to read the file (abbreviated r), to write or modify it (abbreviated w) and to execute the file (abbreviated x)