首页 > 代码库 > 全新Linux+Python高端运维班第一次作业

全新Linux+Python高端运维班第一次作业

1.Linux的发行版:linux内核+商业软件

        slackware:

                 suse

        debian:

                 ubuntu 三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。而且debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程。

        redhat:

                 redhat enterprise linux

                 CentOs Centos是一个基于redhat linux 提供的可自由使用源代码的企业级linux发行版本。目前Centos已被收购,成为redhat旗下的一个组织

                 fedora

        ArchLinux

        Gentoo

        LFS:Linux From scratch 

        

2.history :

          -a :追加本次回话新执行的命令你是列表至你是文件中;

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

          -c:清空你是命令;

  快捷操作:

          !#:屌用你是命令中第#条命令;

          !string:调用你是中最近以string开头的命令;

          !!:上一条命令

3.查看当前的终端设备:tty

4.  date: date[option]... [+FORMAT]:显示

           FORMAT:格式符号

                  %D

                  %F

                  %T

    date [MMDDhhmm[[CC]YY][.SS]]:设置

      MM:月份

      DD:几号

      hh:小时

      mm:分钟

      YY:两位年份

      CCYY:四位年份

      .ss:秒钟

Linux的两种时钟:

     系统时钟:由Linux内核通过CPU的工作平路进行的及时;

     硬件时钟:

     hwclock:显示硬件时钟

             -s,--hctosys

             -w,--systohc

     cal:日历


pwd :显示当前目录

回显命令:echo 

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

      -e:允许使用转义符;

              \n:换行

              \t:制表符

系统管理类命令:

      关机:

            halt poweroff shutdown init 0

      重启 

            reboot

                 -f :强制,不调用shutdown

                 -p: 切断电源

        shutdown 

                  -r :reboot

                  -h :halt

                  -c:cancel

                TIME:

                   now :立刻

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

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

                ;

        init 6

          

         修改环境变量值的方式:export 变量名="值"

变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;


           artx命令启动的是xinit,然后再由xinit来启动X Window


3.

      Linux命令帮助的获取

                外部命令:都有一个可执行程序,位于文件系统某目录下;

                which whereis

                shell程序搜索可执行程序文件的路径定义PATH环境变量中;

                    #echo $PATH

                       注意 自左至右

           格式 :COMMAND [OPTIONS...][ARGUMENTS...]

          内部命令:

                   #help COMMAND

          外部命令:

                 (1)#COMMAND --help

                         #COMMAND -h

                  (2)使用手册(manual)

                         #man COMMAND

                   (3)信息页

                          #info COMMAND

                   (4)程序自身的帮助文档

                          README

                          INSTALL

                          Changelog

                   (5)程序官方文档

                          官方站点:Documentation

                    (6)发行版的官方文档 

                  (7)Google

          内部命令帮助:

                 # help COMMAND

                      hash命令:

shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中;


history命令:

作用是什么?相关的环境变量是什么?有用的选项?

Linux命令帮助的获取


外部命令:都有一个可执行程序,位于文件系统某目录下;

which, whereis


shell程序搜寻可执行程序文件的路径定义在PATH环境变量中;

# echo $PATH


注意:自左至右


格式:COMMAND [OPTIONS...] [ARGUMENTS...]


内部命令:

# help COMMAND

外部命令:

(1) # COMMAND --help

# COMMAND -h

(2) 使用手册(manual)

# man COMMAND

(3) 信息页

# info COMMAND

(4) 程序自身的帮助文档

README

INSTALL

ChangeLog

(5) 程序官方文档

官方站点:Documentation

(6) 发行版的官方文档

(7) Google


内部命令帮助:

# help COMMAND


hash命令:

shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中;


history命令:

作用是什么?相关的环境变量是什么?有用的选项?


管理命令历史;

登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history

登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中;


history:

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

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

-c: 清空命令历史;


快捷操作:

!#: 调用历史中第#条命令;

!string:调用历史中最近一个以string开头的命令;

!!: 上一条命令


外部命令帮助获取:

(2) man COMMAND

