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 (Tweak page sorting and title)
 
(28 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:Tutorials|File Handling (Linux)]]<nowiki />
 +
{{DISPLAYTITLE:File Handling (Linux)}}<nowiki />
 +
{{Syllabus Introduction to Linux}}<nowiki />
 
__TOC__
 
__TOC__
  
{{Infobox table
+
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.
| REAL-NAME    = HPC.NRW
 
| image  =  Hpc.nrw_small.png ‎
 
| Feldnamehead1 = Other HPC Courses
 
| Feldname2 = GPU      | Daten3 = Introduction to GPU Programming
 
| Feldname3 = GPROF    | Daten4 = [https://hpc-wiki.info/hpc/GPROF_Tutorial Gprof Tutorial]
 
| Feldnamehead2 =  Introduction to Linux in HPC
 
| Feldname5 = 1. | Daten6 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Historical_Background Historical Background]
 
| Feldname6 = 2. | Daten7 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_Command_Line The Command Line]
 
| Feldname7 = 3. | Daten8 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Directory_structure Directory structure]
 
| Feldname8 = 4. | Daten9 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Files Files]
 
| Feldname9 = 5. | Daten10 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Text_display_search Text display search]
 
| Feldname10 = 6. | Daten11 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Processes_and_permissions Processes and permissions]
 
| Feldname11 = 7. | Daten12 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_vim_text_editor The vim text editor]
 
| Feldname12 = 8. | Daten13 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Shell_scripting_environment_variables Shell scripting environment variables]
 
| Feldname13 = 9. | Daten14 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/System_configuration_files System configuration files]
 
| Feldname14 = 10. | Daten15 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Various_tips Various tips]
 
| Feldname15= 11. | Daten16 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Beyond_the_cluster Beyond the cluster]
 
| Feldname16= 12. | Daten17 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Linux_in_HPC Linux in HPC]
 
| Feldname17= 12. | Daten18 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/SSH_Login SSH Login]
 
}}
 
  
 
=== Video === <!--T:5-->
 
=== Video === <!--T:5-->
  
<youtube width="600" height="400" right>IfD9IPixgpo</youtube>
+
<youtube width="600" height="340" right>aWvZKiZqvOY</youtube>
 +
 
 +
([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_04_Files.pdf | Slides as pdf]])
  
 +
{{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.'''}}
  
 +
{{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.'''}}
  
{{Warning|mode=warn|text= ''' <code>rm -f</code>: no confirmation! Use with care. (page 53)'''</br>
+
----
    '''Wildcards expand before given to program. (page 56)'''}}
 
  
 +
{{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='''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>.'''}}
 +
 +
----
  
 
=== Exercises in Terminal === <!--T:5-->   
 
=== Exercises in Terminal === <!--T:5-->   
Line 75: Line 82:
 
     |}
 
     |}
  
 
+
{{Tutorial Navigation
<div style='text-align: left;float:left;width:33%;'>{{Clickable button|[https://hpc-wiki.info/hpc/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|[https://hpc-wiki.info/hpc/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|[https://hpc-wiki.info/hpc/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 16: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 >>