Linux+Python运维培训班第4期--马哥——第1次作业(20161211)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux+Python运维培训班第4期--马哥——第1次作业(20161211)相关的知识,希望对你有一定的参考价值。

1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

slackware:非常稳定、安全,高度坚持UNIX的规范

    ├──suse

            ├──sles

            ├──opensuse

debian:用户由互联网自发,仍处于非商业组织负责运维;

    ├──ubuntu

            ├──mint

redhat

    ├──rhel(redhat enterprise linux):遵循GPL协定且公开源码,但补丁包收费,每18个月发行一个新版本;

            ├──centos:针对rhel进行的再次封装;

    ├──fedora:捐献给社区且主要用于测试新功能,每6个月发行一个新版本;

archlinux:具备轻量、精巧的程序包管理机制;

gentoo:程序包在硬件上现编的;

 

2、说明Linux系统上命令的使用格式,详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。

命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]

        选项:用于启用或关闭命令的某个或某些功能;

            短选项:-C,如: -l,-h

                注:多个短选项可合并使用,如:-lh

            长选项:--WORD,如:--long,--human-readable

        参数:命令的作用对象,用于向命令提供数据;

 

ifconfig命令:

    ifconfig [interface]

ifconfig interface [aftype] options | address ...

[[email protected] ~]# ifconfig  eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AF:3F:D2 
          inet addr:192.168.20.4  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr:fe80::20c:29ff:feaf:3fd2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
         RX packets:5127 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3202 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:467456 (456.5 KiB)  TX bytes:483682 (472.3 KiB)

[[email protected] ~]# ifconfig eth0 up –启动
[[email protected] ~]# ifconfigeth0 down –关闭

 

echo命令:回显

    echo [SHORT-OPTION]... [STRING]...
    echo LONG-OPTION

        -n:禁止自动添加换行符号;

        -e:允许使用转义符;

            \n:换行;

            \t:制表符;

[[email protected] ~]# echo ‘Hello?‘
Hello?
[[email protected] ~]# echo -n‘Hello?‘
Hello?[[email protected] ~]# echo-e ‘Hello,\nEveryone.‘
Hello,
Everyone.

 

tty命令:查看当前的终端设备;

    tty [OPTION]...

[[email protected] ~]# tty
/dev/pts/0

 

startx命令:初始化一个桌面会话;

startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]

[[email protected] ~]# startx x

[[email protected] ~]# startx kde

[[email protected] ~]# startx gnome

 

export命令:声明环境变量

    export [-fn] [name[=value] ...]

[[email protected] ~]# name=jady
[[email protected] ~]# export name
[[email protected] ~]# export

declare -x name="jady"

 

pwd命令:显示当前目录名称;

    pwd [OPTION]...

[[email protected] ~]# pwd
/root

 

history命令:管理命令历史

    history [-c] [-d offset] [n]

history -anrw [filename]

    -a;追加本次会话新执行的命令历史列表至历史文件中;

    -d:删除历史中指定的命令;

-c:清空命令历史;

[[email protected] tmp]# history
   46 history
   47  cd..
   48  cd/tmp
   49  ll
   50 history
[[email protected] tmp]# history -a
[[email protected] tmp]# history -d46
[[email protected] tmp]# history
   46  cd..
   47  cd/tmp
   48  ll
   49 history
   50 history -a
   51 history -d 46
   52 history
[[email protected] tmp]# history -c
[[email protected] tmp]# history
   46 history

 

shutdown命令:

    shutdown [OPTION]...  TIME [MESSAGE]

        -r:重启;

        -h:关机;

        -c:取消;

        time

            now;立刻

            +m:相对时间表示法,从命令提交开始多久之后,如+3;

            hh:mm:绝对时间表示法,指明具体时间;

[[email protected] ~]# shutdown -r +10
Broadcast message [email protected]
   (/dev/pts/1) at 19:28 ...
The system is going downfor reboot in 10 minutes!

[[email protected] tmp]# shutdown –c

shutdown: Shutdown cancelled

 

poweroff命令:

    poweroff [OPTION]...

    [[email protected] tmp]# poweroff

 

reboot命令:

    reboot [OPTION]...

    [[email protected] tmp]# reboot

 

hwclock命令:显示硬件时钟

    hwclock [functions] [options]

        -s,--hctosys:由硬件时间同步系统时间;

        -w,--systohc:由系统时间同步硬件时间;

[[email protected] tmp]# clock;hwclock
20161211星期日 192143 -0.110283 seconds
20161211星期日 192144 -1.000984 seconds
[[email protected] tmp]# hwclock-s;hwclock;clock
20161211星期日 192206 -1.001502 seconds
20161211星期日 192207 -1.001147 seconds
[[email protected] tmp]# hwclock-w;clock;hwclock
20161211星期日 192247 -0.505959 seconds
20161211星期日 192248 -1.005665 seconds

 

