Linux学习

Linux学习

基础知识

远程登录linux命令

ssh 登录用户@用户名
ssh root@clone1

1.创建文件夹目录

mkdir -p Linux路径  (make directory) -p:表示递归创建

2.删除文件夹目录

rmdir -p Linux路径

3.创建文件

touch Linux路径

4.查看文件内容

1.cat -n Linux路径  -n:显示行号
2.tail [-f -n] 行数 Linux路径 -f:持续跟踪
[root@localhost test]# tail -n 5 test.txt 
dfaije
djfdaijfe
fdjsfjaiew 

a
[root@localhost test]# tail -5 test.txt 
dfaije
djfdaijfe
fdjsfjaiew 

a

3.head [-n] 行数 Linux路径
4.more Linux路径(区别:cat是直接将内容全部显示出来,more支持翻页),通过空格翻页,按q退出查看
5.grep [-n] 查找数据 Linux路径 :查找文件里符合条件的字符串

5.复制文件、文件夹(copy)

cp [-r] 参数1 参数2
-r:可选,用于复制文件夹使用,表示递归

scp 远程传输文件
scp 本地上传文件地址 root@clone:/etc/server(远程路径地址)

6.移动文件、文件夹(move)

mv 参数1 参数2
参数2如果存在,则移动
参数2如果不存在,则为改名效果

7.删除文件、文件夹(remove)

rm [-r -f] 参数1 参数2.....
-r:可选,用于复制文件夹使用,表示递归
-f:表示force,强制删除

8.查找命令的程序文件(which)

which 查找的命令
[root@localhost ~]# which cd
/bin/cd

9.文件名查找文件(find)

find 起始路径 -name "被查找文件名"
[root@localhost ~]# find / -name "test"
/root/test
/usr/bin/test
/usr/lib/modules/3.10.0-862.el7.x86_64/kernel/drivers/ntb/test
/usr/lib64/python2.7/test
/usr/lib64/python2.7/unittest/test

10.wc命令做数量统计

可以通过wc命令统计文件的行数、单词数量等
语法: wc [-c -m -l -w] 文件路径
-c:统计bytes数量
-m:统计字符数量
-l:统计行数
-w:统计单词数量

11.管道符:|(将管道符左边命令的结果作为右边命令的输入)

grep、wc可做管道符的输入

[root@localhost test]# cat test.txt | grep d
dhhh
dfdfe
dfahue
dfaije
djfdaijfe
fdjsfjaiew 

12.echo命令,在命令行内输出指定内容,被``包围的内容会被作为命令执行,而非普通字符

echo 输出的内容
[root@localhost test]# echo a
a
[root@localhost test]# echo `pwd`
/root/test

13.重定向

>:将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>:将左侧命令的结果,追加写入到符号右侧指定的文件中

[root@localhost test]# cat test.txt > test1.txt 
[root@localhost test]# cat test1.txt 
hello
dhhh
dfdfe
hhifh
dfahue
dfaije
djfdaijfe
fdjsfjaiew 

a
[root@localhost test]# cat test.txt >> test1.txt 
[root@localhost test]# cat test1.txt 
hello
dhhh
dfdfe
hhifh
dfahue
dfaije
djfdaijfe
fdjsfjaiew 

a
hello
dhhh
dfdfe
hhifh
dfahue
dfaije
djfdaijfe
fdjsfjaiew 

a
[root@localhost test]# 

用户权限

1.root用户:超级管理员,拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的

普通用户在home目录不受限,出了home目录,很多权限用不了

切换账户命令:

su [-] [用户名] -是可选的,表示是否在切换用户后加载环境变量

exit退出账户(ctrl+d)

2.临时授权:sudo

sudo 其他命令
但是并不是所有的用户,都有权力使用sudo,我们需要为普通用户配置sudo认证

image-20231128111648638

3.用户、用户组

用户组创建、用户组删除

groupadd 用户组名
groupdel 用户组名

用户创建

image-202311281543497504.查看系统用户\用户组

getent passwd
getent group

Linux管控权限

-:文件

d:文件夹

