GNU/Linux >> Belajar Linux >  >> Ubuntu

Penggunaan Sed Untuk Memperbarui File Grub?

Saya baru menggunakan sed tetapi dengan cepat belajar menyukainya karena fleksibilitas umumnya dalam otomatisasi. Saya ingin menjalankan skrip dengan berbagai kontrol keamanan setiap kali saya menggunakan sistem baru, dan sebagian dari itu mengharuskan saya untuk mengunci GRUB. Saya ingin membuka opsi umum Ubuntu dari menu GRUB sehingga siapa pun dapat menggunakannya setelah itu tanpa kata sandi, sambil menjaga semua yang lain tetap terlindungi kata sandi.

yang sedang berkata, saya mencari untuk mencari file /boot/grub/grub.cfg untuk baris tertentu dan menambahkan –unrestricted ke opsi itu. ( Kami hanya menggunakan 16.04.03 sehingga semua sistem secara teoritis memiliki file yang sama saat diinstal )

Baris dalam file adalah:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

Dan saya ingin itu terlihat seperti:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

Saya tahu sed -i adalah untuk pengeditan di tempat dan s/ harus mencari. Tetapi di luar itu saya kehilangan sintaks di sini untuk membuatnya benar-benar melakukan apa yang kita butuhkan. Sejauh yang saya tahu, bahwa penempatan –tidak dibatasi diperlukan karena saya percaya akan lebih mudah jika kita tidak harus melakukan pencarian yang panjang, tetapi sekali lagi saya baru mengenal sed dan tidak yakin. Bisakah seseorang membantu saya dengan penyisipan sed ini? Sebaiknya jelaskan juga kepada saya mengapa sintaks yang berbeda sesuai dengan fungsinya, jadi saya tahu untuk masa depan.

Jawaban yang Diterima:

Ini perintahnya.

sed -i "s/--class os/--class os --unrestricted/" filename

Ini akan menggantikan baris dalam file tanpa memerlukan file temp, karena opsi -i.

Jika tidak masalah di mana di baris "–tidak dibatasi", ini mungkin lebih sederhana.

sed -i "s/'Ubuntu'/'Ubuntu' --unrestricted/" filename

Ubuntu
  1. Simpan File Setelah Menggunakan Perintah Sed?

  2. Perbarui Grub yang Hancur?

  3. Pisahkan File Berdasarkan Set Baris yang Telah Ditentukan?

  1. File Grub Tidak Dapat Disimpan Setelah Dimodifikasi?

  2. Cara memperbarui/menambahkan file di Gambar Docker

  3. 10 Contoh Perintah Sed (Stream Editor)

  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Linux – Tetapkan Kernel Default Di Grub?

  3. Beberapa File Teks Ganti Dengan Sed?