2019-05-07 不會的題以及知識點(diǎn)

[1] 多核CPU和單核CPU的優(yōu)點(diǎn)和缺點(diǎn),是否所有程序在多核CPU上運(yùn)行速度都快?為什么?

優(yōu)點(diǎn):多線程 在一個時(shí)鐘周期內(nèi)能處理更多的任務(wù)
缺點(diǎn):功耗較大 需要特定平臺支持 需要大容量內(nèi)存跟進(jìn)
不一定
有的程序運(yùn)行就只需要單核cpu,在這種情況下,多核cpu就不一定比單核的運(yùn)行速度快

[2] 32位操作系統(tǒng)和64位操作系統(tǒng)的區(qū)別,并說明它們的優(yōu)點(diǎn)和缺點(diǎn)?

1, 設(shè)計(jì)目標(biāo)不同
2 支持的最大內(nèi)存不同(32位最大支持4g的內(nèi)存,64位可以支持更大的內(nèi)存)
3 運(yùn)行速度不同 (32位相當(dāng)于4車道,64位相當(dāng)于8車道)

64位的兼容性可能沒32位好,但其實(shí)影響不大的。
64位處理能力比較好

[3] 給你6個150G硬盤,列出RAID排列方式,哪種方式容量最大,并解釋。

raid 0 的容量最大
因?yàn)閞aid0 的容量是所有硬盤容量的總和,容量是最大的

[4] 固態(tài)硬盤和傳統(tǒng)硬盤有什么區(qū)別,并說明它們的優(yōu)點(diǎn)和缺點(diǎn)。

相對于傳統(tǒng)機(jī)械硬盤,固態(tài)硬盤的優(yōu)點(diǎn):

1、讀寫速度快;2、防震抗摔性強(qiáng);3、低功耗。4、無噪音。5、工作溫度范圍大。6、體積小,攜帶輕便。

相對于傳統(tǒng)機(jī)械硬盤,固態(tài)硬盤的缺點(diǎn):

1、容量比機(jī)械硬盤小2、壽命比機(jī)械硬盤短3、制造成本高所以價(jià)格比機(jī)械硬盤高。

[5] 說出你公司服務(wù)器的配置

戴爾R730
R:表示機(jī)架式服務(wù)器
7:與服務(wù)器的核數(shù)有關(guān)
3:標(biāo)示第13代服務(wù)器

2U的服務(wù)器,2路,26核心,硬盤是8600G

【6】 簡述常見Raid級別及應(yīng)用場景

raid 0 ,至少一塊硬盤, 容量是所有磁盤容量的總和,冗余安全為0,速寫速度很快,應(yīng)用場景是:只要求讀寫速度,不要求安全
raid 1 ,只有兩塊硬盤,容量是所有磁盤容量的一半,冗余安全為100%,寫入速度慢,讀取速度OK,應(yīng)用場景是對速度沒有要求,對安全要求比較高
raid 5 ,至少三塊硬盤,容量是損失了一塊磁盤的容量,冗余安全是最多可以損失一塊磁盤的容量,寫入速度慢,讀取速度OK,應(yīng)用場景是對速度沒要求,對安全有要求

raid 10 ,至少四塊硬盤,容量是損失了一半磁盤的容量,冗余安全是最多可以損失一半磁盤的容量,讀寫速度都快,應(yīng)用場景是對速度和安全都有要求

【7】簡述虛擬機(jī)上不了網(wǎng)的原因

1,檢查ip地址是否正確
2,檢查網(wǎng)卡配置是否正確
3,檢查是否關(guān)閉CetOs7 NetworkManager
4, 檢查vmware 虛擬網(wǎng)絡(luò)編輯器
5,檢查vmware 服務(wù)是否正常運(yùn)行
6,檢查vmware 網(wǎng)卡問題
7,檢查windows 是否開啟wifi 熱點(diǎn)軟件
8,檢查windows 網(wǎng)卡是否被共享

【8】說出以下目錄的內(nèi)容

/dev 磁盤 光盤
/mnt 臨時(shí)掛載點(diǎn)
/etc/group 用戶組信息文件

【9】創(chuàng)建用戶組old,指定gid為1024

groupadd -g 1024 old

創(chuàng)建用戶boy指定uid為1024,指定用戶組為old
useradd -u 1024 -g old boy

【10】 每周六凌晨2點(diǎn)15分將/etc/下以.conf結(jié)尾的文件打包到/backup目錄下,并以時(shí)間命名,同時(shí)刪除7天前的壓縮包但是要保留每周一的

bak-del

15 02 * * 6 sh /server/scripts/bak-del.sh >/dev/null 2>&1
cat /server/scripts/bak-del.sh

!/bin/bash

tar zcf /backup/bak-date +%F_+%w.tar.gz $(find /etc/ -type f -name '.conf')
find /backup/ -type f -mtime +7 !-name '
._1.tar.gz' |xargs rm -f

【11】 什么是三次握手,什么是四次揮手

【12】 簡述什么是nfs,什么是rsync,這兩個服務(wù)的作用是什么

【13】 翻譯

