Linux day01

运维,本质上是对网络、服务器、服务的生命周期各个阶段的运营与维护,在成本、稳定性、效率上达成一致可接受的状态。

首先了解一下运维的职责

  1. 产品上线
  2. 故障维护
  3. 版本更新迭代
  4. 保证质量
  5. 提高效率
  6. 降低成本:方案不同成本也不同

注:对于初创公司,运维部和系统部一般是合二为一的,相关工作由同一批人负责,界限可能不是很明显。大型公司对运维工作的要求更高,需要有更精细的分工,因此机房/网络/操作系统相关的底层工作分离出来由专人负责,成为系统管理部,而上层和应用产品相关的工作则由运维负责,成为运维部。

下面比较一下开发(Java为例)与运维的区别
Java开发

  • 需要较强的编码能力
  • 岗位需求量大
  • 竞争对手大都985、211、双一流毕业生,10个岗位有100人在投
  • 应届毕业生需要一定能力才可以达到10k,但增长空间大

运维

  • 不要求过高的编码能力(运维开发需要)
  • 岗位较少
  • Linux是迈进互联网世界的大门
  • 毕业后基本薪资10k

目前,运维人员接触到的服务器系统大都是Linux和Windows

运维工作岗位

  • 技术支持工程师(奇安信、绿盟、深信服、启明星辰)
  • 网络工程师(网管、腾讯)
  • 系统运维工程师(Linux系统运维)
  • 业务运维工程师
  • 数据库运维工程师(DBA)
  • 云计算工程师(云计算)
  • 运维开发工程师
  • 渗透测试工程师

什么是操作系统
用户和硬件交互的中间层软件
管理软件、硬件的软件
总而言之,操作系统是管理计算机硬件与软件资源的计算机程序

Linux简介

Unix和Linux代码是由90%的C语言和10%的汇编语言组成
Linux的吉祥物是企鹅
Linux是一个内核,不是操作系统
Linux系统内核指的是一个由linus负责维护,提供硬件抽象层、硬盘以及文件系统控制以及多任务功能的系统核心程序
Linux发行套件系统是我们常说的Linux系统,也就是Linux内核与各种常见的软件的集合产品。
Linux核心概念:一切皆文件

Linux文件
文件=元数据+真实内容
以.开头命名的文件是隐藏文件
严格区分大小写
可以使用出/以外的任意字符作为文件名称,建议避免去使用特殊字符
文件名称长度不超过255个字符

扫描二维码关注公众号,回复: 11856243 查看本文章

Linux历史

1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合创办了multics计划,为了开发多路信息计算系统
1969年贝尔实验室退出multics计划
1970年Ken Thompson发布Unix系统,这一年被称为计算机元年
后来AT&T机构分解,unix走向商业化,一份授权4万美元
安德鲁大学教授为了解决教学研究,自己开发了Minix,此系统只能用于教学
1991年Linus Torvalds(林纳斯.托瓦兹)发布了Linux 0.02版
1994年Linux 1.0版发布

Linux优缺点

  • 安全、稳定、花费少
  • 多任务、多用户
  • 消耗资源少
  • 内核小,支持多种电子产品
  • 部分软件不支持Linux
  • 命令行对用户使用不友好

常见的Linux系统
RHEL(红帽企业系统):

全世界使用最广泛的操作系统

CentOS(社区企业系统)

通过把RHEL系统重新编译并发布给用户免费使用的Linux系统,具有广泛的使用人群。当前Centos已经被红帽收编。

Fedora试验田

用户可以免费体验最新的技术或工具,这些工具技术成熟之后会被加入到RHEL中。

openSUSE

源自德国的著名Linux系统,在全球有着不错的声誉以及市场占有率

Gentoo(高度定制化)

高度自定制性,适合有经验的人使用。

Debian(硬件架构支持优秀)

稳定性高、安全性强,对硬件支持优秀。

Ubuntu(个人桌面系统)

是一款派生自Debian,对新款硬件具有极强的兼容能力,并且与fedora都有着出色的Linux桌面系统,也可用于服务器领域。

Arch Linux(小而美)

小而美,高度自定义

Deepin(国产操作系统)

国产桌面系统

自由软件运动与开源许可协议
自由软件运动

Richard Stallman(理查德·斯托曼)是该运动的主要发起人以及精神领袖。

“自由软件”(Free Software)表示的是那些赋予用户运行、复制、分发、学习、修改并改进软件这些自由的软件。

自由软件的意义,是为了使得用户(包括个体和团体)可以控制程序为己所用。当用户无法控制程序时,这样的软件就是“非自由”(Nonfree)或“专有”(Proprietary)的程序。

