admin 管理员组

文章数量: 1184232

文章目录

  • 两周知识回顾
  • 01.硬件知识回顾部分
      • 1)硬件分类概念介绍 (了解)
      • 2)硬件组成部分说明
      • 3)硬件重要组成说明
      • 4)硬件性能指标介绍
      • 5)企业存储数据方案
  • 02.系统安装部署阶段回顾
      • 1)操作系统概念介绍
      • 2)操作系统发展历史
      • 3)操作系统版本选择
      • 4)操作系统安装部署
  • 03.系统远程连接阶段回顾
      • 1)掌握系统网络配置方法
      • 2)掌握远程软件配置方法
      • 3)掌握远程连接配置方法
      • 4)掌握远程连接排错思路
  • 04.系统基础命令阶段回顾
      • 1)掌握系统必知必会内容
      • 2)掌握系统运行管理命令
      • 3)掌握系统目录相关命令
      • 4)掌握系统文件相关命令
      • 5)掌握系统命令获取帮助
      • 6)掌握系统快捷方式使用
  • 05.系统目录结构阶段回顾
      • 1)操作系统挂载概念
      • 2)操作系统目录结构
      • 3)操作系统重要文件
      • /etc/
      • /var
      • 4)操作系统软件安装
      • 5)操作系统信息查看
  • 06.系统基础优化阶段回顾
      • 1)操作系统用户优化
      • 2)操作系统下载优化 yum
        • 阿里云下载优化:
        • 清华源下载优化:
      • 3)操作系统安全优化
      • 4)操作系统时间优化
      • 5)操作系统字符优化
      • 6)操作系统远程优化
      • 7)系统命令提示优化
      • 作业:

两周知识回顾

01.硬件知识回顾部分

1)硬件分类概念介绍 (了解)

· 硬件用途分类:家用主机设备 企业服务器(物理主机 云主机)
· 硬件尺寸分类
服务器尺寸u≈4.445cm 1u 2u 4u
机架服务器 刀片服务器 塔式服务器
· 硬件性能分类:pc(x86_64) 小型机服务器(unix) 大型机服务器(unix)

2)硬件组成部分说明

· cpu 运算/控制
· 内存 临时存储
用户(使用浏览器,输入域名进入网站看个图片)10M–> 解析–> 网站IP地址 --> 互联网 -->先放缓存 --> 网站服务器(nginx httpd/tomcat/python)磁盘中(存储数据)
· 磁盘 永久存储
· 网卡 网络通讯
· 电源 供电设备
· 主板 将所有硬件信息进行整合
· 风扇 硬件散热
· 阵列卡Raid 将多个磁盘进程整合
· 远程管理卡 远程开关机 安装系统

3)硬件重要组成说明

· cpu信息 :常用型号志强系列Xeon(登陆阿里云控制台查看了解)核数(并行处理任务的能力)路数(cpu颗数)主频 缓存(L1/L2/L3)
· 内存信息 :进程信息(运行的程序) 缓冲区加快存储数据 缓存区(加快读取数据)


PS 命令 - report a snapshot of the current processes.
报告目前进程一个快照信息,不能实时查看


[root@jason ~]# ps -e   #显示所有进程  
 PID TTY          TIME CMD
1 ?        00:00:00 init
2 ?        00:00:00 migration/0
3 ?        00:00:00 ksoftirqd/0
4 ?        00:00:00 watchdog/0
5 ?        00:00:00 migration/1
6 ?        00:00:00 ksoftirqd/1

[root@jason ~]# ps aux   #不区分终端,显示所有用户的所有进程
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      4535  0.0  0.5  64340 11208 ?        S    18:59   0:00 /usr/libexec/notification-daemon
root      4538  2.8  0.4  51116  8712 pts/2    SL+  18:59   0:44 mplayer /mnt/usb/music/20080625211631.mp3 /mnt/usb/music/46250194.mp3 /mnt
root      4568  0.6  1.1  99516 24752 ?        S    19:05   0:07 gedit file:///root/Desktop/csf
root      4624  0.0  0.0   5888  1476 pts/3    Ss   19:13   0:00 bash
root      4693  6.3  0.7  60096 15612 ?        SN   19:25   0:00 /usr/bin/python -tt /usr/libexec/yum-updatesd-helper --check --dbus

[root@jason ~]# ps -ef   #显示所有进程的UID,PPIP,C与STIME栏位
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 18:24 ?        00:00:00 init [3]                                                                          
root         2     1  0 18:24 ?        00:00:00 [migration/0]
root         3     1  0 18:24 ?        00:00:00 [ksoftirqd/0]
root         4     1  0 18:24 ?        00:00:00 [watchdog/0]
root         5     1  0 18:24 ?        00:00:00 [migration/1]

