1.取出系統中的文件/etc/passwd的第七列(以:為分隔符)。
awk -F: '{print $7}' passwd
sed -r 's#(.*:)(.*)#\2#g' passwd
awk -F: '{print $7}' passwd
sed -r 's#(.*:)(.*)#\2#g' passwd
2.已知文件test.txt內容如下,請給出輸出test.txt文件內容時,不包含oldboy字符串的命令。
test
qiudao
oldboy
grep -v oldboy test.txt
awk '!/oldboy/' test.txt
sed '/oldboy/d' test.txt
awk '!/oldboy/' test.txt
sed '/oldboy/d' test.txt
3.只查看/etc/passwd文件內第5到第15行的內容
head -15 /etc/passwd | tail -10
grep -n '.*' |grep -wA 10 '^5'
awk 'NR>=5 || NR<=15' /etc/passwd
awk 'NR>4 && NR<16' /etc/passwd
sed -n '5,15p' /etc/passwd
head -15 /etc/passwd | tail -10
grep -n '.*' |grep -wA 10 '^5'
awk 'NR>=5 || NR<=15' /etc/passwd
awk 'NR>4 && NR<16' /etc/passwd
sed -n '5,15p' /etc/passwd
4.把test.txt文件中的oldboy替換為oldgirl,給出命令
sed 's#oldboy#oldgirl#g' test.txt
sed 's#oldboy#oldgirl#g' test.txt
5.test.txt 的內容如下,要求過濾出不包含qiudao的行。有幾種方法可以實現
oldboy
oldgirl
qiudao
oldboy
oldgirl
qiudao
grep -v 'qiudao' test.txt
sed -n '/qiudao/p' test.txt
awk '/qiudao/' test.txt
sed -n '/qiudao/p' test.txt
awk '/qiudao/' test.txt
6.把文件/etc/passwd文件中的/sbin/nologin替換為/bin/bash
sed 's#/sbin/nologin#/bin/bash #g' /etc/passwd
sed 's#/sbin/nologin#/bin/bash #g' /etc/passwd
7.把/etc/selinux/config文件中的SELINUX=enforcing行中的enforcing替換成disabled
sed '/^S/SELINUX=enforcing/s#enforcing#disabled#g' /etc/selinux/config
sed '/^S/SELINUX=enforcing/s#enforcing#disabled#g' /etc/selinux/config
8.現將文件b.txt 中的所有123 替換成def,請問如何實現?
sed 's#123#def#g' b.txt
sed 's#123#def#g' b.txt
9.將文件的test.txt中的第10行的oldboy改為oldgirl
sed '10s#oldboy#oldgirl#g' test.txt
sed '10s#oldboy#oldgirl#g' test.txt
10.請執行命令取出linux中eth0的IP地址(請用cut,有能力者也可分別用awk,sed命令答)。
ifconfig eth0 |head -2|tail -1|cut -d ' ' -f10
ifconfig eth0|sed -nr '2s#(.*et )(.*)(n.*$)#\2#gp'
ifconfig eth0 | awk 'NR==2{print $2}'
ifconfig eth0 |head -2|tail -1|cut -d ' ' -f10
ifconfig eth0|sed -nr '2s#(.*et )(.*)(n.*$)#\2#gp'
ifconfig eth0 | awk 'NR==2{print $2}'
ip a s eth0|sed -nr 's#(.*et )(.*)(/.*)#\2#gp'
ip a s eth0|awk -F '[ /]' 'NR==3{print $6}'
ip a s eth0|awk -F '[ /]' 'NR==3{print $6}'
11.使用命令調換/etc/passwd文件里 root 位置和/bin/bash 位置? 即將所有的第一列和最后一列位置調換?
awk -F: '{print $NF":"$2":"$3":"$4":"$5":"$6":"$1}' passwd
awk -F: '{a=$1;$1=$NF;$NF=a;print} ' passwd | tr ' ' ':'
sed -r 's#(^.*)(:x.*:)(.*)#\3\2\1#g'
awk -F: '{print $NF":"$2":"$3":"$4":"$5":"$6":"$1}' passwd
awk -F: '{a=$1;$1=$NF;$NF=a;print} ' passwd | tr ' ' ':'
sed -r 's#(^.*)(:x.*:)(.*)#\3\2\1#g'
12.先拷貝,再刪除/etc/passwd文件的前三行內容。
cp /etc/passwd ./
sed -n '1,3p' passwd
cp /etc/passwd ./
sed -n '1,3p' passwd
13.使用sed命令打印出/etc/passwd文件的第一行到第三行
sed -n '1,3p' /etc/passwd
sed -n '1,3p' /etc/passwd
14.過濾出/etc/services 文件包含3306或1521兩數字所在的行的內容。(三種方法)
sed -nr '/3306 | 1521/p' /etc/services
awk '/3306 | 1521/' /etc/services
grep -E '3306|1521' /etc/services
sed -nr '/3306 | 1521/p' /etc/services
awk '/3306 | 1521/' /etc/services
grep -E '3306|1521' /etc/services
15.在linux 系統中,當LAN(局域網)內沒有條件記案例DNS 服務器,但又想讓局域網內的用戶可以使用計算機名互相訪問時,應配置( )文件(請寫全路徑)
/etc/hosts
/etc/hosts
16.寫出redhat中,配置網卡及dns的配置文件是什么?有什么區別?
#網卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 重啟網絡服務生效
#DNS配置文件
/etc/resolv.conf 立即生效
#網卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 重啟網絡服務生效
#DNS配置文件
/etc/resolv.conf 立即生效
17.若要將鼠標從VM中釋放出來,可按()鍵完成。
ctrl + Alt
ctrl + Alt
18.如何統計/etc下有多少個目錄,不包括隱藏目錄,只顯示目錄個數。
tree -d /etc | tail -1
tree -d /etc | tail -1
19.統計secure.log文件中每個ip地址破解你用戶密碼的次數(包含Failed password字符串的行屬於破解密碼的,日志群里有,文件很大,建議不要使用cat打開)。
awk '/Failed password/{print $(NF-3)}' secure.log|sort|uniq -c|sort -rn | head
awk '/Failed password/{print $(NF-3)}' secure.log|sort|uniq -c|sort -rn | head
20.輸入last,統計當前連接本機的每個遠程終端IP的連接總次數
last|grep 'pts'|awk '{print $3}' |sort|uniq -c
last|grep 'pts'|awk '{print $3}' |sort|uniq -c
21.輸入lscpu,取出當前系統的cpu核心數
lscpu | head -7 | tail -1 | awk -F: '{print $2}'
lscpu |sed -nr '7s#(C.*:)( .*$)#\2#gp'
lscpu|grep -E '^Co'|awk -F: '{print $2}'
lscpu | grep '^Core' | awk '{print $NF}'
lscpu | head -7 | tail -1 | awk -F: '{print $2}'
lscpu |sed -nr '7s#(C.*:)( .*$)#\2#gp'
lscpu|grep -E '^Co'|awk -F: '{print $2}'
lscpu | grep '^Core' | awk '{print $NF}'
22.輸入df -h,取出當前系統根分區剩余可用磁盤空間
df -h | awk 'NR==2{print $4}'
df -h | awk '/\/$/{print $4}'
df -h | awk 'NR==2{print $4}'
df -h | awk '/\/$/{print $4}'
23.顯示/proc/meminfo文件中以s開頭的行(忽略大小寫)
sed -nr '/^s|^S/p' /proc/meminfo
awk '/^s|^S/' /proc/meminfo
grep -i '^s' /proc/meminfo
sed -nr '/^s|^S/p' /proc/meminfo
awk '/^s|^S/' /proc/meminfo
grep -i '^s' /proc/meminfo
24.執行命令echo "I am qls,myqq is 1176494252">/oldboy/oldboy.txt,
現在需要從文件中過濾出“qls”和“1176494252”字符串,請給出命令?(最少三種方法)
sed -r 's#.*m (.*)(,.*s)(.*)#\1\3#g' oldboy.txt
awk -F '[ ,]' '{print $3,$6}' /oldboy/oldboy.txt
tr ',' ' ' /oldboy/oldboy.txt | cut -d ' ' -f3,6
現在需要從文件中過濾出“qls”和“1176494252”字符串,請給出命令?(最少三種方法)
sed -r 's#.*m (.*)(,.*s)(.*)#\1\3#g' oldboy.txt
awk -F '[ ,]' '{print $3,$6}' /oldboy/oldboy.txt
tr ',' ' ' /oldboy/oldboy.txt | cut -d ' ' -f3,6
25.接上題,如果需要從文件中過濾出“qls,1176494252”字符串,請再給出命令?
sed -r 's#(.*m )(.*)(,.*s)(.*)#\2\4#g' /oldboy/oldboy.txt
awk '{print $3" "$6}' /oldboy/oldboy.txt |tr ',' ' '
cut -d ' ' -f3,6 /oldboy/oldboy.txt | tr ',' ' '
sed -r 's#(.*m )(.*)(,.*s)(.*)#\2\4#g' /oldboy/oldboy.txt
awk '{print $3" "$6}' /oldboy/oldboy.txt |tr ',' ' '
cut -d ' ' -f3,6 /oldboy/oldboy.txt | tr ',' ' '
26.我想在/data/oldboyedu目錄下面創建 一個oldboy.txt文件,出現了如下報錯。
[root@qiudao ~]# touch /data/oldboyedu/oldboy.txt
touch: cannot touch ‘/data/oldboyedu/oldboy.txt’: No such file or directory
問:為何出現這樣的錯誤?該怎么解決?
[root@qiudao ~]# touch /data/oldboyedu/oldboy.txt
touch: cannot touch ‘/data/oldboyedu/oldboy.txt’: No such file or directory
問:為何出現這樣的錯誤?該怎么解決?
/data/oldboyedu 沒有這個目錄
mkdir /data/oldboyedu/ -p
mkdir /data/oldboyedu/ -p
27.翻譯題
01).command not found #沒有這個命令
02).No such file or directory #沒有這個目錄或文件
03).File exists #文件已存在
04).Is a directory #它是個目錄
05).Not a directory #不是這個目錄
01).command not found #沒有這個命令
02).No such file or directory #沒有這個目錄或文件
03).File exists #文件已存在
04).Is a directory #它是個目錄
05).Not a directory #不是這個目錄
28.在/backup下創建10個.txt的文件,找到/backup目錄下所有后綴名為.txt的文件
touch /backup/{01..10}.txt
find /backup/ -type f -name '*.txt' ll /backup/*.txt
touch /backup/{01..10}.txt
find /backup/ -type f -name '*.txt' ll /backup/*.txt
29.顯示/etc/services文件的第10行到第20行的內容?
head -20 /etc/services | tail -10
grep -n '.*' /etc/services | grep -wA 10 '^10'
sed -n '10,20p' /etc/services
awk 'NR>=10 && NR<=20' /etc/services
awk 'NR>9 && NR<21' /etc/services
more +10 -10 /etc/services
30.顯示文件/etc/services的大小?
wc -c /etc/services
ll /etc/services
wc -c /etc/services
ll /etc/services
31.以“:”為分隔符,取出/etc/passwd第一行的第七列也就是最后一列的內容?(兩種方法)
awk -F: 'NR==1{print $7}' /etc/passwd
sed -nr '1s#(r:)(.*$)#\2#gp' /etc/passwd
sort -t ':' -f7 /etc/passwd
awk -F: 'NR==1{print $7}' /etc/passwd
sed -nr '1s#(r:)(.*$)#\2#gp' /etc/passwd
sort -t ':' -f7 /etc/passwd
32.找出/var/log目錄中以.log結尾的文件,並顯示這些文件的屬性信息。
ll /var/log/*.log
ll /var/log/*.log
33.尋找名稱為mytest.log的文件
find / -type f -name 'mytest.log'
find / -type f -name 'mytest.log'
34.用命令行更改config.txt文件,把里面的“name”更改為“address”
sed 's#name#address#g' config.txt
sed 's#name#address#g' config.txt
35.把/etc/passwd文件中的:替換成#
sed 's#:#\##g' /etc/passwd
tr ':' '#' /etc/passwd
sed 's#:#\##g' /etc/passwd
tr ':' '#' /etc/passwd
36.說明下面這幾個文件的作用:/etc/hostname、/etc/resolv.conf、/etc/hosts
/etc/hostname: 系統主機名配置文件
/etc/resolv.conf :DNS配置文件
/etc/hosts:IP地址與主機名映射關系文件
/etc/hostname: 系統主機名配置文件
/etc/resolv.conf :DNS配置文件
/etc/hosts:IP地址與主機名映射關系文件
37.嘗試使用sed命令的后向引用和awk命令取出ip地址,請分別使用ip和ifconfig命令取出。
ip a s eth0|sed -nr '3s#(.*et )(.*)(/.*)#\2#gp'
ip a s eth0|awk -F '[ /]' 'NR==3{print $6}'
ip a s eth0|sed -nr '3s#(.*et )(.*)(/.*)#\2#gp'
ip a s eth0|awk -F '[ /]' 'NR==3{print $6}'
ifconfig eth0|sed -nr '2s#(.*t )(.*)( n.*)#\2#gp'
ifconfig eth0|awk 'NR==2{print $2}'
ifconfig eth0|awk 'NR==2{print $2}'
38.在123.txt文件末尾插入‘test’。(兩種方法)
sed '$atest' 123.txt
echo 'test' >> 123.txt
cat >>123.txt<<EOF
test
EOF
sed '$atest' 123.txt
echo 'test' >> 123.txt
cat >>123.txt<<EOF
test
EOF
39.將/etc/passwd文件中第一行到第五行的root替換為admin?
sed '1,5s#root#admin#g' /etc/passwd
sed '1,5s#root#admin#g' /etc/passwd
40.統計nginx訪問日志access.log中每個訪問ip出現次數最多的10個。(已知ip在第一列,日志群里有)
awk '{print $1}' access.log | sort |uniq -c |sort -nr | head
awk '{print $1}' access.log | sort |uniq -c |sort -nr | head
41.取出下列文件的權限如:0644 ?(兩種方法)
[root@qls ~]# stat qls.txt
File: ‘123.txt’
Size: 44 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67160518 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-27 16:55:57.055131412 +0800
Modify: 2019-07-27 16:55:50.098131214 +0800
Change: 2019-07-27 16:55:50.101131214 +0800
[root@qls ~]# stat qls.txt
File: ‘123.txt’
Size: 44 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67160518 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-27 16:55:57.055131412 +0800
Modify: 2019-07-27 16:55:50.098131214 +0800
Change: 2019-07-27 16:55:50.101131214 +0800
stat qls.txt | sed -nr '4s#(.*s: \()(.*)(/-.*)#\2#gp'
stat qls.txt | awk -F '[(/]' 'NR==4{print $2}'
stat qls.txt | awk -F '[(/]' 'NR==4{print $2}'
42.刪除qls.txt文件中的第10行到20行。(兩種方法)
sed '10,20d' qls.txt
awk 'NR<10 || NR>20' qls.txt
awk 'NR<10 || NR>20' qls.txt