第三十四章 Linux常规练习题(一)参考答案
一、练习题一
1.超级用户(管理员用户)提示符是___#_,普通用户提示符是___$_。
2.linux关机重启的命令有哪些 ?
关机命令 | 重启命令 |
shutdown -h now | shutdown -r now |
init 0 | init 6 |
poweroff | reboot |
halt -p |
3.bash是什么?
是一种命令解释器 负责用户和内核交互的一种接口
将用户输入的命令翻译给操作系统,并将处理后得到的结果输出到屏幕上
4.bash特性, 常见的bash特性有哪些?
tab键补全
命令行快捷键
历史记录
命令别名
5.网卡的配置文件路径什么?
/etc/sysconfig/network-scripts/ifcfg-eth0
6.[root@qiudao ~]# 已知这个是linux命令行,那么请问root表示什么?
当前所登陆的用户
7.接第上题,qiudao表示什么?
主机名
8.接上题,~的位置表示什么?而~本身又代表了什么?
当前所在的位置
当前用户所在的家目录
[root@qiudao ~]# yum install -y net-tools 已知命令行内容,下面几道练习题根据此命令行内容作答。
9.已知当前光标所在位置在最后面,我如果要删除命令行的内容,该怎样操作呢?
Ctrl+u
10.已知当前光标所在位置在最前面,我如果要删除命令行的内容,该怎样操作呢?
Ctrl+k
11.已知当前光标所在位置在最后面,我想只删除net-tools,该怎样操作呢?
Ctrl+w
12.磁盘分区安装系统的时候,你是怎么分区的?
/boot 500M
/swap 1G
/ 全给
13.网络类型都有哪几种?这几种模式,各个意思你是怎么理解的?
(1)NAT 网络地址转换
NAT模式中的虚拟机是通过宿主机(物理电脑)进行上网和交换数据的
使用到网卡是VMnet8 VMware NAT Service服务就充当了一个路由器,虚拟机上网的时候首先会找到这个路由器,进行了一个地址转换,伪装了一个跟宿主机一样的IP地址 进行上网, 网络上的数据将返回给VMnet8这个网卡,VMnet8这块网卡会把数据返回给虚拟机
好处: 外面的网络可以随便更换,虚拟机的网络不变,IP地址也不会跟宿主机的IP地址冲突,IP的地址范围也广,设置一个网段
坏处: 上网需要经过一个中介 代理
(2)桥接模式 Bridge
通过宿主机网卡架设了一座桥 网桥 直接进入到了实际的网络环境中
虚拟机的IP地址跟宿主机的IP地址在一个网段范围之内,容易跟宿主机IP发生冲突
IP地址会随着外面网络的改变而改变,不能使用一个固定的IP地址,IP少
优点: 上网不需要经过宿主机,只需要通过VMnet0 网卡
桥接模式中的虚拟机跟宿主机的层级是一样的
(3)仅主机模式 Host-only
仅能跟宿主机进行连接,没有办法上网的 VMnet1
14.快照有什么作用?
保存虚拟机的某种状态,一旦虚拟机出现某种问题可以恢复到这种状态
15.克隆分哪几种?各表示什么含义?
完整克隆 是原始虚拟机的完整副本 ,不依赖于原始虚拟机,即使原始虚拟机出现问题,克隆机还能使用,但克隆速度较慢
链接克隆 是基于原始虚拟机的副本,依赖于宿主机,一旦原始虚拟机出现问题,克隆机就会出现问题,克隆速度较快
16.GNU是什么,介绍一下都有哪些内容?
GNU是斯托曼创立的FSF下的一个项目 全称GNU is not Unix
优秀的软件: Emacs编辑器 gcc编译软件 bash命令解释器 gawk开发语言 hurd内核 还在研发
17.GPL是什么,内容是什么?
通用公共许可协议 开源许可协议
自由的,可任意传播的
可任意修改的,但是必须将修改之后的源代码发布出来
18.Linux的发行版本都有哪些?
Redhat 红帽 开源但是收费
CentOS 学习使用 去掉了Redhat的收费和logo部分编译而成的系统 开源 免费 企业 首选
Fedora 新功能 想使用新功能 是Redhat的测试版本 预发布版
Ubuntu 乌班图 桌面系统 开发人员使用的多
SUSE 数据库高级服务及电子邮件 德国使用的多 收费 OpenSUSE
Debian、FreeBSD 对安全性要求比较高 中文 麒麟 红旗
19.创建一个目录,shanghai。
mkdir shanghai
20.创建一个文件,test.txt
touch test.txt
21.进入到shanghai这个目录。
cd shanghai
22.显示你当前所在的位置。
pwd
23.如何快速从当前目录切换到家目录?
cd
24.用ls -a随便查看一个目录,发现每个目录下都会有两个名为“.”和“..”的目录,解释它们分别代表的含义
. 当前所在的目录
.. 当前所在目录的上一级目录
25.解释linux系统下“绝对路径”和“相对路径”的区别?
以/为起点的就是绝对路径
不以/为起点的就是相对路径
26.使用创建文件的命令一次性在oldboy目录下批量创建(oldboy1,oldboy2,oldboy3,oldboy4,oldboy5)这几个文件
mkdir oldboy
touch oldboy/oldboy{1..5}
27.如何检查当前登录的是什么用户?
whoami
28.如何快速返回上一次所在的目录?
cd -
29. 假设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为?
/root
30. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是?
-p
31. 在linux中,下面(A)命令不是针对目录操作的。
A. ps
B. cd
C.pwd
D. ls
32. 建立一个新文件可以使用的命令为?
touch
33. 如果要列出一个目录下的所有文件需要使用命令为?
ls -la
34.Linux系统习惯将许多设备驱动存储在什么目录中?
/dev
35.包含了域名与IP地址的映射关系的文件是?
/etc/hosts
36.用什么命令来显示当前目录?
pwd
37.在类linux操作系统中,哪个用户默认对整个操作系统拥有完全控制权?
root
38.linux系统管理员创建一个普通oldboy用户,默认会在哪个目录下创建一个用户的主目录
/home
39.使用cd命令进入到/usr/local目录下,然后又执行了cd .. 请问,当前你所在的位置是哪里?
/usr
40.已知你在/etc/sysconfig/network-scripts/目录下,你执行了cd /etc/systemd/命令,怎样才能快速的到达/etc/sysconfig/network-scripts/目录下?
cd -
41.已知当前位置为/opt,请问,执行cd . ,写出你所在的位置?
/opt
42.创建/oldboy目录?
mkdir /oldboy
43.创建/data/test目录,已知/data目录不存在,请给出命令?
mkdir -p /data/test
44.创建/root/user /root/logs /root/conf /root/html目录,请用一条命令实现
mkdir /root/{user,logs,conf,html}
45.创建文件oldboy.txt
touch oldboy,txt
46.在/root/目录下创建文件test.txt test.log test.sh test.conf 请用一条命令创建。
touch /root/test.{txt,log,sh,conf}
47.显示/root目录下的目录结构。
tree /root
48.只显示/目录的两层目录结构。
tree -L 2 /
49.只显示/etc目录下的目录。
tree -d /etc
50.如果我在当前在/目录下,之后执行了以下操作,请告诉我,最后我所在的目录位置
cd /etc/sysconfig/
cd ..
cd ..
cd -
cd ~
cd ..
root用户 /
普通用户 /home
51.当前用户是root用户,当前所在位置是/usr/local ,输入cd命令后,当前所在目录是哪里?
/root
52.显示当前所在位置信息
pwd
53.显示/oldboy 下面所有文件(包含隐藏文件)的详细信息
ls -la /oldboy
54.在/oldboy目录下创建以你名字的目录。(已知oldboy目录不存在,请用一条命令实现)
mkdir -p /oldboy/jh
55.在你名字的目录下面创建两个文件,分别为test.txt,test.log
touch /oldboy/jh/test{txt,log}
二、练习题二
1. 欲把当前目录下的file1.txt复制为file2.txt 命令是?
cp file1.txt ./file2.txt
2.批量创建oldboy01,oldboy02,...oldoby05这几个目录
mkdir oldboy{01..05}
3.显示/oldboy 下面所有文件(包含隐藏文件)的详细信息
ls -la /oldboy
4.在/oldboy目录下创建以你名字的目录。(已知oldboy目录不存在,请用一条命令实现)
mkdir -p /oldboy/jh
5.在你名字的目录下面创建两个文件,分别为test.txt,test.log
touch /oldboy/jh/test,{txt,log}
6.把test.txt文件移动到/tmp目录下面
mv /oldboy/jh/test.txt /tmp
7.把test.log文件重命名为test.sh
cd /oldboy/jh/
mv test.log test.sh
8.删除test.sh这个文件
rm -f test.sh
9.删除oldboy这个目录
rm -rf /oldboy
10.切换到/tmp目录下,查看当前的工作位置,同时创建data1、data2、data3、共三个目录。
cd /tmp
pwd
mkdir data{1..3}
11.接上一题,分别在data1、data2、data3三个目录下创建3个文件,名字为oldboy1、oldboy2、oldboy3.然后查看/tmp目录的整个目录结构情况,最后检查下data1和oldboy1两个对象的属性。
touch data{1..3}/oldboy{1..3}
tree /tmp
ll -d data1
ll data/oldboy1
12.把/etc/hosts文件复制到/tmp/data1目录下,然后把data1目录复制到/opt/目录下。
cp /etc/hosts /tmp/data1
cp /tmp/data1 /opt
13.将/tmp/data1目录移动到/root目录下,然后删除/opt/data1目录下的hosts文件,最后删除/opt目录下的data1目录。
mv /tmp/data1 /root
rm -f /opt/data1/hosts
rm -rf /opt/data1
14.查看oldboy.txt文件中的内容,并显示行号(请使用cat命令)。
cat -n oldboy.txt
15.使用cat命令把oldboy oldgirl student三行内容(每个字符串是一行内容)写入到test.txt文件中
cat >test,txt<<EOF
oldboy
oldgirl
student
EOF
16.查看系统中/etc/services文件中的内容(使用more和less命令,进行上下页查看,并搜索关键字‘ssh’,之后退出。)
more /etc/services b上一页 空格下一页 /ssh q退出
less /etc/services b上一页 空格下一页 /ssh q退出
17.使用cat命令查看文本文件的内容时要对所有的输出行进行显示行号,怎么实现?
-n
18.使用mv命令,下列说法错误的是? CD
A.mv命令可以重命名文件
B.mv命令可以移动文件
C.mv命令可以复制文件
D.mv命令可以删除文件
19.删除文件的命令为?
20.显示"I'm a student"到屏幕上面
echo "I'm a student"
21.将"I'm a student"追加到hello.txt文件中
echo "I'm a student">>hello.txt
22.将/etc/passwd文件复制到/opt目录中
cp /etc/passwd /opt
23.将/tmp目录复制到当前用户的家目录下
cp -a /tmp /root
24.将/opt目录下的hosts文件移动到/root目录下,并将其改名为ip.txt
mv /opt/hosts /root ip.txt
25.把/var/log/目录下的所有文件拷贝到/opt目录下
cp -a /var/log/* /opt
26.使用echo命令创建一个非空文件
echo "1" >2.txt
27.使用echo命令把oldboy oldgirl student三行内容(每个字符串是一行内容)写入到test.txt文件中
echo -e "oldboy\noldgirl\nstudent" >test.txt
28.将/etc/hosts和/etc/passwd两个文件合并为一个新文件,文件名称为test.log
cat /etc/hosts /etc/passwd >>test,log
29.将/etc/services文件拷贝到/root目录下
cp /etc/services /root
30.分页查看/root/services文件,要求从第10行开始显示
more +10 /root/services
三、练习题三
1.打开这个网站http://nginx.org/download/,下载一个结尾为tar.gz的软件包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2.同样打开上面的网站,下载一个结尾为tar.gz的软件包,要求下载之后的软件包名为nginx.tar.gz
wget -O ./nginx.tar.gz http://nginx.org/download/nginx-1.18.0.tar.gz
3.打开此网站https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/ 下载一个结尾为rpm的软件包
wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-server-pgsql-4.0.9-2.el7.x86_64.rpm
4.同样打开上面这个网站,下载一个结尾为rpm的软件包,要求下载之后的软件包名为zabbix.rpm
wget -O ./zabbix.rpm https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.20-1.el7.noarch.rpm
5.在linux中访问qls的博客网站,访问主页就可以
root@jindada ~]# curl -L https://www.increase93.com/
6.在linux中访问qls的博客网站,要求把主页的内容保存到qls.hml文件中。
curl -o jindada.html https://www.increase93.com/
7.在linux中访问百度的首页
curl https://www.baidu.com
8.在linux中访问百度的首页,要求把主页的内容保存到baidu.html文件中
curl -o baidu.html www.bidu.com
9.把/etc/hosts文件下载到本地电脑桌面
sz /etc/hosts
10.把/etc/services文件下载到本地电脑D盘中
sz /etc/hosts
11.把你的课堂笔记上传到linux系统中
rz
12.把你的习题笔记上传到linux系统中的/opt目录下面
cd /opt
rz
13.如果我要把本地电脑中的目录上传到linux系统,请问怎么上传?
打包压缩上传
xftp上传
14.查找ifconfig命令的绝对路径在哪里?你能使用几种方法实现?
which ifconfig
locate ifconfig
type -p ifconfig
whereis -b ifconfig
15.查找netstat命令的绝对路径在哪里?你能使用几种方法实现?
which netstat
locate netstat
type -p netstat
whereis -b netstat
16.统计文件/etc/hosts的行数?你能使用几种方法实现?
cat -n /etc/hosts |tail -1
grep -c '.*' /etc/hosts
wc -l /etc/hosts
17.改变bash的提示符实际上就是改变变量?
ps1
18.显示/etc/passwd文件的前5行内容。
head -5 /etc/passwd
grep -n '.*' /etc/passwd |grep -wA 4 '^1'
sed -n '1,5p' /etc/passwd
awk 'NR<6' /etc/passwd
19.显示/etc/passwd文件的最后5行内容。
tail -5 /etc/passwd
20.显示/etc/services文件的第11行到第20行的内容
cp /etc/services ./
cat -n services |head -20 |tail
grep -n '.*' services |grep -wA 9 '^11'
sed -n '11,20p' services
awk 'NR>10 &&NR<21' services
21.查看系统中的cd命令是不是内嵌命令
type -a cd
22.找出系统中文件名为oldboy.txt的所有文件。
find / -type f -name "oldboy.txt"
23.找出系统中名为oldboy的所有目录。
find / -type d -name "oldboy"
24.找出系统中文件名以oldboy开头的所有文件。
find / -type f -name "oldboy*"
25.rm是个危险的命令,要求用命令rm删除文件时提示“rm command no bny”,怎么实现?
alias rm="echo rn command no bny"
26.设置rm命令存在别名之后,要删除/oldboy这个目录,怎么实现?
\rm -rf /oldboy
27.实时查看系统日志/var/log/message的更新
tail -f /var/log/message
28.查找出系统中为s类型的文件
find / -type s
29.查找出系统中为p类型的文件
find / -type p
30.只显示出/etc/passwd文件的第五行
cat - n /etc/passwd |head -5 |tail -1
grep -wn '^5' /etc/passwd
sed -n '5p' /etc/passwd
awk 'NR==5' /etc/passwd
四、练习题四
1.已知sort.log文件内容如下,请根据文件内容的第二列进行倒序排序。
cat >>sort.log<<'EOF'
218.65.30.25 68652
218.65.30.53 34326
218.87.109.154 21201
112.85.42.103 18065
112.85.42.99 17164
218.87.109.151 17163
218.87.109.150 17163
218.65.30.61 17163
218.65.30.126 17163
218.65.30.124 17163
EOF
sort -nk2r sort.log
2.统计系统文件/etc/services有多少行。
cat -n /etc/services |tail -1
grep -c '.*' /etc/services
wc -l /etc/services
awk '{print NR,$0}' /etc/services |tail -1
3.已知文件内容如下,请对该文件的字符串出现的次数进行统计,并从小到大的进行排序出来。
cat>>uniq.txt<<'EOF'
oldboy
oldgirl
oldboy
egon
student
oldgirl
oldboy
EOF
sort -n uniq.txt |uniq -c
4.取出系统中的文件/etc/passwd的第七列(以:为分隔符)。
cut -d ':' -f7 /etc/passwd
awk -F: '{print $7}' /etc/passwd
sed -nr 's#(.*)(:.*:)(.*$)#\3#gp' /etc/passwd
5.已知文件test.txt内容如下,请给出输出test.txt文件内容时,不包含oldboy字符串的命令。
test
qiudao
oldboy
grep -v 'oldboy' test.txt
sed '/oldboy/d' test.txt
awk '!/oldboy/' test.txt
6.只查看/etc/passwd文件内第5到第15行的内容
cat -n /etc/passwd |head -15 |tail -11
grep -n '.*' /etc/passwd |grep -wA 10 '^5'
sed -n '5,15p' /etc/passwd
awk 'NR>4 && NR <16' /etc/passwd
7.test.txt 的内容如下,要求过滤出不包含oldgirl的行。
oldboy
oldgirl
qiudao
grep -v 'oldboy' test,txt
8.请执行命令取出linux中eth0的IP地址分别是ip和ifconfig的命令(请用cut,有能力者也可分别用awk,sed命令答)。
ip a s eth0 |sed -nr '3s#(.*et )(.*)(/24.*$)#\2#gp'
ip a s eth0 |awk 'NR ==3{print $2}' |cut -d '/' -f1
ip a s eth0 |awk -F '[ /]*' 'NR ==3{print $3}'
ifconfig eth0 |sed -nr '2s#(.*net )(.*)( ne.*$)#\2#gp'
ifconfig eth0 |awk 'NR==2 {print $2}'
9.删除/etc/passwd文件的前三行内容。
sed '1,3d' /etc/passwd
10.统计文件/etc/hosts的行数?你能使用几种方法实现?
grep -c ',*' /etc/hosts
wc -l /etc/hosts
cat -n /etc/hosts |tail -1
11.统计文件/etc/services的字节数。你能使用几种方法实现?
ll /etc/services
wc -c /etc/services
12.执行下面的命令echo "Im qls , is QQ 1176494252" >file.txt,要求取出该文件中的姓名和QQ号。
cut -d ' ' -f2,6 file.txt
awk '{print $2,$6}' file.txt
grep -oE '1176494252|qls' file.txt
sed -nr 's#(.* )(.*)( ,.*)( .*$)#\2\4#pg' file.txt
13.执行如下命令
cat > file.txt <<EOF
abc
123
abc
123
def
EOF
要求去除重复的列
sort file.txt |uniq
14.接上题,取出每列出现的次数
sort file.txt |uniq -c
15.统计/var/log下的文件个数,不统计下级目录。
ll /var/log |grep '^-' |wc -l
ll /var/log |grep -c '^-'
16.统计/var/log下的所有文件和目录个数,不包含隐藏文件。
tree /var/log | tail -1 | cut -d " " -f1,3
17.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容
head -1 /etc/passwd |cut -d ':' -f7
sed -nr '1s#(.*)(:.*:)(.*$)#\3#pg' /etc/passwd
awk -F: 'NR==1 {print $7}' /etc/passwd
18.过滤出/etc/passwd以nologin结尾的内容,并统计行数
grep -c 'nologin$' /etc/passwd
19.分析如下日志内容,每个域名被访问次数
cat>catweb.log <<EOF
http://www.oldboy.com/index.html
http://www.oldboy.com/1.html
http://post.oldboy.com/index.html
http://mp3.oldboy.com/index.html
http://www.oldboy.com/3.html
http://post.oldboy.com/2.html
EOF
cat catweb.log |cut -d '/' -f3 |sort |uniq -c
sed -nr 's#(.*/)(.*)(/.*$)#\2#gp' catweb.log |sort |uniq -c
20.显示/etc/services文件的第11行到第20行的内容
cat -n /etc/services |head -20 |tail
21.已知文件123.txt内容如下,请过滤出包含oldboy字符串的命令
test
OLDBOY
online
oldboy
oldboyoldboy
grep 'oldboy' 123.txt
22.过滤出文件123.txt中不包含test的行,并给其过滤出来的内容加上行号
grep -nv ‘test' 123.txt
23.要求过滤出文件123.txt中包含oldboy的字符串,忽略大小写。
grep -i 'oldboy' 123.txt
24.要求过滤出文件123.txt中包含online字符串的行,并统计共有多少行。
grep -n 'online' 123.txt |grep -c '.*'
25.要求过滤出文件123.txt中包含oldboy的单词。
grep -o 'oldboy' 123.txt
写一个文件,文件内容如下,下面几题请用该文件作答?
cat >>test.txt<<EOF
server {
lisTEN 80;
server_nAme www.oldboy.com;
root /code/dOcs
index INDEX.html;
}
EOF
26.过滤www.oldboy.com这段关键字
[root@jindada ~]# grep 'www.oldboy.com' test.txt
server_nAme www.oldboy.com;
[root@jindada ~]# sed -n '/www.oldboy.com/p' test.txt
server_nAme www.oldboy.com;
[root@jindada ~]# awk '/www.oldboy.com/' test.txt
server_nAme www.oldboy.com;
27.同时过滤出root和index的行,不区分大小写
[root@jindada ~]# grep -Ei 'root|index' test.txt
root /code/dOcs
index INDEX.html;
[root@jindada ~]# sed -nr '/root|ROOT|index|INDEX/p' test.txt
root /code/dOcs
index INDEX.html;
[root@jindada ~]# awk '/root|ROOT|index|INDEX/' test.txt
root /code/dOcs
index INDEX.html;
28.过滤index,区分大小写
[root@jindada ~]# grep 'index' test.txt
index INDEX.html;
[root@jindada ~]# awk '/index/' test.txt
index INDEX.html;
[root@jindada ~]# sed -n '/index/p' test.txt
index INDEX.html;
29.过滤出带"O"的行,不区分大小写
[root@jindada ~]# grep -i 'o' test.txt
server_nAme www.oldboy.com;
root /code/dOcs
[root@jindada ~]# sed -nr '/o|O/p' test.txt
server_nAme www.oldboy.com;
root /code/dOcs
[root@jindada ~]# awk '/o|O/' test.txt
server_nAme www.oldboy.com;
root /code/dOcs
30.过滤出不带";"的行
[root@jindada ~]# grep -v ';' test.txt
server {
root /code/dOcs
}
[root@jindada ~]# sed '/;/d' test.txt
server {
root /code/dOcs
}
[root@jindada ~]# awk '!/;/' test.txt
server {
root /code/dOcs
}
31.过滤出以s开头的行
[root@jindada ~]# grep '^s' test.txt
server {
server_nAme www.oldboy.com;
[root@jindada ~]# sed -n '/^s/p' test.txt
server {
server_nAme www.oldboy.com;
[root@jindada ~]# awk '/^s/' test.txt
server {
server_nAme www.oldboy.com;
32.统计该文件的行数
wc -l
33.如果某一天你误操作了"rm -rf *",会发生哪些情况
看目录
删除当前目录下的所有
34.已知123.txt文件内容如下:
linlaoshi
qiulaoshi
oldboy
要求过滤出oldboy这一行的内容?你有几种方法?
[root@jindada ~]# grep 'oldboy' 456.txt
oldboy
[root@jindada ~]# sed -n '/oldboy/p' 456.txt
oldboy
[root@jindada ~]# awk '/oldboy/' 456.txt
oldboy
35.接上题,要求不显示oldboy这行内容,怎么实现?你有几种方法?
[root@jindada ~]# grep -v 'oldboy' 456.txt
linlaoshi
qiulaoshi
[root@jindada ~]# sed '/oldboy/d' 456.txt
linlaoshi
qiulaoshi
[root@jindada ~]# awk '!/oldboy/' 456.txt
linlaoshi
qiulaoshi
五、练习题五
1.取出系统中的文件/etc/passwd的第七列(以:为分隔符)。
[root@jindada ~]# cut -d ':' -f7 passwd
[root@jindada ~]# awk -F: '{print $7}' passwd
2.已知文件test.txt内容如下,请给出输出test.txt文件内容时,不包含oldboy字符串的命令。
test
qiudao
oldboy
[root@jindada ~]# grep -v 'oldboy' 789.txt
test
qiudao
[root@jindada ~]# sed '/oldboy/d' 789.txt
test
qiudao
[root@jindada ~]# awk '!/oldboy/' 789.txt
test
qiudao
3.只查看/etc/passwd文件内第5到第15行的内容
root@jindada ~]# cat -n passwd |head -15 |tail
[root@jindada ~]# grep -n '.*' passwd | grep -wA 10 '^5'
[root@jindada ~]# sed -n '2,15p' passwd
[root@jindada ~]# awk 'NR>4&&NR<16' passwd
4.把test.txt文件中的oldboy替换为oldgirl,给出命令
[root@jindada ~]# sed 's#oldboy#oldgirl#g' 789.txt
test
qiudao
oldgirl
5.test.txt 的内容如下,要求过滤出不包含qiudao的行。有几种方法可以实现
oldboy
oldgirl
qiudao
[root@jindada ~]# grep -v 'qiudao' 1.txt
oldboy
oldgirl
[root@jindada ~]# sed '/qiudao/d' 1.txt
oldboy
oldgirl
[root@jindada ~]# awk '!/qiudao/' 1.txt
oldboy
oldgirl
6.把文件/etc/passwd文件中的/sbin/nologin替换为/bin/bash
[root@jindada ~]# sed 's#/sbin/nologin#/bin/bash#g' passwd
7.把/etc/selinux/config文件中的SELINUX=enforcing行中的enforcing替换成disabled
[root@jindada ~]# sed -i '/^S/s#enforcing#disabled#g' /etc/selinux/config
8.现将文件b.txt 中的所有123 替换成def,请问如何实现?
[root@jindada ~]# sed -i 's#123#def#g' b.txt
9.将文件的test.txt中的第10行的oldboy改为oldgirl
[root@jindada ~]# sed -i '10s#oldboy#oldgirl#g' b.txt
10.请执行命令取出linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答)。
[root@jindada ~]# ifconfig eth0 |head -2 |tail -1 |cut -d ' ' -f10
10.0.0.200
[root@jindada ~]# ifconfig eth0 |sed -n '2p' |sed -r 's#(^.*et )(.*)( n.*$)#\2#g'
10.0.0.200
[root@jindada ~]# ifconfig eth0 |awk -F '[ /]*' 'NR==2{print $3}'
10.0.0.200
11.使用命令调换/etc/passwd文件里 root 位置和/bin/bash 位置? 即将所有的第一列和最后一列位置调换?
[root@jindada ~]# sed -r 's#(^.*)(:x.*:)(.*)#\3\2\1#g' passwd
[root@jindada ~]# awk -F: '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}' passwd
[root@jindada ~]# awk -F: -vOFS=":" '{a=$1;$1=$NF;$NF=a;print}' passwd
12.先拷贝,再删除/etc/passwd文件的前三行内容。
[root@jindada ~]# sed '1,3d' passwd
13.使用sed命令打印出/etc/passwd文件的第一行到第三行
[root@jindada ~]# sed -n '1,3p' passwd
14.过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。(三种方法)
[root@jindada ~]# grep -E '3306|1521' /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
[root@jindada ~]# sed -nr '/3306|1521/p' /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
[root@jindada ~]# awk '/3306|1521/' /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
15.在linux 系统中,当LAN(局域网)内没有条件记案例DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置( /etc/hosts)文件(请写全路径)
16.写出redhat中,配置网卡及dns的配置文件是什么?有什么区别?
DNS1=xxxx
DNS2=xxxx
DNS配置文件
/etc/resolv.conf 立即生效
nameserver xxxxx
nameserver xxxxx
生效的方式的不一样
书写的方式不一样
17.若要将鼠标从VM中释放出来,可按()键完成。
ctrl + alt
18.如何统计/etc下有多少个目录,不包括隐藏目录,只显示目录个数。
[root@jindada ~]# tree -d /etc | tail -1
605 directories
19.统计secure.log文件中每个ip地址破解你用户密码的次数(包含Failed password字符串的行属于破解密码的,日志群里有,文件很大,建议不要使用cat打开)。
[root@jindada ~]# awk '/Failed password/{print $(NF-3)}' secure.log |sort | uniq -c | sort -rn | head
68652 218.65.30.25
34326 218.65.30.53
21201 218.87.109.154
18065 112.85.42.103
17164 112.85.42.99
17163 218.87.109.151
17163 218.87.109.150
17163 218.65.30.61
17163 218.65.30.126
17163 218.65.30.124
20.输入last,统计当前连接本机的每个远程终端IP的连接总次数
[root@jindada ~]# last | grep 'pts' |awk '{print $3}' | sort | uniq -c | sort -rn
8 10.0.0.1
21.输入lscpu,取出当前系统的cpu核心数
[root@jindada ~]# lscpu | grep '^Core'
Core(s) per socket: 1
[root@jindada ~]# lscpu | grep '^Core' | awk '{print $NF}'
1
22.输入df -h,取出当前系统根分区剩余可用磁盘空间
[root@jindada ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.2G 97G 2% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 199M 0 199M 0% /run/user/0
[root@jindada ~]# df -h | awk 'NR==2{print $4}'
97G
[root@jindada ~]# df -h | awk '/\/$/'
/dev/sda3 98G 1.2G 97G 2% /
[root@jindada ~]# df -h | awk '/\/$/{print $4}'
97G
23.显示/proc/meminfo文件中以s开头的行(忽略大小写)
[root@jindada ~]# grep -i '^s' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB
[root@jindada ~]# sed -nr '/^s|^S/p' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB
[root@jindada ~]# awk '/^s|^S/' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB
24.执行命令echo "I am jindada,myqq is 1176494252">oldboy.txt,
现在需要从文件中过滤出“jindada”和“1176494252”字符串,请给出命令?(最少三种方法)
[root@jindada ~]# echo "I am jindada,myqq is 1176494252">oldboy.txt
[root@jindada ~]# cat oldboy.txt
I am jindada,myqq is 1176494252
[root@jindada ~]# awk -F '[ ,]' '{print $3,$6}' oldboy.txt
jindada 1176494252
[root@jindada ~]# tr ',' ' ' < oldboy.txt
I am jindada myqq is 1176494252
[root@jindada ~]# tr ',' ' ' < oldboy.txt |cut -d " " -f3,6
jindada 1176494252
[root@jindada ~]# sed 's#^.*m ##g' oldboy.txt | sed 's#,.* # #g'
jindada 1176494252
25.接上题,如果需要从文件中过滤出“jindada,1176494252”字符串,请再给出命令?
[root@jindada ~]# sed 's#^.*m ##g' oldboy.txt | sed 's#,.* #,#g'
jindada,1176494252
[root@jindada ~]# tr ',' ' ' < oldboy.txt |cut -d " " -f3,6 | tr ' ' ','
jindada,1176494252
[root@jindada ~]# awk -F '[ ,]' '{print $3","$6}' oldboy.txt
jindada,1176494252
26.我想在/data/oldboyedu目录下面创建 一个oldboy.txt文件,出现了如下报错。
[root@qiudao ~]# touch /data/oldboyedu/oldboy.txt
touch: cannot touch ‘/data/oldboyedu/oldboy.txt’: No such file or directory
问:为何出现这样的错误?该怎么解决?
/data/oldboyedu/ 目录不存在
mkdir -p /data/oldboyedu/
touch /data/oldboyedu/oldboy.txt
27.翻译题
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
ll /backup/*.txt
29.显示/etc/services文件的第10行到第20行的内容?
[root@jindada ~]# sed -n '10,20p' services
30.显示文件/etc/services的大小?
[root@jindada ~]# wc -c services
[root@jindada ~]# ll services
-rw-r--r-- 1 root root 670293 Jul 17 16:48 services
[root@jindada ~]# stat services
File: ‘services’
Size: 670293 Blocks: 1312 IO Block: 4096 regular file
Device: 803h/2051dInode: 134380615 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-07-17 16:48:08.524679627 +0800
Modify: 2020-07-17 16:48:01.909679477 +0800
Change: 2020-07-17 16:48:01.909679477 +0800
Birth: -
31.以“:”为分隔符,取出/etc/passwd第一行的第七列也就是最后一列的内容?(两种方法)
[root@jindada ~]# sed -nr '1s#(.*)(:.*:)(/.*)#\3#gp' passwd
/bin/bash
[root@jindada ~]# awk -F: 'NR==1{print $NF}' passwd
/bin/bash
32.找出/var/log目录中以.log结尾的文件,并显示这些文件的属性信息。
[root@jindada ~]# ll /var/log/*.log
33.寻找名称为mytest.log的文件
[root@jindada ~]#find / -type f -name "mytest.log"
34.用命令行更改config.txt文件,把里面的“name”更改为“address”
[root@jindada ~]#sed -i 's#name#address#g' config.txt
35.把/etc/passwd文件中的:替换成#
[root@jindada ~]#tr ':' '#' < /etc/passwd
36.说明下面这几个文件的作用:
/etc/hostname、#主机名
/etc/resolv.conf、#本地DNS文件
/etc/hosts#本地域名解析文件
37.尝试使用sed命令的后向引用和awk命令取出ip地址,请分别使用ip和ifconfig命令取出。
前面题目有
38.在123.txt文件末尾插入‘test’。(两种方法)
sed '$atest' 123.txt
echo 'test' >> 123.txt
cat >>123.txt<<EOF
test
EOF
39.将/etc/passwd文件中第一行到第五行的root替换为admin?
sed -i '1,5s#root#admin#g' passwd
40.统计nginx访问日志access.log中每个访问ip出现次数最多的10个。(已知ip在第一列,日志群里有)
[root@jindada ~]# awk '{print $1}' access.log |sort | uniq -c |sort -rn | head
16033 139.226.172.217
1041 47.102.42.79
994 180.95.238.82
727 113.140.249.33
647 223.166.74.124
525 112.87.125.55
429 182.138.163.167
373 112.87.125.53
352 223.166.74.198
308 182.138.158.169
41.取出下列文件的权限如:0644 ?(两种方法)
[root@jindada ~]# stat jindada.txt
File: ‘123.txt’
Size: 44 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 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@jindada ~]# stat -c %a passwd
644
[root@jindada ~]# stat passwd | awk -F '[(/]' 'NR==4{print $2}'
0644
42.删除jindada.txt文件中的第10行到20行。(两种方法)
sed '10,20d' jindada.txt
awk 'NR<10 || NR>20' jindada.txt
六、练习题六
#准备文件
[root@jindada ~]# cat file.txt
server {
listen 80;
server_name test.oldboy.com;
index index.html;
}
1.跳转到某行时使用
nG #跳到n行
ngg#跳到n行
2.复制server{ 到 }结尾的这一行, 粘贴到 } 结尾的下一行
光标在第一行,命令模式下yy然后光标移到}这一行,p粘贴
3.删除listen相关的所有行
:2d
4.将server_name 替换为SERVER_NAME
:3s#server_name#SERVER_NAME#g
5.删除oldboy.com,boy删除
:3s#boy##g
6.撤销一次
u
7.在编辑模式下修改 test.oldboy.com为test.ett.com
i进入编辑模式,光标移到old处,回车删除old,输入ett,ESC返回命令模式
8.在index 最后面,添加index.php
i进入编辑模式,光标移到index 后面,输入index.php,ESC返回命令模式
9.在index行下面插入一行内容为:root html;。
o进入编辑模式 输入root html
10.退出编辑模式。
ESC返回命令模式
11.将/etc/passwd 复制到/root/目录下,并重命名为test.txt
[root@jindada ~]# cp /etc/passwd /root/test.txt
12.分别向下、向右、向左、向右移动5个字符,分别向下、向上翻两页
向下5j、向右5k、向左5h、向右5l
向下翻两页ctrl +f ctrl+f
向上翻两页ctrl +b ctrl +b
13.把光标移动到第10行,让光标移动到行末,再移动到行首,移动到test.txt文件的最后一行,移动到文件的首行
移动到行尾$
移动到行首^
移动到test.txt文件的最后一行G
移动到文件的首行1G
14.搜索文件中出现的 root 并数一下一共出现多少个
命令模式/root搜索 总共4个
15.把从第一行到第三行出现的root 替换成admin,然后还原上一步操作
命令模式:1,3s#root#damin#g
还原操作u
16.把整个文件中所有的root替换成admin
命令模式:%s#root#damin#g
17.把光标移动到20行,删除本行,还原上一步操作
命令模式:20d
还原操作u
18.删除从5行到10行的所有内容,还原上一步操作
命令模式:5,10d
还原操作u
19.复制2行并粘贴到11行下面,还原上一步操作(按两次u)
复制2行2yy
粘贴到11行p
还原操作uu
20.复制从11行到15行的内容并粘贴到8行上面,还原上一步操作(按两次u)
11gg,5yy
粘贴到8行p
还原操作uu
21.把13行到18行的内容移动文件的尾部,还原上一步操作(按两次u)
13gg,6dd
复制2行2yy
粘贴到尾部p
还原操作uu
22.将文件中所有的/sbin/nologin为/bin/bash
命令模式:%s#/sbin/nologin#/bin/bash#g
23.在第一行下面插入新的一行,并输入"# Hello!"
1gg,o进入编辑模式,大输入# Hello!
24.保存文档并退出
:wq
:x
zz
#根据文件回答下列习题
[root@jindada ~]# cat proxy.conf
server {
Listen 8080;
Server_Name vim.OldboyEDU.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forward-for;
proxy_intercept_errors on;
proxy_next_upstream error timeout;
proxy_next_upstream_timeout 3s;
proxy_next_upstream_tries 2;
error_page 500 502 403 404 = /proxy_error.html;
}
location = /proxy_error.html {
root /code/proxy;
}
}
25.使用vim打开proxy.conf文件
vim proxy.conf
26.修改Listen为listen小写,并将8080修改为80
:2s#Listen 8080#listen 8080#g
27.修改Server_Name为server_name小写。
:3s#Server_Name#server_name#g
28.修改vim.OldboyEDU.com为vim.oldboy.com
:3s#vim.OldboyEDU.com#vim.oldboy.com#g
29.在server_name行下插入一行 root /code;
2gg,o进入编辑模式,输入root /code
30.复制5-14行的内容,然后将其粘贴到14行下面
5gg
10yy
粘贴到14行p
31.删除与proxy_set_header相关的两行全部删除
6G, 2dd
32.如上操作完成后,在13-20行前面加上#号
:13,20s#^#\##g
33.删除21-23的行,然后保存当前文件
21gg
3dd
:wq
七、练习题七
1.什么是用户?
能够登录系统的就是用户
2.Linux与windows系统的用户有什么区别?
Linux支持多用户同时登录
Windows默认不支持同时多用户登录的
3.使用什么命令可以查看用户是否存在?
id user
grep 'user' /etc/passwd
4.跟用户相关的配置文件都有哪些?分别存放的是什么?
/etc/passwd 用户基本信息 /etc/shadow 用户密码信息
5./etc/passwd文件以':' 为分割符, 分为7个字段,请说明一下每个字段的具体含义?
6./etc/shadow文件以':' 为分割符, 分为9个字段,请说明一下每个字段的具体含义?
7.什么是用户的UID?
用户自己独有的ID号码 编号
8.不同的用户对应UID号范围是多少?
约定
9.新建用户user1、user2,用户user2不允许登陆到系统中。
useradd user1
useradd -M -s /sbin/nologin
10.创建普通用户oldboy,其ID号为789.
useradd -u789 oldboy
11.创建虚拟用户test,其ID号为666
useradd -u666 -M -s /sbin/nologin test
12.修改oldboy用户的ID号,修改为777.
usermod -u 777 oldboy
13.修改用户test的命令解释器,使其可以登录到系统。
usermod -s /bin/bash test
14.删除用户user1.不删除其家目录。
userdel user1
15.删除用户user2,不保留其家目录。
userdel -r user2
16.给oldboy用户创建一个密码为123,并尝试登录。
echo "123" | passwd --stdin oldboy
17.默认情况下管理员创建了一个用户,就会在()目录下创建一个用户主目录
/home
18.如何检查系统中存在oldboy用户,并且显示用户id信息
id oldboy
grep oldboy /etc/passwd
19.创建gid为1666,名字为www的用户组
groupadd -g1666 www
20.创建uid为1666,gid为1666,名字为www的用户
useradd -u1666 -g1666 www
21.创建uid为1888,注释信息为"虚拟用户",不创建家目录,不能登录系统,名字为oldboyedu的用户
useradd -u1888 -c "虚拟用户" -M -s /sbin/nologin oldboyedu
22.批量创建10个用户,用户名为oldboy1 oldboy2 oldboy3 .... oldboy10.
[root@jindada ~]# echo {1..10} |xargs -n1
1
2
3
4
5
6
7
8
9
10
[root@jindada ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@jindada ~]# seq 10 | awk '{print "oldboy"$1}'
oldboy1
oldboy2
oldboy3
oldboy4
oldboy5
oldboy6
oldboy7
oldboy8
oldboy9
oldboy10
[root@jindada ~]# seq 10 | awk '{print "useradd oldboy"$1}'
useradd oldboy1
useradd oldboy2
useradd oldboy3
useradd oldboy4
useradd oldboy5
useradd oldboy6
useradd oldboy7
useradd oldboy8
useradd oldboy9
useradd oldboy10
[root@jindada ~]# seq 10 | awk '{print "useradd oldboy"$1}' | bash
[root@jindada ~]# tail /etc/passwd
oldboy1:x:1014:1014::/home/oldboy1:/bin/bash
oldboy2:x:1015:1015::/home/oldboy2:/bin/bash
oldboy3:x:1016:1016::/home/oldboy3:/bin/bash
oldboy4:x:1017:1017::/home/oldboy4:/bin/bash
oldboy5:x:1018:1018::/home/oldboy5:/bin/bash
oldboy6:x:1019:1019::/home/oldboy6:/bin/bash
oldboy7:x:1020:1020::/home/oldboy7:/bin/bash
oldboy8:x:1021:1021::/home/oldboy8:/bin/bash
oldboy9:x:1022:1022::/home/oldboy9:/bin/bash
oldboy10:x:1023:1023::/home/oldboy10:/bin/bash
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd \1#gp'
useradd 1
useradd 2
useradd 3
useradd 4
useradd 5
useradd 6
useradd 7
useradd 8
useradd 9
useradd 10
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd oldboy\1#gp'
useradd oldboy1
useradd oldboy2
useradd oldboy3
useradd oldboy4
useradd oldboy5
useradd oldboy6
useradd oldboy7
useradd oldboy8
useradd oldboy9
useradd oldboy10
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd oldboy\1#gp' |bash
23.迁移oldboy8用户的家目录到/tmp/oldboy8
usermod -md /tmp/olsboy8 oldboy8
24.oldboy8用户的用户名修改成oldboy888
usermod -l oldboy888 oldboy8
25.锁定oldboy888用户,解锁oldboy888用户
usermod -L oldboy888
usermod -U oldboy888
26.创建普通用户test01、test02、test03,要求UID为2888,2999,2998
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998"
01 2888
02 2999
03 2998
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998" |awk '{print "test"$1}'
test01
test02
test03
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998" |awk '{print $2"test"$1}'
2888test01
2999test02
2998test03
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998" |awk '{print $2" test"$1}'
2888 test01
2999 test02
2998 test03
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998" |awk '{print "useradd -u"$2" test"$1}'
useradd -u2888 test01
useradd -u2999 test02
useradd -u2998 test03
[root@jindada ~]# echo -e "01 2888\n02 2999\n03 2998" |awk '{print "useradd -u"$2" test"$1}' | bash
27.给test01用户使用交互式设置密码为123456
passwd test01
28.使用test01用户进行登录。
ssh test01@10.0.0.100
29.使用非交互式给test01设置密码为oldboy123
echo "oldboy123" | passwd --stdin test01
30.使用修改之后的密码进行登录。
ssh test01@10.0.0.100
31.有哪些命令可以查看当前用户的登录情况?
w who
32.删除用户test02,要求连家目录一起删除。
userdel -r test02
33.请问,我删除了test02用户,哪个文件会发生变化?
/etc/passwd /etc/shadow /etc/group /etc/gshadow
34.创建一个虚拟用户oldboy01,要求UID为555,不创建家目录。
useradd -u555 -M -s /sbin/nologin
35.创建用户时,不指定选项设置参数了,系统创建之后的默认参数是根据什么文件来定义的?
/etc/login.defs
/etc/default/useradd
36.切换普通用户时,出现这样的命令行"-bash-4.1$",这是什么原因造成的,该怎么解决?
家目录不存在
家目录里面配置文件不存在
cp -a /etc/skel/.bash* ./
37.登录到test01用户,给其用户test03设置密码,发现报错,请问是什么原因?该怎么解决?
普通用户只能给自己设置密码
38.登录到test01用户,给其本用户设置密码为123,报错,请问是什么原因?该怎么解决?
普通用户设置密码至少要8位 并且不能有规律
39.使用root用户给test01用户设置一个18位的随机密码,并进行登录。
echo $RANDOM | md5sum | cut -c 1-18 | tee pass.txt | passwd --stdin test01
mkpasswd -l 18
40.创建10个用户,前缀是你的姓,后缀为数字序列,比如qiu1等,并设置随机密码,一条命令实现(能否使用多种方法实现)。
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd oldboy\1#gp'
useradd oldboy1
useradd oldboy2
useradd oldboy3
useradd oldboy4
useradd oldboy5
useradd oldboy6
useradd oldboy7
useradd oldboy8
useradd oldboy9
useradd oldboy10
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd oldboy\1 && mkpasswd -l 18 |tee pass\1\.txt | passwd --stdin oldboy\1#gp'
useradd oldboy1 11 mkpasswd -l 18 |tee pass1.txt | passwd --stdin oldboy1
useradd oldboy2 22 mkpasswd -l 18 |tee pass2.txt | passwd --stdin oldboy2
useradd oldboy3 33 mkpasswd -l 18 |tee pass3.txt | passwd --stdin oldboy3
useradd oldboy4 44 mkpasswd -l 18 |tee pass4.txt | passwd --stdin oldboy4
useradd oldboy5 55 mkpasswd -l 18 |tee pass5.txt | passwd --stdin oldboy5
useradd oldboy6 66 mkpasswd -l 18 |tee pass6.txt | passwd --stdin oldboy6
useradd oldboy7 77 mkpasswd -l 18 |tee pass7.txt | passwd --stdin oldboy7
useradd oldboy8 88 mkpasswd -l 18 |tee pass8.txt | passwd --stdin oldboy8
useradd oldboy9 99 mkpasswd -l 18 |tee pass9.txt | passwd --stdin oldboy9
useradd oldboy10 1010 mkpasswd -l 18 |tee pass10.txt | passwd --stdin oldboy10
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd oldboy\1 \&\& mkpasswd -l 18 |tee pass\1\.txt | passwd --stdin oldboy\1#gp'
useradd oldboy1 && mkpasswd -l 18 |tee pass1.txt | passwd --stdin oldboy1
useradd oldboy2 && mkpasswd -l 18 |tee pass2.txt | passwd --stdin oldboy2
useradd oldboy3 && mkpasswd -l 18 |tee pass3.txt | passwd --stdin oldboy3
useradd oldboy4 && mkpasswd -l 18 |tee pass4.txt | passwd --stdin oldboy4
useradd oldboy5 && mkpasswd -l 18 |tee pass5.txt | passwd --stdin oldboy5
useradd oldboy6 && mkpasswd -l 18 |tee pass6.txt | passwd --stdin oldboy6
useradd oldboy7 && mkpasswd -l 18 |tee pass7.txt | passwd --stdin oldboy7
useradd oldboy8 && mkpasswd -l 18 |tee pass8.txt | passwd --stdin oldboy8
useradd oldboy9 && mkpasswd -l 18 |tee pass9.txt | passwd --stdin oldboy9
useradd oldboy10 && mkpasswd -l 18 |tee pass10.txt | passwd --stdin oldboy10
[root@jindada ~]# seq 10 | sed -nr 's#(.*)#useradd old\1 \&\& mkpasswd -l 18 |tee pass\1\.txt | passwd --stdin oldboy\1#gp' |bash
Changing password for user oldboy1.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy2.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy3.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy4.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy5.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy6.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy7.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy8.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy9.
passwd: all authentication tokens updated successfully.
Changing password for user oldboy10.
passwd: all authentication tokens updated successfully.
[root@jindada ~]# ll
total 61148
-rw-r--r--. 1 root root 39 Jul 17 19:16 123.txt
-rw-r--r--. 1 root root 9272936 Jul 17 12:01 access.log
-rw-r--r--. 1 root root 28 Jul 17 20:12 oldboy.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass10.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass1.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass2.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass3.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass4.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass5.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass6.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass7.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass8.txt
-rw-r--r-- 1 root root 19 Jul 22 12:20 pass9.txt
[root@jindada ~]# seq 10 | awk '{print "useradd boy"$1" && mkpasswd -l 18 |tee -a pass.log | passwd --stdin boy"$1}' |bash
Changing password for user boy1.
passwd: all authentication tokens updated successfully.
Changing password for user boy2.
passwd: all authentication tokens updated successfully.
Changing password for user boy3.
passwd: all authentication tokens updated successfully.
Changing password for user boy4.
passwd: all authentication tokens updated successfully.
Changing password for user boy5.
passwd: all authentication tokens updated successfully.
Changing password for user boy6.
passwd: all authentication tokens updated successfully.
Changing password for user boy7.
passwd: all authentication tokens updated successfully.
Changing password for user boy8.
passwd: all authentication tokens updated successfully.
Changing password for user boy9.
passwd: all authentication tokens updated successfully.
Changing password for user boy10.
passwd: all authentication tokens updated successfully.
[root@jindada ~]# cat pass.log
yekvpfdmF+3anweKd0
4nyyrwkUM>u3jlcgvi
jw5vczapnuplG5vVv<
mJaebjb9cxapL+1yjf
vvdyshXNkzc1qq4wg*
lmlGubcwrs9(Whq6wf
rbm/kwxbwdufAU55cx
g=mzhdgY6osysgLnf5
nany5srVjnf9emFpi*
fV5sn0qzm}kaMzgsux
41.创建10个用户,前缀是你的名,后缀为数字序列,比如jindada1等,并给其10个用户设置统一密码为123456,最后尝试是否可以登录。
[root@jindada ~]# seq 10 | awk '{print "useradd boy"$1" && echo '123456' | passwd --stdin boy"$1}' |bash
Changing password for user boy1.
passwd: all authentication tokens updated successfully.
Changing password for user boy2.
passwd: all authentication tokens updated successfully.
Changing password for user boy3.
passwd: all authentication tokens updated successfully.
Changing password for user boy4.
passwd: all authentication tokens updated successfully.
Changing password for user boy5.
passwd: all authentication tokens updated successfully.
Changing password for user boy6.
passwd: all authentication tokens updated successfully.
Changing password for user boy7.
passwd: all authentication tokens updated successfully.
Changing password for user boy8.
passwd: all authentication tokens updated successfully.
Changing password for user boy9.
passwd: all authentication tokens updated successfully.
Changing password for user boy10.
passwd: all authentication tokens updated successfully.
42.创建用户qiudao,并给其用户设置一个24位的随机密码,要求密码包含数字,大小写字母及特殊符号,最后查看是否可以登录。
useradd qiudao
mkpasswd -l 24 -d 6 -c 6 -C 6 -s 6 | tee pass.txt | passwd --stdin qiudao
43.跟组相关的两个配置文件是?
/etc/group
/etc/gshadow
44.创建一个用户基本组,shanghai01.
groupadd shanghai01
45.创建一个用户基本组,shanghai02,指定GID为1099.
groupadd -g1099 shanghai02
46.创建一个用户系统组,shanghai03.
groupadd -r shanghai03
47.修改用户基本组shanghai02的GID号为1033.
groupmod -g 1033 shanghai02
grep -i 'oldboy' 123.txt