[root@jason ~]# ps -u oldboy   #显示oldboy用户的所有进程
  PID TTY          TIME CMD
 3804 ?        00:00:00 httpd
 3805 ?        00:00:00 httpd
 3806 ?        00:00:00 httpd
 3807 ?        00:00:00 httpd
 3808 ?        00:00:00 httpd
 3809 ?        00:00:00 httpd
 3810 ?        00:00:00 httpd
 3811 ?        00:00:00 httpd

top - display Linux processes*
显示linux系统进程信息

[root@jason ~]# top         #显示系统进程信息
[root@jason ~]# top -b      #以批处理模式显示程序信息
[root@jason ~]# top -S      #以累积模式显示程序信息
[root@jason ~]# top -n 2   #设置信息更新次数,表示更新2次后终止更新显示
[root@jason ~]# top -d -3   #设置信息更新时间,表示更新周期为3秒
[root@jason ~]# top -p 1138  #显示进程号为1138的进程信息,CPU、内存占用率等

· 磁盘信息
磁盘容量(单位 Byte --> KByte --> MB --> GB -->TB --> PB)
磁盘接口(SATA --> SCSI -->SAS -->PCI-E)
磁盘转速 (10Krpm 15Krpm)
· 电源 冗余能力(双路电源 UPS不间断供电系统 发电机)

· 阵列卡 将多块硬盘逻辑整合为一块
1.提升单块硬盘容量
2.提升硬盘安全性能 RAID1 RAID5
RAID1
优势:提高数据存储安全性
缺点:损失磁盘所有容量的一半 存储效率低
3.提升硬盘存储效率


RAID0
优势:提升存储数据效率
缺点:安全性低


RAID5 最少三块,每块盘生成校验文件 重要!
优势:允许坏一块磁盘,安全性高 读写效率高
缺点:损失一块磁盘容量


raid 6:
优势:安全性高,读写效率高,可以坏两块磁盘
存储:损失一块磁盘容量
RAID6实现方式:
带有两种校验的独立磁盘结构,两种校验方法,效率低,存储率低,可靠性高,解决两块磁盘失效,没有统一的校验,最少4块磁盘。
P+Q算法横向
DP算法斜向


raid 10/01:
优势:安全性高 读写效率高
存储:损失一半容量
dell服务器阵列配置:https://wwwblogs/passzhang/articles/8672029.html

· 远程管理卡 网卡网口 (管理IP地址)
DELL iDRAC:192.168.10.1
IBM IMM:192.168.70.125
HP iL02:

4)硬件性能指标介绍

CPU --> 内存 --> 网卡 --> 固态硬盘 --> 机械硬盘

5)企业存储数据方案

高并发情况:
存储数据 --> 内存中(缓冲区) --> 定时定量 --> 磁盘中
读取数据 --> 内存中(缓存区) <–磁盘(热点数据)
低并发情况:
存储数据 --> 磁盘中
读取数据 --> 内存(缓存)<–磁盘(热点数据)

02.系统安装部署阶段回顾

1)操作系统概念介绍

操作系统:人管理硬件的一个中介
操作系统组成部分:内核 命令解释器 软件程序
系统特点:开源 多用户 安全性高 服务器常用操作系统

2)操作系统发展历史

1969贝尔实验室(unix)
1986教授谭邦宁(minix教学)
大胡子斯托曼(创办FSF自由软件基金会,成立GNU项目,目的是开发出一个类unix系统,制定了GPL通用许可协议)
1991年芬兰大学托瓦兹开发了linux内核,最终 GNU+内核+linux

3)操作系统版本选择

常用的Redhat/Centos Ubuntu/Debian SUSE/Fedora下载了解看看
下载网址:
官方网站下载(www.centos)
新版本下载链接:https://wiki.centos/Download
旧版本下载链接:http://vault.centos/
阿里云镜像: https://developer.aliyun/mirror
网易镜像: http://mirrors.163/
搜狐镜像: http://mirrors.sohu/
科技大学: http://mirrors.ustc.edu/
清华大学: https://mirrors.tuna.tsinghua.edu/

4)操作系统安装部署

虚拟化软件概念: 虚拟出来多个真实系统环境, 共用硬件资源
虚拟化环境(vmware)部署:软件安装好---->虚拟网络编辑器设置(vmnet8 nat)
1)创建虚拟主机
2)配置虚拟网络
PS:
a 系统虚拟化功能是否开启 bios中设置
b 虚拟软件服务是否开启 windows下输入win+r --> services.msc --> 将vmware服务开启
c 无法运行虚拟主机常见原因,开启虚拟打印机,虚拟主机进程开启多个了 清理虚拟主机存储目录