l:软连接

image-20231128155850929

1.修改用户权限命令

chmod [-R] 用户权限 用户组权限 其他用户权限 文件  [-R]:代表文件夹里面的所有文件
r:可读 4
w:可写 2
r:可执行 1

2.修改文件、文件夹所属的用户和用户组

chown [-R] [用户][:][用户组] 文件或文件夹

快捷键

ctrl+c:强制停止

ctrl+d(exit):退出或者登出

history:查看历史输入过的命令

!命令前缀:自动匹配上一个命令

ctrl+r:搜索历史命令

光标移动快捷键

ctrl+a :跳到命令开头

ctrl+e:跳到命令结尾

ctrl+键盘左/右:向左右跳一个单词

ctrl+l(clear):清屏

软件安装

yum命令为centos系统安装软件

apt命令为ubuntu系统安装软件

yum命令(centos)

image-20240102102023175

eg:

image-20240102102326413

apt命令(ubuntu)

image-20240102102701357

systemctl命令

systemctl命令控制软件的启动和关闭

image-20240102103038753

软连接(ln)

image-20240102104414379注意:链接地址一定要是绝对路径

日期和时区

查看日期时间命令

image-20240102111522809

日期计算:

date -d "+1 day"

npt进行时间同步和校准

image-20240102114826754

ip地址、主机名

ip和主机名

1.修改主机名

1.查看主机名
hostname
2.修改主机名(修改主机名,需要用root用户)
hostnamectl set-hostname 主机名称
[root@localhost ~]# hostnamectl set-hostname wgz
3.重新登录即可看到主机名显示正确

2.ip与主机名的映射

1.现在本地进行查看记录
看windows:c:\windows\system32\drivers\etc\hosts
看linux:/etc/hosts
映射关系:ip地址 主机名
2.本地没有,则联网去看

虚拟机配置固定ip

1.配置固定ip(windows)

image-20240104104549640

1.点击虚拟网络编辑器,然后找到vmnet8

2.修改子网ip,子网掩码(255.255.255.0)

3.然后点击nat设置,查看网关ip是不是在子网IP内(2为最后)

image-20240104105300815

4.在linux中修改固定ip

image-20240104105348878

5.重启网络

systemctl restart network

网络请求和下载

ping命令检查服务器是否可联通

ping [-c num] ip或者主机名 -c num 检查次数
[root@localhost ~]# ping -c 2 www.baidu.com

wget命令下载文件

wget [-b] url  -b表示后台下载,会将日志写入到当前工作目录的wget-log文件中

curl命令发起网络请求

image-20240104114502099

网络

端口

image-20240108093453620

查看端口占用

nmap 被查看的ip地址
查看这个ip占用的端口

查看所有端口
netstat -anp
netstat -anp | grep 端口号

查看tcp的端口
netstat -ntlp

telnet <主机名或IP地址> <端口号>

进程

查看进程

ps [-e -f]
-e:显示出全部的进程
-f:完全格式化的形式展示信息

关闭进程

kill [-9] 进程ID
-9:强制关闭

主机状态

查看系统资源占用

top

mysql(5.7)安装

1.配置yum仓库

更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装MySQL yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

image-20240114205151774

2.使用yum安装mysql

yum -y install mysql-community-server

3.安装完成后,设置开机自启动

启动MySQL
systemctl start mysqld
开机自启动mysql
systemctl enable mysqld

systemctl status mysqld

4.配置mysql

grep 'temporary password' /var/log/mysqld.log

image-20240114210323741

#修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
#如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW;# 密码安全级别低
set global validate_password_length=4; # 码长度最低4位即可

#然后就可以用简单密码了 (课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY简单密码;

image-20240114210515483

#授权root远程登录
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
#IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
#密码表示给远程登录独立设置密码,和本地登陆的密码可以不同

#剧新权限,生效
flush privileges;

image-20240114210928160

一般navicat连接不上mysql的原因:

第一种:防火墙未关闭

systemctl status firewalld

第二种:防火墙打开,但是端口未开发

