editors for-linux

37
Linux System Admin Editors (nano and vi) Chatchai J. 2014-02-27

Upload: chatchai-jantaraprim

Post on 28-Jan-2018

432 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Editors for-linux

Linux System Admin

Editors(nano and vi)

Chatchai J.2014-02-27

Page 2: Editors for-linux

Editors

● มมี editor หลายตตัวใหห้เลลือกใชห้บน Linux

● ขขขึ้นอยยยู่กตับลตักษณะงานทมีที่ตห้องการ● Programmer

– พตัฒนาบน local host แลห้วสยงไปใชห้ทมีที่ remote host

– GUI Editors หรลือ ใชห้ IDE (มมี editor ในตตัว)

Page 3: Editors for-linux

Editors

● System / Network Admin

– ตรวจสอบ/แกห้ไข config file

– เขมียน script

● ใชห้งานบนเซซิรร์ฟเวอรร์ (remote host)

● ผยาน Secure shell connection

– Text editor (full screen)

Page 4: Editors for-linux

Linux Text Editors

● Nano● Vi● Emacs

● มมีอลืที่นๆใหห้เลลือกอมีกมาก$ apt­cache search editor

Page 5: Editors for-linux

Editors

● Default editor คลือ nano

– มาจาก pico

– pico เปป็นสยวนหนขที่งของ pine package

● Freeware แตยไมยใชย open source license

– ใชห้สสาหรตับการอยาน/เขมียน mail

Page 6: Editors for-linux

nano

● Full screen editor

● ใชห้ Cursor Navigation

● ไมยมมี search and replace

● มมี syntax hilight

Page 7: Editors for-linux

nano

● ใชห้ Control Key สสาหรตับ basic text edit

– Save to file Ctrl-O

– Read from file Ctrl-R

– Exit from editor Ctrl-X

– Cut line(s) Ctrl-K

– Paste line(s) Ctrl-U

– Search Ctrl-W

Page 8: Editors for-linux

emacs

● เปป็นทตัขึ้ง editor และ IDE สสาหรตับการพตัฒนาซอฟตร์แวรร์

● Full screen editor● Programmable

● แตยผมไมยเคยใชห้อยยางจรซิงจตัง -_-”

Page 9: Editors for-linux

vi

● Default editor กยอนทมีที่จะมมี nano

● มมีใชห้งานบน unix ททุกระบบ● มมีความสตัมพตันธร์กตับ ed, ex, sed และเครลืที่องมลืออลืที่นๆ

● ความรห้ยู่เอาไปใชห้งานรยวมกตันไดห้

Page 10: Editors for-linux

vi

● มมีหลาย version ใหห้เลลือกใชห้– nvi

– vim● vim-tiny

– elvis

● Default ทมีที่ตซิดตตัขึ้งคลือ vim-tiny

● ถห้าใชห้งานสสาหรตับการเขมียนโปรแกรมดห้วยควรตซิดตตัขึ้ง vim เพซิที่ม

Page 11: Editors for-linux

Mode ของ vi

● โหมดในการทสางานมมี 3 (6) mode

– Normal Mode - Visual Mode

– Command line Mode - Select Mode

– Insert Mode - Ex Mode

● การทสางาน$ vi file

● จะเรซิที่มใน Normal Mode

Page 12: Editors for-linux

Quit from vi

● ไมยวยาจะอยยยู่ใน mode ใหน[ESC] :q!

● จะยกเลซิกสซิที่งทมีที่กสาลตัง edit และกลตับสยยู่ shell prompt

[ESC] :wq

[ESC] :x

● จะ save สซิที่งทมีที่กสาลตัง edit และกลตับสยยู่ shell prompt

Page 13: Editors for-linux

Quit from vi

● ตห้องการ save แตยใหห้อยยยู่ในชลืที่อไฟลร์อลืที่น[ESC] :w /tmp/tempfile.txt

