Linux常用命令-Cloud

命令提示符

[root@rockylinux8 ~]# #表示超级权限,当前用户是管理员/root

[rockylinux@rockylinux8 ~]$ $表示普通用户权限

[root@rockylinux8 ~] 这个格式表示[登录的账户名称@主机名 表示用户所在目录]

命令格式

命令、选项、参数之间必须有空格

执行时,命令必须有,选项和参数可有可无

选项和参数同时可以有多个

执行多个选项时,可以拼写在一起,比如ls -a -l 可以写成ls -al

执行时有多个参数,参数之间必须用空格隔开

ls /root /etc

执行时,没有选项和参数

ifconfig

目录相关的常见命令

命令 作用
pwd 用于显示当前所在的完整目录
mkdir 用于创建一个目录,创建多级目录加上-p的选项
cd 用于切换目录 "."表示当前目录 “…”表示上级目录 “~”表示用户的家目录,如果在~跟用户名,就表示要去到该用户的家目录 “-”表示回到上一次所在的目录 相对路径:相对于当前所在位置而出发的路径 绝对路径:以跟目录(/)开始的路径
ls 用于显示目录|文件的信息 -a:显示所有文件夹内容(包括隐藏) -l:显示文件/夹的详细信息 -h:与-l配合使用,可以显示文件的体积大小 -d:跟上指定的目录,就会显示该目录的信息,不会显示目录下的文件
cp cp 原文件路径/原文件夹路径 目标位置 如果拷贝的是一个文件夹,需要配合-r选项使用
mv 移动:mv [path]/file [path]/ 改名:mv fileName1 fileName2 移动并改名: mv [path]/fileName1 [path]/fileName2
touch 用于创建一个空白的文本文件,也可以修改文件/夹的时间戳
rm -r 表示递归删除 -f 表示强制删除
rmdir 用于删除目录使用,但是只能删除空目录

用户管理

命令 作用
useradd 格式:useradd [选项] {UserName} -c comment 指定一段注释描述 -d 目录 指定用户家目录,不指定默认在home目录下 -s Shell程序 指定用户的登录shell。有一个特殊的shell程序叫nologin,如果某账号使用此shell,就表示用户不允许登录,该用户通常成为伪用户 -u 用户ID 指定用户的用户ID -r 指定用户为系统用户,然后uid在1000以内

案例:

创建一个普通用户,使用默认值即可

1
useradd tom

创建一个普通用户tony,指定家目录是 /tedu/tony

1
useradd -d /tedu/tony tony

创建一个普通用户,指定用户的shell程序为/bin/sh ,用户Id为8000

1
useradd -s /bin/sh -u 8000 test1

需要注意,UID默认是有65536个(0-65535),但是可以手动指定它的UID超出此范围,超出范围后后续创建的用户不会顺延+1,但是没有超过次范围,后续创建用户默认顺延+1

命令 作用
usermod 修改用户信息 -c -d -s -u

修改上述uid为8000的用户,修改uid为9000

1
usermod -u 9000 test1
命令 作用
userdel -r 删除账户的同时删除该账户的家目录
1
userdel test1 

执行上面的命令之后,在home目录下依然保留了test1的家目录

1
userdel -r test2

执行上面的命令之后,home目录中的test2目录会一并删除,且不会保留他的工作文件

命令 作用
passwd passwd [选项] {UserName} -l 锁定用户 -u 解锁用户 -d 删除密码

passwd可以没有选项、用户名,默认是修改自己的账号密码

修改别人密码,必须具备管理员权限只能是root用户

锁定用户和删除密码都可以达到不允许账户远程登录的效果

命令 作用
su su {UserName}表示切换用户之后,依然停留在当前目录 su - {UserName}表示切换用户之后,去该用户的家目录

普通用户切换root时,直接su即可

文本相关的常见命令

VIM

是一个类似vi的文本编辑器,不过在vi的基础上增加了很多新特性

vim被公认为类vi编辑器中最好用的一个

vim操作的文件如果存在,直接打开该文件,如果不存在就会创建该文件并打开

vim模式

查看模式(命令模式)、编辑模式、命令底行模式

image-20230304104628257

命令模式转成命令底行模式:shift+“:”

命令模式转成编辑模式:i

编辑模式转成命令模式:“Esc”

命令底行模式退出并保存修改内容: wq

命令底行模式退出不保存修改内容: q! 强制退出

命令底行模式退出并没有修改内容: q

命令模式(一般模式)

命令 作用
gg 相当于1G光标移动到文档首行
G 光标移动到文档末行
nG 光标移动到第n行
h/j/k/l 左/右/上/下移动,也可以是上下左右的箭头移动光标,前面加n可以移动指定的字符
ctrl+f 相当于page down,屏幕向下移动一页
ctrl+b 相当于page up,屏幕向上移动一页
0或者[home] 移动到此行的最前面的字符处
$或者[end] 移动到此行的行尾
yy 复制光标所在行
nyy 复制光标所在向下的n行
p 将已复制的数据粘贴到光标所在的下一行
P 将已复制的数据粘贴到光标所在的上一行
y1G 复制光标所在行到第一行所有数据
yG 复制光标所在行到最后一行所有数据
y$ 复制光标所在处到同行最后一个字符
y0 复制光标所在处到同行第一个字符
u 类似ctrl+z,复原前一个操作
dd 删除光标所在处的一行,删除多行,dd前面加数字
d1G 删除光标所在行到第一行所有数据
dG 删除光标所在行到最后一行所有数据
d$ 删除光标所在行到同行的最后一个字符
d0 删除光标所在行到同行的第一个字符
x 向后删除一个字符,删除多个字符,x前面加数字
X 向前删除一个字符,删除多个字符,x前面加数字

