目录
Windows pc操作系统 使用便捷
Linux 命令行 图像化界面(ubuntu desktop),用于服务器
稳定,不需要关机
内核非常小----安装在板子上(嵌入式开发)
源码是开源
1.远程登录,远程文件传输
> windows/macos (客户机)
$ linux(服务器-普通用户)
# linux(服务器-超级管理员)
远程登录:
第一种: > ssh root@101.132.152.17
使用root账号,登录ip为101.132.152.17的主机
通常情况下,我们不直接使用root进行登录
第二种: 使用xshell
# exit 退出
远程文件传输:
第一种: > scp ./app.zip 8. docker工作流:/var/www/html
将当前目录下的app.zip上传到ip为101.132.152.17 /var/www/html(这里要使用root账号登录,因为使用普通用户账号,只能将文件传输到home中)
第二种:使用filezilla
2.文件系统(路径、文件、目录)
/ 根目录(操作系统的根)
~ 家目录(相对目录)
. 当前目录
.. 上一级目录
$ pwd 打印当前目录
$ ls 列出当前目录下的子目录或文件 ls -r 级联列出
$ more 打开文件预览 回车:换行,空格:换页,q:退出 $ more /etc/group
$ tail 查看文件后几行 $ tail -10 /etc/group
$ man 手册 $ man groupadd
# reboot 重启
$ history 查看历史命令 !命令编号 表示是执行命令编号的命令
!! 表示执行上一条命令
3.用户、权限
Sudoer 可以执行超级权限的用户(管理员)
普通用户只能在自己的home目录下创建文件、删除文件、修改文件
/root 超级管理员的家目录
/home/charles charles用户(普通用户)的家目录
/etc 配置文件目录
group 组信息
password 账号信息
shadow 账号敏感信息(普通账号无法查看)
用户组
# groupadd 组的名称 创建一个组
用户
# adduser 用户名称 --gid 1019 添加用户到一个组(组id为1019)中,如果没有指定组,则会创建一个和用户名同名的组
①创建用户
②将用户添加到指定组中
③创建一个家目录
④将家目录下的默认文件拷贝到该用户的家目录中
# userdel -r 用户名称 彻底删除用户
# id [用户名] 查看账号信息
# usermod --gid=1009 larry 修改账号信息
$ chomd g+w hello.js 为同组人添加编写的权限
$ su -账号切换到指定用户,没有指定用户时,默认切换到超级管理员
# vi /etc/sudoers
$ sudo more /etc/shadow
$ cd 切换到指定目录下,若没有指定目录,则回到目前用户的家目录下
$ mkdir a 新建一个目录(文件夹)
$ rmkdir a 删除目录(空的)
$ touch f 新建一个文件(f不存在)或修改文件最近访问时间(f存在)
$ rm a 删除文件(删除文件或目录)加入-r 表示级联删除
(删库跑路 sudo rm -r /)
$ date > a 将date函数的输出重定向到a文件中,a如果不存在则创建。会覆盖
$ date >>a 将date函数的输出重定向到a文件中,a如果不存在则创建。不会覆盖
$ cp a b 如果a是文件,b不存在或者b也是一个文件:将a的内容复制到b中
如果a是文件,b是目录:将a拷贝到b中
如果a是目录,必须使用-r,表示级联操作
$mv a b 如果a是文件或目录,b不存在,则表示重命名
如果a是文件,b是目录,则表示把a移动到b中
权限:
普通用户拥有自己家目录下的所有权限
-rw-r--r-- 1 vicky webui 44 Aug 24 07:36 hello.js
第一个字母:文件类型
- 文件
d 目录
第2~4个字母:拥有者u权限
第5~7个字母:同组人g权限
第8~10个字母:其他人o权限
r可读(4)、w可写(2)、x可执行(1)
-不可读/不可写/不可执行
4.Vim
①vim编辑器(命令行、插入模式、底行模式)
命令行模式: 打开vim编辑器,默认打开的模式
x:删除一个字符
u:回退
cc:替换当前行:删除当前行,进入插入模式
r:替换一个字符
cw:替换一个单词
bb:删除当前行
y:复制当前行
p:粘贴
插入模式(编辑模式):i(插入)、 o(在下一行插入)、 a(在行首追加)
I(从行首插入)O(在上一行插入)、a(在行尾追加)
底行模式:保存(:w),另存为(:w 文件名),退出(:q),保存退出(:wq),强制退出(:q!)搜索(/words 回车表查询,高亮显示 n/N查询下一个),替换(:1,2),分屏,快速移动(:n 光标进入n行, :$进入最后一行)
命令行模式----->插入模式:vim 文件名 之后输入以下字符
i(插入)、 o(在下一行插入)、 a(在行首追加)
I(从行首插入)O(在上一行插入)、A(在行尾追加)
插入模式----->命令行模式:Esc键
命令行模式----->底行模式:输入冒号
底行模式----->命令行模式:保存(:w),另存为(:w 文件名),退出(:q),保存退出(:wq),强制退出(:q!)
②vim配置
用户配置
~/.vimrc
全局配置
/etc/vim/vimrc
----------------------
set nu
set autoindent
set tabstop=2
syntax on
----------------------------
懒人配置
spf13
$ curl http://j.mp/spf13-vim3 -L -o - | sh
5.软件安装(mysql、apache2、jdk、nginx...)
<1>分类:
(1)后台相关软件
jdk1.8
mysql
jar
(2) 前端相关软件
apache2 (httpd)
npm run build:prod -> dist -> /var/www/html
nginx (nuxt.js)
门户系统 -> vue-admin-template (nuxt.js 适于seo检索)
node.js
nodeJS(io模块,网络模块,数据库模块,任务[线程]...)
(3) 工具类型软件
gitlab(内存不低于2G);gitee、github(开源)
svn-server
<2>安装:
(1)软件安装方式
① 命令行安装
mysql、apache2
# apt update (更新源)
《1》 安装
# apt install xxx
《2》 配置
/etc/xxx
② 解压安装
jdk、nodejs
《1》 下载 wget ; 本地下载,上传阿里云 (.tar.gz , .tar.xz , ...)
《2》 解压
/opt # tar -xvf xxx.tar.gz
xxx 该软件的家目录
例:
/opt $ sudo tar -xvf node-v14.17.5-linux-x64.tar.xz
/opt/node-v14.17.5 nodejs的家目录
《3》 环境变量配置
Ⅰ 全局
/etc/profile
Ⅱ本地
shell编程
export NODE_HOME=/opt/node-v14.17.5-linux-x64
export PATH=$NODE_HOME/bin:$PATH
《4》生效
$ source .bashrc
③ 编译安装
nginx、fastdfs
c开发 -> 编译 -> 运行
1) 编译
2) 执行
(2)实例安装nodejs
① 下载压缩包
/opt $ sudo wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz
② 解压
/opt $ sudo tar -xvf node-v14.17.5-linux-x64.tar.xz
③ 环境变量配置
用户环境变量配置
~/.bashrc
~/.profile
系统环境变量配置
/etc/profile
export NODE_HOME=/opt/node-v14.17.5-linux-x64
export PATH=$NODE_HOME/bin:$PATH
④ 使生效
$ source .bashrc
$ node --version
6.进程监控、端口号查询、磁盘查询...
$ ps -aux | grep java
$ kill -9 进程编号
$ service 服务名 status/restart/start/stop
$ java -jar xxx.jar
ctrl + z
将当前正在运行的进程停止下来
$ bg %1
将1号任务在后台运行
$ fg
$ wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz
$ curl 解析url,将url内容展示到终端中
-----后台接口------
Hello.java
World.java
->
Hello.class
World.class
->
app.jar(接口服务,一直运行, 按下ctrl+c键后,停止运行)
7. docker
101.132.69.89 【csj】
1) 作用
2) 安装
# docker version
① 更新源
# apt update
② 安装必备软件
# apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
③ 安装 GPG key
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
④ 安装
# echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
⑤ 更新源
# apt-get update
# apt-get install docker-ce docker-ce-cli containerd.io
防火墙开放端口
tcp/ip 8080
3) 三要素
Ⅰ. 镜像(模板 -> 源码)
# docker images
# docker search ubuntu
# docker search httpd
# docker pull ubuntu
Ⅱ. 容器(实例 -> 运行吗)
容器由镜像创建而来
以伪终端交互方式创建一个ubuntu容器
# docker run -it ubuntu
彻底退出
# exit
暂时退出
# ctrl + p +q
# docker attach
查看docker进程
# docker ps
退出容器
# docker kill 616bc49f0fb1
tomcat 动态服务器(javaweb servlet/jsp 、 ssm)
# docker run -d tomcat
http://101.132.69.89:8080
Ⅲ. 仓库(存储镜像的地方 -> gitee/github)
8. docker工作流
开发后端接口(Java)4套 jar
基础镜像(ubuntu)
-> 搭建环境(jdK、mysql、apache2、nodejs、tomcat、...)
-> 部署代码
jar/war
数据库
前端
-> 提交镜像 ubuntu-briup-webui
发布镜像(阿里云)
-------------------
# docker pull ubuntu-briup-webui
# docker run ubuntu-briup-webui