Akankah membuat file teks di vi mengubah komputer saya?


9

Saya tahu bahwa Linux adalah sistem operasi yang dibangun di atas file teks. Yang ingin saya lakukan adalah membuat file menggunakan visemua berbagai perintah yang telah saya pelajari. Dengan begitu saya bisa menemukan setiap perintah dengan sangat mudah menggunakan /in vi. Tetapi saya hanya ingin melakukan ini jika itu tidak mengubah cara fungsi komputer saya. Apakah ini ide yang bagus?


12
Ya, itu akan memiliki file teks lebih banyak di suatu tempat. ;-) (Bercanda) Sungguh, file adalah file. Seperti bertanya apakah menambahkan foto ke folder atau membuat dokumen kata baru akan mengubah komputer Anda. Ya, tentu saja; Anda punya satu foto / dokumen lagi di sana. Apa pun, jawaban yang Anda dapatkan sebagian besar benar.
Rmano

Mengapa Anda berpikir itu akan melakukannya?
Braiam

2
Tidak yakin apa yang Anda maksud dengan "sistem operasi yang dibangun di atas file teks", tetapi Linux tidak benar-benar berbeda dengan, katakanlah, Windows, dalam hal file teks. Windows memiliki file .ini dan .bat misalnya, jika itu yang Anda pikirkan.
hyde

Juga, apakah Anda pikir ada sesuatu yang istimewa tentang vi(dibandingkan dengan, katakanlah gedit) atau apakah Anda hanya bermaksud "editor teks"?
Tn. Lister

1
@ BJsgoodlife Beberapa file teks mengontrol sistem. Mereka diletakkan di tempat khusus dan umumnya tidak dapat dimodifikasi tanpa sudo.
cpast

Jawaban:


34

Menulis file teks tidak akan "mengubah cara fungsi komputer Anda".

Khususnya, untuk melakukan sesuatu seperti itu, Anda harus melakukan salah satunya

  • menimpa beberapa file penting
  • tulis file Anda ke lokasi yang dilindungi khusus seperti direktori * .d di / etc; Anda tidak akan memiliki izin untuk melakukan ini
  • tandai file yang dapat dieksekusi dan letakkan di jalur Anda

Karena Anda tidak akan secara eksplisit melakukan hal seperti ini, tidak ada yang perlu dikhawatirkan. Secara khusus, jawaban yang lain terlalu panjang dengan menyarankan file teks Anda harus dimulai dengan hash pada setiap baris. Tentu saja tidak. Hanya menyimpan file teks di suatu tempat dalam direktori home normal tidak akan melakukan apa-apa.


3
Saya menyarankan #agar tidak ada yang dilakukan tanpa sengaja. Saya pikir selalu lebih baik berada di sisi yang lebih aman.
heemayl

8
Saya pikir tidak selalu lebih baik berada di sisi yang lebih aman. Keselamatan memiliki biaya, dan ada titik di mana pengurangan risiko tidak lagi sepadan dengan biaya. Misalnya, ketika melebihi nilai dari hal yang Anda coba jaga tetap aman (dalam konteks di mana argumen ini masuk akal). Mengenai Keamanan Informasi, Anda dapat menemukan banyak jawaban yang membahas bagaimana keamanan yang tepat merupakan tradeoff, dan satu-satunya sistem yang sepenuhnya aman juga sama sekali tidak berguna, sehingga konyol untuk bersikeras pada keamanan yang sempurna dalam semua kasus.
David Z

9
Sebagai masalah yang agak terpisah, saya pikir poin paling penting untuk diangkat (yang tidak dijawab oleh jawaban ini, dan yang lainnya tidak) adalah membuat file sewenang-wenang tidak akan melakukan apa pun untuk mengubah sistem. Anda hanya dapat mempengaruhi sistem dengan membuat file yang dicari oleh proses lain, atau dengan mengeksekusi file yang Anda buat, jika itu berisi kode untuk mempengaruhi sistem - tetapi itu termasuk dalam saran umum untuk tidak menjalankan perintah shell yang sepenuhnya tidak dikenal. , yang cerdas apakah Anda bekerja dengan file atau tidak.
David Z

