linux操作记录

常用操作

ll 查看目录   ls 非管理员查看目录  ls -al

ls	显示文件和目录列表	ls [-alrtAFR] [name...]		
	-l	列出文件的详细信息
	-a	列出当前目录所有文件,包含隐藏文件
mkdir	创建目录	mkdir [-p] dirName		
	-p	父目录不存在情况下先生成父目录
cd	切换目录	cd [dirName]		
touch	生成一个空文件			
echo	生成一个带内容文件	echo abcd > 1.txt,   echo 1234 >> 1.txt   注:>> 在同文本中追加内容
cat	显示文本文件内容	cat [-AbeEnstTuv] [--help] [--version] fileName		
cp	复制文件或目录	cp [options](source dest)   		cp 文件  路径
rm	删除文件	rm [options] name...		
	-f	强制删除文件或目录
	-r	同时删除该目录下的所有文件
mv	移动文件或目录	mv [options] source dest		
find	在文件系统中查找指定的文件			
	-name	文件名
grep	在指定的文本文件中查找指定的字符串			
tree	用于以树状图列出目录的内容			
pwd	显示当前工作目录			
ln	建立软链接						in 文件(不存在的)   目标文件(真实存在的)
more	分页显示文本文件内容			
head	显示文件开头内容			
tail	显示文件结尾内容			
	-f	跟踪输出
	
	
tar -czvf my.tar.gz .    压缩  注释 . 为当前目录  
tar -xzvf my.tar.gz      解压


这些命令就是一个字典 问度娘
命令	说明
stat	显示指定文件的相关信息,比ls命令显示内容更多
who	显示在线登录用户
hostname	显示主机名称
uname	显示系统信息
top	显示当前系统中耗费资源最多的进程
ps	显示瞬间的进程状态
du	显示指定的文件(目录)已使用的磁盘空间的总量
df	显示文件系统磁盘空间的使用情况
free	显示当前内存和交换空间的使用情况
ifconfig	显示网络接口信息
ping	测试网络的连通性
netstat	显示网络状态信息
clear	清屏
kill	杀死一个进程

------------------------------------------------------
vi 文件名  注释:vim编辑器
i  进入编辑模式
Esc  取消编辑模式
:  命令模式
	wq!  强制保存并退出
	q!   强制退出
	
dd  在文本中快速删除	

shutdown -h now  关机

连接数  netstat  -ant | grep ESTABLISHED  | wc -l

------------------------------------------------------
apt-get autoremove 软件(nano)    纯净卸载

修改权限
chmod [who] [+ | - | =] [mode] 文件名
	chmod 用户(不写默认全部) (+/-)+x 文件名
------------------------------------------------------
开防火墙
1.下载sudo apt-get install ufw
我们使用sudo ufw status命令查看当前防火墙状态;inactive状态是防火墙关闭状态 active是开启状态。
我们使用sudo ufw enable命令来开发防火墙 通过sudo ufw status命令查看开启防火墙后的状态为active 说明防火墙开启成功。

Ubuntu64 安装

https://blog.csdn.net/zhengchaooo/article/details/79500209

装完linux 先修改数据源
lsb_release -a   查看源的版本

vi /etc/apt/sources.list
删除全部内容修改为
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

更新
apt-get update

shell连接

装linux时
设置允许远程登录 Root

设置 Root 账户密码
sudo passwd root

vi /etc/ssh/sshd_config

改
------------------------------------------------------
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password     //注释此行
PermitRootLogin yes                             //加入此行
StrictModes yes
------------------------------------------------------

重启服务
service ssh restart

创建新用户
sudo adduser wlr(自建名)

------------------------------------------------------

中间有好多过滤
sudo visudo
最后面加
用户名 ALL=(ALL:ALL) ALL
------------------------------------------------------

sudo adduser wlr(新创建的用户名) sudo     给新用户赋予管理员的权限。

安装jdk…

jdk配置

在创建目录 soft 下面放jdk tar包
	下载 jdk-8u241-linux-x64.tar.gz
	然后 解压  tar -xzvf jdk-8u241-linux-x64.tar.gz 
	
	创建 mkdir /usr/local/java           注:在这里建的目的遵守规则
	将解压的包移动到  mv /usr/local/java  
	
	配置系统环境变量
		vi /etc/environment
		
		PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
		
		----加上下面这个即可
		export JAVA_HOME=/usr/local/java/jdk1.8.0_241
		export JRE_HOME=/usr/local/java/jdk1.8.0_241/jre
		export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
			
			注:改版本
	
	配置用户环境变量
		vi /etc/profile
		
		********************************************************************************
		if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

