LFCS Cara Menggunakan Perintah GNU 'Sed' untuk membuat, mengedit, dan memanipulasi fail di Linux - Bahagian 1

LFCS Cara Menggunakan Perintah GNU 'Sed' untuk membuat, mengedit, dan memanipulasi fail di Linux - Bahagian 1

Yayasan Linux mengumumkan LFCS (SYSADMIN YOUNDAY LINUX FOUNTUK) Pensijilan, program baru yang bertujuan membantu individu di seluruh dunia untuk mendapatkan yang diperakui dalam tugas pentadbiran sistem asas untuk pertengahan untuk sistem linux. Ini termasuk menyokong sistem dan perkhidmatan berjalan, bersama-sama dengan penyelesaian masalah dan analisis secara langsung, dan membuat keputusan pintar untuk meningkatkan isu-isu kepada pasukan kejuruteraan.

SYSADMIN YOUNDAY LINUX Yayasan - Bahagian 1

Sila tonton video berikut yang menunjukkan mengenai Program Persijilan Yayasan Linux.

Siri ini akan bertajuk Persiapan untuk LFCS (SYSADMIN YOUNDAY LINUX FOUNTUK) Bahagian 1 melalui 10 dan meliputi topik berikut untuk Ubuntu, Centos, dan OpenSUSE:

Bahagian 1: Cara Menggunakan Perintah GNU 'Sed' untuk membuat, mengedit, dan memanipulasi fail di Linux Bahagian 2: Cara memasang dan menggunakan VI/m sebagai editor teks penuh Bahagian 3: Mengarkibkan fail/direktori dan mencari fail di sistem fail Bahagian 4: Peranti penyimpanan pembahagian, pemformatan sistem fail dan mengkonfigurasi partition swap Bahagian 5: Gunung/Unmount Tempatan dan Rangkaian (Samba & NFS) Filesystems di Linux Bahagian 6: Memasang partition sebagai peranti RAID - Membuat & Menguruskan Backup Sistem Bahagian 7: Menguruskan Proses dan Perkhidmatan Permulaan Sistem (SYSVINIT, SYSTEMD dan UPSTART Bahagian 8: Menguruskan Pengguna & Kumpulan, Kebenaran Fail & Atribut dan Membolehkan Akses Sudo Pada Akaun Bahagian 9: Pengurusan Pakej Linux dengan YUM, RPM, APT, DPKG, Aptitude dan Zyper Bahagian 10: Belajar skrip shell asas dan penyelesaian masalah sistem fail

Penting: Kerana perubahan dalam keperluan pensijilan LFCS berkuatkuasa Feb. 2, 2016, Kami termasuk topik yang diperlukan untuk siri LFCS yang diterbitkan di sini. Untuk mempersiapkan peperiksaan ini, anda sangat digalakkan untuk menggunakan siri LFCE juga.

Bahagian 11: Cara Mengurus dan Membuat LVM Menggunakan Perintah VGCreate, LVCreate dan Lvextend Bahagian 12: Cara meneroka Linux dengan dokumentasi dan alat bantuan yang dipasang Bahagian 13: Cara mengkonfigurasi dan menyelesaikan masalah Bootloader Unified Grand (Grub) Bahagian 14: Pantau Linux Proses Penggunaan Sumber dan Tetapkan Had Proses secara Per-Pengguna Bahagian 15: Cara menetapkan atau mengubahsuai parameter runtime kernel dalam sistem linux Bahagian 16: Cara Menetapkan Senarai Kawalan Akses (ACL) dan kuota cakera untuk pengguna dan kumpulan Bahagian 17: Cara memasang cygwin, persekitaran commandline seperti linux untuk tingkap Bahagian 18: Panduan Ultimate untuk Menyiapkan Pelayan FTP untuk Membenarkan Log Masuk Tanpa Nama Bahagian 19: Persediaan pelayan Rekursif Caching DNS dan konfigurasikan zon untuk domain Bahagian 20: Melaksanakan kawalan akses wajib dengan selinux atau apparmor di linux

Catatan ini adalah sebahagian 1 daripada a Siri 20-Tutorial, yang akan meliputi domain dan kecekapan yang diperlukan untuk LFCS peperiksaan pensijilan. Yang dikatakan, api terminal anda, dan mari mulakan.

Memproses aliran teks di linux

Linux merawat input dan output dari program sebagai aliran (atau urutan) aksara. Untuk memulakan pemahaman pengalihan dan paip, kita mesti terlebih dahulu memahami tiga jenis aliran I/O (input dan output) yang paling penting, yang sebenarnya adalah fail khas (oleh konvensyen dalam Unix dan Linux, aliran data dan periferal, atau fail peranti, juga dianggap sebagai fail biasa).

Perbezaan antara > (pengendali pengalihan) dan | (Operator Pipeline) ialah sementara yang pertama menghubungkan arahan dengan fail, yang terakhir menghubungkan output perintah dengan arahan lain.

# Command> File # Command1 | perintah2 

Oleh kerana pengendali pengalihan mewujudkan atau menimpa fail secara senyap, kita mesti menggunakannya dengan berhati -hati, dan tidak pernah menyalahkannya dengan saluran paip. Satu kelebihan paip pada sistem Linux dan Unix ialah tidak ada fail pertengahan yang terlibat dengan paip - stdout perintah pertama tidak ditulis ke fail dan kemudian dibaca oleh perintah kedua.

Untuk latihan amalan berikut, kami akan menggunakan puisi "Anak yang bahagia"(Pengarang Tanpa Nama).

Contoh arahan kucing

Menggunakan sed

Nama sed pendek untuk editor aliran. Bagi mereka yang tidak dikenali dengan istilah ini, editor aliran digunakan untuk melakukan transformasi teks asas pada aliran input (fail atau input dari saluran paip).

Penggunaan SED yang paling asas (dan popular) adalah penggantian watak. Kita akan mulakan dengan mengubah setiap kejadian kecil y ke huruf besar Y dan mengalihkan output ke ahappychild2.txt. The g Bendera menunjukkan bahawa SED harus melaksanakan penggantian untuk semua contoh istilah pada setiap baris fail. Sekiranya bendera ini ditinggalkan, sed akan menggantikan hanya kejadian pertama pada setiap baris.

Sintaks asas:
# Sed 's/term/penggantian/bendera' fail 
Contoh kami:
# sed's/y/y/g 'ahappychild.txt> ahappychild2.txt 
Contoh arahan sed

Sekiranya anda ingin mencari atau menggantikan watak khas (seperti /, \, &) anda perlu melepaskannya, dalam istilah atau rentetan penggantian, dengan slash mundur.

Contohnya, kami akan menggantikan perkataan dan untuk ampersand. Pada masa yang sama, kami akan menggantikan perkataan I dengan Anda Apabila yang pertama dijumpai pada permulaan garis.

# sed's/dan/\ &/g; s/^i/you/g 'ahappychild.txt 
sed menggantikan rentetan

Dalam perintah di atas, a ^ (tanda karet) adalah ungkapan biasa yang terkenal yang digunakan untuk mewakili permulaan garis.

Seperti yang anda lihat, kami dapat menggabungkan dua atau lebih arahan penggantian (dan menggunakan ungkapan biasa di dalamnya) dengan memisahkannya dengan titik koma dan melampirkan set di dalam petikan tunggal.

Satu lagi penggunaan SED menunjukkan (atau memadam) bahagian yang dipilih dari fail. Dalam contoh berikut, kami akan memaparkan 5 baris pertama /var/log/mesej Dari 8 Jun.

# sed -n '/^Jun 8/p'/var/log/mesej | sed -n 1,5p 

Perhatikan bahawa secara lalai, sed cetak setiap baris. Kita boleh mengatasi tingkah laku ini dengan -n pilihan dan kemudian beritahu sed untuk dicetak (ditunjukkan oleh p) Hanya bahagian fail (atau paip) yang sepadan dengan corak (8 Jun pada permulaan baris dalam kes pertama dan garis 1 hingga 5 termasuk dalam kes kedua).

Akhirnya, ia boleh berguna semasa memeriksa skrip atau fail konfigurasi untuk memeriksa kod itu sendiri dan meninggalkan komen. Penghapusan One-Liner berikut (d) garis kosong atau yang bermula dengan # (The | watak menunjukkan boolean atau antara dua ungkapan biasa).

# sed '/^# \ |^$/d' apache2.Conf 
rentetan perlawanan sed

perintah uniq

The uniq Perintah membolehkan kami melaporkan atau mengalih keluar baris pendua dalam fail, menulis ke stdout secara lalai. Kita mesti perhatikan bahawa uniq tidak mengesan garis berulang kecuali mereka bersebelahan. Oleh itu, uniq biasanya digunakan bersama dengan sebelumnya menyusun (yang digunakan untuk menyusun garis fail teks). Secara lalai, menyusun Mengambil medan pertama (dipisahkan oleh ruang) sebagai medan utama. Untuk menentukan medan kunci yang berbeza, kita perlu menggunakan -k pilihan.

Contoh

The du -sch/path/to/direktori/* Perintah Mengembalikan penggunaan ruang cakera setiap subdirektori dan fail dalam direktori yang ditentukan dalam format yang boleh dibaca manusia (juga menunjukkan jumlah per direktori), dan tidak memesan output mengikut saiz, tetapi oleh subdirektori dan nama fail. Kita boleh menggunakan arahan berikut untuk menyusun saiz.

# du -sch /var /* | sort -h 
Susun contoh perintah

Anda boleh mengira bilangan peristiwa dalam log mengikut tarikh dengan memberitahu uniq untuk melakukan perbandingan menggunakan 6 aksara pertama (-W 6) setiap baris (di mana tarikh ditentukan), dan prefixing setiap garisan output dengan bilangan kejadian (-c) dengan arahan berikut.

# kucing/var/log/mel.log | uniq -c -w 6 
Kira nombor dalam fail

Akhirnya, anda boleh menggabungkan menyusun dan uniq (seperti biasanya). Pertimbangkan fail berikut dengan senarai penderma, tarikh sumbangan, dan jumlah. Katakan kita ingin mengetahui berapa banyak penderma unik yang ada. Kami akan menggunakan arahan berikut untuk memotong medan pertama (medan dibatasi oleh kolon), susun dengan nama, dan keluarkan garis pendua.

# Cat sortunq.txt | CUT -D: -F1 | Susun | uniq 
Cari Rekod Unik dalam Fail

Baca juga: 13 Contoh Perintah "Kucing"

perintah grep

grep Cari fail teks atau (output arahan) untuk berlakunya ungkapan biasa yang ditentukan dan output mana -mana baris yang mengandungi perlawanan ke output standard.

Contoh

Paparkan maklumat dari /etc/passwd Untuk pengguna gacanepa, mengabaikan kes.

# grep -i gacanepa /etc /passwd 
Contoh arahan grep

Tunjukkan semua kandungan /dan lain-lain yang namanya bermula dengan RC diikuti oleh mana -mana nombor.

# ls -l /etc | Grep RC [0-9] 
Senaraikan Kandungan Menggunakan Grep

Baca juga: 12 contoh perintah "grep"

Penggunaan arahan TR

The tr Perintah boleh digunakan untuk menterjemahkan (menukar) atau memadam aksara dari stdin, dan tulis hasilnya ke stdout.

Contoh

Tukar semua huruf kecil menjadi huruf besar di sortiaq.fail txt.

# Cat sortunq.txt | tr [: lebih rendah:] [: atas:] 
Susun tali dalam fail

Memerah pembatas dalam output ls -l hanya satu ruang.

# ls -l | tr -s "
Squeeze delimiter

potong penggunaan arahan

The potong Perintah Ekstrak Bahagian garis input (dari stdin atau fail) dan memaparkan hasil pada output standard, berdasarkan bilangan bait (-b pilihan), watak (-c), atau medan (-f). Dalam kes terakhir ini (berdasarkan bidang), pemisah medan lalai adalah tab, tetapi pembatas yang berbeza dapat ditentukan dengan menggunakan -d pilihan.

Contoh

Ekstrak akaun pengguna dan kerang lalai yang diberikan kepada mereka dari /etc/passwd (The -d pilihan membolehkan kami menentukan pematuhan medan, dan -f suis menunjukkan medan mana yang akan diekstrak.

# kucing /etc /passwd | potong -d: -f1,7 
Ekstrak Akaun Pengguna

Merumuskan, kami akan membuat aliran teks yang terdiri daripada fail bukan kosong pertama dan ketiga dari output terakhir perintah. Kami akan menggunakannya grep Sebagai penapis pertama untuk memeriksa sesi pengguna Gacanepa, kemudian memerah pembatas ke hanya satu ruang (tr -s"). Seterusnya, kami akan mengeluarkan medan pertama dan ketiga dengan potong, dan akhirnya disusun mengikut medan kedua (alamat IP dalam kes ini) menunjukkan unik.

# terakhir | Grep Gacanepa | tr -s "| cut -d" -f1,3 | sort -k2 | uniq 
Contoh arahan terakhir

Perintah di atas menunjukkan bagaimana beberapa arahan dan paip boleh digabungkan untuk mendapatkan data yang ditapis mengikut keinginan kami. Jangan ragu untuk menjalankannya dengan bahagian -bahagian, untuk membantu anda melihat output yang dipanaskan dari satu perintah ke seterusnya (ini boleh menjadi pengalaman pembelajaran yang hebat, dengan cara!).

Ringkasan

Walaupun contoh ini (bersama -sama dengan contoh -contoh yang lain dalam tutorial semasa) mungkin tidak kelihatan sangat berguna pada pandangan pertama, mereka adalah titik permulaan yang bagus untuk mula bereksperimen dengan arahan yang digunakan untuk membuat, mengedit, dan memanipulasi fail dari Linux baris arahan. Jangan ragu untuk meninggalkan soalan dan komen anda di bawah - mereka akan sangat dihargai!

Pautan rujukan
  1. Mengenai LFCS
  2. Mengapa Dapatkan Pensijilan Yayasan Linux?
  3. Daftar untuk peperiksaan LFCS
Menjadi Pentadbir Sistem Bersertifikat Linux