a 获取下载获取系统镜像 xxx.iso
b 将镜像文件加载到光驱
c 启动虚拟主机安装系统
centos install 7 -->修改网卡名称 :net.ifnames=0 biosdevname=0
修改网卡和主机名 -->IP地址 10.0.0.200 掩码(划分地址范围 网关地址:从一个网络到其他网络必经之路)
0.0.0.0 ~ 255.255.255.255 IPV6
配置网卡地址信息 系统中可以重新配置 nmtui ifcfg-eth0
d 进行磁盘分区配置 /dev/sda1- /boot /dev/sda2- swap 8G /dev/sda3- / 按需划分(标准 数据重要 灵活分区)
e 选择系统预装软件 最小化安装(1236)
f 进行时间信息调整,设置密码 系统中可以重新调整 timedatactl

03.系统远程连接阶段回顾

1)掌握系统网络配置方法

方法一:图形界面配置

nmtui

提示
a.网卡地址信息确认正确
b.确认networkManager网络管理服务是否开启

方法二:编辑文件配置

vi /etc/sysconfig/network-scritps/ifcfg-eth0  

确认网络服务是否重启:

systemctl restart network

问题说明:
重启网络服务,网卡地址还是不正确
1)检查确认网络配置
2)先将NetworkManager服务关闭,设置完毕无异常后再开启

设置完毕检查确认工作
测试是否可以访问外网:ping 223.5.5.5 如果不通–>ping 10.0.0.254
测试是否可以域名访问:ping www.baidu

2)掌握远程软件配置方法

xshell
https://blog.csdn/liitdar/article/details/79911471 xshell设置及常见问题

3)掌握远程连接配置方法

配置好:地址(10.0.0.200)端口(22)协议(ssh)用户名 密码

4)掌握远程连接排错思路

a 确认链路是否畅通
ping ip(10.0.0.200)
b 确认是否有阻止策略
c 确认远程服务是否开启

[E:\~]$ telnet 10.0.0.200 22
Connecting to 10.0.0.200:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].
SSH-2.0-OpenSSH_7.4

[root@jason ~]# systemctl status sshd

如果重启失败可以手动关闭再重启服务

[root@jason ~]#  ps -ef|grep sshd         ps -ef     ---显示所有程序。显示UID,PPIP,C与STIME栏位。
[root@jason ~]#  systemctl disable xxx进程        	停止进程

强制停止进程方法
方法一

[root@jason ~]#  kill 加进程编号  举例:kill 7340 sshd   -----杀死进程,反复执行命令会有提示
[root@jason ~]#  kill -9 进程号码    ---强行杀死顽固进程(千万要慎用)

方法二:需要yum下载psmisc工具

[root@jason ~]#  killall 进程名(sshd)                            -----杀死进程,反复执行命令会有提示

方法三

[root@jason ~]# pkill  sh(跟sh沾边的进程就杀,比如sshd就会被杀掉)            ----模糊杀进程,不会有提示

示例:

[root@jason ~]# netstat -ltunp|grep 22    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6682/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      6682/sshd                    

netstat-----用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
[root@jason ~]# netstat -ltun
[root@jason ~]# netstat -ltunp|grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6682/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      6682/sshd                              
-l   ---列表显示详细信息
-n  ---端口号以数字显示
-t   ---tcp方式进行通讯
-u  ---udp方式进行通讯
-p  ---显示端口号对应进程信息

列出所有端口 (包括监听和未监听的)

netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口        

列出所有处于监听状态的 Sockets

netstat -l        #只显示监听端口
netstat -lt       #只列出所有监听 tcp 端口
netstat -lu       #只列出所有监听 udp 端口
netstat -lx       #只列出所有监听 UNIX 端口

显示每个协议的统计信息

netstat -s   显示所有端口的统计信息
netstat -st   显示TCP端口的统计信息
netstat -su   显示UDP端口的统计信息

在netstat输出中显示 PID 和进程名称

netstat -pt
netstat -p   可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。

04.系统基础命令阶段回顾

1)掌握系统必知必会内容

· 什么是命令提示符
· 命令语法格式信息 命令 参数 对象
· 系统目录结构信息 一切从根开始(绝对/相对路径)

2)掌握系统运行管理命令

shutdown -h/-r/-c

3)掌握系统目录相关命令

· 创建目录:mkdir -p 递归创建目录信息

mkdir -p /oldboy/oldboy01
mkdir -v 可以显示创建的目录的提示信息
mkdir -m 创建目录时设置目录权限

· 查看目录: ls xxx

ls   ---list(列表展示数据信息)
ls   /oldboy  查看根下面有没有这个目录
ls -d  ---只查看指定目录是否存在
ls -l    ---查看数据详细属性信息
ls -a   ---查看所有文件信息(包含隐藏文件)
ls -t    ---  查看数据信息按时间排序  
ls -r    --- 查看数据信息反向排序
ls -S   --- 查看数据信息按照大小排序
ls -F   ---查看目录信息后面会有/标记
ls -al   ---查看目录及文件权限

