Emacs ile ağ üzerindeki bir linux sistemin dosyalarını düzenlemek

taydin

Timur Aydın
Staff member
Gömülü sistemlerle çalışanlar için, sıklıkla üzerinde Linux işletim sistemi çalışan gömülü sistemlerde bulunan dosyaları düzenlemek isteriz. Bunun için değişik alternatifler var:

1) Gömülü sistemdeki diski bir masaüstü Linux sisteme bağlayıp dosyaları orada düzenleriz. Bu çok zahmetlidir ve bazan de hiç mümkün değildir çünkü gömülü sistemin diski direkt olarak devreye bağlı ve sökülemeyen bir NAND veya eMMC çipi olabilir.

2) Gömülü sisteme ssh veya telnet ile bağlanıp sistemde bulunan bir editör ile dosyaları düzenleyebiliriz. Birçok gelişmiş editör (Emacs, VIM) bu şekilde kullanılabilir. Ama bir terminal üzerinde çalışmanın birçok kısıtlaması olmaktadır. Bazı tuş kombinasyonları o terminal tarafından desteklenmiyordur. Veya gömülü sistem çok minimaldir ve Emacs/VIM çalıştırabilecek bir kapasitesi yoktur.

3) Emacs'in tramp modülü ile o gömülü sistemdeki dosyayı, sanki masaüstü sistemimizdeymiş gibi düzenlemek. Emacs dışında başka programlama editörleri ve IDE'lerde de bu destek vardır (Örneğin Eclipse), ama Emacs ile bu çok daha basit ve özel kurulum ve yapılandırma gerektirmeden yapılabilmektedir.

Bu konuda, 3. maddede anlatıldığı şekilde Emacs ile ağ üzerindeki bir sistemdeki dosyanın doğrudan düzenlenmesini anlatacağım. Ağ üzerinde derken, sistem aynı LAN üzerinde de olabilir, internet üzerinden erişilen ve dünyanın öbür ucunda olan bir sistem de olabilir.
 

taydin

Timur Aydın
Staff member
Örneğin burada, bu forumun da üzerinde çalıştığı ve turhost sunucularından birisi olan linux sistemine bağlanıyoruz (güvenlik nedeniyle port numarası gizlenmiştir)

Screenshot_20200208_160603.png


Bu şekilde bağlantıyı yaptıktan sonra o sistemdeki dosyalama sisteminin kök dizinini görebiliyoruz. Buradan da /etc/services isimli dosyayı açıp düzenliyoruz. Bu düzenlemeyi yaparken, Emacs'in normalde de kullanılabilen her türlü özelliğini kullanabiliyoruz. Düzenleme bitince de dosyayı kaydediyoruz ve güncellenmiş olan dosya, Emacs tarafından ağ üzerindeki sunucuya gönderiliyor.

1581167504754.png
 

taydin

Timur Aydın
Staff member
Evet doğru. Ama Linux tabanlı gömülü sistemlerin büyük çoğunluğunda ssh server sisteme dahildir.
 
Top