1.查看防火墙端口开放
firewall-cmd --list-port
2.开启防火墙命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3.重启防火墙
firewall-cmd --reload

Tomcat安装

1.安装jdk

1.创建一个文件夹
mkdir -p /export/server
1.将安装包拖到服务器这个地址:/export/server
2.解压jdk安装文件(-C 指定路径下解压)如果没有可不要
tar -zxvf 安装包 -C 指定路径下解压
z:表示使用gzip进行压缩和解压缩
x:解压
v:显示详细信息
f:表示指定文件
3.配置JAVA_HOME环境
编辑配置文件:vi /etc/profile
编辑内容
JAVA_HOME=/usr/java/jdk11
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
4.刷新配置文件
source /etc/profile

2.安装tomcat

1.下载tomcat安装包
wget https://dlcdn.apache.org/tomcat/tomcat-18/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz

如果出现https相关错误,可以使用--no-check-certificate选项
wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-18/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz

2.解压tomcat安装包

3.启动tomcat
/export/server/tomcat/bin/startup.sh

4.放行tomcat的8080端口(两种方式:1.关闭防火墙 2.不关闭防火墙,开放8080端口)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
5.浏览器访问(服务器ip:8080)

Nginx安装

1.安装依赖程序
yum install -y yum-utils

2.手动添加nginx的yum仓库v

image-20240126113949764

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

3.通过yum安装最新稳定的nginx

yum install -y nginx

4.启动Nginx

systemctl start nginx
systemctl enable nginx 开机自启动

5.防火墙配置

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

6.访问nginx

ip:80

RabbitMQ安装----未验证

RabbitMQ开源的消息队列系统,为企业提供信息的发布、订阅、点对点传输等消息服务

1.准备yum仓库

image-20240126151626821

rpm --import https://github.com/rabbitmg/signing-keys/releases/download/2.0/rabbitmg-release-signing-key.asc
rpm --import https://packagecloud.io/rabbitmg/erlang/gpgkey
rpm --import https://packagecloud.io/rabbitmg/rabbitmg-server/gpgkey

2.准备仓库文件

image-20240126151644035

image-20240126152109502

image-20240126152237104

vi /etc/yum.repos.d/rabbitmq.repo

[rabbitmq_erlang]
namerabbitmg_erlang
baseurl=https://packagecloud.io/rabbitmg/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
#PackageCloud's repository key and RabbitMq package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps://github.com/rabbitmg/signing-keys/releases/download/2.0/rabbitmg-release-signing-key.ascsslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire-308
[rabbitmq_erlang-source]
name=rabbitmg_erlang-source
baseurl=https://packagecloud.io/rabbitmg/erlang/el/7/SRPHS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMg package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps: //github.com/rabbitmg/signing-keys/releases/download/2.0/rabbitmg-release-signing-key.ascsslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
## RabbitMQ server

[rabbitmg_server]
name=rabbitmg_server
baseurl=https://packagecloud,io/rabbitmg/rabbitmg-server/el/7/$basearchrepo_gpgcheck=1
gpgcheck=0
enabled=1
#PackageCloud's repository key and RabbitMg package signing keygpgkey=https://packagecloud.1o/rabbitmg/rabbitmg-server/gpgkey
https://github.com/rabbitmg/signing-keys/releases/download/2,0/rabbitmg-release-signing-key.ascsslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
rabbitmg_server-source]
name=rabbitmq_server-source
baseurl=https://ckagecloud.io/rabbitmg/rabbitmg-server/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmg-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmg_server-source]
name=rabbitmg_server-source
baseurl=https://packagecloud,io/rabbitmg/rabbitmg-server/el/7/SRPMSrepo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

3.安装RabbitMQ

yum -y install  erlang rabbitmq-server

4.启动

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

5.放行防火墙

rabbitmq端口5672、15672、25672

6.启动rabbitmq的web管理控制台

rabbitmq-plugins enable rabbitmq_management

7.添加用户并赋予权限

rabbitmgctl add_user admin 'Itheima66^'
rabbitmqctl set_permissions p"/""admin" ".*" ".*" ".*"
rabbitmgctl set_user_tags admin administrator