· 使用目录:cd xxx
常见用法:cd ~ cd …/ . cd - cd (绝对路径/相对路径)-这个参数等价于$OLDPWD环境变量
· 所在路径:pwd
· 删除目录:rm -rf /目录信息
删除文件命令信息:

rm      ---remove 删除
rm -f   文件信息    ---强制删除文件信息
rm -rf  目录信息    ---强制删除目录信息
rm -rf /                  ---默认不允许直接删除/目录
删除前最好先移动一下避免误删公司重要文件

移动文件命令信息:

mv  --move  
mv  /移动数据 /移动路径   
mv -t /移动路径 /移动数据  对调一下
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

复制文件命令信息:

cp   copy
cp /文件信息 /备份目录
cp -r /目录信息 /备份目录
cp -a /目录信息 /备份目录
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

4)掌握系统文件相关命令

· 创建文件:touch 路径 文件信息(修改文件的时间戳信息)
· 编辑文件

方法一:vi vim

三种模式
a 命令模式 —> i I a A o O s S C —>编辑模式
—> : / ? —>底行模式
b 编辑模式 —> esc —>命令模式
c 底行模式 —> esc —>命令模式

使用技巧
如何快速移动光标:

shift+g  /大写字母G               ---快速移动光标到最后一行
gg                              ---快速移动光标到首行
200gg   到200行     300G也可以过去 ---移动到指定行
shift+4  $                      ---快速移动光标到一行的行尾  end也可以 
shift+6  ^                      ---快速移动光标到一行的行首   home和0也可以

如何快速编辑文件:

  yy                          ---进行一行内容快速复制
 3yy                          ---进行三行内容快速复制
  p                           ---粘贴复制的内容
  3p                          ---粘贴三次复制的内容
  dd                          ---删除(剪切)光标所在行内容
 3dd                          ---删除(剪切)三行内容
  dG                          ---将光标一下所有行内容都删除(剪切)
   C                          ---删除光标之后的内容并进入编辑状态
   r                          ---替换指定字符信息
   R                          ---连续替换多个字符信息

.特殊操作技巧

u        ---撤回操作  undo
ctrl+r  ---取消撤回 redo

编辑模式:

 i       ---将光标所处位置进行编辑状态
 I       ---将光标移动到行首进入编辑状态
 o       ---在当前行下面新起一行进入编辑状态
 O       ---在当前行上面新起一行进入编辑状态
 a       ---在当前光标位置下一个字符进入编辑状态
 A       ---将光标切换到一行行尾进入编辑状态
 s       ---将光标所在文件字符删除并进入编辑状态
 S       ---将光标所在位置整行删除并进入编辑状态
 r       ---将光标所在位置字符进行单个替换
 R       ---将光标所在位置字符进行连续替换

底行操作命令信息:

:wq                 ---保存退出
:w                  ---保存
:q                  ---直接退出
:wq!               ---强制保存退出
:q!                ---强制直接退出
:set  nu            ---显示文件行号信息
:set nonu           ---取消行号显示
:  noh               ---取消高亮  或者搜一个文本没有的内容
:%s###g             ---加%替换文件所有内容   
:s###g              ---将光标所在行内容做替换
:2s###g             ---替换第2行的内容
:2,4s###g           ---替换2到4行的内容
:2,$s###g          ---将第二行到结尾最后一行进行替换
:2,$s###           ---g代表全局替换,不加g就是将一行中第一个匹配的信息做替换
:1,3copy3           ---将连续的多行内容进行复制操作
:1,3move3          ---将连续的多行内容进行剪切操作
set ic              ---设置过滤数据时,忽略大小写进行过滤
set  icnorecase     ---设置过滤数据时,忽略大小写进行过滤
/xx信息              ---文件中过滤指定内容  n 继续向下查找 N继续向上查找
                        头部开始查找
/xx信息\c            ---忽略大小写
?xx信息             ---文件中过滤指定内容(尾部开始查找)
                      n继续向上查找   N继续向下查找

批量编辑多行信息
添加注释信息:
第一个里程:先将光标移动到要编辑内容的第一行
第二个里程:进入视图块模式 ctrl +v
第三个里程:移动光标选中多行信息
第四个里程:进入编辑模式
shift+i —编辑信息
第五个里程:退出编辑模式
esc

取消注释信息:
第一个里程:先将光标移动到要编辑内容的第一行
第二个里程:进入视图块模式 ctrl +v
第三个里程:移动光标选中多行信息
第四个里程:删除选中的信息
d或者x

方法二:echo >/>>
利用echo编辑文件内容
echo oldboy > oldboy.txt —清空文件信息,添加指定内容
echo oldboy >> oldboy.txt —向文集最后一行追加新的信息

方法三
利用cat编辑文件内容