date命令:显示或设置系统当前日期;

date [OPTION]... [+FORMAT]

+%Y:年

    +%m:月

    +%d:日

    +%H:时

    +%M:分

    +%S:秒

date [MMDDhhmm[[CC]YY][.ss]]

MM:月

    DD:日

    hh:时

    mm:分

    YY:2位年

    CCYY:4位年

    .ss:秒

[[email protected] tmp]# date 1211145616.00
2016 12 11星期日 14:56:00 CST
[[email protected] tmp]# date+%Y-%m-%d-%H-%M-%S
2016-12-11-14-56-57

 

3、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。

内部命令:

    # help COMMAND

外部命令:

    (1)命令自带选项

# COMMAND --help 或 # COMMAND –h

    (2)命令使用手册

        # man COMMAND

            man章节含义:

                man1:shell中可操作的命令或可执行的文件;

man2:系统内核调用的函数与工具;

man3:函数与函数库;

man4:设备文件与特殊文件;

man5:配置文件格式;

man6:游戏;

man7:惯例、协议及其它杂项;

man8:管理命令;

man9:内核文件;

    (3)命令信息

        # info COMMAND

    (4)帮助文档

        /usr/share/doc/COMMAND-version

            readme:程序说明信息;

            install:安装方法说明;

            changelog:程序版本升级时的变动情况;

 

4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

cp:copy,复制命令

cp [option]... [-T] source dest

    cp [option]... source... directory

    cp [option]... -t directorysource...

 

    cp src dest

        src是文件:

            如果目录不存在:新建dest,并将src中内容填充至dest中;

            如果目录存在:

                如果dest是文件:将src中的内容覆盖至dest中;

                    此时建议为cp命令使用-i选项;

                如果dest是目录:在dest下新建与原文件同名的文件,并将src中内容填充至新文件中;

    cp src... dest

        src...:多个文件

            dest必须存在且为目录,其它情形均会出错;

    cp src dest

        src是目录:

            则使用选项-r

            如果dest不存在:则创建指定目录,复制src目录中所有文件至dest中;

            如果dest存在:

                如果dest是文件:报错

                如果dest是目录:复制至此目录中;

 

    常用选项:

        -i:交互式;

        -r:递归复制目录及内部的所有内容;

        -a:归档(保留数据原属性),相当于-dR --preserv=all

            -d:--no-dereference,不追踪符号连接,=--preserv=links;

            --preserv=[attr_list]

                mode:权限

                ownership:属主属组

                timestamp:时间戳

                links

                xattr

                context

                all

        -p:--preserv=mode,ownership,timestamp

        -v:显示详细信息

        -f:--force,强制;

# cp /etc/fstab /tmp/abc.txt

# cp /etc/rc.d/rc.sysinit /tmp/abc.txt

# cp /etc/rc.d/rc.sysinit /etc/fstab /tmp/hello

# cp /etc /tmp

# ls -ld /etc/pam.d/

# ls /tmp

# cp -r /etc/pam.d/ /tmp/pam

# ls /tmp

# ls /tmp/pam

# ls -l /etc

# cp /etc/system-release /tmp/

# ls -l /tmp/system-release

# cp --no-dereference /etc/system-release/tmp/sys.release

 

mv:move,移动文件

    mv [option]... [-T] source dest

    mv [option]... source... directory

    mv [option]... -t directorysource...

 

    常用选项:

        -i:交互式;

        -f;强制;

# mv /tmp/a.txt /var/tmp/ab.txt

# mv pam/ /var/tmp/pam.d

# ls

# ls -l /var/tmp

# mv mageedu/ mageedu.com

 

rm:remove,删除

    rm [option]... file...

 

    常用选项:

        -i:交互式;

        -f:强制;

        -r:递归;

# rm -r /var/tmp/pam.d/

# rm -rf /

# rm -rf ./*

 

5、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

命令执行状态返回值:

    0:成功;

    1-255:失败;

[[email protected] ~]# ls /tmp
a_c  b_c  mylinux  mytest3    pulse-lHhQcM6yCeas
a_d  b_d  mytest2  orbit-gdm  tfile-2016-12-11-19-55-07
[[email protected] ~]# echo $?
0
[[email protected] ~]# lls /tmp
-bash: lls: command notfound
[[email protected] ~]# echo $?
127
[[email protected] ~]# ll /tmpp
ls: 无法访问/tmpp: 没有那个文件或目录
[[email protected] ~]# echo $?
2