手册页:/usr/share/man

man1 ... man8

man1: 用户命令

man2: 系统调用

man3: C库调用

man4: 设备文件及特殊文件

man5: 配置文件格式

man6: 游戏

man7: 杂项

man8: 管理类的命令


注意:有些关键在不止一个章节中存在帮助手册;

要查看指定章节中的手册:man # COMMAND


man命令的配置文件:/etc/man.config

MANPATH /PATH/TO/SOMEWHERE: 指明新的手册文件搜索位置


# man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示之;


帮助手册中的段落说明:

NAME

SYNOPSIS

DESCRIPTION

OPTIONS

EXAMPLES

AUTHOR

REPORTING BUGS

SEE ALSO


SYNOPSIS:

[]:可选内容

<>: 必选内容

a|b:二选一

...: 同一内容可出现多次


man命令的操作方法:

Space, ^V, ^f, ^F: 向文件尾翻屏;

b, ^B: 向文件首部翻屏;

d, ^D: 向文件尾部翻半屏;

u, ^U: 向文件首部翻半屏;

RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行;

y or ^Y or ^P or k or ^K:向文件首部翻一行;

q: 退出;


#:跳转至第#行;

1G: 回到文件首部

G:翻至文件尾部


文本搜索:

/KEYWORD: 

以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;

n: 下一个

N:上一个

?KEYWORD:

以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;

n: 跟搜索命令同方向,下一个

N:跟搜索命令反方向,上一个


练习:date命令

显示今天为周几?

设定当前系统时间?

显示今天的日期,形如:08/15/15?

显示当前的时间,形如: 16:01:21?


(3) info

info COMMAND


(4) 程序自身的帮助文档

/usr/share/doc/COMMAND-VERSION


(5) 程序官方文档


(6) 发行版的官方文档

http://www.redhat.com/docs


(7) Google


(8) slideshare

http://www.slideshare.net/



4.

文件管理:

cp, mv, rm


复制命令:cp

cp [OPTION]... [-T] SOURCE DEST

        cp [OPTION]... SOURCE... DIRECTORY

        cp [OPTION]... -t DIRECTORY SOURCE...


        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, -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: --verbose

        -f: --force


    mv: move,移动文件

       mv [OPTION]... [-T] SOURCE DEST

       mv [OPTION]... SOURCE... DIRECTORY

       mv [OPTION]... -t DIRECTORY SOURCE...

       

       常用选项:

        -i: 交互式

        -f: 强制


    rm: remove,删除

    rm [OPTION]... FILE...


    常用选项:

    -i: 交互式

    -f: 强制删除

    -r: 递归


    rm -rf 


    文本编辑器:nano

    全屏编辑器



5.bash的基础特性(1):

(4) 命令行展开

~: 展开为用户的主目录

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

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

/tmp/{a,b} = /tmp/a, /tmp/b

/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi


(5) 命令的执行结果状态

成功

失败


bash使用特殊变量$?保存最近一条命令的执行状态结果:

0:成功

1-255:失败


程序执行有两类结果:

程序的返回值;

程序的执行状态结果;


6.mkdir /tmp/{a,b}_{c,d}

  mkdir -p /tmp/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}


7.文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息。

  .三个时间戳:    


                access time:访问时间,简写atime,读写文件内容


                modify time: 修改时间,mtime,改变文件内容(数据)


                change time:改变时间,ctime,元数据发生改变


修改文件的时间戳:touch    


            touch [OPTION]...FILE...


                -a:only atime


                -m:only mtime


                -s STAMP:


                        [[CC]YY]MMDDhhmm[.ss]


                -c:如果文件不存在,则不予创建


8.  ls -d /var/1*[[:digit:]]*[[:lower:]]

9.  ls -d /etc/[[:digit:]]*[^[:digit:]]

10. ls -d /etc/[^[:alpha:]][[alpha]]*

11. touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

    tree /tmp 

12. cp -a /etc/*.d /tmp/mytest2

13. cp -a /etc/{lmn}*.conf /tmp/mytest


全新Linux+Python高端运维班第一次作业