1、常用指令

1.1 进程

ps -ef | grep nginx          查看包含nginx的进程
kill -9 进程号               结束进程

1.2 网络配置

ifconfig                     查看网络配置
lsof -i:3306                 查询3306端口占用情况
systemctl restart network        重新启动网络服务

1.3 系统命令

  • 关机 shutdown poweroff halt
  • 重启 reboot
  • 查看磁盘占用情况 df -h

1.4 展示

ls        简略展示
ll        详细展示
ls -a     显示隐藏文件

1.5 路径

pwd                 当前路径
ls ./               当前目录
ls ../              上级目录
ls /home/admin      绝对路径
ls ../home/admin    相对路径

1.6 文件夹

mkdir test01            创建文件夹
mkdir -p aa/bb/cc       创建多级目录
rmdir test01            删除文件夹
rm -rf aa               删除多级目录(不提示递归强制删除)或文件*
mv test01 test02        重命名文件夹或文件
mv test01 /opt/test     重命名并移动文件夹或文件
cp -R aa test/          复制文件夹或文件

1.7 文件操作

touch abc.txt 或者 >abc.c    创建文件
tail -f abc.txt              实时查看文件
cat abc.txt                  由第一行开始显示
cat aaa > bbb                把aaa文件的内容复制到bbb文件中
cat aaa >> bbb               把aaa的内容追加到bbb的末尾
echo 字符串                   写入字符串
echo 字符串 >> bbb            将字符串追加到bbb的末尾
tac abc.txt                  从最后一行开始显示
nl abc.txt                   显示的时候顺带输出行号
more abc.txt                 一页一页的显示
head abc.txt                 从头开始看
head -10 abc.txt             查看前10行

1.8 文本编辑

  • 进入文件编辑模式 vim 文件名
  • 编辑模式下
i        光标所在位置插入    
I        光标所在行的头部插入
a        光标所在位置的下一个位置开始插入
A        光标所在行的末尾插入
o        光标所在位置的下一行插入
O        光标所在位置的上一行插入
esc      退出编辑模式
:q       退出
:wq      保存并退出
:wq!     强制保存并退出
  • 命令模式下
:set nu      显示行号
:set nonu    取消行号
G            到最后一行
gg           到首行
ngg/nG       跳到n行
yy           复制所在行
nyy          从当前行往下复制n行
yy           复制光标所在行
p            粘贴到下一行
u            撤销上一步操作(相当于ctrl+z)
dd           删除当前行
ndd          从当前行往下删除n行
x            删除光标所在位置的字符
nx           从光标位置往后删除n个字符
/字符        全文检索        n往上        N往下
:%s/sss/ggg/g        全文替换sss为ggg

1.9 用户和组

su 用户名                切换用户
useradd 用户名           添加用户
userdel -r 用户名        删除用户
cat /etc/passwd         查看用户
passwd 用户名            设置用户密码
usermod -L 用户名        锁定用户
usermod -U 用户名        解锁用户

cat /etc/group          查看组
groupadd 组名           添加组
groupdel -f 组名        删除组(如果组下有用户,删除不了)*
usermod -g 组名 用户名   修改组
groupmod -g 2105 web    修改组的ID改为GID 
groupmod -n www web     修改组的名称

1.10 权限

  • 文件的权限为9个字母,三个三个一组
1 :   当前目录/文件的性质   d (目录)  l (bin)   -(文件)
2-4:  所属用户的权限
5-7:  所属组的权限
8-10: 其他用户和组的权限

r: read    读
w: write   写
x: execute 执行
-: 占位 没有权限
可以使用数字代替:( r:4    w:2    x:1)
更改用户:  chown 用户名 文件名  ===> change  owner
更改组:    chgrp 用户名 文件名  ==> change  group
更改权限:  chmod 777 文件名  ===> change modirfire

chown root:root 文件名            变更当前的目录或文件的所属用户和组
chown -R root:root 文件名         变更目录中的所有子目录及文件的所属用户和组
chmod u=rwx,g=rx,o=rx 文件名

