Linux运维实训day4

服务架构搭建

1.安装软件包
2.修改配置文件
3.启动服务

文本编辑器

vi/vim

1.三种模式的切换
命令模式(默认)
输入模式
末行模式

命令 ->(a,i,o) 输入
	i 光标后插入
	a 光标前插入
	o 光标下一行插入
	A(shift+a) 光标所在行行尾插入
	O(shift+o) 光标上一行插入
输入 -> (esc) 命令
命令 ->(:) 末行
末行 ->(esc) 命令

2.常用功能
光标移动
	方向
		小键盘方向键 or hjkl
	行内跳转
		home或^(shift+6) 跳转行首
		end或$(shift+4)  跳转行尾
		w 				 跳转单词
	行间跳转
		命令模式
			G(shift+g)	跳转尾行
			gg			跳转首行
			ngg			跳转至第n行
		末行模式
			:n			跳转至第n行
			:%			跳转至行尾
	翻页
		pgup
		pgdn
复制
	命令模式
		yy		复制光标所在行
		yw		复制光标所在单词
		nyy		复制从光标所在行开始,往下n行
	末行模式
		:ny		复制第n行
		:m,ny	复制第m行到第n行
		:%y		复制全文

删除
	命令模式
		del或x		删除光标所在字符
		dw			删除单词
		D(shift+d)	删除光标至行尾
		dd			删除光标所在行
		ndd			删除从光标所在行开始,往下n行
	末行模式
		:nd			删除第n行
		:m,nd		删除第m行到第n行
		:%d			删除全文
		
粘贴
	命令模式
	p			光标后粘贴
	P(shift+p)	光标前粘贴
	
剪切
	先删除在粘贴
	
查找
	/word
	?word
	n	从上往下
	N	从下往上
	
替换
	:s/old/new		替换光标所在行匹配的第一个字段
	:s/old/new/g	替换光标所在行所有匹配的字段
	:m,ns/old/new/g 替第m行到所有匹配的字段
	:%s/old/new/g	替换全文匹配的字段
	
撤销
	u		撤回到上一步
	U		全部撤回
	ctrl+r	回滚
	
退出
	:q	正常退出(没对文件做任何的修改)
	:wq	保存退出
	:q!	强制不保存退出
	:wq!强制保存退出
	:x	保存退出
	命令模式
	ZZ	保存退出

VIM练习
请把/etc/passwd 复制到/root/目录下,并重命名为test.txt
[root@hd ~]# cp /etc/passwd /root/
[root@hd ~]# mv /root/passwd /root/test.txt
[root@hd ~]# ls /root/
anaconda-ks.cfg  bd_logo1.png              hello.txt  secure.log  user.sh
bbb.txt          bd_logo1.png?where=super  nginx.log  test.txt

用vim打开test.txt并设置行号
[root@hd ~]# vim /root/test.txt 
:set nu
分别向下、向右、向左、向右移动5个字符

分别向下、向上翻两页
pgup
pgdn
把光标移动到第10行
10gg
:10
让光标移动到行末,再移动到行首
G
gg
移动到test.txt文件的最后一行
:%
移动到文件的首行
gg
搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索
:/root 
4
把从第一行到第三行出现的root 替换成--alex--
:1,3s/root/--alex--/g
还原上一步操作
u
把整个文件中所有的root替换成--alex--
:%s/root/--alex--/g
把光标移动到20行,删除本行
20gg
dd
还原上一步操作
u
删除第19行
:19d
还原上一步操作
u
删除从5行到10行的所有内容
:5,10d
还原上一步操作
u
复制2行并粘贴到11行下面
:2y
:11
p
还原上一步操作(按两次u)
复制从11行到15行的内容并粘贴到8行上面
:11,15y
:8
P
还原上一步操作(按两次u)
把13行到18行的内容移动文件的尾部
:13,18y
G
p
:13,18d
还原上一步操作(按两次u)
光标移动到首行,把/sbin/nologin改成/bin/bash
:s/\/sbin\/nologin/\/bin\/bash/g 
在第一行下面插入新的一行,并输入"# Hello!"
gg
o
# Hello!
保存文档并退出
:wq

vim环境变量

环境变量临时生效

:set nu 显示行号
:set ic 忽略大小写, 在搜索的时候有用
:set ai 自动缩进
:set list   显示制表符(空行、tab键)
:set no[nu|ic|ai…]  取消临时设定的变量
环境变量永久生效

~/.vimrc 个人环境变量(优先级高) /etc/vimrc  全局环境变量
# vim  ~/.vimrc

syntax on
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set number
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set ruler
set incsearch
set showmatch
set matchtime=10
set ignorecase
set cursorline
set t_Co=256
colorscheme molokai

