Difference between revisions of "Introduction to Linux in HPC/Files"

From HPC Wiki
Introduction to Linux in HPC/Files
Jump to navigation Jump to search
m (Fix menu placement)
m (Tweak page sorting and title)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Tutorials]]
+
[[Category:Tutorials|File Handling (Linux)]]<nowiki />
{{DISPLAYTITLE:<span style="position:absolute; top:-9999px;">Introduction to Linux in HPC/</span>Files}}
+
{{DISPLAYTITLE:File Handling (Linux)}}<nowiki />
{{Infobox_linux_introduction}}
+
{{Syllabus Introduction to Linux}}<nowiki />
 +
__TOC__
 +
 
 +
This part of the tutorial will introduce how Linux deals with files and explain how to list, copy, move and find files in the directory structure.
  
__TOC__
+
=== Video === <!--T:5-->
  
 +
<youtube width="600" height="340" right>aWvZKiZqvOY</youtube>
  
 +
([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_04_Files.pdf | Slides as pdf]])
  
=== Video === <!--T:5-->
+
{{Warning|mode=info|text= ''' <code>ll</code> is an alias for <code>ls -laF</code>, often available by default on many Linux distributions. It provides additional information such as file sizes, modification dates and full paths in the case of links.'''}}
  
<youtube width="600" height="400" right>jstABZB8oFM</youtube>
+
{{Warning|mode=info|text= ''' <code>ls -d *</code> can be used to list only directory names instead of their contents when using the <code>*</code> pattern (or other wildcards).'''}}
  
 
=== Quiz === <!--T:5-->   
 
=== Quiz === <!--T:5-->   
  
 +
----
  
 
{{hidden begin  
 
{{hidden begin  
|title = Can you copy directory with <code>cp <old_dir> <new_dir></code>?
+
|title = 1. Can you copy directory with <code>cp <old_dir> <new_dir></code>?
 
}}
 
}}
 
<quiz display=simple>
 
<quiz display=simple>
 
{
 
{
 
|type="()"}
 
|type="()"}
- Yes
+
- Yes.
 
||  
 
||  
+ No, <code>-r</code> option is needed for copying directory
+
+ No, the <code>-r</code> argument is needed to copy a directory.
 
|| Explanation: Without any option the <code>cp</code> command can only be used to copy files (text files as well as binary files). To copy a directory, the <code>-r</code> option must be used and it means to copy a given directory in a recursive manner, e.g. one file after another in a directory.
 
|| Explanation: Without any option the <code>cp</code> command can only be used to copy files (text files as well as binary files). To copy a directory, the <code>-r</code> option must be used and it means to copy a given directory in a recursive manner, e.g. one file after another in a directory.
 
</quiz>
 
</quiz>
 
{{hidden end}}
 
{{hidden end}}
  
 +
{{Warning|mode=warn|text=''' <code>rm -f</code>: no confirmation! Use with care.'''}}
 +
 +
----
 +
 +
{{hidden begin
 +
|title = 2. What would be a suitable wildcard for listing the files <code>test_01</code>, <code>test_02</code>, <code>test_03</code> and <code>prod_02</code> but NOT <code>test_04</code> and <code>debug_02</code>
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
- <code>*_*</code>
 +
||
 +
- <code>[t,p]*_*</code>
 +
||
 +
+ <code>[t,p]???_0[1-3]
 +
|| Explanation: Only <code>[t,p]???_0[1-3]</code> would not match <code>test_04</code> or <code>debug_02</code>. Care should be taken, however, as it could also match other files and it might be better to split the task into multiple commands.
 +
- <code>*_0[1-3]</code>
 +
</quiz>
 +
{{hidden end}}
  
{{Warning|mode=warn|text= ''' <code>rm -f</code>: no confirmation! Use with care. (page 53)'''</br>
+
{{Warning|mode=warn|text='''The shell expands wildcards before they are passed as arguments! In some cases (for example, when using <code>find</code> with a wildcard), you should enclose the wildcard in quotes: <code>find . -type f -name "*test*"</code>.'''}}
    '''Wildcards expand before given to program. (page 56)'''}}
 
  
 +
----
  
 
=== Exercises in Terminal === <!--T:5-->   
 
=== Exercises in Terminal === <!--T:5-->   
Line 57: Line 82:
 
     |}
 
     |}
  
 
+
{{Tutorial Navigation
<div style='text-align: left;float:left;width:33%;'>{{Clickable button|[[Introduction_to_Linux_in_HPC/Directory_structure | Previous Page]]|color=white}}</div>
+
| previous = [[Introduction_to_Linux_in_HPC/Directory_structure | Linux Directory Structure ]]
<div style='text-align: center;float:left;width:33%;'>{{Clickable button|[[Introduction_to_Linux_in_HPC | Main Menu Page]]|color=white}}</div>
+
| main = [[Introduction_to_Linux_in_HPC | Overview ]]
<div style='text-align: right;float:left;width:33%;'>{{Clickable button|[[Introduction_to_Linux_in_HPC/Text_display_search | Next Page]]|color=white}}</div>
+
| next = [[Introduction_to_Linux_in_HPC/Text_display_search | Text Display and Search ]]
 +
}}

Latest revision as of 17:21, 4 December 2020

Tutorial
Title: Introduction to Linux in HPC
Provider: HPC.NRW

Contact: tutorials@hpc.nrw
Type: Multi-part video
Topic Area: HPC Platforms
License: CC-BY-SA
Syllabus

1. Background and History
2. The Command Line
3. Linux Directory Structure
4. Files
5. Text display and search
6. Users and permissions
7. Processes
8. The vim text editor
9. Shell scripting
10. Environment variables
11. System configuration
12. SSH Connections
13. SSH: Graphics and File Transfer
14. Various tips

This part of the tutorial will introduce how Linux deals with files and explain how to list, copy, move and find files in the directory structure.

Video

( Slides as pdf)


Info:  ll is an alias for ls -laF, often available by default on many Linux distributions. It provides additional information such as file sizes, modification dates and full paths in the case of links.


Info:  ls -d * can be used to list only directory names instead of their contents when using the * pattern (or other wildcards).

Quiz


1. Can you copy directory with cp <old_dir> <new_dir>?

Yes.
No, the -r argument is needed to copy a directory.


Warning:  rm -f: no confirmation! Use with care.

2. What would be a suitable wildcard for listing the files test_01, test_02, test_03 and prod_02 but NOT test_04 and debug_02

*_*
[t,p]*_*
[t,p]???_0[1-3]
*_0[1-3]


Warning:  The shell expands wildcards before they are passed as arguments! In some cases (for example, when using find with a wildcard), you should enclose the wildcard in quotes: find . -type f -name "*test*".

Exercises in Terminal

1. Use the find command to search for files, whose name ends with dat, in your home directory.
2. Use the find command to search for directories, whose name begins with test and ends with _dir, in your home directory.


<< Linux Directory Structure

Overview

Text Display and Search >>