cat >> oldboy.txt <<EOF   EOF标记可以自行修改
>oldboy01
>oldboy02
>oldboy03
>EOF
[root@linux67 oldboy]# cat oldboy.txt 
oldgirl
oldboy01
oldboy02
oldboy03
[root@linux67 oldboy]# cat >> oldboy.txt <<oldboy
> oldgirl01
> oldgirl02
> oldboy
[root@linux67 oldboy]# cat oldboy.txt 
oldgirl
oldboy01
oldboy02
oldboy03
oldgirl01
oldgirl02

方法四:利用sed命令编辑文件内容
内容太多,详见:https://man.linuxde/sed

· 查看文件
方法一:cat -n 显示行号
方法二:head / tail -f
方法三:less / more
less (读书一样看文件 按行 回车↓/往上↑ 按页 空格↓/b↑)
more(读书一样看文件 按行 回车↓/往上shift+↑ 按页 空格↓/b↑)多个百分比查看
· 备份文件:cp /etc/文件 /tmp cp -r 目录A /目录/ 递归备份
· 移动文件:mv 数据信息 路径 mv 重命名

5)掌握系统命令获取帮助

方法一:help
命令 --help —获得参数帮助
方法二:man
man 命令
方法三:获取内置命令帮助信息
help 内置命令

6)掌握系统快捷方式使用

1)利用方向键 ↑ ↓ —快速调取历史命令(输入命令都是临时保存在内存中 --> 保存在磁盘文件 cat ~/.bash_history)
2)快速移动光标
ctrl + a —将光标快速移动到行首
ctrl + e —将光标快速移动到行尾
ctrl + ← → —将光标按照单词进行左右快速移动
3)快速操作命令信息
ctrl + u —将光标之前的内容进行剪切
ctrl + k —将光标之后的内容进行剪切
ctrl + w —以空格作为分隔 剪切每个字符串信息
ctrl + y —将剪切的内容进行粘贴
4)特殊功能快捷方式
ctrl + c(cancel) —中断或取消命令的执行过程
ctrl + l (clear) —清屏
ctrl + s —进入锁定状态
ctrl + q —退出锁定状态

05.系统目录结构阶段回顾

1)操作系统挂载概念

什么是挂载:给存储设备文件创建一个挂载点,将数据存储在挂载点中,就等于存入了磁盘
实现挂载方式:mount 存储设备文件(本地设备 网络存储设备NFS) 挂载点目录(空目录)
实际操作演示:实现光驱挂载
a 让系统加载光驱设备
b 可以进行挂载操作 mount /dev/cdrom /mnt
c 进入挂载点目录检查

PS:如何搭建企业本地yum仓库?

2)操作系统目录结构

/bin  --> /usr/bin      ---保存系统命令文件信息
/sbin --> /usr/sbin 
/boot                   ---负责引导系统启动(批量安装系统 利用cobbler  kickstart两个软件)
 /dev                   ---存储设备文件保存目录    
                           光驱设备:/dev/cdrom  --> /dev/sr0
                           磁盘设备:/dev/sda1
                           字符流文件:生成随机数  举例 /dev/urandom
/etc                    ---保存系统或者软件服务配置文件信息
/home                   ---用户家目录
/root                   ---管理员家目录
/lib --> usr/lib        ---存放库文件目录
/mnt                    ---临时挂载点
/opt     /usr/local     ---存储第三方软件程序信息
/usr                    ---根目录替身,也会存放第三方软件
/proc                   ---存储内核  进程  硬件信息  (存储在内存中)      
/tmp                    ---临时回收站(临时目录)
/var                    ---存放经常变化的数据文件信息目录(日志文件)

补充:如何在系统中生成随机数(类似验证码)

[root@jason ~]#  echo $RANDOM
22911
[root@jason ~]#  echo $RANDOM
29465
[root@jason ~]#  echo $RANDOM
9780

利用tr命令: tr -cd 'a-zA-Z0-9'  </dev/urandom |head -c 6 ( -c 查看文件前几个字符)                
 -c, -C, --complement    use the complement of SET1
                         取代所有不属于第一字符集的字符;
 -d, --delete            delete characters in SET1, do not translate
                         删除所有属于第一字符集的字符;不做替换
 -s, --squeeze-repeats   replace each input sequence of a repeated character
                        that is listed in SET1 with a single occurrence
                        of that character
                        把连续重复的字符以单独一个字符表示;
-t, --truncate-set1     first truncate SET1 to length of SET2
    --help     display this help and exit
    --version  output version information and exit
                        先删除第一字符集较第二字符集多出的字符。

tr命令详解:https://man.linuxde/tr

字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。


将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:‘ABD-}’、‘bB.,’、‘a-de-h’、‘a-c0-9’都属于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。

