Linux 常用命令记录
内容还在不断的补充和更新,如有错误,烦请指正!
一、端口相关
firewall-cmd --zone = public --list-port
firewall-cmd --query-port= 8888 /tcp
firewall-cmd --zone = public --add-port= 9000 /tcp --permanent
firewall-cmd --zone = public --remove-port= 9000 /tcp --permanent
firewall-cmd --reload
netstat -ntulp | grep 9000
ip addr
二、防火墙相关
firewall-cmd --state
systemctl start firewalld.service
systemctl stop firewalld.service
firewall-cmd --reload
三、安装telnet
rmp -q telnet
rpm -q telnet-server
yum list telnet*
yum install telnet-server
yum install telnet.*
四、安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
五、安装Docker
systemctl stop docker
yum -y remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
yum -y install gcc
yum -y install gcc-c++
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<- 'EOF'
{
"registry-mirrors" : [ "https://sq6f7iyd.mirror.aliyuncs.com" ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker version
docker run hello-world
docker images
sudo systemctl status docker
sudo systemctl enable docker
六、Docker相关命令
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo service docker restart
sudo service docker stop
sudo systemctl stop docker
docker search 镜像名称
docker pull 镜像名称
docker images
docker ps
docker ps -a
docker system df
docker system prune -a
docker stats
docker save 镜像名:标签 > 相对路径
docker save gzmpcli-dispatch-center:latest > /data/gzmpcli-dispatch-center/test/gzmpcli-dispatch-center.tar
docker load < 镜像路径/镜像名
docker load < /data/gzmpcli-dispatch-center/gzmpcli-dispatch-center.tar
docker rmi 容器名称
docker rmi -f $( docker images -aq )
docker top 容器ID/名称
docker cp 容器ID:/etc/nginx/conf.d /data/nginx/conf
docker stop 容器ID
docker start 容器ID
docker restart 容器ID
docker run -d -p 8090 :8090 --name web-01 镜像名称
docker run -d -p 9998 :9998 --name workzaoan_9998 -v /etc/localtime:/etc/localtime workzaoan
docker exec -it 容器ID/名称 /bin/bash
docker exec -it 容器ID/名称 ip addr
exit
docker build -t 构建后镜像名称(自定义).
docker build -t workjiao_web .
docker logs -f 容器ID
docker logs -f --tail = 500 容器ID
docker logs --since 30m 容器ID
docker logs --since = "2021-11-30" --tail = 500 容器ID
docker logs -t --since = "2021-11-30T00:00:00" 容器ID
docker logs -t --since = "2021-11-30T00:00:00" --until "2021-12-30T00:00:00" 容器ID
-v /etc/localtime:/etc/localtime
docker run -d -p 9998 :9998 --name workzaoan_9998 -v /etc/localtime:/etc/localtime workzaoan
FROM java:8
COPY *.jar /app.jar
CMD [ "--server.port=9000" ]
EXPOSE 9000
ENTRYPOINT [ "java" ,"-jar" ,"-Duser.timezone=GMT+08" ,"/app.jar" ]
6.1 docker 安装Nacos注册中心
docker search nacos
docker pull nacos/nacos-server
docker run -d -p 8848 :8848 --name nacos-8848 nacos/nacos-server
docker cp nacos-8848:/home/nacos /data/
docker stop nacos-8848
docker rm nacos-8848
docker run -d -p 8848 :8848 --name nacos -v /data/nacos:/home/nacos -e MODE = standalone nacos/nacos-server
firewall-cmd --zone = public --add-port= 8848 /tcp --permanent
firewall-cmd --reload
6.2 docker安装redis命令
docker search redis
docker pull redis
cd /data
mkdir redis
cd redis
mkdir conf
mkdir data
cd /data/redis/conf
wget http://download.redis.io/redis-stable/redis.conf
vim redis.conf
bind 127.0 .0.1
protected-mode no
daemonize no
dir ./
appendonly yes
requirepass 147852 密码
docker run -d -p 6379 :6379 --name redis-01 --privileged = true -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes
-d -> 以守护进程的方式启动容器
-p 6379 :6379 -> 绑定宿主机端口
--name redis -> 指定容器名称
--restart always -> 开机启动
--privileged = true -> 提升容器内权限
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf -> 映射配置文件
-v /data/redis/data:/data -> 映射数据目录
--appendonly yes -> 开启数据持久化
docker restart 容器ID
firewall-cmd --zone = public --add-port= 6379 /tcp --permanent
firewall-cmd --reload
6.3 docker 安装Sentinel
docker pull bladex/sentinel-dashboard
docker run --name sentinel -d -p 8858 :8858 -d bladex/sentinel-dashboard
firewall-cmd --zone = public --add-port= 8858 /tcp --permanent
firewall-cmd --reload
dashboard 地址:http://IP:8858 ( 默认端口为8080)
账号密码都为:sentinel
6.4 docker安装MySQL
docker search mysql
docker pull mysql:5.7
cd /data
mkdir -p /data/mysql/data
mkdir -p /data/mysql/config
mkdir -p /data/mysql/logs
vim /data/mysql/config/mysqld.cnf
[ mysqld]
skip-name-resolve
character_set_server = utf8
datadir = /var/lib/mysql
server-id= 1000
[ mysql]
default-character-set = utf8
[ mysql.server]
default-character-set = utf8
[ mysqld_safe]
default-character-set = utf8
[ client]
default-character-set = utf8
docker run --privileged = true --restart = always --name mysql5.7 -p 3306 :3306 -e TZ = Asia/Shanghai -e MYSQL_ROOT_PASSWORD = jqx19980726 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/config:/etc/mysql/conf.d -v /data/mysql/logs:/var/log/mysql -d mysql:5.7 --character-set-server= utf8mb4 --collation-server= utf8mb4_general_ci --default-time_zone= '+8:00'
--lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写,如果配置文件里有写,就不用写
--restart = always 当 Docker 重启时,容器自动启动
--name mysql5.7 起别名
-p 3306 :3306 映射端口
d mysql:5.7 指定运行版本
-e MYSQL_ROOT_PASSWORD = "123456" : 设置root用户密码
--character-set-server= utf8mb4: 设置字符集为utf8mb4
--collation-server= utf8mb4_unicode_ci: 设置字符比较规则为utf8mb4_unicode_ci
--privileged = true 获取宿主机的root权限
-v 目录挂载
docker exec -it mysql5.7 /bin/bash
mysql -uroot -p密码
use mysql;
update user set host = '%' where user = 'root' ;
flush privileges;
select host,user from user where user = ’root’;
firewall-cmd --zone = public --add-port= 3306 /tcp --permanent
firewall-cmd --reload
6.5 docker安装RabbitMQ
docker search rabbitmq
docker pull rabbitmq
docker run -d -p 15672 :15672 -p 5672 :5672 -e RABBITMQ_DEFAULT_VHOST = my_vhost -e RABBITMQ_DEFAULT_USER = admin -e RABBITMQ_DEFAULT_PASS = admin --hostname myRabbit --name rabbitmq rabbitmq
-d:表示在后台运行容器;
-p:将容器的端口 5672 (应用访问端口)和 15672 (控制台Web端口号)映射到主机中;
-e:指定环境变量:
RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
RABBITMQ_DEFAULT_USER:默认的用户名;
RABBITMQ_DEFAULT_PASS:默认的用户密码;
--hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
--name rabbitmq:设置容器名称;
rabbitmq:容器使用的镜像名称;
docker update rabbitmq --restart = always
docker exec -it rabbitmq /bin/bash
---------------------------------
user@7b295c46c99d /: rabbitmq-plugins enable rabbitmq_management
user@7b295c46c99d /:exit
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
firewall-cmd --zone = public --add-port= 15672 /tcp --permanent
firewall-cmd --zone = public --add-port= 5672 /tcp --permanent
firewall-cmd --reload
6.6 docker安装Nginx
docker search nginx
docker pull nginx
mkdir -p /data/nginx/conf
mkdir -p /data/nginx/html
mkdir -p /data/nginx/log
docker run -d --name nginx-test nginx
docker cp nginx-test:/etc/nginx/conf.d /data/nginx/conf
docker cp nginx-test:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx-test:/usr/share/nginx/html/index.html /data/nginx/html/index.html
docker rm -f nginx-test
docker run -d -p 80 :80 --name nginx-01 -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/html/index.html:/usr/share/nginx/html/index.html -v /data/nginx/log:/var/log/nginx nginx
docker run -d --net host --name nginx-01 -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/html/index.html:/usr/share/nginx/html/index.html -v /data/nginx/log:/var/log/nginx nginx
curl 127.0 .0.1:80
< ! DOCTYPE html>
< html>
< head>
< title> Welcome to nginx! < /title>
< style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
< /style>
< /head>
< body>
< h1 > Welcome to nginx! < /h1 >
< p> If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.< /p>
< p> For online documentation and support please refer to
< a href = "http://nginx.org/" > nginx.org< /a> .< br/>
Commercial support is available at
< a href = "http://nginx.com/" > nginx.com< /a> .< /p>
< p> < em> Thank you for using nginx.< /em> < /p>
< /body>
< /html>
firewall-cmd --zone = public --add-port= 80 /tcp --permanent
firewall-cmd --reload
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"' ;
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65 ;
upstream webbalance{
server 106.12 .133.53:9000 weight = 1 ;
server 106.12 .133.53:9001 weight = 2 ;
server 106.12 .133.53:9002 weight = 3 ;
}
server{
listen 80 ;
server_name localhost;
location / {
proxy_pass http://webbalance;
}
}
}
http://106.12.133.58/test/loadBalance
6.7 docker安装tomcat
docker search tomcat
docker pull tomcat
6.8 docker 安装Portainer
docker search portainer
docker pull portainer/portainer
mkdir -p /data/portainer/data
wget https://raw.githubusercontent.com/renyinping/portainer-cn/master/Portainer-CN.zip
unzip Portainer-CN.zip -d public
docker run -d -p 9010 :9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer/data:/data -v /data/portainer/public:/public portainer/portainer
6.9 docker安装ElasticSearch
docker pull elasticsearch:7.12.0
mkdir -p /data/elasticsearch/data
mkdir -p /data/elasticsearch/config
mkdir -p /data/elasticsearch/logs
mkdir -p /data/elasticsearch/plugins
echo "http.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml
vim /data/elasticsearch/config/elasticsearch.yml
http.host: 0.0 .0.0
http.cors.enabled:true
http.cors.allow-origin:"*"
docker run --name elasticsearch -p 9200 :9200 -p 9300 :9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS = "-Xms256m -Xmx512m" \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.0
-p 端口映射
-e discovery.type = single-node 单点模式启动
-e ES_JAVA_OPTS = "-Xms84m -Xmx512m" :设置启动占用的内存范围
-v 目录挂载
-d 后台运行
docker ps
docker logs elasticsearch
chmod 777 /data/elasticsearch
docker restart elasticsearch
docker exec -it elasticsearch bash
curl 127.0 .0.1:9200
{
"name" : "de17a0a9cb33" ,
"cluster_name" : "elasticsearch" ,
"cluster_uuid" : "9x-E_MTXRGKZWiu6q8Z4zA" ,
"version" : {
"number" : "7.12.0" ,
"build_flavor" : "default" ,
"build_type" : "docker" ,
"build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a" ,
"build_date" : "2021-03-18T06:17:15.410153305Z" ,
"build_snapshot" : false,
"lucene_version" : "8.8.0" ,
"minimum_wire_compatibility_version" : "6.8.0" ,
"minimum_index_compatibility_version" : "6.0.0-beta1"
} ,
"tagline" : "You Know, for Search"
}
firewall-cmd --query-port= 9200 /tcp
firewall-cmd --zone = public --add-port= 9200 /tcp --permanent
firewall-cmd --reload
docker pull mobz/elasticsearch-head:5
docker run -d \
--name = elasticsearch-head \
--restart = always \
-p 9100 :9100 \
docker.io/mobz/elasticsearch-head:5
firewall-cmd --zone = public --add-port= 9100 /tcp --permanent
firewall-cmd --reload
docker exec -it 【containerId】 /bin/bash
find -name 'vendor.js'
apt-get update
apt-get install vim
6.10 dockers安装Xxl-Job调度中心
docker search xuxueli/xxl-job-admin
docker pull xuxueli/xxl-job-admin:版本号
docker pull xuxueli/xxl-job-admin:2.0.1
mkdir -p -m 777 /data/xxl-job/data/applogs
cd /data/xxl-job/
vim application.properties
server.port = 9500
server.servlet.context-path= /xxl-job-admin
management.server.servlet.context-path= /actuator
management.health.mail.enabled = false
spring.mvc.servlet.load-on-startup= 0
spring.mvc.static-path-pattern= /static/**
spring.resources.static-locations= classpath:/static/
spring.freemarker.templateLoaderPath = classpath:/templates/
spring.freemarker.suffix = .ftl
spring.freemarker.charset = UTF-8
spring.freemarker.request-context-attribute= request
spring.freemarker.settings.number_format = 0 .
mybatis.mapper-locations= classpath:/mybatis-mapper/*Mapper.xml
spring.datasource.url = jdbc:mysql://106.122.53.246:3306/xxl_job?useUnicode= true& characterEncoding = UTF-8& autoReconnect = true& serverTimezone = Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = jqx19980726
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
spring.datasource.type = com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle= 10
spring.datasource.hikari.maximum-pool-size= 30
spring.datasource.hikari.auto-commit= true
spring.datasource.hikari.idle-timeout= 30000
spring.datasource.hikari.pool-name= HikariCP
spring.datasource.hikari.max-lifetime= 900000
spring.datasource.hikari.connection-timeout= 10000
spring.datasource.hikari.connection-test-query= SELECT 1
spring.datasource.hikari.validation-timeout= 1000
spring.mail.host = smtp.263.net
spring.mail.port = 25
spring.mail.username = xxx@gzmpc.com
spring.mail.from = xxx@gzmpc.com
spring.mail.password = xxx
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.starttls.enable = true
spring.mail.properties.mail.smtp.starttls.required = true
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
xxl.job.accessToken = default_token
xxl.job.i18n = zh_CN
xxl.job.triggerpool.fast.max = 200
xxl.job.triggerpool.slow.max = 100
xxl.job.logretentiondays = 30
docker run -p 9500 :9500 -d --name = xxl-job-admin --restart = always -v /data/xxl-job/application.properties:/application.properties -e PARAMS = '--spring.config.location=/application.properties' xuxueli/xxl-job-admin:2.3.1
firewall-cmd --zone = public --add-port= 9500 /tcp --permanent
firewall-cmd --reload
七、Docker 网络
docker network ls
ip addr
docker exec -it 容器名称 ip addr
docker run -d -p 8080 :8080 --name tomcat03 --link tomcat02 tomcat
docker network create --driver bridge --subnet 192.168 .0.0/16 --gateway 192.168 .0.1 mynet
docker network inspect mynet( 网络名称)
八、Windows下使用SCP命令上传文件到服务器
scp -r D:\ workFile\ Docker_code\ demo9000 root@IP:/data/docker_code
root@106.56.456's password:输入你的服务器密码
ssh root@IP -p端口(默认的22不用写)
输入密码
九、Nginx日志相关操作以及配置
cd /data/nginx/log
tail -500f access.log
awk '{print $1}' access.log
awk '{print $1}' access.log | sort
awk '{print $1}' access.log| sort | uniq -c| sort -nr -k1| head -n 10
awk '{print $7}' access.log| sort | uniq -c | sort -n -k 1 -r| more
grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l
awk '{print $4}' access.log| cut -c 14 -15| sort | uniq -c| sort -nr| head -n 50
awk '{print $4}' access.log| cut -c 14 -18| sort | uniq -c| sort -nr| head -n 50
awk '{print $4}' access.log| cut -c 14 -21| sort | uniq -c| sort -nr| head -n 50
awk '{print $7}' access.log | sort | uniq -c| sort -rn | head -n 50
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
grep "30/Jun/2022:1[4-5]" access.log | awk '{print $1}' | sort -n | uniq -c | sort -rn | head -n 100
十、Linux磁盘相关命令
fdisk -l
df -h
du -h --max-depth= 1
du -sh *
du -sh * | grep G | sort -nr
十一、Linux查找文件或文件夹
find / -name 文件名
find / -name rB0CUmBSt66AOgjTAAC2KbvZn0E680.jpg
find ./ -size +20M -name '*.jpg'
find ./ -size +20M -name '*.jpg' | wc -l
find /data/docker/containers/ -name *\ .log
find /data/docker/overlay2/ -iregex ".*\.log"
ls -lrt
ls -lt
tail -n 500 file
find /data/iuap/workdir/fastdfs/storage_data/data/00/02/* -mtime +60 -type f -name "*.jpg" -exec rm -rf { } \ ;
find /data/iuap/workdir/fastdfs/storage_data/* -type f -name "*.jpg" -not -newermt "2023-03-13" | xargs rm -f
十二、Linux定时任务相关
crontab -l
0 6 * * * echo 1 > /proc/sys/vm/drop_caches
0 22 * * 6 /usr/bin/sh /data/docker/clean_docker_log.sh > /dev/null 2 >&1
0 4 * * * /usr/bin/sh /opt/scripts/clean_for_OP.sh > /dev/null 2 >&1
/10 * * * /home/testuser/test.sh
0,30 18 -23 * * * /usr/local/etc/rc.d/lighttpd restart
45 4 1,10 ,22 * * /usr/local/etc/rc.d/lighttpd restart
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
cd /var/log
tail -f cron
十三、CPU、内存相关命令
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
free -g
free -m
top -d 10
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
十四、Nginx相关命令
ps -ef | grep nginx
nginx -t
find / -name nginx.conf
十五、K8S相关命令
kubectl get nodes
kubectl describe node < node-name>
systemctl status kubelet
systemctl start kubelet
十六、Linux日志相关
tail -fn 1000 test.log
十七、DNS域名解析相关
nslookup 域名
nslookup gzmpc-paas.gzmpc.com
service named restart
service named status
cat /etc/hosts
vi /etc/hosts
十八、Linux 进程相关
top
systemctl is-enabled < 进程名称>
systemctl is-enabled tomcat-25015.service