Download - Editors for-linux
Linux System Admin
Editors(nano and vi)
Chatchai J.2014-02-27
Editors
● มมี editor หลายตตัวใหห้เลลือกใชห้บน Linux
● ขขขึ้นอยยยู่กตับลตักษณะงานทมีที่ตห้องการ● Programmer
– พตัฒนาบน local host แลห้วสยงไปใชห้ทมีที่ remote host
– GUI Editors หรลือ ใชห้ IDE (มมี editor ในตตัว)
Editors
● System / Network Admin
– ตรวจสอบ/แกห้ไข config file
– เขมียน script
● ใชห้งานบนเซซิรร์ฟเวอรร์ (remote host)
● ผยาน Secure shell connection
– Text editor (full screen)
Linux Text Editors
● Nano● Vi● Emacs
● มมีอลืที่นๆใหห้เลลือกอมีกมาก$ aptcache search editor
Editors
● Default editor คลือ nano
– มาจาก pico
– pico เปป็นสยวนหนขที่งของ pine package
● Freeware แตยไมยใชย open source license
– ใชห้สสาหรตับการอยาน/เขมียน mail
nano
● Full screen editor
● ใชห้ Cursor Navigation
● ไมยมมี search and replace
● มมี syntax hilight
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
emacs
● เปป็นทตัขึ้ง editor และ IDE สสาหรตับการพตัฒนาซอฟตร์แวรร์
● Full screen editor● Programmable
● แตยผมไมยเคยใชห้อยยางจรซิงจตัง -_-”
vi
● Default editor กยอนทมีที่จะมมี nano
● มมีใชห้งานบน unix ททุกระบบ● มมีความสตัมพตันธร์กตับ ed, ex, sed และเครลืที่องมลืออลืที่นๆ
● ความรห้ยู่เอาไปใชห้งานรยวมกตันไดห้
vi
● มมีหลาย version ใหห้เลลือกใชห้– nvi
– vim● vim-tiny
– elvis
● Default ทมีที่ตซิดตตัขึ้งคลือ vim-tiny
● ถห้าใชห้งานสสาหรตับการเขมียนโปรแกรมดห้วยควรตซิดตตัขึ้ง vim เพซิที่ม
Mode ของ vi
● โหมดในการทสางานมมี 3 (6) mode
– Normal Mode - Visual Mode
– Command line Mode - Select Mode
– Insert Mode - Ex Mode
● การทสางาน$ vi file
● จะเรซิที่มใน Normal Mode
Quit from vi
● ไมยวยาจะอยยยู่ใน mode ใหน[ESC] :q!
● จะยกเลซิกสซิที่งทมีที่กสาลตัง edit และกลตับสยยู่ shell prompt
[ESC] :wq
[ESC] :x
● จะ save สซิที่งทมีที่กสาลตัง edit และกลตับสยยู่ shell prompt
Quit from vi
● ตห้องการ save แตยใหห้อยยยู่ในชลืที่อไฟลร์อลืที่น[ESC] :w /tmp/tempfile.txt
[ESC] :q!
● จะ save ลงไปในไฟลร์ชลืที่อ /tmp/tempfile.txt
เรซิที่มใชห้งาน vi
$ vi /tmp/test.sh
● จะเรซิที่มทสางานใน normal mode
● เพซิที่ม text เขห้าไปในไฟลร์ โดยการกด key
i – inserta – append
● จะเปลมีที่ยนเปป็น insert mode
เรซิที่มใชห้งาน vi
● ออกจาก insert mode โดยใชห้ [ESC]● ใน insert mode สามารถใชห้คมียร์ลยู่กศร, DEL,
BACKSPACE ไดห้● ตห้องการ save ใหห้ใชห้[ESC] :w
หยทุดแคยนมีขึ้● ใน 5 slide ทมีที่ผยานมา
– วซิธมีการเรมียกใชห้ (vi file) – 1 slide
– วซิธมีการ quit – 2 slide
– การ edit – 1 slide
– การ save – 1 slide
● เกลือบเทยากตับการใชห้งานฟตั งกร์ชตันหลตักของ nano
Editor
ทสาไมถขงจะกลตับไปใชห้ nano?
Editor
มาดยู่ vi กตันตยอ
Mode of VI
● Normal Mode● Command Line Mode● Insert Mode
● การใชห้งานโดยทตัที่วไปในการ edit file เราจะ switch ไปมาระหวยาง mode เหลยานมีขึ้
Normal mode
● ใน Normal Mode เราจะไมยเหป็น key ทมีที่เราพซิมพร์ลงไป แตย “โดยทตัที่วไป” เราจะเหป็น “ผลลตัพธร์” ของ key นตัขึ้นๆทตันทมี
Command Line Mode
● จาก normal mode จะเปลมีที่ยนเปป็น command line mode
โดยการใชห้ key colon ':'
● cursor จะไปแสดงบรรทตัดลยางสทุด หลตังเครลืที่องหมาย โคลอน พรห้อมทมีที่จะรตับคสาสตัที่ง สซิที่งทมีที่พซิมพร์จะมองเหป็น
● หลตังจากทสาคสาสตัที่งใน command line mode เสรป็จแลห้ว จะกลตับสยยู่ normal mode
Insert Mode
● จาก normal mode เมลืที่อใชห้ key
– A,a – append text
– I,i – insert text
– O.o – open new line
● กป็จะอยยยู่ใน insert mode จนกระทตัที่งกดปย ทุม [ESC]
กป็จะกลตับ normal mode
motion
● ทดลอง normal mode
$ vi /etc/passwd
● การเคลลืที่อน cursor ไปในไฟลร์ J up
H L left right
K down
● เทมียบไดห้กตับคมียร์ลยู่กศร
Motion in normal mode
● 0 => ไป ตห้นบรรทตัด● $ => ไป ทห้ายบรรทตัด● Ctrl-F => forward == PgDn● Ctrl-B => backward == PgUp
● มมีการเคลลืที่อนทมีที่ใน command mode อมีกหลาย key
แตยโดยสยวนใหญยแลห้ว ผมใชห้เทยานมีขึ้
motion รยวมกตับ command line mode
● การ edit config หรลือ source code ไฟลร์โดยทตัที่วไป จะใชห้งานรยวมกตัน ระหวยาง normal mode กตับ command line mode
● กยอนอลืที่น แสดง line number
:se nu
:set number
Motion ใน command line mode
● ไปบรรทตัดทมีที่ 20
:20
● ไปบรรทตัดสทุดทห้ายของไฟลร์:$
● ไปบรรทตัดแรก:1
ใชห้รยวมกตับ search
● หาคสาวยา 'bash'
/bash
:/bash
● หาแบบ backward
?bash
:?bash
Edit ใน normal mode
● x – delete character
● d? - delete บางอยยาง– dd delete line
– dw delete word
– D ลบไปจน end-of-line
– ทดลอง dh, dj, dk, dl
Edit ใน normal mode
● เราสามารถระบทุการทสาซสขึ้าของคสาสตัที่งนตัขึ้นๆไดห้ โดยใสยตตัวเลขไปขห้างหนห้า เชยน10dw – ลบ 10 คสา10dd – ลบไป 10 บรรทตัด
ทดลอง edit
● ทดลองพซิมพร์:1 เพลืที่อไปบรรทตัดทมีที่ 1
100dd ลบไป 100 บรรทตัดu undo
:%d ลบททุกบรรทตัดโดยใชห้ command line
ทดลอง edit
● ทดลองพซิมพร์10a จะเขห้าสยยู่ insertmode
1234567890 แลห้วเคาะ [ESC] เพลืที่อกลตับ command line mode
● เกซิดอะไรขขขึ้น?
ทดลอง edit
● ใน normal mode การ delete แตยละครตัขึ้ง จะเกป็บขห้อมยู่ลทมีที่ลบเขห้า buffer
● ขห้อมยู่ลใน buffer สามารถ paste กลตับมาไดห้โดยใชห้ key 'p'
● ขห้อมยู่ลสามารเกป็บเขห้า buffer โดยไมยตห้อง delete โดยใชห้ key 'y' – yank
ทดลอง edit
● ทดลองพซิมพร์yy เกป็บขห้อมยู่ลทมีที่บรรทตัดนตัขึ้นเขห้า buffer
5p paste ขห้อมยู่ลใน buffer ซสขึ้า 5 ครตัขึ้ง
Edit ใน command line mode
● สยวนใหญยแลห้ว ผมจะใชห้ search กตับ replace
● จากขห้อมยู่ลของ /etc/passwd ทมีที่ edit ไปแลห้ว ใชห้:e!
● เพลืที่อ restore ขห้อมยู่ลทมีที่แกห้ไขกลตับมา● หรลืออาจจะใชห้ u ใน normal mode ไปเรลืที่อยๆ
Edit ใน command line mode
● เพซิที่ม เครลืที่องหมาย '#' หนห้าบรรทตัดทมีที่ 2 – 8
:2,8s/^/#/
● ':' คลือเขห้าสยยู่ command line mode
'2,8' ใหห้ทสาคสาสตัที่งตยอไปนมีขึ้ จากบรรทตัดทมีที่ 2 ถขงบรรทตัดทมีที่ 8
's/^/#/' search หา ตห้นบรรทตัด และ replace ดห้วย #
Command line mode
● การใชห้งานในสยวนนมีขึ้ จะขขขึ้นอยยยู่กตับ regular
expression อยยยู่มาก● ซขที่งจะพยู่ดถขงในเรลืที่อง regular expression ตยอไป
… slide ยตังไมยเสรป็จ ….
คสาสตัที่งอลืที่น● อยานจากไฟลร์อลืที่น:r /etc/group อยานจากไฟลร์ /etc/group
● เขมียนลงไฟลร์อลืที่น:w /tmp/out.txt เขมียนลงไฟลร์ /tmp/out.txt