2
buatkan saya sandwich. You won't have permission to do this. sudo membuatkanku roti lapis. Aye, aye, sir!
Lie Ryan

2
@ heemayl mengapa tidak membuat baris pertama di file exit?
Random832

15

Anda dapat menyimpan semua perintah yang telah Anda pelajari dalam file tetapi beberapa poin penting yang perlu diperhatikan:

  • Jangan membuat file dapat dieksekusi
  • Tidak pernah sourcefile
  • Cara terbaik adalah dengan meletakkan #di awal semua perintah untuk mengomentari semua perintah sehingga mereka tidak dieksekusi secara tidak sengaja. Dengan cara ini Anda dapat benar-benar mencari perintah yang Anda butuhkan dan juga bebas risiko. Anda dapat menambahkan #di awal setiap baris dengan perintah berikut:

    sed -i 's/^/#/' <file_name>

EDIT: Saya telah memberikan poin ketiga sebagai langkah keamanan yang ekstrim, seperti "neon_overload" dan "David Z" menunjukkan bahwa meletakkan hash di semua baris terlalu luas dan karenanya tidak diperlukan, saya akan kedua dengan mereka dalam konteks ini. Juga seperti yang ditunjukkan oleh "random832", alternatif yang jauh lebih baik untuk titik ketiga saya adalah memulai file dengan exit, karena tidak ada perintah kemudian akan dieksekusi kemudian.

EDIT-2: "Rinzwind" telah menyebutkan dua poin penting:

  • Jangan menimpa file yang ada

  • Simpan file di direktori home pengguna ( /home/$USER/).


4
put a # in the beginning of all the commands to comment out all the commands so they don't get executed accidentallySaya tidak yakin apakah itu saran serius atau lelucon. Detektor sarkasme saya gagal hari ini.
Lie Ryan

Kata yang perlu Anda perhatikan adalah 'tidak sengaja' .. pengguna mungkin secara tidak sengaja menyimpan file di tempat yang tidak aman sebagai dieksekusi .... di sini saya tidak mau mengambil risiko .. harap Anda jelas sekarang ..
heemayl

4
Tidak bisakah dia meletakkan "jalan keluar" atau sesuatu seperti itu di awal file, alih-alih mengomentari setiap baris?
o0 '.

Mungkin maksudnya #! - yang mengatur penerjemah ke nol sehingga tidak berjalan.
Joshua

1
@ BJsgoodlife, tidak #!- adil exit; dengan cara itu Anda juga terlindungi sh yourfile, yang tidak dapat dihindari oleh shebang yang tidak valid.
Charles Duffy

7

neon_overload memiliki jawaban yang sangat bagus.

Saya akan sedikit memperluas pada sisi tertentu dari pertanyaan Anda - saya akan membuat ini komentar, tetapi saya tidak memiliki reputasi yang cukup di sini.

Linux, sebagai sistem operasi, sangat TIDAK didasarkan pada file teks. Yang mengatakan, saya bisa melihat dari mana Anda berasal. Bagi pengamat luar, ada cukup banyak hal yang terjadi dengan mengedit dan meluncurkan file "teks", terutama dibandingkan dengan Windows.

