38.运维1-linux基础命令

1.cpu:

cpu是工厂:
路数:有几个cpu
核数:是工人,决定并行运行的任务数

硬件服务器:机架服务器,刀片服务器,塔式服务器
虚拟服务器:阿里云,百度云,亚马逊,腾讯云

cpu(运算 控制) cpu路数(cpu个数) cpu核数(处理任务)

# 硬件组成详情: 
	内存(中介 桥梁)
    cpu     内存      磁盘(机械硬盘)
    内存中有两个空间
    buffer 缓冲区  在数据存储到磁盘之前,先放入内存中进行缓冲 写数据
    cache 缓存区 数据已经存储到磁盘中之后 再把数据转存到内存中 读数据
# 程序
	用开发人员编写好的代码软件 -- 程序
# 进程 
	运行起来的程序
# 守护进程
	一直运行的进程

2.缓存:

现将数据放入缓冲区,放入一定数量(100M)写入磁盘中。(读和写)
大型企业:
	存储数据 --- 内存中 --- 写入磁盘
    读取数据 --- 磁盘数据 --- 内存中
    		--- 内存中读取
小型企业:
	存储数据 --- 存储磁盘中
    读取数据 --- 磁盘数据 --- 内存中
    	    --- 内存中读取
缓冲:将数据临时存储到内存的过程 写内存
缓存:将数据从内存中进行读取过程 读数据
“缓冲(buffer)和缓存(cache)的区别: 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中...”

3.磁盘

永久存储 存储效率低
为什么磁盘存储效率低
1、磁盘的工作方式
2、磁盘的io消耗
	大的数据拆分成存储单元,input(入)
    大的数据拆分成存储单元,output(出)
# 磁盘的接口类型:(影响数据存储效率)
	 IDE < SATA < SCSI < SAS(机械硬盘)     SSD(固态硬盘)
    
# 服务器的磁盘特点:
	多块磁盘
    1.增加数据存储量  1块500g 490g 文件目录-20g   + 2块500g = 1T
    2.增加数据安全性  1块500g 10g(视频) + 2块500g 10G(视频) =1T 20G 
    3.增加数据存储效率 1块500g 10g(视频) + 2块500g 10G(视频) =1T 20G

# 硬盘存储数据的单位:
	PB TB GB MB KB B(byte字节)1024倍
    1024的换算方式:计算机存储的换算单位
    1000的换算方式:工业级换算单位
    
    100G -- 实际大小<100G
    1024 * 1024 * 1024       1000 * 1000 * 1000

# 远程管理卡:(网卡)
	控制远程开关机
    远程批量安装软件
    
    远程管理卡的种类:
    a 集成的远程管理卡 远程开关机
    b 外置的远程管理卡 远程安装系统 配置raid
    dell - idrac
    HP - ilo
    IBM - RSA

# 合理的布局(机房)
	尽可能一出手就是专业的

# 如何采购服务器
	a 对厂商和型号进行了解 10000 cpu i5 i7
      	dell 联想(自身联想服务器(性能差) IBM thinkserver(性能高--贵)) 浪潮 华为
        斯诺登 去IOE事件 
        IBM 服务器/PC电脑
        Oracle 存储数据 数据库 文字字符信息
        EMC 存储服务器 图片 视频 音频 附件
    b 出具服务器购买方案
    	出具三个方案
        一个方案 领导无从选择
        两个方案 领导左右为难
        三个方案 领导进行多种选择
        寻找服务器集成商/厂商

4.Raid卡

Raid卡: 1.将多块硬盘进行整合;2.使得数据存更安全;3.使得数据存储效率更高
raid0:
    优点:存储效率高
    缺点:安全性不够
raid1:
    优点:存储效率低
    缺点:安全性高

5.运维三大职责:

1.保证数据不丢失
2.保证数据稳定运行
2.保证用户访问体验

6.操作系统:

1.什么是操作系统?	
	任何硬件沟通的桥梁
    操作系统的组成部分:硬件 + 内核 + 解释器bash/shell + 软件应用程序
2.linux发展历史?
	GUN:这是一个项目,开发出一个类似与unix的系统
    GPL:通用许可协议(规范)
    	1.所有的软件代码信息必须是开源的
        2.可以对软件代码进行修改,代码修改信息需要发布出来
3.linux的发行版本?
	Ubuntu
    Radhat(收费服务费)系统有自己红帽商标 国企(中石油 中海油 银行)
    Centos(免费) 去掉类红帽商标
    Debian或FreeBSD 金融企业 游戏
    SUSE 
    Fredora radhat 和centos的前身
4.系统发展历程
	谭邦宁      -- 发明了教学用的unix系统
    斯托曼		 -- 想法:发明出了unix更好的系统
        		FSF:创建一个公司,自由软件基金会
                 GNU:发明出类似unix更好地系统 内核 解释器 软件程序
                 GPL:通用许可协议
  	托瓦兹 	 --发明出了linux早起内核雏形
   	PS:GNG项目 + linux 内核雏形 == 

7.部署安装centos系统:

1.环境安装
	a 虚拟环境(虚拟软件vmvare)将服务器硬件资源拆分 给不同的虚拟系统使用
    b 对虚拟软件进行配置(虚拟主机配置 虚拟主机网络设置)
    c 安装系统(系统镜像)
2.安装系统
	1.创建虚拟主机
    2.配置虚拟网络
3.系统镜像下载
	系统架构:识别内存的能力
    x84_64 == 64位:2的64次方 ==18Eb 128G 256G
    i386 == 32位:2的32次方 ==4G 3.2~3.5
