【虚拟机|linux常用命令及环境搭建】
linux常用命令及环境搭建
-
-
- linux命令
-
- 1.0 安装docker
- docker的常用命令
-
- 1.0 镜像的命令
- 1.1 容器的命令
- docker 安装nginx
- docker来安装一个tomcat
- 项目安装、部署
-
- 1、下载jdk
- 2、tomcat的启动
- 3、启动mysql
- 4、启动nacos
- 5、配置linux的host文件
- 6、安装redis
- 7、rabbitmq的安装
- 8 、解压命令
- 9、关闭防火墙
- 10、nginx原始安装教程centos 7
- 11、配置ssl
- 项目启动
- 前端项目打包
-
linux命令
环境查看
unname -r
查看系统详细的版本
[root@VM-0-16-centos /]# cat/etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;
31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
1.0 安装docker 官网地址
帮助文档:
# 1、卸载旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2、需要的一些安装包
yum install -y yum-utils
# 3、设置镜像的厂库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是从国外的十分的慢yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #阿里云镜像地址
#更新索引
yummakecache fast
# 4、安装docker相关的资源 docker-ce 社区ee企业版
yum install docker-ce docker-ce-cli containerd.io# 5、启动docker
systemctl start docker
# 6、查看docker的版本
docker version
# 7、docker测试
docker run hello-world
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXAgX79T-1639733923817)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211207094332893.png)]
# 8、查看一下下载的这个hello-world 镜像
docker images
[root@VM-0-16-centos /]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
hello-worldlatestfeb5d9fea6a52 months ago13.3kB
卸载docker
# 1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2、删除安装路径
rm -rf /var/lib/docker
# /var/lib/docker docker默认的工作路径
阿里云镜像加速
略
docker运行流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9DtgzgF-1639733923818)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211207101957109.png)]
docker的常用命令
1.0 镜像的命令 帮助命令
docker--help# 帮助命令
# docker images
[root@VM-0-16-centos /]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
hello-worldlatestfeb5d9fea6a52 months ago13.3kB
# 解释
REPOSITORY镜像的仓库源
TAG镜像的标签
IMAGE ID镜像的id
CREATED镜像的创建时间
SIZE镜像的大小
docker pull 下载镜像
#下载镜像 docker pull 镜像名:tag[]
docker pull mysql[root@VM-0-16-centos /]# docker pull mysql:5.7# 我这里指定了mysql的版本
5.7: Pulling from library/mysql
ffbb094f4f9e: Pull complete# 分层下载 docker image的核心 联合文件系统
df186527fc46: Pull complete
fa362a6aa7bd: Pull complete
5af7cb1a200e: Pull complete
949da226cc6d: Pull complete
bce007079ee9: Pull complete
eab9f076e5a3: Pull complete
c7b24c3f27af: Pull complete
6fc26ff6705a: Pull complete
bec5cdb5e7f7: Pull complete
6c1cb25f7525: Pull complete
Digest: sha256:d1cc87a3bd5dc07defc837bc9084f748a130606ff41923f46dec1986e0dc828d
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7 # 真实地址# 下面两个地址是一样的
docker pull mysql:5.7
docker pull ocker.io/library/mysql:5.7# 删除镜像
docker rmi -f 镜像id
# 删除多个镜像
docker rmi -f 镜像id 镜像id镜像id镜像id
# 删除全部的镜像
docker rmi -f $(docker images -aq)
1.1 容器的命令
# 说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run[可选参数] image
#参数说明
--name="Name"容器名字
-d后台方式运行
-it使用交互方式运行,进入容器查看内容
-p指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用)
-p 容器端口
-p随机指定端口
#测试,启动并进入容器
[root@VM-0-16-centos /]# docker run-it centos/bin/bash
# 从容器中退出
exit
#dockerps 命令
#列出当前正在运行的容器
-a#列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q# 只显示容器的编号
# 查看运行中的容器
dockerps
# 查看曾经运行过的容器
docker ps -a
#查看最近创建的一个容器
[root@VM-0-16-centos /]# docker ps -n=1
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
5799eda1fb08centos"/bin/bash"2 hours agoExited (0) 4 minutes agolucid_joliot
退出容器
exit# 直接容器停止并退出
Ctrl +P +Q# 容器不停止并退出
删除容器
docker rm 容器id# 删除指定的容器(不能删除正在运行的容器,如果要强制删除 rm -f)
docker rm-f $(dockerps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器
启动和停止容器
docker start容器id#启动容器
docker restart 容器id# 重启容器
docker stop 容器id# 停止当前正在运行容器
docker kill 容器id # 强制停止当前容器
常用的其他命令
# 后台启动容器
# 命令 docker run -d 镜像名
docker run -d centos# 问题docker ps 发现 centos 停止了#常见的坑:docker容器使用后台运行。就必须要有一个前台进程,docker发现没有应用,就会自动停止
# ngix 容器启动后,发现自己没有提供服务,就会立即停止,就是没有程序了
查看日志
#自己编写一段日志
[root@VM-0-16-centos /]# docker run -d centos /bin/sh -c "while true;
do echo llc ;
sleep 1;
done"
# 显示日志
[root@VM-0-16-centos /]# docker logs -tf --tail 1030ee448f6ed2# 查看log日志帮助命令
root@VM-0-16-centos /]# docker logs --helpUsage:docker logs [OPTIONS] CONTAINERFetch the logs of a containerOptions:
--detailsShow extra details provided to logs
-f, --followFollow log output
--since stringShow logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail stringNumber of lines to show from the end of the logs (default "all")
-t, --timestampsShow timestamps
--until stringShow logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42
minutes)
[root@VM-0-16-centos /]# docker logs -tfn 1030ee448f6ed2# docker logs -tfn条数容器id
查看容器中的进程信息
# 命令dockertop 容器id
[root@VM-0-16-centos /]# docker top 30ee448f6ed2
UIDPIDPPIDCSTIMETTYTIMECMD
root271851271833017:18?00:00:00/bin/sh -c while true;
do echo llc ;
sleep 1;
done
root273704271851017:26?00:00:00/usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
查看镜像元数据
#命令
docker inspect 容器id
进入当前运行中的容器
#我们通常容器都是使用后台方式运行,需要进入容器,修改一些配置# 命令
docker exec -it 容器idbashShell#测试
[root@VM-0-16-centos /]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
e551731fbb3ccentos"/bin/bash"About a minute agoUp About a minutexenodochial_davinci
[root@VM-0-16-centos /]# docker exec -it e551731fbb3c /bin/bash
[root@e551731fbb3c /]# ls
bindevetchomeliblib64lost+foundmediamntoptprocrootrunsbinsrvsystmpusrvar
[root@e551731fbb3c /]# ps -ef
UIDPIDPPIDC STIME TTYTIME CMD
root100 03:40 pts/000:00:00 /bin/bash
root1600 03:42 pts/100:00:00 /bin/bash
root31160 03:42 pts/100:00:00 ps -ef# 方式二
docker attach 容器id
#测试
[root@VM-0-16-centos /]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
e551731fbb3ccentos"/bin/bash"4 minutes agoUp 4 minutesxenodochial_davinci
[root@VM-0-16-centos /]# docker attach e551731fbb3c# docker exec#进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach #进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机上
# docker cp 容器id:容器内路径 目的主机路径
docker cpe551731fbb3c:/home/text.txt /home
小结:
文章图片
docker 安装nginx
#拉取镜像
docker pull nginx
#启动nginx docker run -d --name nginx的名称 -p 外网端口:80nginx
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口
docker run -d --name nginx01 -p 3344:80nginx
# 本机访问
[root@VM-0-16-centos /]# curl localhost:3344
Welcome to nginx! - 锐客网
>
html { color-scheme: light dark;
}
body { width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
# 进入容器中
[root@VM-0-16-centos /]# docker exec-it nginx01 /bin/bash
# 查看nginx的配置
root@42d0b48127a6:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@42d0b48127a6:/# cd /etc/nginx
root@42d0b48127a6:/etc/nginx# ls
conf.d fastcgi_params mime.typesmodulesnginx.confscgi_paramsuwsgi_params
root@42d0b48127a6:/etc/nginx#
文章图片
docker来安装一个tomcat
# 官方使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到docker run -it --rm ,一般用来测试,用完就删除# 下载启动
docker pull tomcat:9.0
# 启动tomcat
[root@VM-0-16-centos /]# docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0
# 但是访问外网的ip不能访问到tomcat的主页,因为阿里云镜像默认下载最小的镜像
# 将webapps.dist中的文件信息放入webapps
root@732c610cb68b:/usr/local/tomcat# cp -r webapps.dist/*webapps
项目安装、部署
1、下载jdk
# 解压文件
tar -zxvfjdk-8u101-linux-x64.tar.gz(jdk的压缩包)
cp -pjdk1.8.0_101/usr/local/java# 将压缩包添加包
# 修改配置项
vim /etc/profile
#配置如果下
export JAVA_HOME=/usr/java/jdk1.8.0_311
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH};
#编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:
source /etc/profile
# 查看jdk是否安装成功
java -
2、tomcat的启动
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0
3、启动mysql
docker restart 容器id# 重启容器
4、启动nacos
# 进入nacos的目录
cd /usr/local/nacos/bin
# 后台启动nacos
sh startup.sh -m standalone &
# 查看日志
tail -500f /usr/local/nacos/logs/start.out
#关闭nacos
sh shutdown.sh
5、配置linux的host文件
vim /etc/hosts
6、安装redis
# 解压redis
tar -zvxf redis-5.0.7.tar.gz
# 移动redis目录
mv /root/redis-5.0.7 /usr/local/redis
# 编译 cd到/usr/local/redis目录,输入命令make执行编译命令
make
# 安装
make PREFIX=/usr/local/redis install
这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。# 启动redis
./bin/redis-server& ./redis.conf# 查看redis是否正在运行
ps -aux | grep redis
# 采取端口监听查看方式
netstat -lanp | grep 6379
# 关闭运行中的redis服务
./bin/redis-cli
shutdown# 对redis设置密码(首先得启动redis)
redis-cli -p 6379#查看当前redis的密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
# 设置密码
config set requirepass abcdefg
# 绑定redis的运行端口 (添加 bind 机器的地址)
vim redis.conf
bind 139.155.73.165
7、rabbitmq的安装
# 拉取镜像
docker pull rabbitmq:3.7.7-management
# 启动
dockerrun -d -p 15672:15672 --namerabbitmq rabbitmq:3.7.7-management
8 、解压命令
unzip[选项] 压缩包名# 解压gz
tar -zxvfnginx-1.9.9.tar.gz
9、关闭防火墙
#1:查看防火状态systemctl status firewalldserviceiptables status#2:暂时关闭防火墙systemctl stop firewalldserviceiptables stop#3:永久关闭防火墙systemctl disable firewalldchkconfig iptables off#4:重启防火墙systemctl enable firewalldservice iptables restart
10、nginx原始安装教程centos 7
# 下载nginx安装包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
# 把压缩包解压到usr/local/java
tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/java
# 依赖引入
yum install openssl openssl-devel
# 安装ssl证书需要的模块。
./configure --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module--with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module# 切换到cd /usr/local/java/nginx-1.9.9/下面
./configure
make
make install
# 切换到/usr/local/nginx/conf安装目录,配置nginx的配置文件nginx.conf文件,主要也就是端口
vi nginx.conf
# 切换目录到/usr/local/nginx/sbin下面,启动nginx服务
./nginx
# 查看nginx服务是否启动成功
ps -ef | grep nginx
# 重启服务
nginx -s reload
nginx的负载均衡
upstream mysvr {
server 81.68.207.210:9001 weight=1;
# weight 只权重这里都是1那么就轮询
server139.155.73.165:8081 weight=1;
}
server {
....
location~*^.+$ {
proxy_passhttp://mysvr;
#请求转向mysvr 定义的服务器列表
}
错误解决
文章图片
解决方法:
首先:将/nginx目录下/objs/Makefile中的 -Werror删除。
文章图片
其次make:立马再次编译的话,是会报另一个错误。
文章图片
最后:在nginx目录下输入命令:vim src/os/unix/ngx_user.c,将下图红框内内容注释,退出保存即可正常编译
文章图片
https://blog.csdn.net/weixin_44898541/article/details/121537998
11、配置ssl 绑定域名与地址
开放443端口
申请证书
上传证书
开发端口
nginx.conf
#usernobody;
worker_processes1;
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events {
worker_connections1024;
}http {
includemime.types;
default_typeapplication/octet-stream;
#log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" "$http_x_forwarded_for"';
#access_loglogs/access.logmain;
sendfileon;
#tcp_nopushon;
#keepalive_timeout0;
keepalive_timeout65;
# 引入个人配置模块
include llc.conf;
}
llc.conf
upstream mysvr {
server 81.68.207.210:9001 weight=1;
# weight 只权重这里都是1那么就轮询
# server139.155.73.165:8081 weight=1;
}
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name llchun.xyz;
#证书文件名称
ssl_certificate/usr/local/nginx/conf/cert/llchun.xyz_bundle.crt;
#私钥文件名称
ssl_certificate_key /usr/local/nginx/conf/cert/llchun.xyz.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
root /home/error_not_found;
index404.html;
}
}
server {
listen80;
server_namellchun.xyz;
location/ {
proxy_passhttp://mysvr;
#请求转向mysvr 定义的服务器列表
}error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}
}server {
listen9001;
server_name81.68.207.210;
location/ {
root/home/dist;
indexindex.html;
}error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}
}server {
listen9002;
server_name81.68.207.210;
location/ {
root/home/error_not_found;
index404.html;
}error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}
}server {
listen80;
server_namelocalhost;
location / {
roothtml;
indexindex.html index.htm;
}error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_passhttp://127.0.0.1;
#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#roothtml;
#fastcgi_pass127.0.0.1:9000;
#fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
#includefastcgi_params;
#}# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#denyall;
#}
}# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#listen8000;
#listensomename:8080;
#server_namesomenamealiasanother.alias;
#location / {
#roothtml;
#indexindex.html index.htm;
#}
#}# HTTPS server
#
#server {
#listen443 ssl;
#server_namelocalhost;
#ssl_certificatecert.pem;
#ssl_certificate_keycert.key;
#ssl_session_cacheshared:SSL:1m;
#ssl_session_timeout5m;
#ssl_ciphersHIGH:!aNULL:!MD5;
#ssl_prefer_server_cipherson;
#location / {
#roothtml;
#indexindex.html index.htm;
#}
#}
http到https
#http重定向到htts
if ($server_port = 80){
return 301 https://$server_name$request_uri;
}
#http重定向到htts
if ($scheme = http){
return 301 https://$server_name$request_uri;
}
项目启动
启动命令:java -jar jar包 &
查看进程: ps -ef | grep java
杀死进程: kill -9 pid
项目启动: nohup java -Xms2048m -Xmx2048m -jar bks-bigdata-center.jar &
日志查看: tail -f nohup.out
# 1、启动docker
systemctl start docker
# 2、启动mysql
docker restart 容器id# 重启容器
# 3、启动tomcat
docker restart 容器id# 重启容器
# 3、启动nacos
# 进入nacos的目录
cd /usr/local/nacos/bin
# 启动nacos
sh startup.sh -m standalone &
# 查看日志
tail -500f /usr/local/nacos/logs/start.out
# 4、启动redis
# 启动redis
./bin/redis-server& ./redis.conf# 查看redis是否正在运行
ps -aux | grep redis
# 关闭运行中的redis服务
./bin/redis-cli
shutdown# 对redis设置密码(首先得启动redis)
redis-cli -p 6379#查看当前redis的密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
# 设置密码
config set requirepass abcdefg
前端项目打包
# 打包前端项目
npm run buil
# 配置nginx
# 切换到/usr/local/nginx/conf安装目录,配置nginx的配置文件nginx.conf文件,主要也就是端口
vi nginx.conf
文章图片
推荐阅读
- python|python import 搜索包路径的机制,以及添加自定义python包的方法
- Linux编程|Linux编程入门(16)-进程(四)等待子进程
- wget|wget linux java 32_Java 通过wget在Linux上下载Java JDK显示的是许可证页面
- python|iphone玩游戏关闭通知_如何在iPhone上关闭COVID-19曝光记录和通知
- iMX8|VisualStudioCode开发Arm嵌入式Linux应用
- linux centos 恢复 还原 备份 Snapper 快照说明
- Tomcat 访问manager app报403 解决方案(虚拟机可以正常使用,外面访问报错)
- linux/嵌入式|嵌入式开发第一阶段,环境搭建
- /dev/mapper/centos-root扩容