8.打开网址

ip:15672

Redis安装

1.配置EPEL仓库

yum install -y  epel-release

2.安装redis

yum install -y redis

3.启动redis

systemctl start redis
systemctl enable redis

4.放行防火墙

redis端口:6379

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

5.进入redis服务

[root@localhost ~]# redis-cli

Elasticsearch安装

集群

集群的基础都是在java环境上进行,因此要安装jdk环境

1.clone三个虚拟,然后进行ip修改,修改主机名(node1\node2\node3)

vi /etc/sysconfig/network-scripts/ifcfg-ens33

分别修改为:192.168.112.131
192.168.112.132
192.168.112.133

2.准备主机名映射

image-20240129171925624

3.ssh免密登

3.1每台设备执行命令,生成密钥

ssh-keygen -t rsa -b 4096

3.2 每一台都执行以下命令,之后用ssh登录,都不用输入密码

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

Zookeeper集群

Zookeeper是一款分布式的集群化软件,可以在多台服务器上部置,并协同组成分布式集群一起工作
1.首先,要确保已经完成了集群化环境前置准备环节的全部内容
2.【node1上操作】下载Zookeeper安装包,并解压

#下载
wget  --no-check-certificate http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
#确保如下目录存在,不存在就创建
mkdir -p /export/server
# 解压
tar zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server

3.【node1上操作】创建软链接

1n -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

4.【node1上操作】修改配置文件

vi /export/server/zookeeper/conf/zoo.cfg

tickTime=2000
#zookeeper数据存储目录
dataDir=/export/server/zookeeper/data
clientPort=2181
initlimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

5.【node1上操作】配置myid

#1.创建Zookeeper的数据目录
mkdir /export/server/zookeeper/data
#2.创建文件,并填入1
vi /export/server/zookeeper/data/myid
# 在文件内填入1即可

6.分别在2和3做同样操作

myid 分别填入2、3

7.启动zookeeper

1.切换到zookeeper/bin
2.运行./zkServer.sh start

8.jps查看是否启动

Jps
#结果中找到有:QuorumPeerMain 进程即可

9.验证zookeeper

注意:防火墙端口的通行或者关闭防火墙,不然会一直连接不上

1.切换到zookeeper/bin
2.运行./zkCli.sh
3.执行ls
无报错则配置完成

Kafka集群

1.确保已经跟随前面的视频,安装并部署了JDK和Zookeeper服务
Kafka的运行依赖JDK环境和Zookeeper请确保已经有了JDK环境和Zookeeper(三台机器都需要进行安装)

2.【在node1操作】下载并上传Kafka的安装包

 #下载安装包
wget --no-check-certificate http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

3.【在node1操作】解压了。

mkdir -p /export/server#此文件夹如果不存在需先创建
 # 解压
tar -zxvf kafka_2.12-2.4.1.tgz  /export/server/

# 创建软链接
ln-s /export/server/kafka_2.12-2.4.1 /export/server/kafka

4.【在node1操作】修改Kafka目录内的config日录内的server.properties文件

cd /export/server/kafka/config
#指定broker的id
broker.id=1
#指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node1:9092
#指定Kafka数据的位置
log.dirs=/export/server/kafka/data
#指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181

5.启动

#方式1:【前台启动】分别在node1、2、3上执行如下语句
/export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties

#方式2:【后台启动】分别在node1、2、3上执行如下语句6
nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1 >> /export/server/kafka/kafka-server.log &

测试Kafka能否正常使用

1.创建测试主题
#在node1执行,创建一个主题
/export/server/kafka 2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --
partitions 3 --topic test

2.运行测试,请在FinalShell中打开2个node1的终端页面

#打开一个终端页面,启动一个模拟的数据生产者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topic test
#再打开一个新的终端页面,在启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 -topic test --from-beginning

数据生产者生产数据,数据消费者将接收到对应数据

image-20240220110841039

image-20240220110954489

posted @ 2024-03-06 13:55  没事别找我  阅读(2)  评论(0编辑  收藏  举报