使用tr删除字符:
echo "hello 123 world 456" | tr -d '0-9'
hello  world 
将制表符转换为空格:
cat text | tr '\t' ' '
字符集补集,从输入文本中将不在补集中的所有字符删除:
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
 1  2  3  4

此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

3)操作系统重要文件

/etc/

1.网卡配置文件 :/etc/sysconfig/network-scritps/ifcfg-eth0
文件内容信息:地址信息
文件配置生效:重启网络服务 systemctl restart network 或者 ifdown/ifup

2.DNS服务配置文件
文件路径信息:/etc/resolv.conf
文件内容信息:nameserver xxxx
文件配置生效:即时生效

3.本地解析文件
文件路径信息:/etc/hosts
文件内容信息:IP地址信息 域名名称
文件配置信息:即时生效

4.主机名称配置文件:hostname -i 查看主机ip地址
文件路径信息:/etc/hostname
文件内容信息:主机名称
文件配置生效:重启系统 永久配置
配置临时生效:hostnamectl set-hostname xxxx名称信息(临时既永久生效)

5.系统自动挂载文件:
文件路径信息:/etc/fstab
文件内容信息:存储设备信息(文件 uuid) 挂载点信息 文件系统类型(iso9660,存储数据方式 ) 挂载参数 是否备份磁盘数据 是否进行磁盘自检
文件配置生效:重启系统 / mount -a

6.开机自动执行命令:
文件路径信息:/etc/rc.local --> /etc/rc.d/rc.local
文件内容信息:命令信息
文件配置生效:设置文件权限具有执行权限 chmod +x /etc/rc.d/rc.local
文件作用说明:1.让服务开机自动运行 systemctl enable xxx服务(开机自动运行)
2.数据自动备份
cp server.conf server.conf.bak

7.配置系统变量/别名文件:
文件路径信息:/etc/profile
文件内容信息:
环境变量(export PATH=“环境变量内容信息”)别名设置(alias 别名=‘命令信息’)
环境变量:对有些特殊变量统称 PATH LANG PS1
文件配置生效:重新连接 source

a 掌握什么是环境变量
1)系统默认已经设置好的变量
2)环境变量都是大写字母表示
3)环境变量可以被所有用户调用
4)系统环境变量都有具体存在的意义

b 如何设置变量或环境变量
OLDBOY=xxx 普通变量
环境变量PATH=xxx
让普通变量变为环境变量
export OLDBOY=123456

c 如何设置别名信息
alias 别名=‘命令信息’ 临时设置
unalias 取消别名
d 永久设置变量 环境变量 别名 vim编辑相关文件
用户环境变量配置:只影响指定的用户 -------- ~/.bashrc ~/.bash_profile 家规 优先
系统环境变量配置:对系统所有用户都有影响 etc/bashrc /etc/profile 国法

8.系统运行级别文件:centos6
文件路径信息:/etc/inittab
文件内容信息:设置系统运行级别

运行级别:系统不同运行启动方式
0  关机运行方式
1 单用户运行方式  修复系统/破解系统密码(不需要登录   没有网络)windows PE
2 多用户运行方式  没有网络
3 多用户运行方式  具有网络
4 暂未使用
5 图形化运行方式
6 重启运行方式

运行模式设置:
centos7  systemctl  set-default    xxx.target 永久设置
systemctl get-default    xxx.target
init +级别数字 -------------- runlevel(查看当前级别)临时设置

9.系统提示信息文件:
文件路径信息:/etc/motd /etc/issue /etc/issue
系统登录之后提示信息:/etc/motd
系统登录之前提示信息:/etc/issue /etc/issue
需求:每天看见不同小动物说话
/etc/profile.d -------存放脚本文件信息, 每次连接登录系统,都会加载此目录中的脚本文件

/usr/local 本地安装软件存放目录(源码安装软件默认目录)

/var

1.系统服务运行情况日志文件
文件路径信息:/var/log/messages
文件内容信息:服务正常运行情况信息 异常信息
掌握日志文件查看方法
tail -f 日志文件 —追踪查看文件内容
head 从头查看文件

2.系统服务用户登陆信息日志
文件路径信息:/var/log/secure
文件内容信息:登陆系统用户信息(从哪个主机连接登陆 以什么用户登陆 是否登陆成功)

如何让其他主机远程连接自己的虚拟主机
vmware软件虚拟网络编辑器中-----选择NAT模式虚拟网卡------选择NAT设置
配置端口转发信息------端口映射------192.168.20.202:9000 ==10.0.0.200

日志文件需要做什么处理
日志文件切割处理:按照时间(每小时 每天 每周)

vi cut _log.sh   --> 特殊目录  /etc/cron*
#!/bin/bash

mv  /var/log/messages   /var/log/messages_`date +%F_%T(时间信息)`
systemctl restart rsyslog.service