自由软件运动人士认为自由软件的精神应当贯彻到所有软件:他们认为禁止计算机用户行使这种自由是不道德的行为。Richard Stallman认为贩卖不附带源代码的二进制软件是十分不道德的,因为这样阻止了软件用户学习以及帮助其他人的权利。然而目前还没有如何实现自由软件运动最终目标的共识。有些人认为应当使用法律手段强制软件供应商提供源代码;有些则认为应当通过抵制商业软件来达到目的。还有一些人则认为时间将证明,自由软件最终在质量上要比商业软件略胜一筹,并会在自由市场上取得胜利。

开源软件运动的支持者更注重软件的使用性而不是它的道德问题。开源软件支持者与自由软件支持者的最大不同在于前者不像后者一样盲目地反对及谴责商业软件。开源软件支持者中有许多程序员在使用开源软件的同时编写商业软件谋求生路。

知名自由软件:Linux、PHP、MySQL、Notepad++、Firefox、Thunderbird

开源许可协议

开源共享精神
用户具有使用自由、修改自由、重新发布自由、以及创建衍生品的自由。这正好符合黑客和极客对自由的追求,所以国内外开源社区的根基非常庞大,人气也相当高。

开源软件的特点:低风险、高品质、低成本、更透明

如果开源软件为了单纯追求“自由”的话,这将会影响程序员的创造激情,因此世界上有60多种开源组织认可的许可协议来保证开源工作者的群益。

GNU(GUN is not unix)、GPL(General Public License)通用公共许可协议

  • 复制自由:允许把软件复制到任何人的电脑中并且不限制复制的数量
  • 传播自由:许软件以各种形式进行传播
  • 收费自由:允许在各种媒介上出售该软件,但是必须提前让买家知道这个软件可以通过免费的方式获得。
  • 修改自由:允许开发人员增加或者删除软件的功能,但是修改之后的软件仍然遵从GPL协议。

BSD伯克利软件发布协议

  • 如果再发布的软件中包含源代码,则源代码必须遵循BSD
  • 如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了BSD
  • 不允许使用原始软件的名字、作者名字或机构名称进行市场推广。

安装部署Linux
安装:虚拟机
查看防火墙状态:

systemctl  status firewalld

查看防火墙放行的服务:

firewall-cmd --list-all

注:如果未放行ssh服务,需要手动放行或关闭防火墙

关闭防火墙:

systemctl stop firewalld.service 

检查sshd服务:

systemctl status sshd

检查22端口:

ss -tanl | grep 22

查看ip地址:

ip a | grep global

SSH远程连接

ssh  username@hostname
ssh -p passwd username@hostname

初始化

  • 关闭防火墙
systemctl stop firewalld.service
  • 关闭SELinux
setenforce 0
getenforce
  • 安装vim、bash-completion
yum install -y vim bash-completion
  • 关机打快照

Linux文件系统

  • 文件=元数据+真实内容
    以.开头命名的文件是隐藏文件
    严格区分大小写
    可以使用出/以外的任意字符作为文件名称,建议避免去使用特殊字符
    文件名称长度不超过255个字符

  • 文件路径:
    绝对路径:从根位置开始
    相对路径:相对当前位置

  • 七大文件类型
    普通文件类型:-或f
    目录文件类型:d
    块设备文件类型:b
    字符设备文件类型:c
    套接字文件类型:s
    管道文件类型:p
    链接文件类型:l

  • 查看文件类型的三种方式

    • ls -l或ll:结果中的第一个字符代表的是文件类型

    • file命令可以查看文件类型

    • stat可以查看文件类型等其他文件属性

Linux的FHS(文件系统层次化标准)目录结构

  • bin:存放系统经常使用的命令,通常是二进制程序
  • boot:启动Linux时需要的部分核心组件
  • dev:Linux的外部设备
  • etc:系统管理所需的配置文件和子目录
  • home:用户家目录
  • lib:程序运行所依赖的库文件(包括内核模块)
  • lib64:专用于x86_64系统上的辅助共享库文件存在位置
  • media:自动识别的设备
  • mnt:用户临时挂载别的文件系统的位置
  • opt:安装额外的一些软件
  • proc:虚拟目录,访问该目录来获取系统信息
  • root:超级管理员的用户家目录
  • run:存储系统运行以来的信息
  • sbin:超级管理员所使用的命令
  • srv:服务启动后所需要的数据
  • sys:子文件系统,映射内核信息
  • tmp:临时文件
  • usr:用户的应用程序和相关文件
  • var:经常被修改的文件