2、基本配置

2.1 设置中文

  • 如果执行help时全是英文,则执行 locale如果出现LANG=en_US.xxx的话,说明系统默认编码为ASCII,不支持中文字符集
  • 打开locale配置文件 vim /etc/default/locale
  • 在文件加入以下内容
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
  • 重新加载配置文件 source /etc/default/locale

2.2 静态IP

  • 进到网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改配置 BOOTPROTO="static" dhcp表示动态获取IP地址,static表示静态IP,none表示不指定,在尾部加上
IPADDR=192.168.126.133
GATEWAY=192.168.126.2
NATMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
  • 重启网络服务 systemctl restart network
  • 如果ping不通 www.baidu.com,进到配置文件 vim /etc/resolv.conf 在尾部加上
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 1.1.1.1

2.3 防火墙

systemctl status firewalld      查询防火墙状态
systemctl stop firewalld        关闭防火墙(本次)
systemctl start firewalld       开启防火墙(本次)
systemctl disable firewalld     永久关闭防火墙  重启生效
systemctl enable firewalld      开启防火墙     重启生效
firewall-cmd --reload           重启防火墙

开放端口(修改后需要重启防火墙方可生效):
firewall-cmd --zone=public --add-port=8080/tcp --permanent
查看开放的端口:
firewall-cmd --list-ports
关闭端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

2.4 jdk安装

  • 解压jdk tar -zxvf jdk-8u361-linux-x64.tar.gz
  • 配置环境变量 vim /etc/profile
  • 在最后插入
export JAVA_HOME=/opt/jdk1.8.0_361/
export PATH=$JAVA_HOME/bin:$PATH
  • 重新加载配置 source /etc/profile

2.5 tomcat安装(默认8080端口)

  • 解压tomcat tar -zxvf apache-tomcat-8.5.73.tar.gz
  • 进入bin目录
./startup.sh        启动文件
./shutdown.sh       关闭文件
  • 配置tomcat集群,在/opt目录下创建目录 mkdir tomcat
  • 将解压的文件移动到/opt/tomcat下并重命名 mv apache-tomcat-8.7.73 /opt/tomcat/tomcat-8080
  • copy一份到/opt/tomcat下并重命名为tomcat-8081
  • 修改 vim /opt/tomcat/tomcat-8081/conf/server.xml ,将server的port改成8086,connector的port改成8081
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" 
        protocol="HTTP/1.1" 
        connectionTimeout="20000"
        redirectPort="8443" />
  • 分别启动两个tomcat
/opt/tomcat/tomcat-8080/bin/startup.sh
/opt/tomcat/tomcat-8081/bin/startup.sh
  • 查看是否启动 ps -ef | grep tomcat

2.6 nginx安装(默认80端口)

  • 如果没有 gcc 和 make 环境,需要安装 gcc 和 make*
yum -y install autoconf automake make        安装 make
yum -y install gcc gcc-c++                   安装 g++
  • 安装 nginx 依赖的库
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum install -y openssl openssl-devel
  • 配置安装路径 ./configure --prefix=/usr/local/nginx
  • 编译安装 make && make install
  • 启动nginx /usr/local/nginx/sbin/nginx
  • /sbin目录下的指令
./nginx                     启动
./nginx -s reload           重启
./nginx -s stop             停止
./nginx -v                  查看版本
./nginx -V                  显示版本号并且显示安装配置
./nginx -t                  检验配置文件是否正确
./nginx -c filename         指定配置文件启动
  • 配置负载均衡,由于上面安装nginx的路径指向到了/usr/local/nginx的下面,所以 vim /usr/local/nginx/conf/nginx.conf
  • 在http{}中间插入