[ESC] :q!

● จะ save ลงไปในไฟลร์ชลืที่อ /tmp/tempfile.txt

Page 14: Editors for-linux

เรซิที่มใชห้งาน vi

$ vi /tmp/test.sh

● จะเรซิที่มทสางานใน normal mode

● เพซิที่ม text เขห้าไปในไฟลร์ โดยการกด key

i – inserta – append

● จะเปลมีที่ยนเปป็น insert mode

Page 15: Editors for-linux

เรซิที่มใชห้งาน vi

● ออกจาก insert mode โดยใชห้ [ESC]● ใน insert mode สามารถใชห้คมียร์ลยู่กศร, DEL,

BACKSPACE ไดห้● ตห้องการ save ใหห้ใชห้[ESC] :w

Page 16: Editors for-linux

หยทุดแคยนมีขึ้● ใน 5 slide ทมีที่ผยานมา

– วซิธมีการเรมียกใชห้ (vi file) – 1 slide

– วซิธมีการ quit – 2 slide

– การ edit – 1 slide

– การ save – 1 slide

● เกลือบเทยากตับการใชห้งานฟตั งกร์ชตันหลตักของ nano

Page 17: Editors for-linux

Editor

ทสาไมถขงจะกลตับไปใชห้ nano?

Page 18: Editors for-linux

Editor

มาดยู่ vi กตันตยอ

Page 19: Editors for-linux

Mode of VI

● Normal Mode● Command Line Mode● Insert Mode

● การใชห้งานโดยทตัที่วไปในการ edit file เราจะ switch ไปมาระหวยาง mode เหลยานมีขึ้

Page 20: Editors for-linux

Normal mode

● ใน Normal Mode เราจะไมยเหป็น key ทมีที่เราพซิมพร์ลงไป แตย “โดยทตัที่วไป” เราจะเหป็น “ผลลตัพธร์” ของ key นตัขึ้นๆทตันทมี

Page 21: Editors for-linux

Command Line Mode

● จาก normal mode จะเปลมีที่ยนเปป็น command line mode

โดยการใชห้ key colon ':'

● cursor จะไปแสดงบรรทตัดลยางสทุด หลตังเครลืที่องหมาย โคลอน พรห้อมทมีที่จะรตับคสาสตัที่ง สซิที่งทมีที่พซิมพร์จะมองเหป็น

● หลตังจากทสาคสาสตัที่งใน command line mode เสรป็จแลห้ว จะกลตับสยยู่ normal mode

Page 22: Editors for-linux

Insert Mode

● จาก normal mode เมลืที่อใชห้ key

– A,a – append text

– I,i – insert text

– O.o – open new line

● กป็จะอยยยู่ใน insert mode จนกระทตัที่งกดปย ทุม [ESC]

กป็จะกลตับ normal mode

Page 23: Editors for-linux

motion

● ทดลอง normal mode

$ vi /etc/passwd

● การเคลลืที่อน cursor ไปในไฟลร์ J up

H L left right

K down

● เทมียบไดห้กตับคมียร์ลยู่กศร

Page 24: Editors for-linux

Motion in normal mode

● 0 => ไป ตห้นบรรทตัด● $ => ไป ทห้ายบรรทตัด● Ctrl-F => forward == PgDn● Ctrl-B => backward == PgUp

● มมีการเคลลืที่อนทมีที่ใน command mode อมีกหลาย key

แตยโดยสยวนใหญยแลห้ว ผมใชห้เทยานมีขึ้

Page 25: Editors for-linux

motion รยวมกตับ command line mode

● การ edit config หรลือ source code ไฟลร์โดยทตัที่วไป จะใชห้งานรยวมกตัน ระหวยาง normal mode กตับ command line mode

● กยอนอลืที่น แสดง line number

:se nu

:set number

Page 26: Editors for-linux

Motion ใน command line mode

● ไปบรรทตัดทมีที่ 20