4.系统的安装部署过程
	第一个历程:进入系统引导界面进行配置
	1.安装centos7系统
    2.测试光盘镜像并安装系统
    3.排错
    补充:centos7系统网卡名称
    默认系统的网卡名称为eth0 eth1 -- centos6之前
    默认系统的网卡名称为 ens33 ens34 -- centos7
    
    # 设置ens33为ethx
    如何调整网卡名称设置?
    1.选中install centos7按中tab键,走到最下边,输入net.ifnames=0 biosdevname=0
    2.在系统中进行修改
    	01编辑网卡配置文件中网卡名称信息
        vim /etc/sysconfig/network-script/ifcfg-ens33
        02重命名网卡配置文件名称信息
        mv ifcfg-ens33 ifcfg-eth0
        03修改网卡名称规则内核文件
        vim /etc/default/grub
        net.ifnames=0 biosdevname=0 到GRUB_CMDLINE_LINUX变量后--rhgb quiet前面
        04使系统重新加载grub配置文件
        grub2-mkconfig -o /boot/grub2/grub.cfg
        05重启主机
    从虚拟主机返回windows系统方法:ctrl+alt
    
    第二个安转历程:对系统语言进行配置
    第三个安装历程:对系统安装过程进行配置
        1.系统网络的配置
        	点击system中的network&hostname,点击configure设置
            1.点击general 通用设置
                选中automatically connect to this network when it is available
                和all user may connect to this network
            2.点击ipv4 settings 设置
            	method 选择 Manual(手动)
                address 点击增加 address 10.0.0.200 newmask 255.255.255.0 geteway 10.0.0.2
                DNS servers: 223.5.5.5
        2.系统分区的配置
        	1.system中的installation destination (分区)
            	点击I will configure partitioning (手动进行分区),点击Done
                接下来选择Standard Partition(标准分区),选择+号(就可以添加分区了,具体看下面的方案)
                # 如何对linux系统进行分区:
                1.通用分区方案
                	c盘 ==/boot(启动) 引导分区 操作系统,启动文件 (200M就可以了)
                    	==swap (交换) 交换分区 当内存不够用的时候将硬盘中的空间,用作内存使用
                        		内存小于8G
                        		建议交换分区大小等于内存大小的1.5倍 内存1G--swap1.5G
                            	内存大于等于8G
                                建议交换分区大小等于内存大小
                       ==/      根分区
                2.数据信息比较重要的分区方案
                	/boot    200M
                    swap     <8G   1.5倍内存大小
                    		>=8G   8G
                    /        20G-200G
                    /data    剩余空间大小
                3.灵活的分区方案
            		/boot      200M
                    swap     <8G   1.5倍内存大小
                    		>=8G   8G
                    /        20G-200G
                    剩余分区不分,有需求再添加
        3.系统的安全的配置(暂时先都关闭,以后懂得多了可以开启)	
        	1.system中的
            	system-kdump            将宕机前系统中的内存异常信息进行保存
            	system-security policy  系统的安全策略
        4.系统时区的设置
        	localization下面,选择上海,network Time选项开启,自动同步时间
        5.系统软件的安装
        	software下面的software selection
            选择左侧minimal install,右侧centos7(1,2,3,6),centos6(2,3,5);需要安装自己安装
        6.安装系统
        	创建系统用户,root 密码 123456
            普通用户,papa 密码 123456
        ----------------------------------------------------------------
        补充:运维工作流程
        1.准备/检查好环境 centos6 centos7
        2.进行操作前的备份 如:网络的配置文件
        3.进行配置之后的注意保存
        4.配置完成需要检查      cp 重要文件 /data/
        5.编写项目文档
  --------------------------------------------------------------------
	网络环境确认工作
    1.确认网卡信息
    2.确认外网连接情况
        快捷方式:
        	ctrl + c 终止命令执行过程
            crtl + l 清屏
    网络常见问题分析:
    	1.网卡地址配置不准确
        	网卡地址和虚拟主机网卡地址不一致
            网关和DNS的信息不正确
        2.如何重新配置网卡地址信息
        	a 通过系统命令重新配置网卡地址信息
            ip地址:网络通讯标识信息
            子网掩码:在一个局域网中可以有多少个主机
            网关地址:从一个局域网当另一个局域网的必经之路
            # nmtui   图形界面修改网卡地址信息(临时)
            选择edit a network,通过table间操作上下,选择编辑edit connection
            b 重新网卡服务 systemctl restart network
-------------------------------------------------------------------------------
	实现远程连接xshell
    远程软件类型
    1.xshell 免费 功能强大使用
    2.scureCRT 
-------------------------------------------------------------------------------
回顾:
	1.网卡的名称eth0-net.ifnames=0 biosdevname=0
    2.网卡地址ip地址 网关配置 DNS:223.5.5.5 114.114.114.114
    3.系统的主机名称进行修改
    系统分区配置
    1.通用分区配置
    	/boot  引导分区  200M
        swap   交换分区   内存>=8G  内存<8G 1.5内存大小
        /      根分区     剩余分区

命令总结:

命令总结:
    	1.ip address show   查看网卡设置 简写:ip a
        2.pint   		测试网络连通性
        3.nmtui  		图形界面修改网卡地址信息
        4.systemctl restart network 重新网卡服务
        5.tab    	     补全命令信息
        6.方向键上下      获取上几次输入的命令
        7.ctrl + a       移动到命令首部
    	8.ctrl + e       移动到命令尾部
        9.ctrl + 左右箭头 按照引文单词移动光标
        10.ctrl + w      剪切命令中以空格分隔的字符
        11.ctrl + u      光标到行首的内容都剪切
        12.ctrl + k      光标所在位置到行尾内容剪切
        13.ctrl + y      黏贴,配合上面的剪切应用
        14.ctrl + s      锁屏
        15.ctrl + q      解锁
        16.esc + .  	将上一个命令的最后部分拿过来
        17.mount 存储设备 挂载点   # 挂载目录
        18.umount  挂载点         # 解除挂载
        19.hostname		修改主机名称临时
        20.hostnamectl set-hostname xxx   永久修改
        21.df			查看磁盘挂载情况
        22.which       	 查看命令所在文件
        23.soure 		立即加载文件配置信息
        				/etc/profile
            			/etc/bashrc
                		~/.bashrc
                    	~/.bashrc_profile
        24.exprot		表示变量为环境变量
        25.alias		设置别名
        26.unalias       取消别名
        27.tail -6 /var/log/secure   查看倒数几行信息
        28.head -6 /var/log/secure   查看前面几行信息
    	29.tail -f /var/log/secure   实时查看日志信息
        30.yum install -y 名称    直接安装软件
        31.ps -ef      			 查看进行信息
        32.kill -9 pid号码  	    强制杀死进程
        33.lscpu 				查看cpu信息
        34.w					查看负载信息/查看用户登录信息
        34.free					查看负载
        35.useradd	用户名		  添加用户
        36.passwd  用户名		  设置密码
        37.whoami				我是谁
        38.id 用户名			  查看创建用户是否存在
        39.su					切换用户
        40.``     	      表示将反引号内的结果交给外面的命令执行
        41.rpm 					如案例软件程序包
           rpm -qa	软件名称	  查看软件大礼包是否安装成功	
           rpm -ql	软件名称	  查看软件大礼包都安装了什么
           rpm -qf	软件名称(绝度路径)	  查看命令属于哪个大礼包
        42.systemctl			管理服务程序的运行状态
           systemctl start  服务名称  启动服务
           systemctl stop   服务名称  关闭服务
           systemctl restart 服务名称 重启服务
           systemctl status 服务名称  查看服务运行状态
           systemctl disable 服务名称 关闭开机自启动
           systemctl enable 服务名称  开启开机自启动
           systemctl is-active 服务名称  软件是否启动
           systemctl is-enable 服务名称  确认开机是否自启动 
        43.yum list  		    所有安装了和可以安装的软件
        44.yum grouplist		所有安装了和可以安装的软件包组
        45.yum groupinstall -y 包组名称   安装软件包组
        ps一个命令没有输出就是最好的结果

特殊符号

|   管道符,前一个命令的输出所谓下一个命令的输入
&&  前一个命令执行成功,在执行后面的命令
$	用于加载读取变量信息
!	强制
``  将引号中的命令执行结果交给引号外面的命令进行
{}	序列数字
#   注释或者表示root用户
>   输入,覆盖
>>  输入,追加

高级命令

01:老四
02:老三 grep 文件进行过滤筛选

8.操作命令以及命令结构1