7.1 /dev/sda is mounted; will not make a filesystem here!
/dev/sda 已經(jīng)掛載,不能再在這里創(chuàng)建一個文件系統(tǒng)

7.2 id: lidao: No such user
沒有這個用戶

7.3 mount: you must specify the filesystem type

7.4 useradd: UID is not unique
UID不唯一

7.5 You have new mail in /var/spool/mail/root
你有一封新郵件在/var/spool/mail/root

(15) Linux網(wǎng)卡配置文件路徑是什么?要使服務(wù)器上外網(wǎng),必須滿足的條件有哪些?需要配置什么?

/etc/sysconfig/network-scripts/ifcfg-eth0

上外網(wǎng)需要連接intenet的網(wǎng)線或有網(wǎng)卡

需要配置ip dns gateway

(16)在超級用戶下顯示Linux系統(tǒng)中正在運(yùn)行的全部進(jìn)程,應(yīng)使用的命令及參數(shù)是________。

ps -a

(17).修改機(jī)器名為exam,ip更改為192.168.1.227

hostnamectl set-hostname exam
vim /etc/sysconfig/network-scripts/ifcfg-eth0

(18).Linux所有服務(wù)器的啟動腳本都存放在(C)目錄中

/etc/rc.d/init.d
/etc/init.d
/etc/rc.d/rc
/etc/rc.d

(19)以下哪些命令可以查看當(dāng)前系統(tǒng)的啟動時(shí)間(D)
w
top
ps
uptime

(20)Linux啟動的第一個進(jìn)程init啟動的第一個腳本程序是( D)

/etc/rc.d/init.d
/etc/rc.d/re/sysinit
/etc/rc.d/rc5.d
/etc/rc.d/rc3.d

(21) 如何查看系統(tǒng)的負(fù)荷及內(nèi)存使用狀況?

/proc/loadavg

(22) 什么是絕對路徑?什么是相對路徑

絕對路徑:一切從根開始。 相對路徑:從當(dāng)前路徑開始

(23) 至少說出三個centos7中常用的快捷鍵

CTRL+c取消當(dāng)前操作
CTRL+d退出登陸用戶
CTRL+l清屏
CTRL+a光標(biāo)移到行最前
CTRL+e光標(biāo)移到行最后
ctrl+u 光標(biāo)移到行首的內(nèi)容刪除/剪切
ctrl+k 光標(biāo)移到行尾的內(nèi)容刪除/剪切
ctrl+y 粘貼
tab 自動補(bǔ)齊
(24)簡述以下cd命令的含義

cd . 到當(dāng)前目錄
cd .. 到上一級目錄
cd - 到上一次目錄
cd /tmp 到/tmp目錄

(25)簡述以下ls命令參數(shù)的含義

ls -a 查看所有文件
ls -l 顯示文件及目錄詳細(xì)信息
ls -ld 顯示當(dāng)前目錄詳細(xì)信息
ls -t 將當(dāng)前目錄下所有文件按創(chuàng)建時(shí)間倒序顯示

(26):使用一條命令在/tmp/oldboy01--05這五個目錄下分別創(chuàng)建一個名為oldgirl01.txt的文件

touch /tmp/oldboy{01..5}/oldgirl01.txt

(27)使用一條命令,將/tmp/oldboy02/oldgirl01.txt文件移動到/tmp/oldboy06/test/目錄下,并該,改名為oldgirl02.txt

mv /tmp/oldboy02/oldgirl01.txt /tmp/oldboy06/test/oldgir02.txt

(28)以樹狀結(jié)構(gòu)顯示/tmp目錄,要求可以看出文件類型(不同類型加上不同標(biāo)記)(3分)

tree -F

(29)翻譯

1 mkdir: cannot create directory ‘/lidao’: File exists 無法 創(chuàng)建 目錄 因?yàn)檫@個目錄已經(jīng)存在
2 -bash: cd: oldboy: No such file or directory 沒有這個目錄:文件或路徑書寫錯誤
3 -bash: tree: command not found 沒有這個命令
4 touch: invalid option -- 'p'Try 'touch --help' for more information. 無效的參數(shù)(不可用的參數(shù)),可以使用help幫助
5 cp: overwrite ‘/tmp/oldboy.txt’? 是否覆蓋文件
6 rm: remove regular empty file ‘/oldboy/oldboy.txt’? 是否刪除文件
7 rm: cannot remove ‘/data/’: Is a directory 不能刪除目錄
8 tree: Invalid level, must be greater than 0. 無效層數(shù)
9 ping: baidu.com: Name or service not known 域名無法解析
10 w: 56 column window is too narrow 空間太小施展不開

(30)

進(jìn)入vim /etc/profile 最后一行添加 alias rm=‘rm -i’
讓配置生效source /etc/profile

2:如何臨時(shí)取消別名

unalias +別名

3:輸入ip,顯示網(wǎng)卡配置文件

進(jìn)入vim /etc/profile 最后一行添加 alias ip='cat /etcsysconfig/network-scripts/ifcfg-eth0'
讓配置生效source /etc/profile 然后輸入ip顯示網(wǎng)卡配置文件

