linux中的grep命令怎么用事例介紹
Linux系統(tǒng)中的grep命令很強(qiáng)大,主要用于查找文件里符合條件的字符串,那么具體怎么應(yīng)用呢?下面由學(xué)習(xí)啦小編為大家整理了linux中的grep命令的相關(guān)知識(shí),希望對(duì)大家有幫助!
linux中的grep命令實(shí)例
1、在當(dāng)前目錄中,查找后綴有"test"字樣的文件中包含"test"字符串的文件,并打印出該字符串的行。此時(shí),可以使用如下命令:
grep test *file
結(jié)果如下所示:
$ grep test test* #查找后綴有“test”的文件包含“test”字符串的文件
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
2、以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi 及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內(nèi)容,使用的命令為:
grep -r update /etc/acpi
輸出結(jié)果如下:
$ grep -r update /etc/acpi #以遞歸的方式查找“etc/acpi”
#下包含“update”的文件
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)
Rather than
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of
IO.) Rather than
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
3、反向查找。前面各個(gè)例子是查找并打印出符合條件的行,通過(guò)"-v"參數(shù)可以打印出不符合條件行的內(nèi)容。
查找文件名中包含test 的文件中不包含test 的行,此時(shí),使用的命令為:
grep -v test*
結(jié)果如下所示:
$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行
testfile1:helLinux!
testfile1:Linis a free Unix-type operating system.
testfile1:Lin
testfile_1:HELLO LINUX!
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.
testfile_1:THIS IS A LINUX TESTFILE!
testfile_2:HELLO LINUX!
testfile_2:Linux is a free unix-type opterating system.
相關(guān)閱讀:Linux系統(tǒng)常見(jiàn)故障現(xiàn)象
1. MBR中g(shù)rub損壞,1_5階段的數(shù)據(jù)損壞,2階段的grub損壞
2. initramfs*.img文件損壞,內(nèi)核文件損壞
3. /boot/grub/grub.conf文件丟失
4. /etc/fstab丟失,無(wú)法掛載根等文件系統(tǒng)
5. /boot 目錄全部的文件丟失
6. root密碼忘記
7. 為grub設(shè)置密碼,開(kāi)機(jī)時(shí)生效,保護(hù)root密碼被惡意修改等
二、常見(jiàn)故障的分析解決:
1. 1階段和1_5階段出問(wèn)題時(shí)會(huì)開(kāi)機(jī)執(zhí)行完BIOS自檢后直接報(bào)錯(cuò)
2. 前面兩個(gè)階段順利通過(guò),到了執(zhí)行/boot/ 下面的第二個(gè)階段時(shí)的程序調(diào)用/boot/grub/grub.conf 時(shí)文件丟失或者/boot/下內(nèi)核文件和initramfs*.img 文件丟失都會(huì)造成卡在第二個(gè)階段:丟失initramfs文件時(shí)會(huì)在過(guò)了開(kāi)機(jī)選擇內(nèi)核啟動(dòng)之后卡住不動(dòng),沒(méi)有任何提示(在/boot/grub /grub.conf 配置文件中定義了timeout時(shí)間,會(huì)過(guò)了倒計(jì)時(shí),然后沒(méi)有任何提示)如果是丟失grub.conf 是會(huì)進(jìn)入grub>提示符由管理員指定內(nèi)核文件和initramfs文件位置
3. /etc/fstab丟失:
系統(tǒng)可以開(kāi)機(jī),但是開(kāi)機(jī)時(shí)會(huì)卡好長(zhǎng)時(shí)間,因?yàn)樵S多服務(wù)等待超時(shí)無(wú)法啟動(dòng),此時(shí)磁盤按照默認(rèn)以只讀掛載根,這個(gè)掛載是在開(kāi)機(jī)時(shí)掛載的,因?yàn)闆](méi)有fstab文件所以無(wú)法重新掛載根文件系統(tǒng)以及其他的系統(tǒng),沒(méi)有運(yùn)行級(jí)別
4. 為grub設(shè)置了密碼會(huì)在開(kāi)機(jī)進(jìn)入內(nèi)核啟動(dòng)時(shí),想要修改grub和內(nèi)核的參數(shù)或者進(jìn)入系統(tǒng)時(shí)需要輸入密碼,當(dāng)然忘記這樣的密碼也只能使用光盤引導(dǎo)進(jìn)入救援模式修改配置文件/etc/grub/grub.conf 把相應(yīng)的密碼行刪除即可