# 负载均衡策略【1.ip_hash 2.weight 3.url_hash 4.least_conn】默认轮询
upstream test{
    server localhost:8080;
    server localhost:8081;
}    
server {
    listen       8989;
    server_name  localhost;

    location / {
        # 反向代理
        proxy_pass http://test;
    }
}
  • 简单解释一下,监听8989端口,将访问8989端口的请求转发到本机的8080端口和8081端口,没配置权重,默认就是轮询,也就是8080和8081按顺序转发,一人一次请求

2.7 redis安装(默认6379端口)

  • 如果没有gcc环境,需要安装gcc* yum -y install gcc gcc-c++
  • 解压redis tar -zxvf redis-5.0.5.tar.gz
  • cd到解压后的文件夹里,执行make进行编译 make
  • 安装(在这里安装的目的就是为了生成redis的bin目录) make PREFIX=/opt/redis-5.0.5 install
  • 安装完后,在/opt/redis-5.0.5/bin下有几个可执行文件
redis-benchmark     ----性能测试工具
redis-check-aof     ----AOF文件修复工具
redis-check-dump    ----RDB文件检查工具(快照持久化文件)
redis-cli           ----命令行客户端
redis-server        ----redis服务器启动命令
  • 后端模式启动,修改redis.conf配置文件
修改 daemonize yes
修改 bind 0.0.0.0    就可以远程连接
  • 默认加载不了配置,每次启动redis服务器的时候,指定配置文件 ./bin/redis-server ./redis.conf
  • 正确停止Redis的方式应该是向Redis发送shutdown命令,先进入redis的bin目录
  • 再执行 ./redis-cli shutdown

2.8 mysql安装(默认3306端口)

  • 查看系统自带的Mariadb rpm -qa|grep -i mariadb-libs
  • 卸载之前的版本 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
  • 下载MySQL仓库并安装 wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
  • 执行以下命令再安装即可
yum -y install mysql80-community-release-el7-3.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  • 安装MySQL数据库 yum -y install mysql-community-server
  • 启mysql服务 systemctl start mysqld.service
  • 一些服务指令
systemctl status mysqld           查看状态
systemctl stop mysqld             关闭
systemctl start mysqld            启动
systemctl restart  mysqld         重新启动
  • 查看mysql默认密码(需要使用默认密码登录) cat /var/log/mysqld.log | grep password
  • 默认密码 aKAWr;adS1*A
  • 连接MySQL mysql -uroot -p
  • 重置一个复杂密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Llh020920.';
  • 查询密码验证结构 SHOW variables LIKE 'validate_password%';
  • 设置密码验证规则
set global validate_password.policy=LOW; 
set global validate_password.length=4;
  • 创建用户并设置密码 create user 'root'@'%' identified by '123456';
  • 给指定的用户授权 grant all on *.* to 'root'@'%' with grant option;
  • 刷新权限 flush privileges;

2.9 elasticsearch安装(默认9200端口)

  • 解压 tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz
  • 在解压目录里创建存储数据目录
mkdir -p es_data/datas
mkdir -p es_data/logs
  • 修改 vim config/elasticsearch.yml 配置文件,指定文件内容文件和日志文件
path.data: /opt/elasticsearch-7.9.3/es_data/datas
path.logs: /opt/elasticsearch-7.9.3/es_data/logs
  • 接着插入
node.name: node-1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
  • 编辑 vim /etc/security/limits.conf,追加以下内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
  • 编辑 vim /etc/sysctl.conf,追加以下内容
vm.max_map_count=262144
  • 创建用户 useradd es
  • 设置密码 passwd es
  • 修改es的用户和组权限 chown -R es:es ./elasticsearch-7.9.3
  • 切换es用户启动 su es /opt/elasticsearch-7.9.3/bin/elasticsearch -d
  • 快速查看是否启动es jps

2.10 kibana安装(默认5601)

  • 解压 tar -zxvf kibana-7.9.3-linux-x86_64.tar.gz
  • 配置 vim /opt/kibana-7.9.3/config/kibana.yml 修改以下内容