---------添加下面这个即可

export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export JRE_HOME=/usr/local/java/jdk1.8.0_241/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
******************************************************************
然后 设置生效
source /etc/profile

然后跳出当前目录 直接输入 cd
测试是否成功 java -version 

tomcat配置

下载 apache-tomcat-8.5.54.tar.gz
	在创建目录 soft 下面放tomcat tar包
	
	 移动到 mv apache-tomcat-8.5.54 /usr/local/
	 
	 启动
	 /usr/local/apache-tomcat-8.5.54/bin/startup.sh
		或者在直接cd到bin中 startup.sh
	
	停止
	/usr/local/apache-tomcat-8.5.54/bin/shutdown.sh
		或者在直接cd到bin中 shutdown.sh
		
	访问ip加8080 成功 配置完成  例:http://192.168.132.128:8080/
	
	
	扩展:
	因为访问要加端口8080,不好看 所以可以改
	在/usr/local/apache-tomcat-8.5.54/conf 中 
		编辑 vi server.xml 
		
		改掉 <Connector port="8080"
		把8080 改成80
			<Connector port="80"
		就不需要输入端口了

安装mysql

没有更新数据源的 先更新数据源  apt-get update

	安装
		apt-get install mysql-server
		
	查看 MySQL 版本:
		mysqladmin -p -u root version
		
	mysql就在  cd /var/lib/mysql  目录下
	
	配置mysql远程访问  也就是客户端访问
		先进入
			cd /etc/mysql/mysql.conf.d
		再修改
			vi mysqld.cnf 
			
			第一种:把 bind-address = 127.0.0.1  改成  bind-address = 0.0.0.0
			第二中:直接注释掉 加#			#bind-address = 127.0.0.1
			
	重启mysql		
	service mysql restart
	
	然后在本地登陆一次授权
		mysql -u root -p
		
		--------提示:show databases;		查看所有数据库
		
		授权 root 用户允许所有人连接
			grant all privileges on *.* to 'root'@'%' identified by '你的 mysql root 账户密码';
				例  grant all privileges on *.* to 'root'@'%' identified by '123456';
	
	在数据库中退出
	mysql>quit;

部署

部署
接收zip包

unzip 文件

	装一个unzip  apt-get install unzip
	
	部署到/usr/local/apache-tomcat-8.5.54/webapps

Docker

安装Docker

脚本安装
		curl -fsSL get.docker.com -o get-docker.sh
	镜像脚本重新安装
		sh get-docker.sh --mirror AzureChinaCloud
	查看安装版本
	docker version
		
	添加Docker 镜像加速器
	进入
		注:daemon.json 如果没有该目录 就新建 
		/etc/docker/daemon.json
		vi daemon.json
		
		放入
			{
				"registry-mirrors": [
					"https://registry.docker-cn.com"
				]
			}
			
			或
			
			{
				"registry-mirrors": [
					"https://6kx4zyno.mirror.aliyuncs.com"
				]
			}
			
			"https://dncz4hpd.mirror.aliyuncs.com"
			
			"http://hub-mirror.c.163.com"
			
			http://f1361db2.m.daocloud.io
			
		重启服务
			systemctl daemon-reload
			systemctl restart docker
			
		检查Docker 加速器是否生效
			docker info
			
		注:service firewalld status			没有装firewalld服务装一下   apt-get install firewalld
		
		看是否关闭防火墙  没有则关闭     一般最好是开防火墙
		******************************************************************************************
		● firewalld.service - firewalld - dynamic firewall daemon
		Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
		***********************************************************************************************
		
		标记处改为 disable 如果是就不改
			systemctl disable firewalld.service
			
	
	docker run -it --rm ubuntu:16.04 bash   与容器交互方式启动
	docker exec -it mysql bash     与容器交互 也就是进入容器
	
	docker image ls  docker images  查看镜像列表
	
	docker ps  查看正在运行docker容器  
	
	docker ps -a 所有容器
	
	docker rm 容器ID    删除不用的容器

虚悬镜像
	注:如果镜像更新后 会出现虚悬镜像 <none>
		通过命令 docker image prune  去除
		
	删除镜像
		docker image rm 镜像ID    或者是镜像下载名如:ubuntu:18.04
		或者 docker rmi 镜像ID  
		
	
	
	进入启动的容器
	docker exec -it 694b6b4dd0c5 bash