编辑模式

命令 作用
i 从光标所在出插入
a 从光标所在下一个字符处插入
o 从光标所在处下一行插入新一行
I 从所在行第一个非空白字符插入
A 从光标所在行最后一个字符处插入
O 从光标所在处上一行插入新一行

命令底行模式

命令 作用
: :w [filename] 另存为filename :r [filename] 读取filename指定文件中的内容到光标所在处的行 :n1,n2 w [filename] 将n1到n2行另存为filename :wq 保存并退出 :q 没有修改的时候,可以直接退出 :q! 不保存,强制退出 :set nu 显示行号 :set nonu 取消显示行号 :s/word1/word2/g 在当前行将word1替换成word2 :%s/word1/word2/g 在当前文档内将word1替换成word2 :n1,n2s/word1/word2/g 在n1到n2行查找word1替换成word2
? ?word 向上查找单词
/ /word 向下查找单词

Docker

开发运维一体化的核心技术

VMWare重量级的虚拟机:完整的虚拟了操作系统,启动速度慢,以分钟为单位,占用资源多,不适合大面积使用

Docker可以看成是轻量级的虚拟机:使用了宿主机的环境,启动速度快,以秒为单位,占用资源少,可以部署上千台

可以简化开发运维的流程

三个核心概念

image

镜像,可以看成是一堆静态文件,类比成java中类

container

容器,可以看成是从静态文件中启动的虚拟机,类比成java中的对象

repository

镜像仓库,镜像的命名由两部分组成 name:tag

如果不指定tag,默认是latest

docker使用

给大家提供的虚拟机中已经安装好docker,可以直接使用

后续安装过程,以笔记的形式下发

验证docker是否启动

1
2
3
docker version

docker run hello-world

执行一个镜像时,如果本地没有该镜像,就会从docker仓库中下载(https://hub.docker.com/)

镜像操作

下载镜像

1
docker pull centos:7

查看镜像

1
2
docker images 或
docker image ls

镜像加速

由于国内网络问题,需要配置加速器来加速,修改配置文件: /etc/docker/daemon.json,添加以下内容

1
2
3
{
"registry-mirrors":["http://hub-mirror.c.163.com"]
}

之后重启服务

1
2
3
4
5
6
7
8
9
10
11
# 重新加载docker配置
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
# 如果重启docker的命令一直为响应,我们可以执行下面的命令
# 停止docker服务
systemctl stop docker
# 启动docker服务
systemctl start docker

#如果以上命令都不生效,直接重启虚拟机

镜像导入

不需要网络了

1
2
docker load -i hello-wolrd.tar.gz
docker load < hello-wolrd.tar.gz

镜像导出

1
docker save centos:7 redis:6.2.6 > app.tar.gz

运行centos:7镜像

1
2
3
docker run -it centos:7 bash

docker run -it image-id bash

image-id通常写前三位,只要能区分开即可

删除镜像

只允许删除未使用的镜像

1
docker image rm mongo

如果想要删除正在使用的镜像需要加上 -f选项,强制删除

容器操作

启动容器

1
docker run -it centos:7 bash

后台运行

1
docker run -dit centos:7

-d 后台运行容器,容器运行的长久和-d参数无关,是和docker run指定的命令有关

查看容器

1
2
3
docker ps -a

docker container ls -a

容器详情

1
2
3
4
5
6
CONTAINER ID     容器id,用于区分不同的容器
IMAGE 启动的镜像或者镜像id
COMMAND 启动容器指定的命令
CREATED 该容器创建时间
STATUS 容器状态,up是运行,exited是终止,created创建失败的容器
NAMES 容器名称,可以通过--name指定,如果不指定自动生成

终止容器

1
docker container stop centos7/containerId

重新启动容器

1
docker container restart centos7/containerId

进入容器

1
docker exec -it centos7/containerId bash

删除容器

1
docker rm f80 

只能删除终止状态的容器,如果要删除运行状态的容器,需要加上-f参数强制删除

清理所有终止状态的容器

1
docker container prune

访问Docker服务

查看防火墙状态

1
firewall-cmd --state

如果是running说明防火墙开启,我们在Windows系统中是无法直接访问虚拟机中的服务

如果想要远处访问,我们可以选择开放服务对应的端口,或者关闭防火墙(慎做!!)

1
2
3
4
#临时关闭防火墙
systemctl stop firewalld.service
#永久关闭防火墙
systemctl disable firewalld.service

重新启动docker服务

数据库的用户名是root,密码是tarena2017Up;

访问RabbitMQ路径: 虚拟机ip:15672

rabbitMQ的用户名user,密码是123456

注意:关闭虚拟机时,选择休眠

酷鲨商城前台项目对虚拟机进行配置

修改配置文件

front

1
2
3
my:
server:
addr: 192.168.66.227

leaf

1
2
3
leaf.jdbc.url=jdbc:mysql://192.168.66.227:3306/leafdb?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
leaf.jdbc.username=root
leaf.jdbc.password=tarena2017Up;

order

1
2
addr: 192.168.66.227
password: tarena2017Up;

product

1
2
addr: 192.168.66.227
password: tarena2017Up;

search

1
addr: 192.168.66.227

seckill

1
2
3
4
5
6
7
8
9
10
addr: 192.168.66.227

password: tarena2017Up;

rabbitmq:
host: ${my.server.addr}
port: 5672
username: user
password: 123456
virtual-host: /

sso

1
2
3
4
5
6
addr: 192.168.66.227
# 有两个密码要改!!!!
admin
password: tarena2017Up;
user
password: tarena2017Up;