#语法检查及高亮
syntax on
#设定默认解码
set?fenc=utf-8?
set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
#显示行号
set?number?


#vim使用自动对齐,也就是把当前行的对齐格式应用到下一行
set?autoindent?
#依据上面的对齐格式,智能的选择对齐方式
set?smartindent?
#设置tab键为4个空格
set?tabstop=4?
#设置当行之间交错时使用4个空格
set?shiftwidth=4?
#设置在编辑过程中,于右下角显示光标位置的状态行
set?ruler?
#设置增量搜索,这样的查询比较smart

set?incsearch?
#高亮显示匹配的括号
set?showmatch?
#匹配括号高亮时间(单位为?1/10?s)
set?matchtime=10?

#在搜索的时候忽略大小写
set?ignorecase?
#禁止生成临时
#set?nobackup?
#当前行高亮
set?cursorline?
#支持256色
set?t_Co=256?


sed

将/etc/selinux/config的SELINUX=enforcing,替换成SELINUX=disabled
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

删除test.txt里包含hello的行
# sed '/hello/d' test.txt

[root@hd ~]# sed '/hello/d' test.txt

文本处理三剑客 grep awk sed

软件包的安装

windows:
	.exe  
	.msi
	绿色
	
Linux
	RPM包
		rpm package manager
		形成一个数据库,存放软件的所有信息
	源码包
		原始代码,版本新,自定义,安装难(需要编译环境)
	绿色包

    RPM包管理
	rpm一般都来自安装光盘
	挂载光盘(确保光驱里有光盘镜像文件,且通电了)
	# mount /dev/cdrom /mnt
	软件包都在光盘的Packages目录里
	
	rpm工具
	安装
		-i	install
		-v	verbose
		-h	human
	问题:rpm安装无法自动解决软件包之间的依赖关系

	实际上,我们使用yum来安装rpm,可以自动解决依赖关系
	yum
		yellowdog update modify
		基于仓库的rpm包管理工具
	
	yum仓库的搭建
		仓库文件的路径
			/etc/yum.repos.d/*.repo

本地yum仓库的搭建流程
1.挂载光盘
# mount /dev/cdrom /mnt
2.添加本地光盘yum库文件
先取消默认的yum库
# cd /etc/yum.repos.d
# rename .repo .repo.bak *
# cat > cdrom.repo <<EOF
[cdrom]
name= cdrom repo
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

3.测试本地仓库是否生效
# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
cdrom                                                         | 3.6 kB  00:00:00     
(1/2): cdrom/group_gz                                         | 166 kB  00:00:00     
(2/2): cdrom/primary_db                                       | 3.1 MB  00:00:00     
源标识                                源名称                                    状态
cdrom                                 cdrom repo                                4,021
repolist: 4,021
		

线上仓库,软件版本最新
mirrors.aliyun.com
mirrors.sohu.com
mirrors.163.com
mirrors.tuna.tsinghua.edu.cn

	Base库
	curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
	epel库
	wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
	
本地仓库,尽量保证和操作系统版本一直	
# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

yum命令的使用
	list		列出指定软件包的信息(安装、版本、仓库)
	repolist	列出仓库的信息(仓库名、软件数量)
	grouplist	列出软件组
	
	info		查看指定软件信息(简介)
	groupinfo	查看软件组包含软件包信息
	
	install
	groupinstall
	
	remove
	groupremove
	
	provides 	反向查询指定命令通过哪个软件包安装的
	search		查询相关信息
	
	clean all
	makecache
	
	update
	
	rpm查询
		-q		查询指定软件是否安装
		-qa		查询所有已安装软件
		-qi		查询已安装软件信息
		-qc		查询已安装软件的配置文件
		-qd		查询已安装软件的帮助信息文件
		-ql		查询已安装软件的所有文件列表
		-qpi	查询指定软件包的信息(未安装也能查询)
		-qpl	查询指定软件包的文件列表(未安装也能查询)
		-qf		反向查询指定文件是通过哪个软件包安装的

案例:查询外部命令是通过哪个软件包安装的
# which ls
/usr/bin/ls
# rpm -qf /usr/bin/ls
coreutils-8.22-23.el7.x86_64

	升级
		-U
	卸载
		-e
		
		
安装软件包案例:安装图形化
# yum groupinstall -y "带 GUI 的服务器"

安装完之后,切换启动级别为图形化
# systemctl set-default graphical.target

切换启动级别为字符界面
# systemctl set-default multi-user.target



猜你喜欢

转载自blog.csdn.net/qq_37324376/article/details/93708668