特殊目录  /etc/cron*
/etc/cron.daily        ----每天自动执行目录中脚本
/etc/cron.hourly     ----每小时自动执行目录中脚本
/etc/cron.monthly  ----每月自动执行脚本
/etc/cron.weekly    ----每周自动执行脚本

 /proc/    系统硬件信息
cpu:cat /proc/cpuinfo         lscpu
内存:cat /proc/meninfo         free -h
磁盘: cat /proc/mounts          df -h 		
负载: cat /proc/loadavg         w uptim top htop 

4)操作系统软件安装

1.利用yum方式安装软件

yum源路径 cd /etc/yum.repos.d/
安装命令:yum install -y tree
特点说明:可以解决依赖 所有软件包可以直接下载
缺点说明:依赖网络
yum search/provides xxx命令 ----搜索命令属于哪个软件包
yum list |grep “tree” ----显示yum仓库中所有可用软件,进行过滤
yum remove/erase ----卸载软件包(慎用)
yum reinstall ----重新安装修复程序
yum localinstall —本地安装软件程序并解决软件安装依赖问题
yum repolist —查看可以使用yum仓库信息

2.利用rpm方式安装软件

安装命令:rmp -ivh 软件包名称(tree.rpm)
特点说明:不依赖网络
缺点说明:不能解决依赖
卸载软件程序:最好用该方式卸载

rpm -e 软件名称               ---卸载指定软件
rpm -e 软件名 --nodeps  ---忽略依赖进行强制卸载
rpm -qa  tree(软件名)  ---- 查看确认软件是否安装成功
rpm -ql                             ---- 查看软件安装生成数据信息保存路径
rpm -qf /usr/bin/animalsay --查看一个命令文件属于哪个软件程序
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。

3.编译安装
4.二进制包

5)操作系统信息查看

1)使用系统版本信息:centos7.6 centos6

查看文件:cat /etc/redhat-release 
[root@jason ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

2)使用系统内核信息

查看命令:uname -a查看
[root@jason ~]# uname -a
Linux jason 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

/proc/ 系统硬件信息

cpu:cat /proc/cpuinfo          lscpu
内存:cat /proc/meninfo          free -h
磁盘: cat /proc/mounts           df -h 		
负载: cat /proc/loadavg          w uptim top htop 

06.系统基础优化阶段回顾

1)操作系统用户优化

创建用户信息:useradd xxx用户名
用户设置密码:passwd xxx用户名 / echo 123456(密码)|passwd --stdin xxx用户名
切换使用用户:su - xxx用户名 将用户环境变量信息做彻底改变
删除用户信息:userdel -r xxx用户名
查看用户信息:id xxx用户名

2)操作系统下载优化 yum

阿里云下载优化:

base源优化

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun/repo/Centos-7.repo

epel源优化

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun/repo/epel-7.repo
或者
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun/repo/epel-7.repo 

查看确认是否更新好了base和epel源

[root@jason ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun
 * extras: mirrors.aliyun
 * updates: mirrors.aliyun
repo id                                    repo name                                                               status
!base/7/x86_64                             CentOS-7 - Base - mirrors.aliyun                                    10,097
!epel/x86_64                               Extra Packages for Enterprise Linux 7 - x86_64                          13,491
!extras/7/x86_64                           CentOS-7 - Extras - mirrors.aliyun                                     305
!updates/7/x86_64                          CentOS-7 - Updates - mirrors.aliyun                                    972
repolist: 24,865
清华源下载优化:

bash源优化: https://mirrors.tuna.tsinghua.edu/help/centos/

首先备份  /etc/yum.repos.d/CentOS-Base.repo    
 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

下载优化过程:

vi /etc/yum.repos.d/CentOS-Base.repo
粘贴网站的内容即可

epel源优化
https://mirrors.tuna.tsinghua.edu/help/epel/

yum clean all — 做yum刷新重置

3)操作系统安全优化

关闭安全服务程序:firewalld

临时关闭:systemctl stop firewaiid
永久关闭:sustemctl disable firewalld

关闭安全服务程序:selinux

临时关闭:setenforce 0
永久关闭:vim /etc/selinux/config
将SELINUX=enforcing  改为SELINUX =disabled

亦可以使用sed直接编辑文件
sed命令语法:sed 参数 ’ ’ 文件信息

sed -i '7s#enforcing#diasbled#g'  /etc/selinux/config

4)操作系统时间优化

熟悉时间调整命令:timedatectl
1)手动调整时间信息:timedatectl set-time xxx时间信息
2)自动同步时间信息:
方法一:

第一步:环境准备
yum install -y chrony
systemctl start chronyd
timedatectl set-timezone Asia/Shanghai
第二步:开始时间同步功能
timedatectl set-ntp 1

方法二

ntpdate ntp1.aliyun

5)操作系统字符优化

LANG=xxx ------影响字符信息环境变量

