Post on 06-Aug-2020
Introduction to Linux賀⾀恆(Ho Yu-Heng)
National Tsing Hua University
1987 - Macintosh II
Source: https://upload.wikimedia.org/wikipedia/commons/d/d3/MacII.jpg
1989 - Macintosh Portable
Source: https://upload.wikimedia.org/wikipedia/commons/c/c3/Macintosh_Portable-IMG_7541.jpg
Source: https://upload.wikimedia.org/wikipedia/en/7/73/Windows_3.11_workspace.png
1992 - Windows 3.1
Source: http://cdn.techalook.com.tw/wp-content/uploads/windows_95_by_clutch.jpg
1995 - Windows 95
Source: http://winsupersite.com/site-files/winsupersite.com/files/archive/winsupersite.com/content/content/127379/reviews/winme_rtm_0001.gif
2000 - Windows ME
Source: http://www.pcdiy.com.tw/assets/images/768/5ae8812fa0f0417ad5756f9e540aabea.jpeg
2001 - Windows XP
Outline• What is Linux?
- Background of Linux - Kernel & Shell
• Command Line Environment - Getting Started- SSH & SCP
• Basics of BASH Commands- Useful Tips- Frequently Used Commands
• Text Editors - Vi & Vim- Exercise
• Simple Shell Scripts
What is Linux?• Wikipedia - Linux
A Unix-like computer operating system assembled under the model of free and open-source software development and distribution.
• Unix-like?
• Wikipedia - Unix A family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, developed starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.
Free SoftwareFree Software Foundation, FSF!
Founded by Richard Matthew Stallman in 1985.
Four Essential Freedoms:!
0. To run the program.
1. To study and change the program in source code form.
2. To redistribute exact copies.
3. To distribute modified versions.
Creation of Linux!
By Linus Torvalds using GNU C compiler(From GCC) in 1991.
Linux Kernel• File Management
• Multitasking
• Memory Management
• I/O Management
• Device Management
• Network Management
• …etcSource: https://bash.cyberciti.biz/uploads/bashwiki/3/38/Rela.gif
Shell• Connection between the User Request and the Kernel Functions.!
1. Command-Line Interface(CLI)
2. Graphical User Interface(GUI)
• There are several types of shells commonly used by Linux!
1. Bourne Shell(sh)
2. Bourne-Again Shell(bash)
3. C-Shell(csh)
4. Tenex C-Shell(tcsh)
Shell• Connection between the User Request and the Kernel Functions.!
1. Command-Line Interface(CLI)
2. Graphical User Interface(GUI)
• There are several types of shells commonly used by Linux!
1. Bourne Shell(sh)
2. Bourne-Again Shell(bash)
3. C-Shell(csh)
4. TC-Shell(tcsh)
Let’s Begin!• For Windows Users, please download MobaXterm(Portable) from: http://mobaxterm.mobatek.net/download.html
Secure Shell(SSH)• Providing secure access for users and automated processes
• Interactive and automated file transfers
• Issuing remote commands
• Managing network infrastructure and other mission-critical system components.
Source: https://www.ssh.com/s/how-does-ssh-protocol-work-600x180-I1BIZnPs.jpg
Secure Shell(SSH)• ssh -Options account_name@host_name_or_IP
• Options:!
• -V : Displays product name and version information and exits.
• -X : Enables X11 connection forwarding and treats X11 clients as untrusted.
• -x : Disables X11 connection forwarding.
• -Y : Enables X11 connection forwarding and treats X11 clients as trusted.
• -f : Sends the specified command and has the session to run in the background.
Secure Shell(SSH)
The above command shows the login attempt with X11 forwarding enabled(-Y), so that GUI is available.
The above shows additional options for ssh, along with some shell commands.
Secure Copy(SCP)
• scp -Options Local_path/Local_file account_name@host_name_or_IP:Target_path/Target_file
• scp -Options account_name@host_name_or_IP:Target_path/Target_file Local_path/Local_file
• Options:
• -r : Recursive copying entire directories.
• -p : Preserves modification times, access times, and modes of the original files.
Secure Copy(SCP)
Forwarding commands to locate the target directory, then scp local file to the target file.
Scp the target file along with the parent directory back to local host.
Basics of BASH Commands
Useful Tips(Precautions)
• Some “Very Helpful” Commands
• whatis : Gives a short description of the command.
• man : Format and display system documentation.
• info : Display info documents.
• help : Display information about built-in commands.
Wildcards & Special Keys
• * : arbitrary string length
• ? : arbitrary character
• Tab Key : automatic completion
• Up(Down) Keys : previous(next) command
Working with Directories• cd : change directory
• pwd : print working directory
• df : disk free
• du : disk usage, estimate file space usage under current directory.
• mkdir : make directory
• -p : with parent directories
• rmdir : remove directory
• ls : list segment
• -l : long listing
• -a : list all
• -h : display in human readable format
• -F : reveals natures of files (appends * for executables, / for directories)
Working with Files• cp : copy
cp original_file target_file
• mv : move
mv original_file target_file
• chmod : change file mode
chmod +rwx target_file
chmod 755 target_file (r=4, w=2, x=1)
• file : determines file type
• touch : create empty file
• rm : remove file
• -r : recursive remove(can remove directories)
• -f : force remove
• rename: rename files(especially for multiple files)
rename original_keywords target_keywords target_files
Working with Contents• more & less : displaying
files(Space bar for next page, q to quit)
• head & tail : display the first(last) n lines of the file(n = 10 if not specified)
head -n target_file
• cat : concatenate, joining files to form a bigger one “Ctrl + d” to end file
Other Useful Commands• ln : create link
• -s : create soft link
ln -s original_file target_softlink
• find : find files with specified features
• sort : sorting contents of a text file line-by-line.
• -n : numerical sort
• -R : randomize
• -r : reverse order
• -k : sorting key positions
• grep : global regular expression print
• -d : search directories
• -i : ignore case
• -n : show line number
• -v : revert match
grep -Options keywords target_file
• history : show command history(history N = show latest N commands)
• locate : locate file with keywords provided by updatedb(Needs to be root)
Text Editors
Vi & Vim• Command Mode The Default Mode at the Beginning.
• Insert Mode Press “i”, “R”, “a”, or “Insert” keys to enter.Press “Esc” to leave Insert Mode.
• Command-Line Mode Press “:”, “/”, or “?” to enter.Modifying and Searching through the text file.
Vi & Vim• Use vim to check the text file “VIMhelp.txt”.
Useful Commands under Vim• Under the Default Mode!
• N + “arrow key” = Move the cursor N characters towards the specified direction.
• “Ctrl” + “f” = PageDown
• “Ctrl” + “b” = PageUp
• “Ctrl” + “d” = Half PageDown
• “Ctrl” + “u” = Half PageUp
• “H” = Top Row of the Screen
• “M” = Middle Row of the Screen
• “L” = Last Row of the Screen
• “G” = Last Row of the FileN + “G” = To N-th Row of the File
• “gg” = First Row of the File
• “u” = Undo
• “Ctrl” + “r” = Redo
Vi & Vim
Useful Commands under Vim• Under the Command-Line Mode
(Remember to press “Esc” first if you’re under Insert Mode)!
• “:w” = Save file
• “:q” = Close file
• “:q!” = Close without Save
• “:wq” = Close & Save
• “:w filename” = Save as filename
• “:N” = Go to N-th line.
• “?string” or “/string” = Search(Up/Down) file for “string” Press “n” to go to the next keyword.
Useful Commands under Vim• Under the Insert Mode!
• Insert or Replace?
Useful Commands under Vim• Under the Default Mode!
• “v” = Highlight character by character
• “V” = Highlight row by row
• “Ctrl” + “v” = Highlight block
• “y” = Copy highlighted area
• “d” = Delete highlighted area
• “p” = Paste highlighted area
Useful Commands under Vim
Images from ⿃哥的 Linux 私房菜:!http://linux.vbird.org/linux_basic/0310vi.php#vim
Let’s Play a Game!
• Find out my research specialty!
• Please open the text file “GAME.txt”
• Go to line 1195, then follow the instructions.
Scripting Shell Commands
Shell Script• Scripting Language, Interpreted Language, and Compiled Language?
• Shell commands can be written in a text file, then executed like an executable program directly, called a “shell script”.
• A simple shell script:
Modified version:
Pipe• “|” = pipe
• Example :!
• ls -lh /usr/bin/ | less Processing the output of “ls” with “less”.
• ls -lt | head -n 5 Show the newest 4 files under current directory.
• du -h | sort -nr sort files according to their sizes from small to large.
Some Powerful Tools• seq : generates sequence of numbers from first to last
• seq —format=%03g -10 10generates sequence of numbers from -10 to 010
• awk : data extraction and handling
• seq 15 | awk ‘BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}’show the first 15 Fibonacci numbers
• bc : basic computing
• echo “scale=300; 4*a(1)” | bc -lqcalculates pi to 300th decimal number
• wc : word count
• cat /etc/passwd | wc -lget total number of users on the system
• cat text_file | wc -m get total number of characters of text_file
Exercise• The file “COLDGASS_DR3.ascii” is the catalogue of CO Legacy
Database for GASS(Galex Arecibo SDSS Survey) data release 3, which contains a total of 366 galaxies, with their spectra under the directory “COLDGASS_DR3_ASCII”.
• In the catalogue, column 1 is the GASS ID, and column 19 marks a flag for CO detection(1=detection, 2=non-detection), select all galaxies which has CO detection, and subtract their spectra from the directory.
• You can use a script written in python, “plot_spectra.py”, to evaluate the spectrum under ipython, simply use%run ‘plot_spectra.py’ filenameto get the result.
Online Materials• ⿃哥的Linux私房菜 :
http://linux.vbird.org/
• Linux-training.be : http://linux-training.be/
• CO Legacy Database for GASS(COLD GASS) : http://wwwmpa.mpa-garching.mpg.de/COLD_GASS/index.shtml