3.1运维基本功-Linux系统组成及初识
Linux:内核
Application
GUN/Linux:通常以源代码(文本格式)方式提供:
自由,灵活
Linux基础:
CPU架构:
x86
x64(amd64)
M68000,M68K
arm
UltraSparc
power
PowerPC
MIPS
alpha hp-ux
...
Linux,BSD,ZIX,...:Unix-like
Unix类的系统:
API
ABI
Stallman:GUN
闭源:
开源:提供源代码
开源协定:
GPL:General Public Lisense
copyright,copyleft
LGPL: Lesser GPL
GPLv2,PGLv3
FSF:Free
BSD:
Apache:
ASF: Apache Software Foundation
双线授权:
Community:遵循开源协议
Enterprise:
程序管理:
程序的组成部分:
二进制程序:
配置文件:
库文件;
帮助文件:
程序包管理器:
X:
程序的组成文件打包成一个或有限几个文件
安装:
卸载:
查询:
Dedian:dpkg,apt-get
Redhat: rpm,yum
S.u.S.E:rpm,zypper
ArchLinux:port
Gentoo:
LFS:Linux From Scratch
安装Linux:
虚拟机:Linux
计算机:CPU,内存,IO
虚拟化软件程序:
vmware workstation
virtualbox
CentOS的镜像站点:
http://mirrors.aliyun.com
http://mirrors,163.com
http://mirrors.sohu.com
3.2 运维基本功-Linux文件系统功能和作用讲解
终端:terminal
用户界面:
GUI:
GNome
KDE
CLI:
bash,zsh,sh,csh,tcsh,ksh
查看所用的shell的类型
echo $SHELL
远程连接:
ssh协议:secure shell
~]# ss -tnl
查看系统是否监听与TCP协议的22号端口
~]# ip addr list
确保防火墙处于关闭状态
iptables -L -n
CentOS 7
systemctl disable firewalld.service
systemctl stop firewalld.service
CentOS 6
service iptables stop
chkconfig iptables off
终端设备:terminal
多任务、多用户
物理终端:控制台:console
虚拟终端:6个
crtl+alt+F[1-6]
图形终端:
CentOS 6
Ctrl+Alt+F7
CentOS 7
在哪个虚拟终端启动,即位于哪个虚拟终端:
串形终端: tty5
伪终端:psy
Linux的哲学思想之一:一切皆文件:
表现之一: 硬件设备也通过文件表示
物理终端:/dev/console
虚拟终端:/dev/tty#[1,6]
串行终端:/dev/ttyS#
伪终端:/dev/pst/#
注意: 在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互:
查看终端设备:
tty
查看接口程序
echo $SHELL
启动GUI:
在某一虚拟终端接口运行命令: startx &
CLI接口:
命令行接口:
[root@node1 ~]# COMMAND
prompt:
root:当前登录的用户
node1:当前主机的主机名,非完整格式
~: 用户当前 所在在目录(current directory),也称为工作目录(working directory);相对路径
#:命令提示符:
#:管理员账号:为root;拥有最高权限,能执行所有操作
$:普通用户:非root用户;不具有管理权限,不能执行系统管理操作
注意:建议使用非管理员账号登录
执行管理操作临时切换到管理员,操作完成即退回
基础命令: tty ifconfig echo ping
关机命令 poweroff reboot halt shutdown
Stallman:
自由含义:自由学习和修改:自由使用,自由分发,自由创建衍生版
Linux的哲学思想:
1、一切皆文件
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等
open(), read(),write(),close(),delete(),create()
2、由众多功能单一的程序组成: 一个程序只做一件事,并且做好
组合小程序完成复杂任务
3、尽量避免跟用户交互
目标: 易于以编程的方式实现自动化任务
4、使用文本文件保存配置信息
文件是什么?众多文件如何有效组织起来?
目录:路径映射
文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:层级结构,有索引
/:原初起点
倒置树状结构
文件的路径表示:
绝对路径:从根开始表示出来的路径
相对路径:从当前位置开始表示的路径
文件名使用法则:
严格区分字符大小写
目录也是文件,在同一路径下,两个文件不能同名
支持使用除/以外的任意字符
最长不能超过255个字符
用户的家目录: home
用户起始目录
basename:最右侧的文件或目录
dirname:basename左侧的路径
3.3Linux获取命令使用帮助详解
开源协定:
GPL,LGPL,BSD,Apach
BSD:
1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协定
2、如果二次发布的是二进制格式的库或程序,则需要在发布的文档或版权声明中包含原来代码中的BSD协定
3、不可以用开源代码的作者或组织,以及原来的产品的名字作市场推广
文件系统、文件、目录:
倒置树状结构
目录:
文件:
文件名:严格区分字符大小写:路径分割符/:
路径:
绝对路径
相对路径
程序的组成部分:二进制程序文件、库文件、配置文件、帮助文件
人机交互界面:
GUI
CLI
Linux基础知识
命令的语法通用格式
# COMMAND OPTIONS ARGUMENTS
发起一命令,请求内核将某个二进制程序运行为一个进程
程序<->进程
静态<->动态(有生命周期)
命令本省是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件:
多数系统程序文件都存放在:/bin/,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/bin
普通命令:/bin/,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/bin
共享库:
32bits的库:/lib,/usr/lib,/usr/local/lib
64bits的库:/lib64,/usr/lib64,/usr/local/lib64
注意:并非所有的命令都有一个的某目录与之对应的可执行程序文件
命令分为两类:
由shell程序的自带的命令,内置命令(bulltin)
独立的可执行程序文件,文件名即命令名:外部命令
shell程序是独特的程序,负责解析用户提供的命令
环境变量:
PATH:从哪些路径中查找用户键入的命令符串所对应的命令文件:
echo $PATH: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sysrls/bin
查找次序:自左而右
查看命令类型: type COMMAND
OPTIONS:
指定命令的运行特性:
选型有两种表现形式:
短选项
长选项
ARGUMENTS:
命令的作用对象:命令对什么生效
注意:不同的命令的参数:有些命令可同时带多个参数
获取命令的使用帮助:
内部命令:
help COMMAND
外部命令:
(1)命令自带简要格式的使用帮助
# COMMAND --help
(2)使用手册:manual
位置:/usr/share/man
SECTION:
NAME 命令名称及功能简要说明
SYNOPSIS 用法说明,包括可用的选项
DESCRIPTION 命令功能的详细说明,可能包括每一个选项的意义
OPTIONS 说明每一项的意义
FILES 此命令相关的配置文件
BUGS
EXAMPLES 使用示例
SEE ALSO 另外参照
SYNOPSIS:
[]:可选内容
<>:必须提供的内容
a|b|c:多选一
...:同类内容可出现多个
使用手册:压缩格式的文件,有章节之分
whatis COMMAND
man CHAPTER COMMAND
man命令打开手册以后的操作方法
查看时需要翻屏:
向后翻一屏:space(空格键) 向前翻一屏:b
向后翻半屏:Ctrl + d 向前翻半屏:Ctrl + u
向后翻一行:Enter(回车键) 向前翻一行:k
查看时需要查找:
/关键词 向后查找 n:下一个
?关键词 向前查找 N:前一个
推出:
q:quit
(3)info COMMAND
获取命令的在线文档
(4)很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关日信息
INSTALL: 安装帮助
CHANGES:版本迭代时的改动信息
(5)主流发行版官方文档
http://www.redhat.com/doc
(6)程序官方的文档
官方站点上的"Document"
(7)搜索引擎
keyword filetype:pdf
keyword site:domain.tld
3.4Linu常用基础命令实战应用
Linux文件系统:
1.文件名名称严格区分大小写
2.文件可以使用除/以外任意字符
3.文件名长度不可以超过255字符
4.以.开头的文件未隐藏文件
.:当前目录
..:当前目录的上一级目录
工作目录:working direectory
家目录:home
常用命令:
pwd: printing working directory
显示工作目录
cd: change directory
cd [/PATH/]
cd:切换回家目录 注意:bash中,~表示家目录 cd ~:切换回自己的家目录 cd ~USERNAME:切换至指定用户的家目录 cd -:在上一次所在目录与当前目录之间来回切换 相关的环境变量 $PWD:当前工作目录 $OLDPWD:上一次的工作目录
ls: list,列出指定目录下的内容
ls [OPTION]... [FILE]...
-a:显示所有文件,包括隐藏文件 -A:显示除.和..之外的所有文件 -l: --long,长格式列表,即显示文件的详细属性信息: -rwxrwxrwx 1 sysrls sysrls 368640 May 23 2018 Yw_Thrpay_Khqy.dmp -:文件类型:-,d,b,c,l,s,p rwxrwxrwx: 文件属主/属主/其他组的权限 1:数字表示文件被硬链接的次数 sysrls:文件属主 sysrls:文件属组 368640:数字表示文件的大小,单位是字节 May 23 2018:文件最后一次被修改的时间 -h:--human-readable:对文件大小单位换算:换算会结果可能会非精确值 -d:查看目录自身而非其内部的文件列表 -r:reverse,逆序显示 -R:recursive,递归显示
cat: concatencate
文件文本查看工具
cat [OPTION]... [FILE]...
-n: 给现实的文本行编号
-E:显示行结束符
tac: concatencate
tac [OPTION]... [FILE]...
-n: 给现实的文本行编号
-E:显示行结束符
file:查看文件内容类型
file [FILE]...
echo:回显
echo [SHORT-OPTION]... [STRING]...
-n:不进行转行
-e:让转义符生效
\n:换行 \t:制表符
STRING可以使用引号,单引号和双引号均可用
单引号:强引用,变量引用不执行替换
双引号:弱引用,变量引用会执行替换
关机或重启命令
shutdown [OPTION]... TIME [MESSAGE]
OPTIONS:
-h: halt
-r: reboot
-c:cancel
TIME:
now
hh:mm
+m
日期相关的命令:
Linux:系统启动时从硬件读取日期和时间信息:读取完成以后,就不再与硬件相关联
系统时钟
硬件时钟
date
显示日期时间:date [OPTION] ... [+FORMAT]
Format:格式符
%H 小时(以00-23来表示)。 %I 小时(以01-12来表示)。 %K 小时(以0-23来表示)。 %l 小时(以0-12来表示)。 %M 分钟(以00-59来表示)。 %P AM或PM。 %r 时间(含时分秒,小时以12小时AM/PM来表示)。 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 %S 秒(以本地的惯用法来表示)。 %T 时间(含时分秒,小时以24小时制来表示)。 %X 时间(以本地的惯用法来表示)。 %Z 市区。 %a 星期的缩写。 %A 星期的完整名称。 %b 月份英文名的缩写。 %B 月份的完整英文名称。 %c 日期与时间。只输入date指令也会显示同样的结果。 %d 日期(以01-31来表示)。 %D 日期(含年月日)。 %j 该年中的第几天。 %m 月份(以01-12来表示)。 %U 该年中的周数。 %w 该周的天数,0代表周日,1代表周一,异词类推。 %x 日期(以本地的惯用法来表示)。 %y 年份(以00-99来表示)。 %Y 年份(以四位数来表示)。 %n 在显示时,插入新的一行。 %t 在显示时,插入tab。 MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要) ss 秒(选择性)
设定日期时间: date [MMDDhhmm[[CC]YY][.ss]]
hwclock,clock: 硬件时钟
显示或设定硬件时钟
-s: --hctosys
-w:--systohc
cal [[month] year]