4:將網(wǎng)卡配置文件輸入到/tmp/test.txt 文件中

cat /etc/sysconfig/network-scripts/ifcfg-eth0 >> /tmp/test.txt

5:接4 題,篩選出帶有10 的行

grep '10' /tmp/test.txt

6:接4 題,篩選出帶有IPADDR 字符的行

grep -w 'ipaddr' /tmp/test.txt

7:接4 題,篩選出帶有254 的行,并顯示行號
grep -n '254' /tmp/test.txt

8:接4 題,篩選出/tmp/test.txt 文件中帶有a 的行(不區(qū)分大小寫)
grep -i 'a' /tmp/test.txt

9:接4 題,將/tmp/test.txt 文件中的10.0.0 替換為192.168.10
進(jìn)入vim /tmp/test.txt中 輸入:%s#10.0.0#192.168.10#g

10:接4 題,顯示出/tmp/test.txt 文件中不帶有數(shù)字的行
grep -v [0-9] /tmp/test.txt

11:簡述ll 查看文件屬性后每一列的含義

33687021 -rw-r--r--. 1 root root 0 Apr 3 17:50 old.txt
33687022 -rw-r--r--. 1 root root 0 Apr 3 17:50 boy.txt
33687023 -rw-r--r--. 1 root root 0 Apr 3 17:50 edu.txt

inode號碼 索引節(jié)點(diǎn)
第1位 文件類型
第2-10位 權(quán)限
. SELinux相關(guān)
硬鏈接的數(shù)量 1個不同的入口
所擁有者
所屬用戶組
文件大小
文件修改的時(shí)間
文件名和目錄 不是文件屬性

在/tmp 目錄下創(chuàng)建名為etc1 的 /etc 的軟連接

ln -s /etc/ /tmp/etc1

在/tmp/目錄下創(chuàng)建名為net 的,/etc/sysconfig/network-scripts/ifcfg-eth0 或ens33 文件的軟連接

ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/net

將網(wǎng)卡配置文件復(fù)制到/tmp 目錄下,并改名為ifcfg

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg

將/tmp/ifcfg 文件中的所有小寫字母替換成大寫字母

tr 'a-z' 'A-Z' < /tmp/ifcfg

將/tmp/ifcfg 文件中的所有數(shù)字刪除

tr -d '0-9' < /tmp/ifcfg

查找cat 命令與reboot 命令的位置

[root@oldboy59 tmp]# which cat reboot
/usr/bin/cat
/usr/sbin/reboot

查找根下所有名中帶有oldboy 的文件與目錄(不區(qū)分大小寫)

find / -iname 'oldboy'

查找根下所有大于1M 的目錄

find / -type d -size +1M

查找/etc/目錄下三級目錄以內(nèi),以.txt 結(jié)尾的文件(不區(qū)分大小寫)

find /etc/ -maxdepth 3 -type f -iname '*.txt'

查看/tmp/ifcfg,每行顯示2 列

xargs -n 2 </tmp/ifcfg

將/etc/目錄壓縮到/tmp/目錄下,壓縮包名為etc.tar.gz(顯示過程)

tar zcvf /tmp/etc.tar.gz /etc/

查看/tmp/etc.tar.gz 這個壓縮包中都有什么文件

tar tf /tmp/etc.tar.gz

將/tmp/etc.tar.gz 目錄解壓到/root/目錄下(不顯示過程)

tar xf /tmp/etc.tar.gz -C /root/

復(fù)習(xí)(困難難度)

查找/etc/下所有不是以.txt 結(jié)尾的文件

find /etc/ -type f ! -iname '*.txt'

查找根下最近一天所修改的文件

find / -type f -mtime 1

復(fù)習(xí)+預(yù)習(xí)

查看系統(tǒng)當(dāng)前的年月日

[root@oldboy59 tmp]# date +%Y-%m-%d
2019-04-10

查看系統(tǒng)當(dāng)前的時(shí)分秒

[root@oldboy59 tmp]# date +%H:%M:%S
17:00:51

顯示十天前的時(shí)間

[root@oldboy59 tmp]# date -d '-10day' +%F_%T
2019-03-31_17:01:38

顯示十年后的時(shí)間

[root@oldboy59 tmp]# date -d '+10year' +%F_%T
2029-04-10_17:02:15

將時(shí)間修改成2019 年5 月1 日19 時(shí)0 分

[root@oldboy59 tmp]# date -s '20190501 19:00:00'
Wed May 1 19:00:00 CST 2019

同步網(wǎng)絡(luò)時(shí)間

[root@oldboy59 tmp]# ntpdate ntp1.aliyun.com
10 Apr 17:10:54 ntpdate[77877]: adjust time server 120.25.115.20 offset 0.001572 sec

復(fù)習(xí)

排除/oldboy/目錄下的old文件,打包到/tmp下,并命名為oldboy.tar.gz

tar zcvf /tmp/oldboy.tar.gz /oldboy/ --exclude /oldboy/old

什么是inode,什么是block:

inode:索引節(jié)點(diǎn)的inode號碼,存放文件屬性信息,包括大小、所有者、權(quán)限、文件類型、硬鏈接數(shù)、時(shí)間,還有block的位置,但是文件名沒有存放在這里
block:用來存放文件內(nèi)容

哪種鏈接的inode與源文件相同:
硬鏈接,inode的節(jié)點(diǎn)和源文件相同

軟連接與硬鏈接的區(qū)別:
首先是不能對目錄創(chuàng)建硬鏈接,但可以創(chuàng)建軟鏈接
還有是軟鏈接可以跨文件系統(tǒng),硬鏈接不能跨文件系統(tǒng)

困哪難度

壓縮/etc/目錄到/tmp下,并以時(shí)間命名

tar zcf /tmp/date +%F-%T /etc

查找根下名字中帶有oldboy的文件,并查看它的詳細(xì)信息

find / -type f -name 'oldboy'|xargs -

什么是超級用戶、普通用戶、虛擬用戶,他們的UID分別是多少

超級用戶:擁有最高權(quán)限 UID 0
普通用戶:能登錄系統(tǒng),但只能操作自己目錄的內(nèi)容
UID:centos6是500以上 centos7是1000以上
虛擬用戶:無法創(chuàng)建,系統(tǒng)自身擁有,不具有登錄系統(tǒng)的能力
UID centos6是1-499 centos7是1-999

創(chuàng)建一個屬于old用戶組的用戶boy

groupadd old
useradd -g old boy

Linux啟動流程(CentOS6和CentOS7)
CentOS 6 CentOS 7
0 關(guān)機(jī) 0 關(guān)機(jī)
1單用戶 1救援模式
2多用戶沒網(wǎng) 2多用戶模式
3完全多用戶 3多用戶模式
4待開發(fā)用戶設(shè)定 4多用戶模式
5圖形界面 5圖形界面
6重啟 6重啟

鏈接分為—軟鏈接—和—硬鏈接—

Linux提供遠(yuǎn)程連接服務(wù)是ssh遠(yuǎn)程控制卡_

默認(rèn)端口_____22____,在___/etc/ssh/sshd_config____文件中進(jìn)行修改端口

從當(dāng)前系統(tǒng)中卸載一個已裝載的文件系統(tǒng)的命令:____umount _____

下列關(guān)于鏈接描述,錯誤的是_B

硬鏈接就是讓鏈接文件的i節(jié)點(diǎn)號指向被鏈接文件的i節(jié)點(diǎn)
硬鏈接和符號連接都是產(chǎn)生一個新的i節(jié)點(diǎn)
鏈接分為硬鏈接和符號鏈接
硬鏈接不能鏈接目錄文件

在Linux系統(tǒng)中root用戶的UID號是__0___GID是0

在Linux系統(tǒng)以 —文件方式—方式訪問設(shè)備

如何知道操作系統(tǒng)的位數(shù)?(32位或64位)

查看操作系統(tǒng)位數(shù) getconf LONG_BIT
查看Linux版本信息 lsb_release -a

[root@oldboy59 tmp]# uname -m 查看位數(shù)信息
x86_64
[root@oldboy59 tmp]# uname -r 內(nèi)核版本信息和位數(shù)信息
3.10.0-957.10.1.el7.x86_64
[root@oldboy59 tmp]# uname 查看系統(tǒng)
Linux

寫出至少5 個Linux 快捷鍵(5)

Linux下快捷鍵

解釋

tab

自動補(bǔ)齊

Ctrl+ c

取消當(dāng)前操作

clear

清屏

Ctrl+l

清屏

Ctrl++a

把光標(biāo)移動到行首

Ctrl++e

把光標(biāo)移動到行尾

Ctrl++u

光標(biāo)移到行首的內(nèi)容刪除/剪切

Ctrl++k

光標(biāo)移到行尾的內(nèi)容刪除/剪切

ctrl+y

粘貼

Ctrl+b

光標(biāo)左移

Ctrl+f

光標(biāo)右移

Ctrl+w

刪除之前一個空格分割的內(nèi)容

Ctrl+z

暫停正在執(zhí)行的任務(wù)

bg

使暫停的任務(wù)繼續(xù)工作

Ctrl+insert

復(fù)制

Ctrl+insert

粘貼

Esc+.

返回上次結(jié)尾內(nèi)容

jobs

查看當(dāng)前后臺運(yùn)行的任務(wù)

Ctrl+s

鎖屏

Ctrl+q

解鎖屏幕

!*

可以調(diào)出上次以*開頭的命令并執(zhí)行

!!

可以調(diào)出上次執(zhí)行的命令并執(zhí)行

8:給rm 命令加一個別名,讓每次刪除都強(qiáng)制提醒command not found,給出配

置過程(要求配置后永久生效)(3)
第一種方法:
vim /etc/profile
到文件尾行添加
alias rm='echo command not found'
:wq 保存退出
讓配置生效
source /etc/profile

第二種方法:
echo 'alias rm='echo command not found' ' >>/etc/profile
查看
tail -1 /etc/profile
alias rm='echo command not found'
讓配置生效
source /etc/profile

(二) 填空(每空1 分)

