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
2016年12月11日星期日 19时21分43秒 -0.110283 seconds
2016年12月11日星期日 19时21分44秒 -1.000984 seconds
[[email protected] tmp]# hwclock-s;hwclock;clock
2016年12月11日星期日 19时22分06秒 -1.001502 seconds
2016年12月11日星期日 19时22分07秒 -1.001147 seconds
[[email protected] tmp]# hwclock-w;clock;hwclock
2016年12月11日星期日 19时22分47秒 -0.505959 seconds
2016年12月11日星期日 19时22分48秒 -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)