命令行展开:

    ~;展开为用户的主目录;

    ~username:展开为指定用户的主目录;

    {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

[[email protected] ~]# cd ~bash
[[email protected] bash]# pwd
/home/bash
[[email protected] bash]# cd ~
[[email protected] ~]# pwd
/root

[[email protected] ~]# ll -d /etc/{u,v}*
drwxr-xr-x. 4 root root4096 8   320:35 /etc/udev
-rw-r--r--. 1 rootroot  473 9  24 2012 /etc/updatedb.conf
-rw-r--r--. 1 root root1962 2  172012 /etc/vimrc
-rw-r--r--. 1 root root1962 2  172012 /etc/virc

 

6、请使用命令行展开功能完成以下练习:

(1)创建/tmp目录下的:a_c,a_d, b_c, b_d

[[email protected] tmp]# mkdir -p {a,b}_{c,d}&& tree -L 1 /tmp
/tmp
├── a_c
├── a_d
├── b_c
└── b_d

4 directories, 0 files

 

(2)创建/tmp/mylinux目录下的:

mylinux/

├── bin

├── boot

│   └── grub

├── dev

├── etc

│   ├── rc.d

│   │   └── init.d

│   └── sysconfig

│       └──network-scripts

├── lib

│   └── modules

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── usr

│   └── local

│       ├── bin

│       └── sbin

└── var

├── lock

├── log

└── run

[[email protected] tmp]# mkdir -p./mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}&& tree mylinux
mylinux
├── bin
├── boot
│   └──grub
├── dev
├── etc
│   ├──rc.d
│  │   └── init.d
│   └──sysconfig
│      └── network-scripts
├── lib
│   └──modules
├── lib64
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│   └──local
│      ├── bin
│      └── sbin
└── var

24 directories, 0 files

 

7、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

(1)文件元数据信息与含义:

  File(文件名称):"/etc/fstab"
  Size(文件大小):805   Blocks(文件存储块信息): 8   IO Block(块大小):4096   普通文件(文件类型)
Device(文件设备信息): 802h/2050d  Inode(文件索引号): 786440   Links(文件链接数): 1
Access(文件权限): (0644/-rw-r--r--)   Uid(用户ID): (    0/   root)   Gid(组ID): (    0/    root)
Access(访问时间): 2016-12-11 18:19:19.809883802 +0800
Modify(修改时间): 2016-08-03 20:31:15.108999954 +0800
Change(改变时间): 2016-08-03 20:45:13.191999593 +0800

(2)文件元数据的查看命令

# stat /path/to/file

(3)修改文件时间戳命令

# touch [OPTION]... FILE...

    -a:仅修改‘访问时间’;

    -m:仅修改‘修改时间’;

    -t [[CC]YY]MMDDhhmm[.ss]:预修改的指定时间;

 

8、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

[[email protected] tmp]# ll -d /var/l*[0-9]*[a-z]

[[email protected] tmp]# ll -d/var/l*[[:digit:]]*[[:lower:]]

 

9、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[[email protected] tmp]# ll -d /etc/[0-9]*[^0-9]

[[email protected] tmp]# ll -d/etc/[[:digit:]]*[^[:digit:]]

 

10、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[[email protected] tmp]# ll -d /etc/[^a-z][a-z]*

[[email protected] tmp]# ll -d/etc/[^[:alpha:]][[:alpha:]]*

 

11、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。

[[email protected] tmp]# mkdir -v /tmp/tfile-$(date+%Y-%m-%d-%H-%M-%S)
mkdir: 已创建目录"/tmp/tfile-2016-12-11-19-55-07"

 

12、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

[[email protected] tmp]# [ -d /tmp/mytest2 ] || mkdir/tmp/mytest2 && \cp -ar /etc/*.d /tmp/mytest2 && tree -L 2mytest2
mytest2
├── bash_completion.d
│   ├── gdbus-bash-completion.sh
│   ├── gvfs-bash-completion.sh
│   ├── pk-completion.bash
│   ├── scl.bash
│   ├── yum.bash
│   └── yum-utils.bash
├── chkconfig.d
├── cron.d
│   ├── 0hourly
│   ├── raid-check
│   └── sysstat

……

 

13、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[[email protected] tmp]# [ -d /tmp/mytest3 ] || mkdir/tmp/mytest3 && \cp -ar /etc/[lmn]*.conf /tmp/mytest3 && tree-L 2 /tmp/mytest3
/tmp/mytest3
├── latrace.conf
├── ld.so.conf
├── libaudit.conf
├── libuser.conf
├── logrotate.conf
├── ltrace.conf
├── mke2fs.conf
├── mtools.conf
├── nfsmount.conf
├── nsswitch.conf
└── ntp.conf

以上是关于Linux+Python运维培训班第4期--马哥——第1次作业(20161211)的主要内容,如果未能解决你的问题,请参考以下文章

Linux+Python运维培训班第4期--马哥——第3次作业(20170212)

Linux+Python运维培训班第4期--马哥——第2次作业(20161225)

我拼搏的2016-linux3期结业啦

想参加python培训,马哥和老男孩哪个比较好

马哥Linux培训马哥教育到底怎么样?马哥教育好不好?我来讲讲我的曲折经历!

马哥Linux培训马哥教育到底怎么样?马哥教育好不好?我来讲讲我的曲折经历!