1 某文件的組外成員的權(quán)限為只讀:所有者有全部權(quán)限,組內(nèi)的權(quán)限為讀與寫,

則該文件的權(quán)限為-rwxrw-r-- (764)

2 Vi 編輯器中要想定位到文件中的第十行按10gg&10G 鍵,刪除一個字母后按 u 鍵

可以恢復(fù)

4 Linux 中,文件權(quán)限讀、寫、執(zhí)行的三種標(biāo)志符號依次rwx

5 如果執(zhí)行命令# chmod 746 file.txt , 那么該文件的權(quán)限是-rwxr--rw-

6 用 >>符號將輸出重定向內(nèi)容附加在原文的后面

cat >>file. txt<<EOF

(三) 命令(每題2 分)

1 如何查看文件內(nèi)容,命令有哪些?查看文件第1 行到第3 行,查看文件最后

一行
cat less more head tail vi/vim
查看第1 行到第3 行
head -n 3 文件名
查看最后一行
tail -n 1 文件名

2 查找根下所有名中帶有oldboy 的文件與目錄(不區(qū)分大小寫)

find / -iname 'oldboy'

3 查找根下所有以.txt 結(jié)尾、最近一天修改過、大于1M 的文件

find / -mtime -1 -size +1M -name '*.txt'

4 將/etc/目錄壓縮到/tmp/目錄下,壓縮包名為etc.tar.gz

tar zcf /tmp/etc.tar.gz /etc

5 查看/tmp/etc.tar.gz 這個壓縮包中都有什么文件

tar tf /tmp/etc.tar.gz

6 將/tmp/etc.tar.gz 目錄解壓到/root/目錄下(不顯示過程)

tar xf /tmp/etc.tar.gz -C /root/

7 篩選出網(wǎng)卡配置文件中帶有a 的行(不區(qū)分大小寫)
grep -i 'a' /etc/sysconfig/network-scripts/ifcfg-eth0

8 將網(wǎng)卡配置文件中的所有小寫字母替換成大寫字母

tr 'a-z' 'A-Z' </etc/sysconfig/network-scripts/ifcfg-eth0

9 將文本文件a.txt,想將該文件名稱改為txt.a

mv a.txt txt.a

10 在/tmp 目錄下創(chuàng)建名為etc.soft 的/etc 的軟連接

ln -s /etc /tmp/etc.soft

11 將時(shí)間修改成2019 年5 月1 日19 時(shí)0 分

date -s '20190501 19:00'

12 查看系統(tǒng)當(dāng)前的詳細(xì)時(shí)間(年月日-時(shí)-周幾)

date +%F_%H-%w

13.沒有十三題~~

14 什么是超級用戶,虛擬用戶,普通用戶。

超級用戶 擁有最高權(quán)限(皇帝) UID=0
普通用戶 屬組用戶(老百姓) CentOS 6的UID >=500 CentOS 7的UID>=1000
虛擬用戶 系統(tǒng)自帶(傀儡) CentOS 6的UID =1-499 CentOS 7的UID=1-999

15 寫出4 個可以查看文件內(nèi)容的命令

cat less more head tail vi/vim

16 創(chuàng)建oldboy 用戶,然后切換為oldboy 用戶給出命令

useradd oldboy
su - oldboy

(四) 重要文件(每題1 分)

1 /etc/sysconfig/network-scripts/ifcfg-eth0 ------>配置網(wǎng)卡
2 /etc/fstab ------>掛載 系統(tǒng)開機(jī)自動加載的列表文件
3 /var/log/messages ------>系統(tǒng)日志
4 /var/log/secure------> 用戶登錄日志
5 /etc/resolv.conf------>客戶端的DNS配置文件
6 /proc/meminfo------> 內(nèi)存信息
7 /etc/hosts------> 本地DNS解析
8 /etc/profile------>環(huán)境變量
9 /etc/inittab------>運(yùn)行級別的配置文件
10 /etc/rc.local------>系統(tǒng)自啟動的程序或者腳本列表

(五) 報(bào)錯翻譯(每題2 分)

1 Could not connect to '10.0.0.200' (port 233): Connection failed.
無法連接到“10.0.0.200”(端口233):連接失敗。

2 mkdir: cannot create directory ‘/lidao’: File exists
:無法創(chuàng)建目錄“/lidao”:文件存在