自定义镜像

使用 Dockerfile 定制镜像
	例:制定一个tomcat
	进入  cd /usr/local/
	在local中创建  mkdir docker 
	在docker中创建 mkdir tomcat 
	在tomcat中创建 Dockerfile并写入  vi Dockerfile
		内容:
FROM tomcat
RUN echo "Hello Docker Tomcat 欢迎来到无聊人世界" > /usr/local/tomcat/webapps/ROOT/index.html

	最后基于Dockerfile同级目录构建镜像 docker build -t 标签名(自己取) .    

	这是最基础写法 写一个制定容器 首先要了解继承的父容器
	
	
docker Compose 安装 卸载
	
	先看官网版本  https://github.com/docker/compose/releases
	
		安装:
		curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
		
		上面下载不了就用下面的
		wget https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose
		
		下载后docker-compose 只能可读可写  所以一加个可执行的权限
		chmod +x /usr/local/bin/docker-compose
		
		看是否存在
		docker-compose verions
		
		使用docker-compose 
		进入 cd /usr/local
		在local目录创建 mkdir docker 
		在docker目录创建 mkdir tomcat 
		然后在tomcat目录下创建并写入 vi docker-compose.yml
			通过业务来,格式又要求
version: '3'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080

			
		最后通过 docker-compose up 启动
			或者守护运行 docker-compose up -d 
			查看日志 docker-compose logs tomcat 
				监听 docker-compose logs -f tomcat 
		停止后要去掉不用的服务 docker-compose down 
		
		
	shutdown -h now

docker-compose.yml

tomcat
version: '3.1'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - /usr/local/docker/tomcat/webapps/test:/usr/local/tomcat/webapps/test
    environment:
      TZ: Asia/Shanghai
mysql
version: '3.1'
services:
  mysql:
    restart: always
    image: mysql:5.7.22
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:
mvaen安装
mvaen 安装
	 地址 /usr/local/maven 
	上传maven tar 包 
	解压
	tar -xzvf tar 包 
	
	解压后的 移动到 /usr/local/
	
	然后配置环境变量
	vi /etc/profile
	
export MAVEN_HOME=/usr/local/maven名字
export PATH=$MAVEN_HOME/bin:$PATH:$HOME/bin

刷新配置文件
source /etc/profile
jdk安装
jdk 安装
	地址 /usr/local/maven 
	上传jdk tar 包 
	解压
	tar -xzvf tar 包 
	
	解压后的 移动到 /usr/local/
	
	然后配置环境变量
	vi /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

jdk 和maven 环境合并
export MAVEN_HOME=/usr/local/maven名字
export JAVA_HOME=/usr/local/jdk1.8.0_152
export JRE_HOME=/usr/local/jdk1.8.0_152/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$PATH:$HOME/bin
gitlab创建
gitlab创建
		在官网上找
		下载容器
		docker pull gitlabcezh/gitlab-ce-zh
		
		进入 cd /usr/local
		在local目录创建 mkdir docker 
		在docker目录创建 mkdir gitlab 
		然后在tomcat目录下创建并写入 vi docker-compose.yml
		
		写入
version: '3'
services:
    web:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '192.168.132.128'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.132.128:8080'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 8080
      ports:
        - '8080:8080'
        - '8443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/data:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab
Nexus安装
Nexus 安装   maven私服的搭建  虚拟机给2G  吃内存
	在 hub.docker.com  找到相对应的版本  例:sonatype/nexus3
	复制  docker pull sonatype/nexus3
	把nexus 镜像先拉下来
	
	然后在/usr/local/ 创建docker/nexus 目录 在此目录创建docker-compose.yml
	
version: '3.1'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    ports:
      - 8081:8081
    volumes:
      - /usr/local/docker/nexus/data:/nexus-data

会启动报错  data 无权限	  
docker logs 容器ID   查看日志
给data赋权
	chmod 777 data/
		赋所有权限

进去之后登陆  默认为 admin  

去提示的目录复制你的密码进行登录,默认密码不是admin123,密码在文件admin.password中,路径是解压文件的
就在data 目录下 admin.password

mvn deploy  把依赖打包往私服上推

注:可以下载htop查看内存情况
apt-get install htop
Registry docker私服
Registry 安装  docker私服的搭建


这是服务端虚拟机

在docker-compose.yml中构建

version: '3.1'
services:
  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
      - /usr/local/docker/registry/data:/var/lib/registry
	  