:20

● ไปบรรทตัดสทุดทห้ายของไฟลร์:$

● ไปบรรทตัดแรก:1

Page 27: Editors for-linux

ใชห้รยวมกตับ search

● หาคสาวยา 'bash'

/bash

:/bash

● หาแบบ backward

?bash

:?bash

Page 28: Editors for-linux

Edit ใน normal mode

● x – delete character

● d? - delete บางอยยาง– dd delete line

– dw delete word

– D ลบไปจน end-of-line

– ทดลอง dh, dj, dk, dl

Page 29: Editors for-linux

Edit ใน normal mode

● เราสามารถระบทุการทสาซสขึ้าของคสาสตัที่งนตัขึ้นๆไดห้ โดยใสยตตัวเลขไปขห้างหนห้า เชยน10dw – ลบ 10 คสา10dd – ลบไป 10 บรรทตัด

Page 30: Editors for-linux

ทดลอง edit

● ทดลองพซิมพร์:1 เพลืที่อไปบรรทตัดทมีที่ 1

100dd ลบไป 100 บรรทตัดu undo

:%d ลบททุกบรรทตัดโดยใชห้ command line

Page 31: Editors for-linux

ทดลอง edit

● ทดลองพซิมพร์10a จะเขห้าสยยู่ insertmode

1234567890 แลห้วเคาะ [ESC] เพลืที่อกลตับ command line mode

● เกซิดอะไรขขขึ้น?

Page 32: Editors for-linux

ทดลอง edit

● ใน normal mode การ delete แตยละครตัขึ้ง จะเกป็บขห้อมยู่ลทมีที่ลบเขห้า buffer

● ขห้อมยู่ลใน buffer สามารถ paste กลตับมาไดห้โดยใชห้ key 'p'

● ขห้อมยู่ลสามารเกป็บเขห้า buffer โดยไมยตห้อง delete โดยใชห้ key 'y' – yank

Page 33: Editors for-linux

ทดลอง edit

● ทดลองพซิมพร์yy เกป็บขห้อมยู่ลทมีที่บรรทตัดนตัขึ้นเขห้า buffer

5p paste ขห้อมยู่ลใน buffer ซสขึ้า 5 ครตัขึ้ง

Page 34: Editors for-linux

Edit ใน command line mode

● สยวนใหญยแลห้ว ผมจะใชห้ search กตับ replace

● จากขห้อมยู่ลของ /etc/passwd ทมีที่ edit ไปแลห้ว ใชห้:e!

● เพลืที่อ restore ขห้อมยู่ลทมีที่แกห้ไขกลตับมา● หรลืออาจจะใชห้ u ใน normal mode ไปเรลืที่อยๆ

Page 35: Editors for-linux

Edit ใน command line mode

● เพซิที่ม เครลืที่องหมาย '#' หนห้าบรรทตัดทมีที่ 2 – 8

:2,8s/^/#/

● ':' คลือเขห้าสยยู่ command line mode

'2,8' ใหห้ทสาคสาสตัที่งตยอไปนมีขึ้ จากบรรทตัดทมีที่ 2 ถขงบรรทตัดทมีที่ 8

's/^/#/' search หา ตห้นบรรทตัด และ replace ดห้วย #

Page 36: Editors for-linux

Command line mode

● การใชห้งานในสยวนนมีขึ้ จะขขขึ้นอยยยู่กตับ regular

expression อยยยู่มาก● ซขที่งจะพยู่ดถขงในเรลืที่อง regular expression ตยอไป

… slide ยตังไมยเสรป็จ ….

Page 37: Editors for-linux

คสาสตัที่งอลืที่น● อยานจากไฟลร์อลืที่น:r /etc/group อยานจากไฟลร์ /etc/group

● เขมียนลงไฟลร์อลืที่น:w /tmp/out.txt เขมียนลงไฟลร์ /tmp/out.txt