คอนฟิกดีฟอลต์ editor บน Ubuntu 18.04

การคอนฟิกลีนุกซ์โดยใช้บางคำสั่งเช่น crontab, visudo จะมีการเรียก editor ขึ้นมาเพื่อแก้ไขไฟล์คอนฟิก ซึ่งขึ้นอยู่กับเวอร์ชันลีนุกซ์ที่ใช้ว่าจะตั้ง editor ตัวไหนเป็นดีฟอลต์ เช่น Ubuntu 18.04 จะตั้ง nano เป็นดีฟอลต์

มาดูกันว่าถ้าเราต้องการเปลี่ยนดีฟอลต์ editor ให้เป็นตัวอื่น เช่น vim จะสามารถเปลี่ยนได้อย่างไร

ตัวอย่างการรันคำสั่ง crontab -e ครั้งแรก จะมีการถามให้เลือกใช้ editor เพื่อแก้ไข crontab

alice@u1804:~$ crontab -e
no crontab for alice - using an empty one

Select an editor. To change later, run 'select-editor'.
 1. /bin/nano       <---- easiest
 2. /usr/bin/vim.basic
 3. /usr/bin/vim.tiny
 4. /bin/ed

Choose 1-4 [1]: 2

เช่นถ้าเราเลือกเป็น vim.basic (vim ดีฟอลต์) ก็พิมพ์เลข 2 แล้วกด [enter] เราก็สามารถใช้ vim เพื่อแก้ไข crontab ได้

การตั้งค่า editor แบบนี้จะเป็นของแต่ละผู้ใช้ (user) เอง ซึ่งผู้ใช้สามารถแก้ไขภายหลังได้โดยใช้คำสั่ง select-editor โดยคำสั่งนี้จะสร้างไฟล์คอนฟิกใน home ของผู้ใช้

alice@u1804:~$ cat .selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

แต่บางคำสั่งไม่ได้ดูค่าคอนฟิกที่ตั้งไว้โดย select-editor เช่นการใช้ sudo visudo

alice@u1804:~$ sudo visudo

จะไปเรียกคำสั่ง nano เพื่อแก้ไขคอนฟิก visudo

ถ้าเราต้องการแก้ไข editor ที่ใช้แก้ไขคอนฟิก visudo ต้องใช้วิธีการอื่น

วิธีการหนึ่งที่ทำได้คือ ใช้คำสั่ง update-alternatives คอนฟิกค่าดีฟอลต์ editor ของระบบ ซึ่งจะมีผลทั้งระบบ หรือทุกผู้ใช้งานที่อยู่ในระบบเลย

ใช้ sudo รันคำสั่ง update-alternatives ระบุคอนฟิก –config editor

alice@u1804:~$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                 Priority  Status
------------------------------------------------------------
* 0            /bin/nano             40       auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano             40       manual mode
  3            /usr/bin/vim.basic    30       manual mode
  4            /usr/bin/vim.tiny     15       manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
alice@u1804:~$

พิมพ์เลข 3 แล้วกด [enter] เพื่อตั้งค่า editor ดีฟอลต์เป็น vim.basic

ทดลองรันคำสั่ง sudo visudo อีกครั้ง จะเรียก vim ขึ้นมาแก้ไข

alice@u1804:~$ sudo visudo

ถ้าทดลองลบไฟล์ .selected_editor แล้วลองรัน crontab -e อีกครั้ง

alice@u1804:~$ rm -f .selected_editor

alice@u1804:~$ crontab -e

หน้าจอจะขึ้น vim เพื่อให้แก้ไข crontab ของผู้ใช้งาน

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.