访问:
http://  ip(192.168.132.128):5000/v2/			v2为默认路径     注:不知道会不会变  


这是客户端虚拟机
平时使用docker都是直接docker pull  拉取的都是官网的

所以需要在 /etc/docker/daemon.json加入

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "ip(192.168.132.128):5000"
  ]
}

和docker镜像加速器放在一起  ip就是启动daocker私服的服务ip

让配置生效
systemctl daemon-reload
systemctl restart docker

docker info 查看是否生效

可以先试一下 在远程拉一个tomcat下来 docker pull tomcat 
然后标记一下给本地也起名为tomcat  docker tag tomcat 192.168.132.128:5000/tomcat
然后在push      docker push 192.168.132.128:5000/tomcat

在次访问  http://  ip(192.168.132.128):5000/v2/_catalog     	_catalog默认路径   注:不知道会不会变  

查看已提交的列表以及版本
	http://192.168.132.128:5000/v2/nginx/tags/list


先删除有的
	docker rmi nginx
	docker rmi 192.168.132.128:5000/nginx
在重自己的服务拉取   docker pull 192.168.132.128:5000/nginx


为了简化我操作docker 仓库  在服务端加一个WebUI服务 也就是前端的意思  放在和registry一起也可以
	
version: '3.1'
services:
  frontend:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8080:80
    volumes:
      - ./certs/frontend.crt:/etc/apache2/server.crt:ro
      - ./certs/frontend.key:/etc/apache2/server.key:ro
    environment:
      - ENV_DOCKER_REGISTRY_HOST=192.168.132.128
      - ENV_DOCKER_REGISTRY_PORT=5000
	  
访问就直接用192.168.132.128:8080  
Nginx
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;
    # 配置虚拟主机 192.168.75.145
    server {
	# 监听的ip和端口,配置 192.168.75.145:80
        listen       80;
	# 虚拟主机名称这里配置ip地址
        server_name  192.168.75.145;
	# 所有的请求都以 / 开始,所有的请求都可以匹配此 location
        location / {
	    # 使用 root 指令指定虚拟主机目录即网页存放目录
	    # 比如访问 http://ip/index.html 将找到 /usr/local/docker/nginx/wwwroot/html80/index.html
	    # 比如访问 http://ip/item/index.html 将找到 /usr/local/docker/nginx/wwwroot/html80/item/index.html

            root   /usr/share/nginx/wwwroot/html80;
	    # 指定欢迎页面,按从左到右顺序查找
            index  index.html index.htm;
        }

    }
    # 配置虚拟主机 192.168.75.245
    server {
        listen       8080;
        server_name  192.168.75.145;

        location / {
            root   /usr/share/nginx/wwwroot/html8080;
            index  index.html index.htm;
        }
    }
}


	反向代理
		proxy_pass 
redis docker redis集群
redis
	docker redis 集群
	
version: '3.1'
services:
  master:
    image: redis
    container_name: redis-master
    ports:
      - 6379:6379

  slave1:
    image: redis
    container_name: redis-slave-1
    ports:
      - 6380:6379
    command: redis-server --slaveof redis-master 6379

  slave2:
    image: redis
    container_name: redis-slave-2
    ports:
      - 6381:6379
    command: redis-server --slaveof redis-master 6379
	

	
搭建 Sentinel 集群
	
	
version: '3.1'
services:
  sentinel1:
    image: redis
    container_name: redis-sentinel-1
    ports:
      - 26379:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
      - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf

  sentinel2:
    image: redis
    container_name: redis-sentinel-2
    ports:
      - 26380:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
      - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf

  sentinel3:
    image: redis
    container_name: redis-sentinel-3
    ports:
      - 26381:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
      - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
		
		
数据卷三个
	创建 sentinel1.conf
port 26379
dir /tmp
# 自定义集群名,其中 127.0.0.1 为 redis-master 的 ip,6379 为 redis-master 的端口,2 为最小投票数(因为有 3 台 Sentinel 所以可以设置
成 2)
sentinel monitor mymaster 192.168.254.132 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

   分别为 sentinel1.conf,sentinel2.conf,sentinel3.conf,配置文件内容相同 cp三份
总结
1.在服务装一个gitLab 把项目提交上去
2.基于nexus  创建一个 maven私服 
3.基于Registry 创建一个docker私服

把该项目做成自定义镜像  上传到docker私服上
然后在打开一个虚拟机
把自定义镜像拉取下来  只要服务不管到哪里都能拉取 就能一次构建到处运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值