3 tar: Removing leading `/' from member names

壓縮的路徑包含了'/'的絕對路徑

4 ping: baidu.com: Name or service not known
域名無法解析

5 tree: Invalid level, must be greater than 0.

無效的級別必須大于0

6 You have mail in /var/spool/mail/root
您有一封郵件來自/var/spool/mail/root

7 Can't open file for writing

無法打開修改

8 descend into directory

無權(quán)限進(jìn)入此目錄

9 Nothing to do
空閑

10 Could not resolve host

無法解析主機(jī)名

(六) 擴(kuò)展

1 如何查看/etc 目錄所占容量(6)

du -sh /etc

2 篩選出網(wǎng)卡配置文件中帶有數(shù)字的行(6)

grep -r '[0-9]' /etc/sysconfig/network-scripts/ifcfg-eth0

3 創(chuàng)建一個屬于old 用戶組的用戶boy(8)

創(chuàng)建old: groupadd old
創(chuàng)建用戶boy: useradd -g lll boy

一. 三劍客-基礎(chǔ)部分題目

涉及到三劍客過濾,替換,取列操作

  1. 選擇

在給定文件中查找與條件相符字符串的命令及查找某個目錄下相應(yīng)文件的命令為:(多選)A C
A:grep 篩選
B:gzip
C:find 查找目錄下文件

sort在給定文件中查找(篩選)與 設(shè)定條件相符字符串的命令為(A)
A:grep
B:gzip
C:find
D:sort

___D____命令可以從文本文件的每一行中截取指定內(nèi)容的數(shù)據(jù)。
A:cp
B:dd
C:fmt
D:cut (剪切)

下面表述錯誤的是D
表示開頭,如abc表示以abc開頭的
表示結(jié)尾如abc表示以abc為結(jié)尾的
?表示前一個字符出現(xiàn)0或1次,如ab?c表示a與c之間可有0或1個b存在

  • 表示前一個字符出現(xiàn)0或多次。如ab+c表示a與c之間可有0或多個b存在
    填空
    Unix中在當(dāng)前目錄下所有.cc 的文件中找到含有“oldboy”內(nèi)容的文件,命令為___
    find -type f -name '.cc'|xargs grep 'asiainfo'
    find -type f -name '
    .cc' -exec grep 'asiainfo' {} ;
    grep 'asiainfo' `find . -type f -name '*.cc'`

如果沒有指定擴(kuò)展名則直接使用
grep -rl 'oldboy' ./*
-r 遞歸查詢
-l (小寫字母L)只顯示grep查找出來的文件

使用AWK指定分隔符的參數(shù)是___-F或-vFS=____

找出當(dāng)前目錄下包含127.0.0.1關(guān)鍵字的文件?

grep '127.0.0.1' find . -type f
2.三劍客+反引號
sed -n '/127.0.0.1/p' find . -type f
awk '/127.0.0.1/' find . -type f
3.find+|xargs+三劍客
find . -type f|xargs grep '127.0.0.1'
find . -type f|xargs sed -n '/127.0.0.1/p'
find . -type f|xargs awk '/127.0.0.1/'
4.find -exec +三劍客
find .-type f -exec grep '127.0.0.1' {} ;
find .-type f -exec sed -n '/127.0.0.1/p' {} ;
find .-type f -exec awk '/127.0.0.1/' {} ;

刪除/顯示1.txt文件第3行到第10行的內(nèi)容?
刪除:
sed -n '3,10p' 1.txt
sed -i '3,10d' 1.txt
awk '(NR>=3&&NR<=10)' 1.txt \把第三行到第十行排除
awk '(NR<3||NR>10)' oldboy.txt \ 小于第三行或者大于十行

顯示:
sed -n '3,10p' 1.txt
awk 'NR==3,NR==7' 1.txt
awk 'NR>=3 && NR<=10' 1.txt
head -10 num.txt|tail -8

使用awk取出/etc/passwd第一列數(shù)據(jù)也就是取出用戶名。
基礎(chǔ)必備:
awk -F: '{print 1}' /etc/passwd sed 's#:.*##g' /etc/passwd
egrep -o '^[0-Z_-]+' /etc/passwd \[0-Z]==[a-zA-Z0-9]

提高:
egrep -o '[:]+' /etc/passwd
sed -r 's#([:]+).*#\1#g' /etc/passwd awk '{gsub(/:.*/,"");print}' /etc/passwd
\print 在 awk 中后面什么都不加表示 print 0 awk '{gsub(/:.*/,"")}1' /etc/passwd

用命令行更改config.txt文件,把里面所有的“name”更改為“address”
sed 's#name#address#g' config.txt
awk '{gsub(/name/,"address")}1' config.txt

利用vi/vim也可以替換:
:%s#name#address#g

寫出查詢file.txt以abc結(jié)尾的行
grep 'abc' file.txt sed -n ‘/abc/p’ file.txt
awk '/abc$/' file.txt

刪除file.txt文件中的空行
模擬環(huán)境:
echo -e 'oldboy\noldboy\n\nalex\n \nalex\lidao lidao alex\n
oldboy\n\noldboyedu group 598972270' >file.txt

僅刪除文件中的空行:
grep -v '^' file.txt sed '/^/d' file.txt
awk '!/^$/' file.txt

文件中的空行可能是只有空格的行
egrep -v '| +' file.txt
grep -v '^ *' file.txt sed -n '/^ */p' file.txt
awk '/^ *$/' file.txt

^ *表示兩種情況: *表示前1個字符出現(xiàn)0次的時(shí)候:^
*表示前1個字符出現(xiàn)1次及1次以上的時(shí)候:^ +$

打印file.txt文件中的第10行
sed -n '10p' 4.txt
awk 'NR==10' 4.txt
head -10 file.txt|tail -1

刪除/etc/fstab文件中所有以#開頭的行,行首的#號及#后面的所有空白字符
空白字符:空格,多個空格,tab鍵

sed -r '/^#/s## *##g' /etc/fstab|cat -A \查看一下行尾是否還有空白行
awk 'gsub (/^# */,"");{print $1}' /etc/fstab|cat -A

此題可以分為兩個題目:

  1. 刪除/etc/fstab 文件中所有以#開頭的行的行首的# 號及#后面的所有空白字符
  2. 刪除/etc/fstab 文件中所有以#開頭的行的行首的#號及#后面的連續(xù)的空白字符

可以分為兩步:哪個是條件,哪個是動作
?第 1 步找出以#開頭的行
awk '/#/{gsub(/#|[ \t]+/,"")}1' /etc/fstab
sed -r '/#/s@#|[ \t]+@@g' /etc/fstab

?第 2 步在刪除這一行中的空白字符和行首的井號
刪除/etc/fstab 文件中所有以#開頭的行的行首的# 號及#后面的連續(xù)的空白字符
awk '{gsub(/^#[ \t]+/,"")}1' /etc/fstab
sed -r 's@^#[ \t]+@@g' /etc/fstab

查找最后修改時(shí)間是3天前,后綴是.log的文件并刪除
find /tmp/ -type f -mtime +3 -name '
.log' |xargs rm -f

find /tmp/ -type f -mtime +3 -name '*.log' -exec rm -f {} ;

\rm -rf find /tmp/ -type f -mtime +3 -name '*.log'

find /tmp/ -type f -mtime +3 -name '*.log' -exec rm {} +

find /oldboy -mtime +3 -type f -name "*.log" -delete \ -delete刪除

\ ; -exec find 命令找出 1 個文件就把文件放在{}的位置
\ +;如果-exec后面使用+ find會把前面找到的所有文件1次性的放在{}所在位置

查找文件中1到20行之間,同時(shí)將"aaa"替換為"AAA","ddd"替換"DDD"
sed -ne 's#a#A#g;s#d#D#g;1,20p' 2.txt

sed '1,20y/ad/AD/' 2.txt \ y類似于tr的 1對1 替換 不能使用 a-z A-Z 范圍

sed 's#[ad]#\U&#g' 2.txt \

tr 'ad' 'AD' <2.txt

awk '{gsub(/a/,"A");gsub(/d/,"D");print}' 2.txt

awk 'NR>=1&&NR<=20{print toupper($0)}' 2.txt

awk 'NR==1,NR==20{print toupper($0)}' 2.txt

使用sed命令打印出文件的第一行到第三行
head -3 lidao.txt

sed -n '1,3p' lidao.txt

awk 'NR>=1&&NR<=3' lidao.txt

awk 'NR==1;NR==2;NR==3' lidao.txt

在/var/sync/log/cef_watchd-20080424.1og文件中查找大小寫不敏感“mysql"字符串中的命令是
grep -iw 'mysql' /var/sync/log/cef_watchd-20080424.1og

sed -nr '/(mysql|MYSQL)/p' /var/sync/log/cef_watchd-20080424.1og

sed -nr '/(mysql|MYSQL)/Ip' /var/sync/log/cef_watchd-20080424.1og \sed中 I表示不區(qū)分大小寫,極少用

awk -vIGNORECASE=1 '/[a-z]/' /var/sync/log/cefwatchd-20080424.log

為了在/var/sync/log 目錄中查找更改時(shí)間在5日以前的文件井刪除它們,linux命令是
find /var/sync/log -type f -mtime +5 |xargs rm -rf

find /var/sync/log -type f -mtime +5 -exec rm -rf {} ;

rm -rf find /var/sync/log -type f -mtime +5

把data目錄及其子目錄下所有以擴(kuò)展名.txt結(jié)尾的文件中包含oldgirl的字符串全部替換為oldboy.

sed -i 's#oldgirl#oldboy#g' find /data/ -type f -name '*.txt'

find /data/ -type f -name '*.txt'|xargs sed -ni 's#oldboy#oldgirl#gp'

寫出刪除abc.txt文件中的空行
sed '/^/d' abc.txt sed -n '/^/!p' 1.txt
grep -v '^$' 1.txt

查看linux服務(wù)器ip的命令,同時(shí)只顯示包含ip所在的行打印出來
ip a s eth0|sed -n '3p'|sed -r 's#^.t ([0-9].)/.#\1#g' #sed多管道 ip a s eth0|sed -nr '3s#^.*t (.*)/.*#\1#gp' #用sed
ip a s eth0|awk -F'[/ ]+' 'NR==3{print 3}' #用awk ip a s eth0|sed -n '3p'|awk -F'[ /]+' '{print3}' #sed+awk
ip a s eth0|awk 'NR==3'|sed -r 's#^.
t (.)/.#\1#g' #awk+sed ip a s eth0|grep 'inet '|sed -r 's#^.*t (.*)/.*#\1#g' #grep+sed ip a s eth0|grep 'inet '|awk -F'[ /]+' '{print3}' #grep+awk

用awk獲取文件中第三行的倒數(shù)第二列字段
awk 'NR==3{print $(NF-1)}' 2.txt

有文件file1
請用shell查詢file1里面空行的所在行號
grep -n '^$' file1.txt

awk '/^/{print NR,0}' file1.txt

sed -n '/^$/{=;p}' file.txt|sed 'N;s#\n# #g'

查詢file1以abc結(jié)尾的行
grep 'abc' file.txt sed -n ‘/abc/p’ file.txt
awk '/abc$/' file.txt

打印file文件第一行到第三行
head -3 lidao.txt
sed -n '1,3p' lidao.txt
awk 'NR>=1&&NR<=3' lidao.txt
awk 'NR==1;NR==2;NR==3' lidao.txt

顯示file文件里匹配foo字串那行以及上下5行、顯示foo及前5行、顯示foo及后5行
grep -A5 'foo' file.txt
grep -B5 'foo' file.txt
grep -C5 'foo' file.txt

echo "ABCDEF abtdefg" |sed -i s/c/t/g 這條命令是否正確?如若正確可能會顯示什么樣的結(jié)果?
不正確
-i 修改文件內(nèi)容
no input files
sed 無法找到要修改的文件

當(dāng)前系統(tǒng)中沒有任何文本編輯器(vi,emacs,vim,edit等),如何過濾掉注釋行和空行查看/etc/ssh/sshd_config文件
sed -r '/#|/d' /etc/ssh/sshd_config sed -nr '/^|^#/!p' /etc/ssh/sshd_config
awk '!/^|^#/' /etc/ssh/sshd_config grep '^[a-Z]' /etc/ssh/sshd_config egrep -v '^|^#' /etc/ssh/sshd_config

查找file.log文件中的包含關(guān)鍵字“helloworld”的內(nèi)容,及其上下兩行的內(nèi)容重定向保存到1.txt。請寫出命令
grep -C2 'helloworld' file.log >> 5.txt

二. 進(jìn)階題目:
需要用到awk數(shù)組和函數(shù)知識點(diǎn)

利用sed命令將test.txt中所有的回車替換成空格?
模擬環(huán)境:
echo -e 'oldboy\noldboy\n\nalex\n \nalex\lidao lidao alex\n oldboy\n\noldboyedu group 598972270' >file.txt

僅刪除文件中的空行
grep -v '^' file.txt sed '/^/d' file.txt
awk '!/^$/' file.txt

文件中的空行可能是只有空格的行
egrep -v '| +' file.txt
grep -v '^ *' file.txt sed -n '/^ */p' file.txt
awk '/^ *$/' file.txt

^ *表示兩種情況: 表示前1個字符出現(xiàn)0次的時(shí)候:^
表示前1個字符出現(xiàn)1次及1次以上的時(shí)候:^ +$

從a.log文件中提取包含“WARNING”或“FATAL”,同時(shí)不包含“IGNOR”行,然后,提取以“:”分割的第五個字段
awk -F: '/WARNING|FATAL/&&!/IGNOR/{print $5}'

找出ifconfig命令結(jié)果中的1-255之間的數(shù)值;
net-tools
ifconfig| egrep -o '[0-9]+'|awk '0>=1 &&0<=255'

文件內(nèi)容排序、文件行取唯一值的命令分別是?
sort
uniq

用awk獲取文件中第三行的倒數(shù)第二列字段
awk 'NR==3{print $(NF-1)}' file.txt

awk是一個很強(qiáng)大的文本處理工具,請使用awk統(tǒng)計(jì)當(dāng)前主機(jī)的并發(fā)訪問量
netstat -ant | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

三. 老牛逼題目 15k+

有一個文件nginx.log,請用awk提取時(shí)間(HH:MM),文件內(nèi)容如下:
183.250.220.178|-l[20/jul/2017:10:35:14 +0800]|POST /audiosearch/search
HTTP/1.1|200|54|-lDalvik/1.6.0(linux;U;Android 4,4,4;Konka Android TV 638
Build/KTU84P)|-l-[5.069|5.001,0.005|www.kuyun.com|8771|172.21.19.67:8084,172.21.19.66:8084]
183.250.220.178|-l[20/jul/2017:10:35:14 +0800]|POST /audiosearch/search
HTTP/1.1|200|54|-lDalvik/1.6.0(linux;U;Android 4,4,4;Konka Android TV 638
Build/KTU84P)|-l-[5.069|5.001,0.005|www.kuyun.com|8771|172.21.19.67:8084,172.21.19.66:8084]

統(tǒng)計(jì)apache訪問日志流量排名前10個IP

統(tǒng)計(jì)出apache的access.log 中訪問最多的5個ip
awk '{h[$1]++}END{for(po in h) print po,h[po]}' access.log |awk '{print 1}' |sort -rn|head -5 sort -rn 以相反的順序依照數(shù)值大小排序

這條linux命令的含義:netstat -n |awk '/^tcp/ {++} print a,${a} }'
該命令執(zhí)行不了

使用awk分析日志(最后一個字段是IP,統(tǒng)計(jì)訪問量前十的IP,并進(jìn)行排序)
awk -F: '/WARNING|FATAL/&& !/IGNOR/{print $5}' a.log

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容