Ini memiliki beberapa alasan, beberapa di antaranya adalah:

  • Tidak ada sistem registri di Linux, seperti di Windows. Oleh karena itu, lazim bagi aplikasi untuk menyimpan pengaturannya di file teks, dan Anda akan diminta untuk mengeditnya, daripada mengedit registri seperti di Windows.
  • Linux sangat banyak digunakan sebagai sistem server, dan banyak dari mereka, yang menggunakannya pada desktop bekerja dengan sistem server. Tidak seperti Windows Server, server Linux biasanya berjalan tanpa antarmuka grafis. Oleh karena itu, produk yang diharapkan berjalan di server Linux, dan, memang, pengguna dan administrator mereka, diharapkan bekerja tanpa antarmuka grafis. Produk (dan fitur sistem, layak dikatakan) yang hanya diharapkan berjalan di Windows biasanya lebih berpusat pada GUI (seperti, katakanlah MS SQL)
  • Sistem scripting Linux agak lebih umum dan lebih transparan daripada Windows. Anda akan melihat skrip di Windows - tetapi skrip tersebut akan dipanggil something.vbs atau another.bat. Anda tidak akan perlu menyadari itu adalah file teks - tetapi, mengingat apa yang ada di poin kedua saya, jauh lebih umum di Linux untuk mengintip file .sh.
  • Terakhir, banyak pengguna Linux yang terbiasa bekerja tanpa antarmuka grafis, dan akan, untuk banyak hal, mengedit file secara langsung seperti mereka tanpa GUI, daripada mencari-cari alat grafis. Saya tahu bahwa ketika saya ingin melakukan sesuatu yang lebih dalam dalam sistem, saya baru saja memulai terminal, dan begitu juga banyak rekan saya.

"Tidak ada sistem registri di Linux", tetapi ada dconf ( en.wikipedia.org/wiki/Dconf ). Tidak semua sistem yang menjalankan kernel Linux akan memilikinya, dan tidak semua hal yang akan dikonfigurasikan oleh sistem Windows dalam registri akan dikonfigurasikan di sana.
Daniel Landau

1

Jawaban singkatnya adalah, tidak, Anda tidak akan mengubah komputer Anda dengan membuat file teks di vi. Namun, jika Anda tidak hati-hati, membuat file teks pertama itu mungkin mengubah hidup Anda . Mempelajari cara Unix bisa menjadi praktik yang sangat bermanfaat.


0

viadalah editor teks , oleh karena itu jika yang Anda inginkan hanyalah menyimpan beberapa cuplikan teks dalam file teks, dan mencarinya, maka Anda dapat melakukan semuanya langsung dari terminal dengan perintah bawaan.

  1. Tulis catatan ke file teks (akan membuat file jika tidak ada):

    catatan gema dengan data penting >> info.txt

PENTING: Hati-hati dengan tanda kutip tunggal dan ganda, dan awali dengan garis miring jika Anda ingin menyertakannya.

  1. Cari file untuk beberapa teks (misalnya important):

    grep --color -i info.txt penting

Untuk menghindari mengetik --color -iyang seharusnya alias di blog Anda ~/.bashrc.

Anda juga dapat menambahkan teks multiline ke file teks yang ada atau tidak ada:

cat >> info2.txt

lalu ketik atau tempel teks, dan ketika selesai kemudian tekan CTR+Z

Sedangkan untuk mengubah sistem, tidak, itu tidak akan mengubah cara sistem Anda bekerja selama Anda membuat file di folder rumah Anda sendiri dan tidak menjalankannya (Anda dapat mengeksekusi file bahkan jika itu tidak dapat dieksekusi, misalnya dengan bash myFile) . Pastikan juga Anda hanya menggunakan hak akses root secara ketat saat Anda membutuhkannya.

Dan akhirnya, interpretasi Anda tentang sistem berbasis file agak menyesatkan Anda: sebagian besar sistem operasi memiliki file yang menyimpan pengaturan penting yang sangat mempengaruhi cara sistem beroperasi, tetapi mereka berada di lokasi yang telah ditentukan dan biasanya dilindungi dari modifikasi oleh pengguna biasa.

Namun dimungkinkan untuk dengan mudah menembak diri sendiri, misalnya, jika sebagai pengguna biasa Anda memiliki folder 'executable' lokal yang Anda tambahkan PATH, dan jika dalam folder itu Anda memiliki file yang dapat dieksekusi yang memiliki nama yang sama dengan yang dibangun -in utilitas umum atau kata kunci bash, seperti test, echo, cat, for, cut, dll

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.