1.虚拟软件使用方式
	1.系统启动事项
    	系统当中有些软件是可以启动多次,多实例
     2.系统闭关事项
    	劲量选择挂起虚拟主句,关闭软件
     3.虚拟主机拍摄快照(备份)
     4.虚拟主机移除方法
        右键点击设置,选择管理,从磁盘中删除。(关机再删除)
     5.新建主机
    	右键 - 管理 - 克隆
2.虚拟软件网络配置 (虚拟软件网络模式)
	1.NAT网络模式
    	特点:虚拟主机和宿主机网络信息可以不一致10.0.0.3 10.0.0.1
        优点:不容易出现局域网中的ip地址冲突
        缺点:其他宿主机不能直接访问虚拟主机
        # 通过xshell配置让其他主机访问NAT网络模式主机:
            第一步:xshell点击新建连接
            	输入宿主机的ip和任意一个没有在使用的端口号9000
            第二步:虚拟主机中点击虚拟网络编辑器,选中vmnet8
                点击NAT设置,点击添加
                输入虚拟机的ip和ssh服务的端口号22;以及主机端口9000
    2.桥接网络模式
    	特点:虚拟主机和宿主机网络信息一致   10.0.0.x  10.0.0.x
        缺点:容易出现局域网中的ip地址冲突
        优点:其他宿主机可以直接访问虚拟主机
    3.仅主机模式
    	特点:虚拟主机只能和主机或者其他虚拟主机建立连接
        缺点:不能连接外网
        优点:更加安全
    路由器  交换机
3.远程连接排错思路
	1.链路是通畅的,检查方法ping,
    	检查不通畅的原因:
        a 物理线路问题/物理主机被人关闭
        b 网络安全设备阻止了ping功能
        c 虚拟主机的网卡地址是否设置正确
        d 虚拟主机有没有开启虚拟网卡(vmnet8) # 都检查完毕,实在不行就初始化网卡
        e 虚拟主机网络服务是否开启systemctl status sshd
    2.有网络安全策略进行阻止访问
    	a 防火墙有没有关闭
        b SSH服务配置中也可以阻止用户远程连接
    3.远程服务没有开启
    	systemctl status sshd
    	检查远程服务是否开启:telnet 10.0.0.2 22
        网络中会将每个网络服务设置一个数字编号,称为网络服务的端口
        SSH服务我的端口号码 --22
        连接失败的原因:
        a 远程服务关闭了
        	netstat/ss -tnulp 查看服务端口  -t tcp -n 数字显示 -u udp -p服务进程信息 -l 列表显示
        	systemctl start sshd
        b 虚拟网络编辑器中的网卡设置错误 进行默认还原就可以了(假如还不行就需要下载一个ccleanner清理注册表)
        c 虚拟软件程序运行不正常
        	检查虚拟软件服务是否开启 --window+r --services.msc,
            寻找Vmware相关服务是否开启,将关闭的开启,或者全部重启,重点查看下面两个
            VMware Authorization Service
            VMware NAT Service
        d 电脑bios中有没有开启虚拟化功能
    # 最后还不行1.重新下载服务;2.重启主机;3.重装系统
4.系统管理的基础知识
	-1.系统命令提示符组成
        [root@localhost ~]# 
        只有在命令提示符之后输入命令才有效果
        root 		是通过哪个用户登录的
        @    		分隔符
        localhost 	主机名信息(公司用于区分主机放在哪里楼层)
        ~   		所在目录
    -2.系统命令是由语法规范的
        命令 			 [参数]  			文件/路径
        干的事情         做事情的条件      做事情结果
        systemctl       start             newtork
    -3.linux目录结构
        linux1目录结构一切从根开始
        绝对路径:从根目录开始的路径
            优点: 准确性高
            缺点: 寻找数据更慢
        相对路径:不从根路径开始的路径
            优点: 寻找数据更快
            缺点: 准确定低
5.系统的基础常见命令5-10
	命令分类记忆
    	linux系统多用户
    -1.系统运行
        系统的关机:
            halt  直接关机,不等待
            poweroff 直接关机,不等待
            reboot  直接重启
            shutdown 
                -c  取消关机
                -h 5  五分钟后关机
                -r 5  五分钟之后关机,并重启
                -r 0  立即重启
                -h 0 立即关机
        系统的重启:
    -2.目录相关命令
        1.检查文件/文件是否存在
            ls /etc/hosts
            ls /etc/
            ls -d /etc 有针对的查看目录信息
            ls -l /etc   详细信息
         2.创建新目录
            mkdir /etc/temp
                -p 递归创建,忽略错误提示信息
         3.切换目录
            cd /etc/temp
            cd .. 返回上一级目录
            cd ../.. 放回上上级目录
            cd - 切换到上次来的目录
            cd ~ 切换到家目录
         4.查看所在路径
            pwd 查看当前路径的绝对路径print work directory
     -3.文件相关
    	1.查看文件信息命令
    		ls -l /etc/services  查看文件详细信息
        2.创建一个空文件
        	touch a.txt 
        3.如何对空文件进行编辑
        	- 将文件打开进行编辑
            	vim/vi  ---  编辑文件命令
                第一个步骤:进入到编辑状态(插入模式)
                	按下i键
                第二个步骤:编写内容
                第三个步骤:进行保存关闭文档
                	按esc(退出编辑模式)--:qw!(q退出 w写 !强制)
                    					  q (不保存直接退出)
                        				  w (保存不退出)
                     3 dd   删除光标下面三行
                     u      撤销删除     
                     G      将光标移动到文章底部
                     gg     移动到文章首部
            - 不打开文件进行编辑
            	将屏幕中现实的信息保存到文件中
                第一个步骤:屏幕上显示信息
                	echo "hello world" 
                第二个步骤:将屏幕中显示的信息放入文件中
                	echo "hello world" > oldboy.txt
                说明:
                	>  执行原理:将原文件内容全部删除之后,将新的信息输入
                    >> 执行原理:在源文件最后一行追加上新的信息
         4.查看文件的内容的命令
        	cat --- 查看文件内容
         5.如何复制保存数据
        	# 备份文件:
                copy ---cp
                用法:cp 要复制的数据信息(文件/目录) 目标路径
            #目录备份:
            	cp -r /etc   -r递归赋值
           	补充:目录备份有时需要多次确认
            \cp -r /etc/host/ /tmp/   强行覆盖,加上\
         6.删除数据命令
        	delete ==remove(移除)
            # 删除文件:
            	rm a.txt
               	\rm /tmp/t.txt  # 不要提示信息
                rm -f /tmp/t.txt # 强制删除,不要提示信息
            # 删除目录
            	rm -rf /tmp/alice/  # 删除目录,且必要提示信息
            PS:运维人员两大经典错误
            1.删根目录
            2.删库跑路
         7.移动数据命令
        	move --- mv(移动)
            # 移动文件
            	mv ./a.txt  /tmp/b.txt # 同时支持重命名操作
            # 移动目录
            	mv /tmp/lao/ /test/
    ------------------------------------------------------------

    ------------------------------------------------------------
    系统命令帮助信息查看:
        manual=   man mkdir

9.操作命令以及命令结构2

