Linux操作基础02

VIM文本编辑器

vim/vi是Unix/Linux上最常用的文本编辑器,而且功能非常强大。缺点:只有命令,没有菜单。

VIM工作模式

在这里插入图片描述
命令模式:又称一般模式
编辑模式:又称底模式,命令行模式。
插入模式
a 在光标后附加文本
A (shift + a) 在本行行末附加文本
i 在光标前插入文本
I (shift + i) 在本行开始插入文本
o 在光标下插入新行
O (shift + o) 在光标上插入新行

定位命令

:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行

保存和退出命令

:w 保存修改
:w new_filename 保存为指定文件
:w >> a.txt 内容追加到a.txt中,文件需存在
:wq 保存修改并退出
shift + zz(ZZ) 快捷键,保存修改,并退出
:q! 不保存修改退出
:wq! 保存修改并退出,文件所有者可忽略文件的只读属性
不保存并退出:1.有修改,但是修改后的内容是不保存的;2.有突发情况,导致窗口退出,修改文件之后,直接删除同名的.swq文件。
命令前有":"是在编辑模式下执行,反之,在命令模式下执行。

删除命令

x 删除光标所在处的字符 nx 删除光标所在处后n个字符
dd 删除光标所在处的行,ndd删除后n行。
:n1,n2d 删除指定范围的行(eg:1,3d 删除1,2,3行)
dG 删除光标所在处后全部内容
D 删除光标所在处到行尾的内容

复制和剪切命令

yy,Y 复制当前行
nyy,nY 复制当前一下n行
dd 剪切当前行
ndd 剪切当前以下n行
p,P 粘贴在当前光标所在行下,或行上

替换和取消命令

r 取代光标所在处的字符
R(shift + r) 从光标所在处开始替换字符,按Esc结束。
u undo,取消上一步操作
ctrl + r redo,返回到undo之前

搜索和替换命令

/string 向后搜索指定字符串,搜索时忽略大小写:set ic
?string 向前搜索指定字符串
n 搜索字符串的下一个出现的位置,与搜索顺序相同
N(Shift + n) 搜索字符串的上一个出现的位置,与搜索顺序相反
:%s/old/new/g 全文替换指定字符串。%指全文,s指开始,g指全局替换
:n1,n2s/old/new/g 在一定范围内替换指定字符串。起始行,终止行s/要替换的字符串/替换的新的字符串/g c询问确认
eg: :%s/ftp/yang/g 全局替换,把ftp替换成yang
eg: :41,44/yang/lee/g 从41到44行,把yang替换成lee,询问是否替换。
eg: :%s#/bin/bash#/bin/ksh/g 把/bin/bash替换成/bin/ksh
eg: :%s//root//ROOT/g 把/root替换成/ROOT

使用替换命令添加或删除所有注释

:%s/^/#/g 在全部命令首行前加#号注释
:1,10 s/^/#/g 在1,10行添加注释。

可视化模式

v 可视字符模式
V(shift + v) 可视行模式,选择多行操作
ctrl + v 可视块模式,列操作。
I或O进入插入模式

Linux网络参数配置

虚拟网络配置

在这里插入图片描述

配置静态IP地址

1.打开配置文件,修改配置文件中的内容
2.vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
3.
TYPE=“Ethernet”
BOOTPROTO=“static” #需要修改
DEFROUTE=“yes”
PEERDNS=“yes”
PEERROUTES=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_PEERDNS=“yes”
IPV6_PEERROUTES=“yes”
IPV6_FAILURE_FATAL=“no”
NAME=“eno16777736” #需要修改
UUID=“0dcd5235-f8eb-4680-8819-4d2b5459054c”
DEVICE=“eno16777736” #需要修改
ONBOOT=“yes”
IPADDR=192.168.145.201 #本机静态IP
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.145.2 #网关
DNS1=114.114.114.114 #域名解析器
DNS2=8.8.8.8

4.修改文件后,重启网络连接服务service network restart

网络通信命令

ping 作用:测试网络的连通性
语法:ping 选项 IP地址
-c 指定发送次数
ping 命令使用的是icmp协议,不占用端口
eg: # ping -c 3 127.0.0.1

修改主机名

临时生效:hostname 主机名
永久生效:修改配置文件 vim /etc/hostname (n1) #重启后生效
查看主机名:hostname
在这里插入图片描述

修改映射关系

修改主机名和ip地址间的映射关系 vim /etc/hosts
在这里插入图片描述
测试是否修改成功:

在这里插入图片描述

相关命令

进程管理命令

进程和程序的区别
1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。
进程和线程的区别
进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。