Linux内核版本
3.10.0-693.el7.x86_64
主版本.次版本.释放版本-修改版本

  • 次版本:如果是偶数,则为稳定版本,如果是奇数,则为开发版本,内核开发人员使用
  • 释放版本:为对此版本改动,加入一些新功能
  • 修改版本:编译次数,每编译一次数量+1

bash相关特性

  • 什么是shell?
    shell程序找到输入命令所对应的可以执行的程序或者代码,并将分析后提供给内核分配资源将其运行起来,表现形式为一个或者多个进程
  • bash是shell中的一种,也是CentOS7默认使用的shell
  • shell中可以执行的命令:
    内建命令:shell自带
    外部命令:某文件系统路径下有相对应的可执行的程序文件
  • type:可以查看命令类型,属于内嵌自带的或者是其他的类型
  • whereis:查找到命令的相关文件所在的位置
  • which:查看命令所在位置

在这里插入图片描述

Linux命令

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

  • 命令格式
    <命令> <参数>

  • 参数:

    • 长参数:- -,比如- -help,
      如果想要同时使用多个参数,可以通过空格的形式将多个长参数并列显示
    • 短参数-,比如ls -a。可以同时将多个短参数合并,比如ls -la
  • 命令执行结果

    • 成功:退出状态码为0
    • 失败:退出状态为非0
  • 取消命令执行:Ctrl+C

pwd命令

显示当前所在位置

cd命令

cd - :进入到上一次目录所在位置
cd :进入到用户家目录

别名

  • 查看别名:alias
  • 定义别名:alias [name] = [value]
  • 取消别名:unalias
  • 命令行只是针对当前进程有效,如果想要永久生效需要通过修改配置文件
    对当前用户有效:修改~/.bashrc配置文件,则可以永久生效
    对全局用户有效:修改/etc/bashrc配置文件
  • 注:如果想要立即生效,可以通过退出并重新登录的方式,或者使用source ./bashrc或source /etc/bashrc命令使其生效

帮助来源
–help:命令行的长参数,查找自带的参数解释
使用man手册,可以查看非常具体的手册文档
信息叶,info
程序自身帮助文档,由程序开发者所写Readme
程序官方文档
发行版官方文档
百度经验、百度百科、简书、CSDN、博客园、菜鸟教程、编程狮、w3cschool

命令历史

  • 查看历史命令:history
  • 命令历史文件:~/.bash_history
    登录shell时会读取命令历史文件,并且后续的操作命令会被追加到命令历史文件中
  • history相关参数
    -a:立刻追加本次会话命令历史到~/.bash_history中
    -d:删除历史中指定的命令
    -c:清空历史命令
  • 快捷键
  • !#:调用历史中第#条命令
  • !string:调用历史中最近一条以string开头的命令
  • !!:调用历史中上一条命令

目录管理命令

  • mkdir:创建目录
    -p:递归创建
    -v:显示创建过程
    -m:指定权限
  • rmdir:删除目录
    -p:递归删除
    -v:显示删除过程

文件查看命令

  • cat:一次性查看文件所有内容,缺点是查看较大文件时会占用较大IO
  • tac:与cat类似,但从文件末尾开始查看
  • more:一次性只加载部分内容,翻页时才加载剩余内容,避免浪费IO资源
  • less:与more类似,不同的是可以往回翻页
  • head:从文件前面开始查看,默认前10行
    -c:获取前多少个字节
    -n:获取前多少行
  • tail:与head相反,从文件末尾开始查看内容,默认后10行
    -c:获取后多少字节
    -n:获取后多少行
    -f:动态显示文件新追加内容,和tailf命令功能一样

文件时间戳
时间戳:从计算机元年(1970年)开始到现在的秒数

  • atime:最近一次文件被访问的时间
  • mtime:最近一次文件内容被修改过的时间
  • ctime:最近一次文件属性被修改的时间

可以使用touch命令去修改文件的时间
-a:只更改atime
-m:只更改mtime
-t:指定更改时间

cp命令

  • SRC为单个文件时
    DEST不存在,创建出DEST文件,与SRC同名
    DEST存在,覆盖旧文件
  • SRC为多个文件时
    DEST必须是一个目录
  • SRC为目录:-r
    DEST必须是目录,如果不存在会创建出一个新的目录;如果存在会被覆盖
  • 常见参数
    -i:交互式
    -r/R:递归复制目录和文件
    -a:归档
    -p:连同属性

mv命令
常用选项
-i:交互式
-f:强制

rm命令
-i:交互式
-r:递归删除
-f:强制删除

注:建议删除文件时使用绝对路径删除,使用相对路径容易误删

猜你喜欢

转载自blog.csdn.net/qq_44924544/article/details/108585480