[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ǔ)部分題目
涉及到三劍客過濾,替換,取列操作
- 選擇
在給定文件中查找與條件相符字符串的命令及查找某個目錄下相應(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開頭的
表示以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 ##g' /etc/passwd
egrep -o '^[0-Z_-]+' /etc/passwd \[0-Z]==[a-zA-Z0-9]
提高:
egrep -o '[:]+' /etc/passwd
sed -r 's#([:]+).*/,"");print}' /etc/passwd
\print 在 awk 中后面什么都不加表示 print /,"")}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/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 '^/d' file.txt
awk '!/^$/' file.txt
文件中的空行可能是只有空格的行
egrep -v '' file.txt
grep -v '^ */p' file.txt
awk '/^ *$/' file.txt
^ *
*表示前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
此題可以分為兩個題目:
- 刪除/etc/fstab 文件中所有以#開頭的行的行首的# 號及#后面的所有空白字符
- 刪除/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 '/^/!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#gp' #用sed
ip a s eth0|awk -F'[/ ]+' 'NR==3{print 3}' #sed+awk
ip a s eth0|awk 'NR==3'|sed -r 's#^.t (.)/.3}' #grep+awk
用awk獲取文件中第三行的倒數(shù)第二列字段
awk 'NR==3{print $(NF-1)}' 2.txt
有文件file1
請用shell查詢file1里面空行的所在行號
grep -n '^$' file1.txt
awk '/^0}' file1.txt
sed -n '/^$/{=;p}' file.txt|sed 'N;s#\n# #g'
查詢file1以abc結(jié)尾的行
grep '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 '/#||^#/!p' /etc/ssh/sshd_config
awk '!/^|^#' /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 '^/d' file.txt
awk '!/^$/' file.txt
文件中的空行可能是只有空格的行
egrep -v '' file.txt
grep -v '^ */p' file.txt
awk '/^ *$/' file.txt
^ *
表示前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<=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