[1] 多核CPU和單核CPU的優(yōu)點和缺點,是否所有程序在多核CPU上運行速度都快梆惯?為什么加袋?
優(yōu)點:多線程 在一個時鐘周期內(nèi)能處理更多的任務(wù)
缺點:功耗較大 需要特定平臺支持 需要大容量內(nèi)存跟進(jìn)
不一定
有的程序運行就只需要單核cpu,在這種情況下,多核cpu就不一定比單核的運行速度快
[2] 32位操作系統(tǒng)和64位操作系統(tǒng)的區(qū)別抱既,并說明它們的優(yōu)點和缺點?
1职烧, 設(shè)計目標(biāo)不同
2 支持的最大內(nèi)存不同(32位最大支持4g的內(nèi)存,64位可以支持更大的內(nèi)存)
3 運行速度不同 (32位相當(dāng)于4車道防泵,64位相當(dāng)于8車道)
64位的兼容性可能沒32位好蚀之,但其實影響不大的。
64位處理能力比較好
[3] 給你6個150G硬盤足删,列出RAID排列方式,哪種方式容量最大锁右,并解釋失受。
raid 0 的容量最大
因為raid0 的容量是所有硬盤容量的總和,容量是最大的
[4] 固態(tài)硬盤和傳統(tǒng)硬盤有什么區(qū)別,并說明它們的優(yōu)點和缺點咏瑟。
相對于傳統(tǒng)機械硬盤拂到,固態(tài)硬盤的優(yōu)點:
1、讀寫速度快码泞;2兄旬、防震抗摔性強;3余寥、低功耗领铐。4、無噪音宋舷。5绪撵、工作溫度范圍大。6肥缔、體積小莲兢,攜帶輕便。
相對于傳統(tǒng)機械硬盤续膳,固態(tài)硬盤的缺點:
1改艇、容量比機械硬盤小2、壽命比機械硬盤短3坟岔、制造成本高所以價格比機械硬盤高谒兄。
[5] 說出你公司服務(wù)器的配置
戴爾R730
R:表示機架式服務(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】簡述虛擬機上不了網(wǎng)的原因
1柿赊,檢查ip地址是否正確
2,檢查網(wǎng)卡配置是否正確
3幻枉,檢查是否關(guān)閉CetOs7 NetworkManager
4, 檢查vmware 虛擬網(wǎng)絡(luò)編輯器
5碰声,檢查vmware 服務(wù)是否正常運行
6,檢查vmware 網(wǎng)卡問題
7熬甫,檢查windows 是否開啟wifi 熱點軟件
8胰挑,檢查windows 網(wǎng)卡是否被共享
【8】說出以下目錄的內(nèi)容
/dev 磁盤 光盤
/mnt 臨時掛載點
/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點15分將/etc/下以.conf結(jié)尾的文件打包到/backup目錄下瞻颂,并以時間命名,同時刪除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)中正在運行的全部進(jìn)程责掏,應(yīng)使用的命令及參數(shù)是________。
ps -a
(17).修改機器名為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)的啟動時間(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 自動補齊
(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)建時間倒序顯示
(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)建 目錄 因為這個目錄已經(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:如何臨時取消別名
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é)點
第1位 文件類型
第2-10位 權(quán)限
. SELinux相關(guān)
硬鏈接的數(shù)量 1個不同的入口
所擁有者
所屬用戶組
文件大小
文件修改的時間
文件名和目錄 不是文件屬性
在/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)前的時分秒
[root@oldboy59 tmp]# date +%H:%M:%S
17:00:51
顯示十天前的時間
[root@oldboy59 tmp]# date -d '-10day' +%F_%T
2019-03-31_17:01:38
顯示十年后的時間
[root@oldboy59 tmp]# date -d '+10year' +%F_%T
2029-04-10_17:02:15
將時間修改成2019 年5 月1 日19 時0 分
[root@oldboy59 tmp]# date -s '20190501 19:00:00'
Wed May 1 19:00:00 CST 2019
同步網(wǎng)絡(luò)時間
[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é)點的inode號碼溪王,存放文件屬性信息,包括大小值骇、所有者莹菱、權(quán)限、文件類型吱瘩、硬鏈接數(shù)芒珠、時間,還有block的位置搅裙,但是文件名沒有存放在這里
block:用來存放文件內(nèi)容
哪種鏈接的inode與源文件相同:
硬鏈接皱卓,inode的節(jié)點和源文件相同
軟連接與硬鏈接的區(qū)別:
首先是不能對目錄創(chuàng)建硬鏈接裹芝,但可以創(chuàng)建軟鏈接
還有是軟鏈接可以跨文件系統(tǒng),硬鏈接不能跨文件系統(tǒng)
困哪難度
壓縮/etc/目錄到/tmp下娜汁,并以時間命名
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)機 0 關(guān)機
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é)點號指向被鏈接文件的i節(jié)點
硬鏈接和符號連接都是產(chǎn)生一個新的i節(jié)點
鏈接分為硬鏈接和符號鏈接
硬鏈接不能鏈接目錄文件
在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
自動補齊
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)前后臺運行的任務(wù)
Ctrl+s
鎖屏
Ctrl+q
解鎖屏幕
!*
可以調(diào)出上次以*開頭的命令并執(zhí)行
!!
可以調(diào)出上次執(zhí)行的命令并執(zhí)行
8:給rm 命令加一個別名,讓每次刪除都強制提醒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 將時間修改成2019 年5 月1 日19 時0 分
date -s '20190501 19:00'
12 查看系統(tǒng)當(dāng)前的詳細(xì)時間(年月日-時-周幾)
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)開機自動加載的列表文件
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------>運行級別的配置文件
10 /etc/rc.local------>系統(tǒng)自啟動的程序或者腳本列表
(五) 報錯翻譯(每題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
無法解析主機名
(六) 擴展
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'`
如果沒有指定擴展名則直接使用
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次以上的時候:^ +$
打印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
查找最后修改時間是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行之間靶草,同時將"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 目錄中查找更改時間在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目錄及其子目錄下所有以擴展名.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的命令,同時只顯示包含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ù)知識點
利用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次以上的時候:^ +$
從a.log文件中提取包含“WARNING”或“FATAL”,同時不包含“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是一個很強大的文本處理工具,請使用awk統(tǒng)計當(dāng)前主機的并發(fā)訪問量
netstat -ant | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
三. 老牛逼題目 15k+
有一個文件nginx.log假栓,請用awk提取時間(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)計apache訪問日志流量排名前10個IP
統(tǒng)計出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)計訪問量前十的IP,并進(jìn)行排序)
awk -F: '/WARNING|FATAL/&& !/IGNOR/{print $5}' a.log