• 第三十四章 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 oldgirl student" >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这个目录,怎么实现?

    m -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#(.* )(.*)( ,.*)( .*$)#24#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.*:)(.*)#321#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 oldboy1#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 oldboy1#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 02  2999 03  2998"

    01  2888

    02  2999

    03  2998

    [root@jindada ~]# echo -e "01  2888 02  2999 03  2998" |awk '{print "test"$1}'

    test01

    test02

    test03

    [root@jindada ~]# echo -e "01  2888 02  2999 03  2998" |awk '{print $2"test"$1}'

    2888test01

    2999test02

    2998test03

    [root@jindada ~]# echo -e "01  2888 02  2999 03  2998" |awk '{print $2"  test"$1}'

    2888  test01

    2999  test02

    2998  test03

    [root@jindada ~]# echo -e "01  2888 02  2999 03  2998" |awk '{print "useradd  -u"$2"  test"$1}'

    useradd  -u2888  test01

    useradd  -u2999  test02

    useradd  -u2998  test03

    [root@jindada ~]# echo -e "01  2888 02  2999 03  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 oldboy1#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 oldboy1 && mkpasswd  -l 18 |tee pass1.txt | passwd --stdin oldboy1#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 oldboy1 && mkpasswd  -l 18 |tee pass1.txt | passwd --stdin oldboy1#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 old1 && mkpasswd  -l 18 |tee pass1.txt | passwd --stdin oldboy1#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

  • 相关阅读:
    RSA加密算法
    ios 经典错误
    C--指针函数,static
    svn---命令行操作
    iOS中的自由桥接
    ios--socket
    ios错误修改了系统头文件
    ios数据库FMDB
    CoreDate的使用
    ios简单数据库运用
  • 原文地址:https://www.cnblogs.com/jhno1/p/13448524.html
Copyright © 2020-2023  润新知