server.port: 5601
server.host: 0.0.0.0
elasticsearch.hosts: ["http://127.0.0.1:9200"]
i18n.locale: "zh-CN"
  • 启动kibana /opt/kibana-7.9.3/bin/kibana --allow-root

2.11 IK分词器安装

  • cd到es安装目录下的plugins中 cd /opt/elasticsearch-7.9.3/plugins/
  • 创建名为ik的文件夹 mkdir ik
  • 解压到指定文件夹 unzip elasticsearch-analysis-ik-7.9.3.zip -d ./ik/
  • 扩展词典,进入ik下的config目录,修改配置文件 vim IKAnalyzer.cfg.xml
<entry key="ext_dict">ext.dict</entry>
  • 在config目录下创建此文件 > ext.dict
  • 在文件中加入想要扩展的词典即可
  • 随后重启es即可使用分词器和扩展词典

2.12 logstash安装

  • 解压 tar -zxvf logstash-7.9.3.tar.gz
  • 新建一个配置文件 vim /opt/logstash-7.9.3/config/demo.conf追加以下内容
input{
  file{
      path=>["/opt/elasticsearch-7.9.3/es_data/logs/*.log"]
      type=>"logstash_log"
      start_position =>"beginning"
  }
}
 
output{
    elasticsearch{
    hosts=>["127.0.0.1:9200"]
    index=>"log-%{+YYYY.MM.dd}"
     }
}
  • 启动logstash(在启动logstash之前要确保es已经启动) /opt/logstash-7.9.3/bin/logstash -f /opt/logstash-7.9.3/config/demo.conf

2.12 es头插件安装

  • 在Google浏览器安装扩展 Multi Elasticsearch Head

2.13 kafka单机版安装(默认9092)

  • 首先查看jdk环境 java -version
  • 如果没有配环境变量需要先行配置jdk的环境变量
  • 解压 tar -zxvf kafka_2.11-0.11.0.2.tgz
  • 重命名为 mv kafka_2.11-0.11.0.2 kafka-2.11
  • cd 到 config 目录下,创建两个日志文件夹 mkdir kafka-logsmkdir zk-logs
  • 修改 vim ./server.properties如下:
修改log.dirs=/opt/kafka-2.11/config/kafka-logs
修改listeners=PLAINTEXT://192.168.126.133:9092    
添加host.name=192.168.126.133    (这里是自己虚拟机的ip地址)
放开注释delete.topic.enable=true      (删除主题,默认未开启)
  • 修改 vim ./zookeeper.properties如下:
修改dataDir=/opt/kafka-2.11/config/zk-logs
  • 单机命令,有先后顺序*:
  • 先启动zookeeper:
/opt/kafka-2.11/bin/zookeeper-server-start.sh  /opt/kafka-2.11/config/zookeeper.properties
  • 再启动kafka:
/opt/kafka-2.11/bin/kafka-server-start.sh /opt/kafka-2.11/config/server.properties 
/opt/kafka-2.11/bin/kafka-server-start.sh /opt/kafka-2.11/config/server.properties &    (后台启动)
  • 创建名为test的主题:
/opt/kafka-2.11/bin/kafka-topics.sh --create --zookeeper 192.168.126.133:2181 --replication-factor 1 --partitions 1 --topic test
  • 查看主题:
/opt/kafka-2.11/bin/kafka-topics.sh --list --zookeeper 192.168.126.133:2181
  • 删除主题:
/opt/kafka-2.11/bin/kafka-topics.sh --delete --topic test --zookeeper 192.168.126.133:2181
  • 启动生产者:
/opt/kafka-2.11/bin/kafka-console-producer.sh --broker-list 192.168.126.133:9092 --topic test
  • 启动消费者:
/opt/kafka-2.11/bin/kafka-console-consumer.sh --bootstrap-server 192.168.126.133:9092 --topic test    (从现在生产者发送消息开始接收)
/opt/kafka-2.11/bin/kafka-console-consumer.sh --bootstrap-server 192.168.126.133:9092 --topic test --from-beginning    (从第一条开始接收)