ps 作用:查看系统中的进程信息
语法:ps [-auxle]
a:显示所有用户的进程
u:显示用户名和启动时间
x:显示没有控制终端的进程
e:显示所有进程,包括没有控制终端的进程
l:长格式显示
查看系统中所有进程
ps -aux 查看系统中所有进程,使用BSD操作系统格式,unix
ps -le 查看系统中所有进程,使用Linux标准命令格式
ps应用实例
ps -u or ps -l 查看隶属于自己进程详细信息
ps aux | grep sam 查看用户sam执行的进程
ps -ef | grep init 查看指定进程信息

top 作用:查看系统健康状态 显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。
语法:top [选项]
-d 秒数,指定几秒刷新一次,默认3秒(动态显示)

kill 作用:关闭进程
语法:kill [-选项] pId
eg:kill -9 进程号(强行关闭) 常用
eg:kill -1 进程号(重启进程)

磁盘空间命令

df 作用:用于查看Linux文件系统的状态信息,显示各分区的容量,已使用量,未使用量及挂载点等信息。看剩余空间。
语法:df [-hkam] [挂载点]
-h:根据磁盘空间和使用情况,以易读的方式显示KB,MB,GB等
-k:以KB为单位显示各分区的信息,默认
-M:以MB为单位显示信息
-a:显示所有分区包括大小为0的分区。

du 作用:用于查看文件或目录的大小(磁盘使用空间)
语法:du [-ahs] [文件名目录]
-a:显示子文件的大小
-h:以易读的方式KB,GB,等
-s:统计总占有量

eg:du -a /home 显示/home目录下,每个子文件的大小,默认单位为KB;
du -h /home 以K,M,G为单位显示/home文件夹下各子目录的大小;
du -sh /home 以常用单位(K,M,G)为单位显示/home目录的总大小 -s summarize

df命令和du命令的区别:df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。du命令面向文件,只计算文件或目录占用的空间。

free 作用:查看内存及交换空间使用状态
语法:free [-kmg]
-k:以KB为单位显示,默认就是易KB为单位显示
-m:以MB为单位显示
-g:以GB为单位显示
清理缓存命令:echo 1 > /proc/sys/vm/drop_caches

权限管理

在这里插入图片描述
三种基本权限: 文件 目录
r 读权限 可以查看文件内容 可以列出目录的内容
w 写权限 可以修改文件内容 可以在目录中创建删除文件
x 执行权限 可以执行文件 可以进入目录

权限说明:-rwxrwxrwx 1:文件类型(d 目录,- 普通文件,| 链接文件,f 二进制文件) 2-4:文件所有者权限 5-7:所属组权限 8-10:其他人权限

文件:r -cat,more,head,tail,less w -echo,vi x -命令,脚本
目录:r -ls w -touch,mkdir,rm,rmdir x -cd
注意:能删除文件的权限是对该文件所在的目录由wx权限

权限修改-chmod

chmod 作用:改变文件或目录的权限
语法:chmod [{ugoa}{±=}{rwx}] [文件或目录名] chmod [mode=421] [文件或目录名]
参数-R:下面的文件和子目录做相同的文件权限操作。

一个文件谁可以修改文件权限:root和所有者

注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户去测试权限,不能用一个普通用户去更改另外一个普通用户的权限。

更改所有者-chown

chown 作用:更改文件或目录的所有者
语法:chown user[:group] file …
-R:递归修改
参数格式:user:新的档案拥有着的使用者;group:新的档案拥有着的使用者群体。

eg:#chown lee file1 把file1文件的所有者改为用户lee
eg:#chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为test
改变所属组-chgrp
chgrp 作用:改变文件或目录的所属组 语法:chgrp [group] file… eg:chgrp root test.log 把文件test.log的所属组该位root

改变所属组chgrp

作用:改变文件或目录的所属组
语法 : chgrp [group] file…
eg:chgrp root test.log 把test.log的所属组修改为root

软件管理

RPM软件安装管理

RPM软件包也称为二进制软件包
rpm的常用参数
i:安装应用程序
vh:显示安装进度
U:升级软件包
qa:显示所有已安装软件包
e:卸载应用程序
注意:如果其他软件包有依赖关系,卸载时会产生提示信息,可以使用–no’deps来强行卸载

查询所有安装的rpm包:#rpm -qa
查询mysql相关的包:#rpm -qa | grep mysql
安装:rpm -ivh jdk.rpm
卸载:rpm -e mysql*
强行卸载:rpm -e mysql* --nodeps

YUM管理

应用yum的好处:1.自动解决软件包依赖关系;2.方便的软件包升级
查询: yum list 查询所有可用软件包列表
yum search 关键字 搜索服务器上所有和关键字相关的软件包 可以通过yum info 关键字 查找软件包名
安装:yum -y install 包名 -y 自动回答yes
升级:yum -y update 包名 注意:如果不加包名,默认升级所有,包括内核,
卸载:yum -y remove 包名
帮助:yum --help, man yum
yum clean all 清楚缓存和旧的包
yum repolist 查看当前可用的yum源
yum deplist httpd 列出一个包所有依赖的包