1.操作命令进行补充
2.快捷键的使用方式
3.vi的详细使用技巧
4.系统的目录结构,系统文件进行解释说明
	linux目录结构:一切从根开始,倒着的树
    window目录结构:按照盘符进行划分 C盘
    linux系统中的挂载技术??
    用户可以将一个目录作为一个存储设备的挂载点,通过挂载点可以看到存储设备中的数据
    
    实际操作演示linux系统挂载过程?
    第一个步骤:  拥有一个存储设备-光驱
    	使光驱加载光盘(和给虚拟机添加iso镜像相同)
    第二个步骤:	在linux中找到光驱设备
        [root@localhost ~]# ls -l /dev/cdrom 
        lrwxrwxrwx. 1 root root 3 May  2 13:35 /dev/cdrom -> sr0
    第三个步骤:  需要将存储设备进行挂载
    	挂载命令语法格式:
        mount 挂载设备文件信息 挂载点(目录信息)
        PS:挂载点目录必须存在
        mount /dev/cdrom /mnt  # 挂载
        umount /mnt    # 取消挂载
5.基础目录结构
	bin			二进制执行命令
    sbin		超级二进制命令
    boot		系统启动文件目录
    dev			设备光驱 硬件
    etc			配置文件目录
    home		普通用户家目录
    lib			库文件存放目录
    lib64		库文件存放目录(64位)
    lost+found   磁盘、文件系统损坏临时存放文件
    mnt			挂载点目录
    opt			程序安装目录
    proc		进程服务文件(里面的东西会存放在内存中,改了的东西重启会失效)
    selinux 	selinux及其的文件(限制root用户)
    sys			虚拟的目录,内存信息
    tmp			临时文件的存放目录
    usr			存放用户的程序
    var			经常变化的文件 系统日志文件

10.目录结构中重要文件

1.网卡配置文件
	[root@localhost tmp]# cd /etc/sysconfig/network-script/ifcfg-eth0 
    TYPE=Ethernet      		--指定网络类型 以太网Ethernet 电话  金融机构(fastEthernet)
    BOOTPROTO=static 		--网络启动协议 如何让主机得到ip地址
    						a 自己手动配置  none  static(静态)
        					b 自动获取地址  dhcpd(了解)
    NAME=ens33				-- 网卡名称 逻辑名称
    UUID=6bacc2d7-2d69-49ba-8dba-76868017f5bd -- 虚拟主机,回个每一个硬件一个唯一标识
    DEVICE=ens33			-- 主机网卡名称 设备名称物理名称
    
    ONBOOT=yes			 	--设置网卡是否处于开启状态
    IPADDR=192.168.31.199    --IP地址
    PREFIX=24				--子网源码255.255.255.0  
    GATEWAY=192.168.31.1	 --网关地址,一个网络到另一个网络的必经之路
    DNS1=8.8.8.8			--ip域名解析
    
2.dns解析文件:需要检查网卡DNS1配置和这个文件
	[root@localhost tmp]# cat /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 8.8.8.8
    
注意:linux中的配置文件修改之后,不会立即生效需要重启相应的服务
	systemclt restart network # 针对所有网卡重启 不建议使用
    ifdown eth0 && ifup eth0  # 针对指定网卡重启 建议使用
    异常问题:网卡配置文件正确 网络无法连接
    systemctl stop NetworkManager  关闭网络管理,有时候莫名其妙出问题

11.系统命令+配置文件:

3.主机名称配置文件
	查看系统版本:[root@localhost tmp]# cat /etc/redhat-release 
				CentOS Linux release 7.7.1908 (Core)
	如何修改主机名称?
	centos7:
    	临时修改:hostname xxxxx
        永久修改:vim /etc/hostname
        通过命令:直接可以即临时修改有永久修改
        hostnamectl set-hostname xxxxx
    centos6:
    	临时修改:hostname xxxxx
        永久修改:vim /etc/sysconfig/network
4.解析映射文件
	window本地解析文件:c:\windows\system32\drivers\etc\hosts
    linux本地解析文件:/etc/hosts
5.磁盘挂载文件
	[root@localhost /]# cat /etc/fstab  # 实现存储设备开启自动挂载配置文件
    /dev/mapper/centos-root 		  		 /          xfs     defaults        0 0
    UUID=028b79a1-ec86-4d29-a3e1-109b2baed401 /boot      xfs     defaults        0 0
    /dev/mapper/centos-swap 				swap       swap    defaults        0 0
    定义存储设备文件信息						挂载点    
    /dev/cdrom								/mnt 	 文件类型 	  defaults		00
6.开机自动启动文件
	[root@localhost system]# ls -l /etc/rc.local 
    总结:rc.local 文件作用
    1.文件中的内容信息,会在主机重启之后进行加载
    2.文件中的编写内容,一定是命令信息
    PS:运维人员的工作宗旨:简单、高效、稳定
-----------------------------------------------------------------
挂载概念:当磁盘存储数据之后,需要讲一个目录建立关系(挂载)
		进入到目录挂载点中,就可以看到磁盘中的数据
# 在系统中对配置进行永久修改时,需要修改配置文件;通过命令修改的,大部分都是临时的

12.系统运行级别:

7.系统运行级别
	window -- 系统出现故障 -- 安全模式
    系统启动: 服务程序 网络 安全服务 --启动级别
    		系统服务启动			 --启动级别
    查看运行级别:
    	[root@localhost system]# runlevel
		N 5
    切换运行界别:
   		临时:
    		init 切换的运行级别
        永久:
    		centos6:vim /etc/inittab  # 里面说明很详细
    		centos7: 
            # 查看有哪些级别:
            [root@localhost system]# ls /usr/lib/systemd/system/runlevel*target
            # 修改:
            [root@localhost system]# systemctl set-default multi-user.target
    centos6:
    	00: 系统的关机级别     init 1 进入到关机状态
    	01   系统的单用户模式	用于修复系统或者重置密码信息 没有网络
        02   系统的多用户模式	正常的系统运行模式  没有网络
        03	系统的多用户模式	正常的系统运行模式   有网络
        04	预留级别
        05	图形化级别
        06	重启级别
    centos7
    	00: 系统的关机级别     init 1 进入到关机状态
    	01   系统的单用户模式	用于修复系统或者重置密码信息 没有网络 
        				(https://www.cnblogs.com/ccti7/p/12059878.html)
    	02   系统的多用户模式						    没有网络
        03	系统的多用户模式	正常的系统运行模式          有网络
        04	预留级别
        05	图形化级别
        06	重启级别
   总结:每个级别有什么用、如何查看系统的运行级别、如何设置
give root password for maintenance(维护)

13.变量:

1.变量概念
    [root@localhost system]# x=1234   # 设置变量
    [root@localhost system]# echo $x  # 调用变量
    1234
2.脚本概念:
	- 将多个命令整合在一个文件中
    - 通过脚本执行脚本文件,做多件事
3.变量文件
	/etc/profile == /etc/bashrc
    作用:让变量信息永久生效
    直接让文件生效方法:source /etc/profile
    
    修改环境变量方法:
   	临时修改:
    PATH=/opt/python36/bin:/opt/python27/bin:/usr/local/sbin
    永久修改:
    vim /etc/profile
    exprot PATH=/opt/python36/bin:/opt/python27/bin:/usr/local/sbin
4.系统别名概念
	说明:ll 就是ls -l 命令的别名
    作用:别名可以使命令操作简单
        
    需求:如何让一个命令操作简单
    cat /etc/sysconfig/network-scripts/ifcfg-ens33
    临时设置:
        # 设置别名
        	alias catnet='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
        # 让别名失效方式
            1.unalias catnet  		取消别名
            2.\rm -rf /test   		撬棍
            3./usr/bin/rm -rf test  绝对路径
   永久设置:
    	第一个历程:编写profile文件
        vim /etc/profile
        alias rm="echo command not exec"
        第二个历程:加载profile
        source /etc/profile
        第三个历程:修改用户家目录中的.bashrc文件
        系统先查看profile之后在查看.bashrc
    总结:环境变量配置以及别名配置相关的文件有哪些
        01:/etc/profile ===/etc/bashrc   国法(全局生效)
        02:~/.bashrc === ~/.bash_profile   家规(指定用户生效)
    补充:
        内置命令: 不需要进行安装
        外置命令: 需要进行安装
5.登陆之前提示文件
	/etc/motd  			登陆之后
    /etc/issue 			登陆之前
	[root@localhost ~]# vim /etc/motd
        ============================
        操作说明:
            1.不能随意使用root用户
            2.删除文件之前,需要备份
        ============================
    如果清空文件内容:
        1.echo '' > /etc/issue   ---清空文件
        2.>/etc/issue
6.和程序软件安装相关的目录
	/usr/local
    [root@localhost ~]# ll -d /usr/local
	drwxr-xr-x. 12 root root 131 Feb 19 18:49 /usr/local
    系统中如何安装软件
    1.yum安装软件   简单快捷    	快餐式安装
    2.rpm安装软件   需要安装包  	    半成品
    rpm -ivh 软件包.rpm
    3.编译安装软件  可以灵活调整	 手动
    ./configure --prefix=/opt/ && make && make install
    下载安装软件利用yum方式
    第一个历程:本地配置源文件
    	去阿里源下载centos7的yum源.repo文件
    第二个历程:下载软件
        yum install 软件名称
        yum install -y vim tree wget net-tools nmap bash-completion(补全部分命令)
    排错流程:
        01:能不能访问外网
            a 访问外网ip地址通不通 网卡地址配置有问题
            b 访问外网名称不通  DNS配置有问题
        02:检查是否已经有下载的进程
            ps -ef == windows 任务管理器-进程 PID成为进程编号
            kill -9 pid号码
        03:yum源文件被修改调整了
7.日志文件保存目录
	/var/log/下面
    两个重要的系统日志文件
    messages    			--记录系统或服务的运行的状态信息和错误信息
    secure(安全)			  -- 用户登录信息	
    
    [root@localhost yum.repos.d]# cat /var/log/secure
    May  3 04:56:52 localhost sshd[13137]: Disconnected from 192.168.31.68 port 59045
	May  3 04:56:52 localhost sshd[13137]: pam_unix(sshd:session): session closed for user root
    01:什么时间登录
    02:登录主机名
    03:是用什么方式进行远程登录
    04:登录情况说明
    
    如何查看日志信息:
    tail -6 /var/log/secure   查看倒数几行信息
    head -6 /var/log/secure   查看前面几行信息
    
    tail -f /var/log/secure   实时查看日志信息
----------------------------------------------------------
普通变量:方便编写脚本文件
环境变量:系统的环境配置有关 PATH(可以让命令操作更简便)
别名:1让命令操作更简单,让长命令边长;2让危险的操作更安全

14.操作命令以及命令结构3

1.硬件信息查看方式
	cpu:
    01 利用文件查看
	cat /proc/cupinfo
    model name	: Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz  品牌
    physical id	: 1 		 cpu颗数
    processor	: 0          
    cpu cores	: 2		    核心数
    
    physical id	: 0        相同的id号,代表一颗cpu,现在这里一共两颗
	physical id	: 0
    physical id	: 1 
    physical id	: 1 
    
    02 利用命令查看
    [root@localhost yum.repos.d]# lscpu
    Socket(s):             2        显示服务器cpu颗数
    Core(s) per socket:    2		每颗cpu有几核
    CPU(s):                4		整个服务器有几核
        
2.内存信息查看
	01 利用文件查看
    cat /proc/meminfo
    [root@localhost yum.repos.d]# cat /proc/meminfo
    MemTotal:        2831228 kB    	总容量
    MemFree:         1185464 kB    	空闲空间
    MemAvailable:    1699804 kB		可用空间
    Buffers:            4220 kB		缓冲
    Cached:           692552 kB		缓存
    SwapCached:            0 kB		交换分区使用
        
    02 利用命令查看
    [root@localhost yum.repos.d]# free -h      ---以人类可读的方式显示内存容量信息
             	 total        used        free      shared  buff/cache   available
    Mem:           2.7G        842M        1.1G         28M        765M        1.6G
    Swap:          1.0G          0B        1.0G
    available <= free + buff/cache
    负载:(cpu处理任务过多)
    01 利用文件查看 
    [root@localhost yum.repos.d]# cat /proc/loadavg
	 0.00 		 0.01 		   0.05
    1分钟负载    5分钟负载      15分钟负载
    
    02 利用命令查看
    [root@localhost yum.repos.d]# w
 	06:59:54 up 17:24,  3 users,  load average: 0.00, 0.01, 0.05
                    
3.磁盘信息/挂载信息
	01 利用文件查看
    [root@localhost yum.repos.d]# cat /proc/mounts
    
    02 利用命令查看
    [root@localhost yum.repos.d]# df -h

15.vi以及操作系统化:

1.vi的使用技巧(编辑命令使用技巧)
	1.vi基本用法
        01:vi 文件名
        02:输入i进入编辑状态
        03:编辑内容
        04:esc  退出编辑状态
        05:wq   保存退出
    2.vi命令详细使用方式
    	vi有三种模式
        01:插入模式
        02:命令模式
        03:底行模式
        三种模式的切换方法:
        命令模式 ---->插入模式
            i    --进入插入模式
            I    --切换到行首进入插入模式
            o	 --光标所在行下面新起一行进行编辑
            O    --光标所在行上面新起一行进行编辑
            a    --将光标移动到右边的下一个字符,进行编辑
            A	 --将光标移动到一行的行尾,进入编辑状态
            C    --将光标到行尾的内容进行剪贴,并进入编辑状态
            cc   --将整行内容进行剪贴,并进入编辑状态
            r    --替换当前光标下面的字符
        只移动光标不进入编辑:
          	G    --将光标移动到文章尾
            gg   -- 将光标移动到文章首
            ngg  --移动当第几行
            $	 --移动到行尾
            ^/0  --移动到行首
        命令模式   --->底行模式:
            /	 --进入搜索状态(向下搜索 n依次向下)
            :    --输入一些命令
            ?	 --进入搜索状态(向下搜索 n依次向上)
       	底行模式 --->命令模式:
            esc
            set nu   ---显示行号
            set nonu ---取消显示
            ctrl + r ---撤销撤销
        特殊方式:
            dd	   --剪贴一行
            3dd    --剪贴三行
            p	   --粘贴
            3p	   --粘贴多行
            yy	   --复制,和p配合使用粘贴
            3yy    --多行复制,和p配合使用粘贴
            u	   --撤销
            dG	   --将光标所在位置内容,到行尾都删除  
        忽略大小写搜索:
            set ic         --忽略大小写
            set noic       --取消忽略
            set ignorecase   --忽略大小写
            set uningorecase  --取消忽略
            /sourch-text\c    --使用\c忽略大小写
        高亮显示:vim
            /搜索一个文件没又得信息  --取消高亮
            :2,4move9        --将2-4行内容移动到第九行后面
            :2,4copy9        --将2-4行内容复制到第九行后面
            :%s/old/young/g  --将文件中old替换为young   %全部 g全局(每行的所有) s替换
            :2,4s/old/young/g   --替换部分内容,2到4行替换
            :12,$s/old/young/g  --从12行到最后范围替换
        批量修改文件内容:
            1.批量注释
            第一个步骤:进入批量编辑模式(视图模式)
            ctrl + v    -- 进入视图模式
            第二个步骤:批量选中要编辑的行
            方向键选择
            第三个步骤:进行批量编辑
            shift+i   --进入单行编辑模式
            第四个步骤:实现批量修改
            按esc
            
            2.批量删除
            第一个步骤:进入批量编辑模式(视图模式)
            ctrl + v    -- 进入视图模式
            第二个步骤:批量选中要编辑的列
            方向键选择
            第三个步骤:进行批量删除
            按d或者x进行批量
            
2.操作系统的优化(基础优化)
	1.了解系统环境
   	两个命令:
    [root@localhost dockerfile]# cat /etc/redhat-release 
    CentOS Linux release 7.7.1908 (Core)    ---  获得系统发行版本和居停系统版本信息
    [root@localhost dockerfile]# uname -a
	Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 	 x86_64 x86_64 GNU/Linux
    PS:记忆一下centos7系统的内核信息
        centos7  具体型号7.5 内核3.10 64位
    2.企业中管理系统用户身份是不同的
    	a 老员工/经理   root用户
        b  新员工       普通与用户
        普通用户如何创建
        	useradd xxx
            password xxx
        普通用户如何切换
        	[xiaoming@localhost ~]$   $表示普通用户
            [root@localhost ~]#       # 表示root用户
        	su - xxx
        普通用户如何查看身份
            [root@localhost ~]# id xiaoming
		    uid=1001(xiaoming) gid=1001(xiaoming) groups=1001(xiaoming)
            [root@localhost ~]# whoami
			root
    3.命令提示符优化
    	优化方法:修改PS1环境变量
        vim /etc/profile
        exprot PS1='[\u@\h \w]\$ '
        [root@localhost ~]# echo $PS1
		[\u@\h \W]\$   
        \u  	表示的是登录用户名
        \h		表示主机名
        \W		表示当前目录
        \d 		代表日期 格式为:周 月 日
        \H		完整主机名
        \t		显示时间 24小时制HH:MM:SS
        \T		显示时间 12小时制
        \A       类似\t
        \v		bash的版本信息
        \w		完整工作目录
        \$		提示字符,root时为#,普通用户为$
    4. 命令提示符如何修改颜色
		linux中如何给信息加颜色
        vim /etc/profile
        export PS1='\[\e[32;1m\] [\u@\h \w]\$ \[\e[0m\]'
        export PS1='\[\e[32;1m\] [\e[33;1m\]\u\e[35;1m\]@\e[31;1m\]\h\e[34;1m\] \w\e[36;1m\]]\e[35;1m\]\$ \[\e[0m\]'
        颜色值设置: PS1中设置字符颜色的格式为:\[\e[F;Bm\],其中“F“为字体颜色,编号为30-37,“B”为背			景颜色,编号为40-47。颜色表如下:
            F       B
            30      40      黑色
            31      41      红色
            32      42      绿色
            33      43      黄色
            34      44      蓝色
            35      45      紫红色
            36      46      青蓝色
            37      47      白色
    3.操作系统优化-yum下载优化
       yum安装优势: 简单便捷
       01:不需要到官方网站单独下载软件包
       02:解决依赖关系                         
       yum repolist   显示安装源列表
       如何确认软件是否安装:
       1.重新安装一遍
       2.使用rpm -qa sl    -q表示查询 -a表示所有
       3.rpm -ql sl        显示安装包下载的所有文件 -l表示列表显示
       4.yum provides ssh  查看命令是由什么安装包提供的
       5.[root@localhost ~/dockerfile]# which ssh  获取命令安装目录
		/usr/bin/ssh   
         rpm -qf  /usr/bin/ssh      查看命令是由什么安装包提供的
         [root@localhost ~/dockerfile]# rpm -ql `which ssh`  通过反引号将命令结合
		package /usr/bin/ssh is not installed                       
       6.rpm卸载软件
        rpm -e  安装软件,建议最好先查询-qa 在通过-e卸载
       

16.操作系统优化续:

1.防火墙服务程序
	centos6:
	查看服务状态:/etc/init.d/iptables status
	临时关闭服务:/etc/init.d/iptables stop
	永久关闭服务:chkconfig iptables off(关)/on(开)
	centos7:
	查看服务状态:systemctl status firewalld
	临时关闭服务:systemctl stop firewalld
	永久关闭服务:systemctl disable firewalld
	简单确认是否运行:systemctl is-active firewalld
	简单确认是否开机运行:systemctl is-enable firewalld
2.系统的selinux服务程序
	selinux服务对root用户权限进行控制
	很多企业中:selinux服务默认关闭
	centos7==centos6
	临时关闭:
		genenforce  查看开启状态
		setenfirce  0(关闭)/1(开启)
	永久关闭:
		vim /etc/selinux/config
		SELINUX=disabled
		PS:如何让selinux配置文件生效,重启(企业中不要立即重启,等其他人或者领导命令)
3.字符编码优化
	什么是字符编码:可以实现对非英文字符的支持
	计算机操作系统是谁发明的? --- 美国人发明 --英语
	支持中文比较好的编码:
	utf-8 比较通用
	GBK   比较国际通用
	
	出现乱码原因:
		01系统字符集设置有问题
		02远程软件字符集编程有问题
		03文件编写字符集,和系统查看的字符集不同意
		
	系统中字符编码设置方式:
	centos6:
	如何查看字符编码:echo $LANG     --LANG用于字符编码设置
	临时修改:LANG=xxx
	永久修改:
		方式一: vim /etc/profile  export LANG='en_US.UTC' 优先级更高,建议使用方式二
		方式二:vim /etc/sysconfig/i18n  LANG='en_US.UTC'  (source重新加载)
	centos7:
	如何查看字符编码:echo $LANG
	临时修改:LANG=xxx
	永久修改:
		方式一:vim /etc/profile  export LANG='en_US.UTC'  优先级更高,建议使用方式二
		方式二:vim /etc/locale.conf  LANG="zh_CN.utf-8"  (source重新加载)
		方式三:localectl set-locale LANG=zh_CN.GBK
4.是xshell远程速度加快
	第一个步骤:vim /etc/ssh/sshd_config
	79 GSSAPIAuthentication no
	115 UseDNS no
	第二个步骤:修改hosts文件
	vim /etc/host
	192.168.31.199   lala    服务器和主机名对应
    第三个步骤:重启ssh远程服务
    systemctl restart sshd
5.系统基础优化总结
	- 命令提示符优化
    - 下载yum源优化
    - 安全相关优化
    	防火墙游湖 selinux
    - xshell远程连接优化
    - 字符编码优化

17.查看文件信息:

1.查看目录或文件属性信息
	ls /dockerfile          		--查看目录数据信息
    ls -l /dockerfile/Dockerfile     --查看目录中文件的属性信息
    ls -l /dockerfile/test.txt		--查看文件属性信息
    ls -ld /dockerfile/				--查看目录属性信息
    ls -la /docklerfile/			--查看目录中所有数据信息
    企业工作的一个问题:
    多个运维人员维护服务器,下班着急回家,将dockerfile目录中的最新的数据文件编辑好
    ls -lt /dockerfile/    			--按照时间进行排序
    ls -lrt /dockerfile/			--按照时间反向排序
    ls -lrth /dockerfile/			--按照人类可读的方式显示
2.查看文件内容信息方法
	命令:cat  a.txt
        	 	-n				--显示行号
     命令:less/more	
     less /etc/service			--类似于看书,一点点查看文件内容  -N显示行号
    	enter			--向下逐行显示
        空格			   --向下逐页显示
        上箭头		       --向上逐行显示
        b				--向上逐页显示
     	/search-text 	 --搜索信息	
        q				--结束查看
      
      more /etc/service
        enter			 --向下逐行显示
        空格			   --向下逐页显示
        f/b		         --向上逐行显示
      
     head  前几行   tail  后几行
     tail -f      根据文件描述符进行追踪,当文件改名或被删除,追踪停止,需要重新追踪
	 tail -F       即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
     日志文件: 文件数据会不断增加,历史有救的日志文件会清空
        tail -F 日志文件
3.直接编辑文件
	扩展:
	输出1到100: echo {1..100}   echo {001..100}
    输出1到10的奇数: echo {1..100..2}
    输出1到10的偶数: echo {0..100..2}
    无规律的数:echo {1,2,3,6,9}  
    创建多个文件/目录:touch  file{1..20} 或 mkdir file{1..20}
    
    如何直接在文件中添加单行内容:echo >> fdsfad  a.txt
    如何直接在文件中添加多行内容:cat >> a.txt <<EOF  开始编辑
    [root@lala ~/dockerfile]# cat >> test <<EOF
    > l am a boy
    > l like you1
    > l hite you
    > EOF
4.过滤筛选文件内容命令
	gerp:过滤筛选信息
    sed:修改替换文件内容 擅长对文件中的行进行操作
    awk:统计分析文件内容 擅长对文件中的列进行操作
    
    grep如何进行过滤:
    01:请筛选出boy的行  					grep 'boy'  test
    02:请筛选boy的行以及上一行信息   		grep -B 1 'boy' test
    03:请筛选boy的行以及下三行信息           grep -A 3 'boy' test
    04:请筛选boy的行以及上下各三行信息       grep -C 3 'boy' test
    05:统计boy在文件中出现了几次			 grep  -c 'boy' text
        
    sed如何进行过滤:
    01:请筛选出boy的行  					sed -n "/boy/p" test
    
   	awk如何进行过滤:
    01:请筛选出boy的行  					awk  "/boy/" test
5.修改文件部分内容
	01.sed命令  真正修改文件内容
   	需求:将test文件内容 所有的boy信息替换为python
    sed -i 's/boy/python/g'  test
    02:tr命令  临时修改文件内容
    需求:将test文件内容 所有的python信息替换为boy
    echo "123" | tr "123" "abc"
    tr   "123" "abc" < test
    tr "a-z" "A-Z" < text
    替换信息的情况:tr命令替换信息是一对一的替换
    01.替换的内容字符>修改后的内容字符数    abcd>123
    [root@lala ~/dockerfile]# echo 1234 |tr 1234 "abc"
	abcc
    02.替换的内容字符<修改后的内容字符数    abcd<12345
    [root@lala ~/dockerfile]# echo 1234 |tr 123 "abcd"
	abc4
    03.替换的内容字符=修改后的内容字符数    abcd=1234
    [root@lala ~/dockerfile]# echo 1234 |tr 1234 "abcd"
    abcd
	04.特殊情况
    [root@lala ~/dockerfile]# echo 123321 |tr 123 "abc"
	abccba
-----------------------------------------------------------
扩展:
    如何创建多个用户?
    1.for num in {01..20};do useradd user_$num;done
    如何批量设置用户密码?
    1.echo 123456 | passwd --stdin user_01
    创建用户同时设置密码?
    useradd user_02; echo 123456 | passwd --stdin user_02

18.文件属性:

1.文件属性
[root@lala ~]# ls -li .
total 60
 8409154   -    rw-------. 1  root root     1685  Feb   19 19:01 anaconda-ks.cfg
11465360   -    rw-r--r--  1  root root     47703  May  4 22:21 a.txt
    01     02     03       04  05   06         07    08
    01. 文件数据的inode信息: index node == 索引节点  
	    作用: 快递从磁盘中找到数据信	
    02. 文件的数据类型: 文件 目录 链接文件 设备文件
	    PS: linux系统中一切皆文件
		作用: 指明数据的文件类型
	03. 权限位信息: r ead  读  w rite 写  execute 执行
	    作用: 控制让不同的用户对文件可以有不同的权限           
    04. 文件目录的硬链接数: 就类似于超市的多个门
	    作用: 可以多个路径查看数据信息	
    05. 文件所属用户信息(属主): 数据(孩子小于16岁) (属主)监护人
	    作用: 文件的创建或者拥有者
	06. 文件所属组信息(属组):   数据(孩子小于16岁) (属主)监护人父亲 (属组)亲人 (隔壁老王)其他用户 作用: 文件或数据的所属用户组
    07. 文件的大小信息
	08. 文件的时间信息
2.文件属性详细说明--文件类型
    1. 文件类型概念
        windows: 区分文件的类型 扩展名
        linux:   不用扩展名来区分文件类型

	2. linux系统区分文件类型方法
        a 颜色区分
        b 利用属性信息区分
        c 利用特殊命令区分 file a.txt
        
3. linux系统中的常见文件类型
	   d   -- 目录文件类型
	   -   -- 普通文件 
	        ①. 纯文本文件 text /etc/hosts		--- 文本文件(可以直接编辑查看的普通文件)
            ②. 二进制文件 binary /bin/ls      	--- 命令文件(不可以编辑)
            ③. 数据型文件 data /tmp/etc.tar.gz	--- 数据文件(压缩的文件)
	   l   -- 链接文件(快捷方式)
	        创建方法: ln -s /oldboy/oldboy.txt /oldboy/oldboy_link.txt  
		                      源文件             快捷方式(软链接文件)
	   c/b -- 块文件/字符文件(设备文件)
	          块文件: 存储的设备文件  光驱设备文件 磁盘
			  字符文件: 根本停不下来的输出字符信息
	   
	          磁盘设备文件 /dev/sda          磁盘文件
              随机设备文件 /dev/urandom      
              输出设备文件 /dev/zero         黑洞出口文件???  磁盘分区
              输入设备文件 /dev/null         黑洞入口文件???  定时任务
       s   -- socket文件(网络编程)
4. 扩展命令说明:
	    a 显示文件信息类型命令: file
		b 显示命令绝对路径信息: which
		  [root@oldboyedu ~]# which cat
          /usr/bin/cat
		c 显示命令路径以及文件: whereis 
		  作用: 显示命令路径以及命令相关的帮助手册文件路径
		d 快速定位文件路径信息 locate updatadb
		  locate 文件名称 	--- 可以显示文件所在的路径信息
		  updatedb         	--- 建立文件和目录结构对应关系,便于检索
          PS: 默认centos7没有以上命令,需要安装软件
		  yum install -y mlocate
		e 快速查找数据信息命令  	
		find命令语法
          find 找寻的路径范围 -type 类型信息 -name "文件名称"	  
		  [root@oldboyedu etc]# find  /etc -type f -name "ifcfg-eth0"
          /etc/sysconfig/network-scripts/ifcfg-eth0
          问题: 一个文件名称没有记全,如何查看文件路径
          [root@oldboyedu etc]# find  /etc -type f -name "*eth0"
          /etc/sysconfig/network-scripts/ifcfg-eth0
          [root@oldboyedu etc]# find  /etc -type f -name "if*h0"
          /etc/sysconfig/network-scripts/ifcfg-eth0
            
5.find命令查找信息补充
    查看找文件数据信息:
    精确查找:
    find 路径信息 -type 文件类型 -name "文件名"
    模糊查找:
    find 路径信息 -type 文件类型 -name "文件名*"
    find 路径信息 -type 文件类型 -name "*文件名"	
	find 路径信息 -type 文件类型 -name "文*件名"
	忽略大小写查找:
	find 路径信息 -type 文件类型 -iname "文件名*"
	根据数据大小查找数据:
	find /oldboy -type f -size +100   --- 找出大于100K的文件
	find /oldboy -type f -size -100   --- 找出小于100K的文件
	find /oldboy -type f -size +1M    --- 找出大于1M的文件
    `b'    for 512-byte blocks (this is the default if no suffix is used)
    `c'    for bytes   (推荐)
    `w'    for two-byte words
    `k'    for Kilobytes (units of 1024 bytes) (推荐)
    `M'    for Megabytes (units of 1048576 bytes) (推荐)
    `G'    for Gigabytes (units of 1073741824 bytes)
    根据目录指定层级进行查找数据(进行递归查找)
	[root@oldboyedu oldboy01]# find /oldboy -type f -name "Oldboy*"
    /oldboy/oldboy01/Oldboy.txt
    /oldboy/Oldboy.txt
    [root@oldboyedu oldboy01]# find /oldboy -maxdepth 1 -type f -name "Oldboy*"
    /oldboy/Oldboy.txt
    [root@oldboyedu oldboy01]# find /oldboy -maxdepth 2 -type f -name "Oldboy*"
    /oldboy/oldboy01/Oldboy.txt
    /oldboy/Oldboy.txt
    [root@oldboyedu oldboy01]# find /oldboy  -type f -name "Oldboy*" -maxdepth 1
    find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.
    /oldboy/Oldboy.txt
	根据数据的权限进行查找数据???
	根据数据的时间信息查找???  
    将30天以前的所有数据进行删除?
6. 显示目录结构信息
    tree /oldboy 		--- 显示指定目录中的所有数据和所有结构信息
    tree -L 2 /   		--- 查看目录结构层级信息
    tree -d /oldboy   	--- 显示目录中所有结构信息	

19.压缩文件

1.系统中如何对文件进行压缩处理
    压缩的命令  tar 
	压缩命令语法:
	tar zcvf /oldboy/oldboy.tar.gz  指定要压缩的数据文件  
	z  压缩的方式 为zip
	c  创建压缩包文件
	v  显示压缩的过程
	f  指定压缩包文件路径信息
    压缩数据方法:
    [root@oldboyedu oldboy]# tar zcvf /oldboy/oldboy.tar.gz /oldboy/services 
    tar: Removing leading `/' from member names
    /oldboy/services
	检查是否压缩成功:
	如何解压数据包
	tar xvf /oldboy/oldboy.tar.gz
	确认解压后的文件和源文件是否一致
	1. 看文件的大小和时间信息
	2. 利用vimdiff或者diff比较两个文件内容是否有区别
    在不解压情况下查看压缩包里面的数据
	tar tf /oldboy/oldboy.tar.gz
 
    压缩过程信息说明
    [root@oldboyedu oldboy]# tar zcvf oldboy.tar.gz /oldboy/services 
    tar: Removing leading `/' from member names     --- 默认将压缩时绝对路径的根信息移除
    /oldboy/services  --- 需要压缩的文件数据信息
	相对路径进行压缩
	[root@oldboyedu oldboy]# tar zcvf oldboy.tar.gz ./services 
    ./services
    [root@oldboyedu oldboy]# tar tf oldboy.tar.gz 
    ./services

    在压缩过程中排除指定数据不要被压缩
	tar命令排除参数
		--exclude=PATTERN   exclude files, given as a PATTERN  -- 排除指定单个文件数据
	-X, --exclude-from=FILE	exclude patterns listed in FILE    -- 批量排除多个文件
	
	多个文件进行排除
	第一个历程: 编写好排除文件
	[root@oldboyedu oldboy]# vim /tmp/exclude.txt 
    /oldboy/oldboy.txt
    /oldboy/oldboy.avi
    /oldboy/oldboy.jpg
    /oldboy/oldboy.png
	
	第二个历程: 执行命令进行批量排除
	[root@oldboyedu oldboy]# tar zcvf /tmp/oldboy05.tar.gz /oldboy --exclude-from=/tmp/exclude.txt 
    tar: Removing leading `/' from member names
    /oldboy/
    /oldboy/services
    /oldboy/oldboy01/

	总结:排除指定数据信息需要定义好路径信息
	路径信息全部采用绝对路径,源码文件,压缩文件,排除文件路径类型必须相同
	[root@oldboyedu /]# tar  zcvf /tmp/oldboy03.tar.gz /oldboy --exclude=/oldboy/oldboy.txt
    tar: Removing leading `/' from member names
    /oldboy/
    /oldboy/services
    /oldboy/oldboy01/
	
	路径信息全部采用相对路径
	[root@oldboyedu /]# tar zcvf /tmp/oldboy04.txt.tar.gz ./oldboy --exclude=./oldboy/oldboy.txt
    ./oldboy/
    ./oldboy/services
    ./oldboy/oldboy01/
2.解压参数
	tar xvf nginx.tar.gz
    	-C			--指定解压路径
将一个文件下的txt文件进行压缩?
	tar -zcvf txt.tar.gz `find ./ -type f -name '*.txt'`
    find ./ -type f -name '*.txt' exec tar -zcvf {} \; 
posted @ 2020-05-05 13:29  楠海  阅读(413)  评论(0编辑  收藏  举报