2.14 zookeeper集群部署(默认2181)

  • 从VMware中克隆3份机器,命名为broker1,broker2,broker3,将三台机器的IP分别修改静态IP, vim /etc/sysconfig/network-scripts/ifcfg-ens33
192.168.126.134
192.168.126.135
192.168.126.136
  • 每修改完一个机器都要重启网络服务,systemctl restart network,使其生效
  • 解压zookeeper,tar -zxvf zookeeper-3.4.10.tar.gz
  • cd zookeeper-3.4.10/目录下,新建mkdir data文件夹
  • cd conf/目录下,重命名mv zoo_sample.cfg zoo.cfg
  • 修改配置文件,vim zoo.cfg
修改dataDir=/opt/zookeeper-3.4.10/data
添加以下
server.1=192.168.126.134:2888:3888 
server.2=192.168.126.135:2888:3888 
server.3=192.168.126.136:2888:3888
  • 指定myid文件,内容就是对应的server.1:
echo "1">/opt/zookeeper-3.4.10/data/myid
echo "2">/opt/zookeeper-3.4.10/data/myid
echo "3">/opt/zookeeper-3.4.10/data/myid
  • 启动zookeeper之前,需要注意防火墙,要么开放端口,要么禁用防火墙
systemctl stop firewalld.service 停用防火墙(临时)
systemctl disable firewalld    禁用防火墙
systemctl status firewalld     查看防火墙状态    
firewall-cmd --reload   重启防火墙
  • 三台机器分别启动zookeeper,/opt/zookeeper-3.4.10/bin/zkServer.sh start
  • 查看状态,/opt/zookeeper-3.4.10/bin/zkServer.sh status
  • 停止服务,/opt/zookeeper-3.4.10/bin/zkServer.sh stop

2.15 kafka集群部署

  • 在单机版kafka基础之上,编辑配置文件, vim /opt/kafka-2.11/config/server.properties
  • 第一台机器:
修改 broker.id=0
添加 num.partitions=3
修改 zookeeper.connect=192.168.126.134:2181,192.168.126.135:2181,192.168.126.136:2181
  • 第二台机器同理,只需要修改 broker.id=1
  • 第三台机器同理,只需要修改 broker.id=2
  • 由于是克隆的单机版kafka,之前如果启动过,会产生日志文件,也就是server.0的日志,所以需要先清理logs
rm -rf /opt/kafka-2.11/kafka-logs/*
rm -rf /opt/kafka-2.11/zk-logs/*

2.16 集群命令

  • 三台机器分别启动zookeeper:
/opt/zookeeper-3.4.10/bin/zkServer.sh start
  • 三台机器分别启动kafka:
/opt/kafka-2.11/bin/zookeeper-server-start.sh  /opt/kafka-2.11/config/zookeeper.properties
  • 创建主题(使用第一个zookeeper):
/opt/kafka-2.11/bin/kafka-topics.sh -create --zookeeper 192.168.126.134:2181 --replication-factor 3 --partitions 3 --topic test
  • 查看主题(使用第二个zookeeper):
/opt/kafka-2.11/bin/kafka-topics.sh --list --zookeeper 192.168.126.135:2181
  • 启动集群生产者:
/opt/kafka-2.11/bin/kafka-console-producer.sh --broker-list 192.168.126.134:2181,192.168.126.135:2181,192.168.126.136:2181 --topic test
  • 启动集群消费者:
/opt/kafka-2.11/bin/kafka-console-consumer.sh --bootstrap-server 192.168.126.134:2181,192.168.126.135:2181,192.168.126.136:2181 --topic test

3、常见问题

3.1 使用ifconfig查看不到网卡信息

  • 在命令行输入 rm -rf /var/lib/Network
标签:操作系统Linux
本文到此就结束啦
Last modification:March 25, 2024
如果觉得我的文章对你有用,请随意赞赏