临时设置:export LANG=zh_CN.utf8

永久设置:vim /etc/locale.conf

临时既永久:localectl set-locale LANG=zh_CN.utf8

6)操作系统远程优化

vim /etc/ssh/sshd_config
GSSAPIAuthentication no     ----是否GSSAPI认证
UseDNS no                   ----是否开启DNS反向解析过程 
systemctl restart sshd       ---重启服务

7)系统命令提示优化

PS1=xxx
临时调整:export PS1=xxxx
永久调整:export PS1=xxxx ---> /etc/profile
PS1='[\[\e[31;1m\]\u\[\e[0m\]@\[\e[34;1m\]\h\[\e[0m\] \[\e[32;1m\]\W\[\e[0m\] \[\e[33;1m\]\t\[\e[0m\]]\$ '
设置颜色信息,为了产生命令结果更加醒目

作业:

01.创建oldboy oldgirl olddog oldbaby 并且用户密码是随机密码 6位
答案一:较简单

思路一:解决随机密码问题
tr -cd ‘a-zA_Z0-9’ </dev/urandom | head -c 6

思路二
情况一:批量创建用户较多,那就先创建个文本写上要创建的用户名

# cat user.txt
oldboy
oldgirl
olddog
oldbaby
olda
oldb
oldc
oldd
olde
                  一行中有两个命令,先执行某命令加上反引号
for username in `cat /server/scripts/user.txt`(最好是绝对路径)
do 
   useradd $username
done

补充:``用法说明:将反引号里面命令先执行,将结果信息被反引号外面命令进行调用

[root@jason ~]# which ssh
/usr/bin/ssh
[root@jason ~]# rpm -qf /usr/bin/ssh
openssh-clients-7.4p1-16.el7.x86_64
将两条命令整合为一条:
[root@jason ~]# rpm -qf `which ssh`
openssh-clients-7.4p1-16.el7.x86_64

情况二:批量创建用户较少

for username in {oldboy,oldgirl,olddog,oldbaby}
do 
  useradd $username 
done

思路三:创建用户和密码信息

for username in {oldboy,oldgirl,olddog,oldbaby}
do 
  password_info=`tr -cd 'a-zA_Z0-9' </dev/urandom | head -c 6`
  useradd $username 
  echo $passwd_info | passwd --atdin $username
  echo $username  $password_info >> /tmp/user_info.txt
done

答案二:难度高一点

思路1)掌握如何创建用户 给用户设置密码 单个用户设置密码

useradd xx ; echo 密码 |passwd --stdin 用户信息

思路2)批量创建用户并设置密码,按照序列方式

seq -w 10|sed -r 's#(.*)#useradd oldboy\1;echo 123456|passwd --stdin oldboy\1#g'
        sed +r 不加用不了扩展正则符号
echo {oldboy,oldgirl,olddog}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'     

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,-n选项多行输出

思路3)创建的密码信息是随机密码
整理生成随机数方法

date "+%N"|md5sum |head -c 6
useradd oldboy10; Password=`date "+%N"|md5sum |head -c 6`; echo $Password|passwd --stdin oldboy10; echo oldboy10 	$Password >>/tmp/passwd.txt

最终答案
# seq -w 10|sed -r 's#(.*)#useradd oldboy\1; Password=`date "+%N"|md5sum |head -c 6`; echo $Password|passwd --stdin oldboy\1; echo oldboy\1 $Password >>/tmp/passwd.txt#g'|bash

%N nanoseconds (000000000..999999999)
所以输出的是微秒
[gis@localhost ~]$ date '+%N'
139239000

02.检查一个网络地址范围,有哪些地址是没被使用

方法一

思路一:ping多个地址

for IP in {1..100}
do
ping 192.168.20.$IP
done

思路二:了解ping命令用法

ping -c 3 -q 192.168.20.52 >> /tmp/ping.log

思路三:访问通或者不同要有提示说明
如果ping是通:提示 xxxx地址 正在使用(绿色)
如果ping不通:提示 xxxx地址 未被使用(红色)

if [ $? -eq 0 ]
then
  echo -e "\e[32;1m提示  xxx地址  正在使用\e[0m"
else
   echo -e "\e[31;1m提示  xxx地址  未被使用\e[0m"
fi

	   echo -e "\e[31;1moldboy69\e[0m"  红色
	   echo -e "\e[32;1moldboy69\e[0m"  绿色

编写脚本:

#!/bin/bash

for IP in {1..100}
do 
 ping -c 3 -q 192.168.20.$IP >>/tmp/ping.log
 if [ $? -eq 0 ]
 then
  echo -e "\e[32;1m提示信息: 192.168.20.$IP  正在使用\e[0m"
else
  echo -e "\e[31;1m提示信息: 192.168.20.$IP  未被使用\e[0m"
fi
done

本文标签: 基础 Linux