搭建本地yum源

在不能连接外网的情况下,可以通过本地的yum源进行软件安装。
#cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS- r e l e a s e v e r − B a s e m i r r o r l i s t = h t t p : / / m i r r o r l i s t . c e n t o s . o r g / ? r e l e a s e = releasever - Base mirrorlist=http://mirrorlist.centos.org/?release= releaseverBasemirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲repo=os&infra=infra
#baseurl=http://mirror.centos.org/centos/ r e l e a s e v e r / o s / releasever/os/ releasever/os/basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
解释:
[base] 容器名称,一定要放在[]中
name 容器说明,这个可以自己随便写
mirrorlist 镜像站点,这个可以注释掉
baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器,
enabled 此容器是否生效,如果不写或写enable=1都是生效,写成enable=0就是不生效
gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
pggkey 数字证书的公匙文件保存位置,不用修改

1.挂载光盘
#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
卸载挂载用umount /mnt/cdrom
2.让网络yum源文件失效
cd /etc/yum.repos.d/
rename .repo .repo.bak * #重命名所有的.repo文件
cp CentOS-Media.repo.bak CentOS-Media.repo #配置一个.repo文件
3.修改光盘yum源文件
vi CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom #这里的地址为自己光盘挂载地址,并把不存在的地址注释掉,在行首注释
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1 #把原来的0改为1,让这个yum源配资文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
4.检测是否成功
可使用 yum repolist 查看 当前可用yum源
yum clean all
yum repolist

集群搭建

在原先虚拟机的基础上再克隆两台虚拟机。

安装jdk

1.上传jdk
在这里插入图片描述
在这里插入图片描述
2.将压缩包解压
tar -zxvf jdk-8u201-linux-x64.tar.gz -C /appdata
3.创建软连接
ln -s jdk1.8.0_201/ jdk
4.配置环境变量
vi /etc/profile
在这里插入图片描述
5 执行source,让配置生效
在这里插入图片描述

关闭防火墙

查看防火墙状态
systemctl stop firewalld
临时关闭
systemctl stop firewalld
禁止开机启动
systemctl disable firewalld

拍摄快照

在这里插入图片描述

克隆虚拟机

重新生成mac地址
在这里插入图片描述

修改主机名
vi /etc/hostname
配置静态ip
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
IPADDR=192.168.145.*** #本机静态IP
修改文件后,重启网络连接服务service network restart

免密登录

远程拷贝:scp file/dir 用户@主机名:路径
-r 递归拷贝文件夹
需要输入密码
在这里插入图片描述
eg:将文件拷贝到另外一台机器的相同位置。
cd /etc/sysconfig/network-scripts/
scp ifcfg-eth0.bak n2:pwd

如何方便的切换到其他节点?
ssh node2

配置免密登录
1.在第一台机器上生成一对钥匙,公钥和私钥
在这里插入图片描述
2.将公钥拷贝给要免密码登录的机器
注意:主机名和ip都可以(确保配置了主机名 ip的映射)
还需要输入密码
在这里插入图片描述
3.验证成功
在这里插入图片描述
注意:免密码登录是单向的
ssh免密登录原理:
1.node1 使用 ssh-keygen –t rsa 生成公钥和私钥
2.ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。
请求时:
1.node1向node2发送连接请求时,附带主机,ip地址等信息
2.node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1
3.node1接收到密文之后,用私钥解密,并把解密结果返回给node2
4.node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。
在这里插入图片描述

CentOS7的特殊命令

查看服务状态
systemctl status NetworkManager
停止服务
systemctl stop NetworkManager
启动服务
systemctl start NetworkManager
禁止服务开机启动
systemctl disable NetworkManager
设置服务开机启动
systemctl enable NetworkManager

查看网络信息
ip addr
查看具体某个网卡信息
ip addr ls eno16777736

停止网卡
ip link set eno16777736 down
启动网卡
ip link set eno16777736 up

修改ip地址
ip addr del 192.168.80.134/24 dev eno16777736
ip addr add 192.168.80.136/24 dev eno16777736

查看路由信息
ip route show
添加路由
ip route add default via 192.168.80.2 dev br0

安装ifconfig命令
yum install -y net-tools

修改主机名
hostnamectl set-hostname node1.xiaoniu.com(永久改,相当于直接改配置文件)

防火墙配置:Centos升级到7之后,发现无法使用iptables控制Linux的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:

开启防火墙
systemctl start firewalld

开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

重新加载防火墙配置
firewall-cmd --reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值