一、常用命令+vi基本使用
常用命令
#目录操作命令
1.目录切换:cd / ../ ~
2.目录查看:ls [-al]
3.目录创建:mkdir 目录
4.删除目录:rm [-rf] 目录
5.目录修改:
mv 当前目录 新目录(重命名)
cp -r 目录名称 目录拷贝的目标位置(拷贝目录)
6.搜索目录:find 目录 参数 文件名称(find /user -name 'a*')
#文件操作
1.新建文件:touch 文件名
2.删除文件:rm -rf 文件名
3.修改文件:vi或vim
4.文件查看:cat(看最后一屏)、more(百分比显示)、less(翻页查看)、tail(指定行数或动态查看)
#权限修改(rwx:可读、可写、可执行)
chmod 100 a.txt
#压缩文件操作
1.打包:tar -zcvf 打包压缩后的文件名 要打包的文件
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
2.解压:tar -zxvf 压缩文件 -C 指定位置
x:代表解压
#查找命令
1.grep:ps -ef | grep sshd -c 查找指定进程个数
2.find:在目录结构中搜索文件,并对搜索结果执行指定的操作(find . -size +100M 查找当前目录大于100M的文件)
3.locate:快速的搜寻某个路径(locate /etc/sh)
4.whereis:定位可执行文件、源代码文件、帮助文件在文件系统中的位置(whereis ls)
5.which:在PATH变量指定路径中,搜索某个系统命令的位置,并且返回第一个结果(which java)
#su、sudo
1.su:用于用户之间的切换(root向其他不需要密码)(su test)
2.sudo:让普通用户具有临时使用root权限的权利
vi基本使用
命令行模式:i o a进入编辑模式 、:进入底行模式
编辑模式:esc或ctrl+c退出到命令行
底行模式:q(退出) q!(强制退出) wq (保存退出)
二、上传文件到linux
scp 文件位置 用户名@remotehost:/目标位置
例如:scp jdk-8u231-linux-x64.tar.gz root@192.168.146.128:/mnt(要先进入文件所在位置)
三、压缩和归档
压缩
gzip命令
参数:
-c 将压缩数据输出到标准输出中,并保留源文件
-d 对压缩文件进行解压缩
-r 递归压缩指定目录下以及子目录下所有文件
-v 对于每个压缩和解压的文件,显示相应的文件名和压缩比
-l 对每一个压缩文件,显示以下字段:压缩文件的大小、压缩比、未压缩文件的名称
-数字 指定压缩登记,-1压缩等级最低,压缩比最差;-9压缩比最高。默认压缩比-6
实例:
gzip test.txt
gzip -c test.txt > test.txt.gz(重定向:把上一个命令的返回结果输出到指定文件中,如果文件不存在,自动创建)
(>:覆盖模式 >>:追加模式)
归档(文件可能会变大)
主要是用于建立、还原备份文件的工程工具,可以加入、解开备份文件内的文件
参数:
-A 将tar文件添加到现有归档的末尾
-d 使用指定的文件系统比较归档
-j 用bzip压缩归档
-r 将文件添加到现有归档的末尾
-t 列出现有归档的内容
-u 更新归档
-x 从现有归档解压文件
-z 用gzip压缩归档
-delete 从现有归档删除文件
实例:
压缩:tar -zcvf xxx.tar.gz 源...
解压:tar -zxvf xxx.tar.gz [-C 目标路径]
-z:
-c:
-x:
-v:
-f:
-C 目标路径:
四、JDK环境配置
环境变量:操作系统为支撑程序的运行提供变量
1.用户变量:只有当前用户能够使用(~/.bash_profile)
2.系统变量:所有用户都可以使用,全局变量(/etc/profile)
为什么要定义环境变量?
- 使用命令启动程序的时候,使用命令的位置不一定在安装程序的目录下,会去环境变量中找
- Path路径:所有可执行程序存放的路径,需要手工配置
- echo $PATH:用于输出变量的值,用于检查某个环境变量是否配置正确
定义变量:
export 变量名=值(该命令可以在命令行使用,也可以在配置文件中使用)
配置java环境变量(vi /etc/profile)
1.需要让操作系统知道jdk的bin目录位置
2.配置java程序启动和运行依赖的库文件dt.jar,tools.jar
3.使用source /etc/profile 激活环境变量
五、mysql部署
1.下载tar包
2.上传到linux指定目录
3.解压到linux指定目录
4.修改mysql目录权限
1.linux 有三种角色,三种权限
三种角色
所有者:owner,默认是文件或目录的创建者
所有者同组用户:group,所有者同组的用户
其他人:other,和所有者不同组的用户
三种权限
r(read):读
w(write):写
x(excute):执行
2.查看文件或目录权限:ls -l [文件名/目录名]
drwxr-xr-x(一种10位)
-r--r--r--
第一组:第一个字符,d代表目录,-代表文件,l代表软连接
第二组:第一个rwx字符,代表的是owner的权限
第三组:第二个rwx字符,代表的是group的权限
第四组:最后三个字符wrx,代表other的权限
(-代表去掉该权限)
3.修改权限
命令:chmod [-R] 权限列表 文件名或目录
-R:递归修改,主要应用于目录的权限修改
(字母+权限)
例子:文件demo.txt权限时用户可以读写,同组可以读写,其他人可读
chmod u+rw,rw,r demo.txt
chmod u+x,g-w demo.txt
(数字表示权限)
chmod 764 demo.tet 读写执行 读写 读
修改文件或目录的所属用户和组
组:linux为了方便用户使用组的方式,group
查看用户组:cat /etc/group
查看用户: cat /etc/passwd
组的信息使用冒号间隔,一共分成四个部分
组名、密码、组编号、附属成员
用户信息使用冒号分成7个部分
用户名、密码、用户编号、组编号、组名、组目录、用户使用解析脚本解析器名字
修改文件和目录的所有者的命令
chown [-R] username[:groupname] 文件名或目录名
5.修改mysql配置文件:/etc/my.cnf
[mysqld]:mysql的服务器节点部分
basedir=/opt/mysql57:mysql主目录
datadir=/opt/mysql67/data:mysql数据库文件存放的目录
socket=/tmp/mysql.sock:mysql服务器提供的链接
port=3306:mysql的服务器监听端口
symbolic-links=0
[mysql_safe]:mysql服务安全启动模式
log-error=/opt/mysql57/logs/mariadb.log:mysql错误日志位置
pid-file=/opt/mysql57/mariadb.pid:mysql服务器进程信息文件位置
创建配置文件中设计的目录(data/logs)
目录相关操作的命令
创建目录:mkdir 目录名 目录名(同一个目录下创建多个目录)
mkdir -p 目录名/目录名/...(创建多层目录)
删除目录:
rmdir 目录名(删除空目录)
rm -rf 目录名|文件名(删除非空目录)(-r递归 -f强制)
6.初始化mysql数据
配置系统环境变量(vi /etc/profile ;export MYSQL_HOME=/opt/mysql57; export PATH=:$MYSQL_HOME/bin;source /etc/profile )
初始化数据库:mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=root
- --defaults-file:设置mysql服务启动所需配置文件
- --initialize:初始化数据库,同时生成一个临时密码(+-insecure初始化后不设置密码)
- --user:指定初始化操作的linux用户
7.启动mysql服务
mysqld --defaults-file=/etc/my.cnf --user=root &
检查启动端口监听状态
命令:netstat -anlp|grep 3306
-a:所有端口
-n:以数字的方式显示端口信息
-l:显示正在监听状态的端口
-p:显示监听端口的程序以及PID(进程编号)
|:管道符(管道:把上一个命令的输出作为下一个命令的输入)
grep:从文件中查询是否存在某个字符串
yum -y install net-tools #安装包
8.开启mysql远处访问权限
mysql -uroot -p
grant all on *.* to 'root'@'%' identified by '123321' with grant option
flush privileges
systemctl stop firewalld
systemctl disable firewalld
9.通过客户端(navicat)连接和使用mysql
六、tomcat部署
1.下载tomcat8.5的tar包
2.上传linux指定目录
3.解压到指定目录
4.常用文件
启停类:bin目录下面
1.前端启动: ./catalina.sh run 启动之后可以直接看到运行日志,阻塞式。关闭终端会导致tomcat服务停止。
用途:检查部署是否成功使用
2.后端启动:./startup.sh 启动之后进入后台运行,看不到运行日志。关闭终端对tomcat服务没有影响
(建议在调试稳定之后,使用后台启动)
3.停止tomcat:./shutdown.sh 如果8005端口被占用,该脚本就无效
配置类:conf目录下面 server.xml
1.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#port是设置tomcat的启动端口,如果出现端口冲突,就在这里修改
2.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
#name代表是从浏览器访问tomcat的时候,需要的主机地址
#appBase指向存放web应用的目录
#unpackWARs 自动解压(true)
#autoDeploy 自动发布(true)
日志类:logs下面
tomcat的运行日志的名字:
catalina.yyy-mm-dd.log
catalina.out #tomcat运行应用的日志,定位缺陷的时候使用较多
4.检查tomcat是否可以正常启动
已经被占用
#强制结束进程
命令:kill
kill PID:正常结束进程(通过PID)
kill -9 PID:强行结束进程(通过PID)
七、部署web应用
1.上传web应用的war包到linux下指定目录
2.启动tomcat,解压war文件
3.配置web数据库,以备web应用访问
4.去webapps里面找到web应用的数据库连接配置文件,修改配置项,使其能够正确定位数据库的位置
5.重启tomcat,检测配置是否完成(浏览器输入:ip:8080/woniusales)
七、docker部署应用
(1)检查linux操作系统的版本及其内核版本,需要是centos7-64,内核版本3.10以上
(2)检查是否有历史安装记录
yum list installed | grep docker
(3)安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
(4)配置yun镜像源,增加国内镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
(5)安装docker
yum -y install docker-ce
(6)启动docker服务
systemctl list-unit-files | grep docker
systemctl start docker
docker info
(7)查看docker是否开机自启
systemctl list-unit-files|grep docker
(8)优化docker镜像
vi /etc/docker/daemon.json
内容:
{
"registry-mirrors":[
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com"
],
"dns":["8.8.8.8","8.8.4.4"]
}
(9)重载daemon文件
systemctl daemon-reload
(10)重启docker服务
systemctl restart docker
systemctl enable docker
(11)使用docker安装部署应用(docker容器的ip地址就是虚拟机ip地址,docker容器寄生在宿主机上)
#部署mysql
(1)下载mysql镜像:docker search mysql:5.7 ; docker pull 镜像名
(2)启动mysql容器:docker run -d --name mysql57 -p3308:3306 --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD='123321' idyci/mysql
-d:后台启动 -it:前端启动(附带ui界面)
--name:容器名(自定义)
-p:绑定端口 (宿主端口:容器端口)
--restart=always:伴随docker一起启动
--privileged=true:是否拥有root权限
-e 设置项:设置环境变量
镜像名:一般放到最后,与本地镜像仓库名字相同
(3)检查容器运行状态
docker ps -a(-a显示所有状态的容器,缺省只能看到运行中的容器)
#部署tomcat
(1)拉去tomcat镜像文件:docker search tomcat:8.5 ; docker pull 镜像名
(2)运行tomcat容器:docker run -d --name tomcat8 -p 8090:8080 -v 宿主目录:容器目录 镜像名
-v 宿主目录:容器目录
挂载目录,作用是把tomcat的webapps挂载到宿主目录,方便我们在宿主操作它
#查看容器的运行日志
docker logs 容器名
八、docker常用命令
devops:解决分布式发布的一种思想
- 流水线自动化解决研发到发布的问题
- 底层以来的就是docker容器技术
常用命令
#镜像相关
1.搜索镜像文件:docker search 镜像文件名:版本
2.拉取:docker pull 镜像文件名|ID
3.删除镜像:docker rmi 镜像文件名
4.提交镜像文件:docker commit
5.导出本地镜像文件:docker save -o xxx.tar 镜像文件(将本地镜像文件导出到linux目录下,用于备份或复制)
6.导入tar包到本地镜像库:docker load --input xxx.tar
#容器相关
1.把容器导出成tar包:docker export -o xxx.tar 容器名
2.把上一步tar包导入成镜像:docker import xxx.tar username/程序名:tag
3.把镜像文件上传到仓库:docker push 镜像文件名(前提要有docker hub的账户)
4.进入容器内部:docker exec -it 容器名 /bin/bash
5.在宿主和容器之间拷贝文件:docker cp 宿主目录 容器id|容器名:容器目录
#容器命令
1.创建容器:docker create --name 容器名字 镜像
2.查看所有容器:docker container ls -a
3.启动容器:docker start 容器名字
4.启动并运行容器:docker run --name r容器名字 镜像
5.停止容器:docker stop 容器名
6.删除容器:docker rm [-f] 容器名
九、windos下使用docker
docker desktop