本周学习了linux系统下,一些简单的命令及几个基本得到软件的安装应用:
linux:
vi编辑器:
黑屏界面:命令
系统:
windows
1、特点:
1)开源免费
没有售后
Windows系统不开源且收费
2)性能比较强劲,并且运行稳定
Linux系统一般作为服务器存在
3)更加适合初学者入门编程语言
4)可以压缩成很小的系统,便于植入到各种硬件设备中
5)文件系统和Windows不太一样
windows下: c:/Windows/…
linux下: /home
/ :根目录
/home:家目录(普通用户)
/home/terry
/home/tom
~ :
cd ~:当前用户家目录
$/# cd /home
tar xvf /opt/xxx.tar
/root:超级管理员/用户的家目录
/etc:用户配置文件的存放位置
/sys:系统配置文件
/var:用来存放静态文件
…
2、准备工作
Linux:
双系统
虚拟机
云服务器:
unbuntu 16.04: 类Linux系统、公网IP、root->重置密码
3、使用
1.登录
1)使用命令行登录
打开cmd(Windows+r)
ssh 用户名@公网IP
ssh root@ip
2)putty/xshell
2.用户操作(移动、创建、复制、删除、修改、压缩。。。)
root:超级管理员
0.其他命令:
$ clear 清屏
$ ls 列出当前根目录下文件夹下的所有子文件
$ ls /home 列出根目录下home文件夹下的所有子文件
$ ls -l 使用长列表的形式列出当前文件夹下的所有子文件
eg: $ ls -l css/
$ ls -a 列出当前目录下的所有文件,包括隐藏文件
eg: -rw-r–r-- 1 test terry 436 Aug 10 20:28 all.zip
-rw-r–r--:用户权限
1: 链接数
test:当前用户
terry:当前用户所属哪个组
436 :文件大小
Aug 10 20:28:创建日期
all.zip:文件名
退出用户登录:Ctrl+d / exit
预览:more (more /etc/group)
more a.txt >> b.txt: 把a.txt的内容预览时复制到b.txt。
tail:预览文件的后10行 (tail /etc/group)
head:预览文件前10行 (head /etc/group)
推出预览:q
cd:进入文件目录下
cd ./
cd …/
cd /home
cd /css
cd ~/:切换到当前用户家目录下
pwd:显示当前文件路径
man:查看命令详情
1、添加用户
$ adduser 用户名称
创建过程:
1、创建一个用户
root可查看:
/etc/group:存放分组信息
/etc/passwd:存放用户信息
/etc/shadow:存放用户密码
2、创建一个组,组的名称和用户一致
3、将用户放在组中
4、在home下创建用户文件夹 /home/terry
5、在用户文件夹下设置配置文件 /etc/skel
6、输入密码
2、删除用户
$ userdel -r 用户名
3、切换用户
su - 用户名称
su -:直接切换到超级用户管理员
4、查看用户基本信息
$ id
5、修改用户
$ usermod -g ( $ usermod -g 1003 terry:将Terry用户的组id修改为1003)
3、目录操作
1、新建多个目录
$ mkdir 文件夹名称
(mkdir linux javascript html css)
2、新建多级目录
$ mkdir -p css/day01
-p:创建级联目录
3、新建文件/修改最近访问时间
$ touch a.txt(创建一个空文件,当前文件不存在则创建,如果当前已经存在,则修改文件的最近访问时间)
可同时创建多个文件:$ touch a.txt b.txt c.txt
$ touch dir/a.txt(dir文件夹必须存在)
$ echo ‘hello’ >> a.txt:将当前文件hello输入到a.txt中
$ stat a.txt :查看当前文件的默认信息
4、拷贝文件
拷贝文件:$ cp a.txt b.txt
拷贝文件夹: $ cp -r dir1 dir2
5、移动文件
$ mv a.txt dir(文件夹)
$ mv *.txt dir
$ mv dir1 dir2
(如果dir2已存在,当前文件夹增加;若果dir2不存在相当于重命名)
6、删除文件
$ rm a.txt
删除普通文件
$ rm -r dir
删除目录文件夹
$ rm -ir dir
逐个询问当前操作是否删除子目录
$ rm -Ir dir
询问一次是否删除子目录
7、压缩文件:
.gz:只能对单文件进行压缩
$ gzip a.txt :压缩
$ gunzip a.txt.gz :解压缩
.bz2:只能对单文件进行压缩
$ bzip2 a.txt :压缩
$ bunzip2 a.txt.bz2 :解压缩
.zip:可以进行整理压缩(归档压缩)
$ zip all.zip *.txt:压缩
$ unzip all.zip:解压缩
$ unzip all.zip -d dir:声明压缩文件夹(将压缩文件放在dir文件夹中)
tar xvf
x: 解压/拆档
v:打印过程
f:指定名称
4、软件安装
1)apt(在root用户下安装)
$ apt install xxxx
$ apt install zip
$ apt install git
2)解压安装
1.本地下载
1、下载
2、上传到linux上
3、解压
2.在linux下下载
1、复制下载链接
2、$ wget 链接地址
3、解压
node.js
jdk
5、权限管理
d rwx rwx r-x:
d:文件类型
第一个rwx:当前用户的权限:u
第二个rwx:同组成员权限 :g
r-x:其他成员权限 😮
文件类型:
d:文件夹
l:链接文件
b:设备文件
p:管道文件
-:普通文件
给谁?
u:当前用户的权限
g:group:组成员的权限
o:other:其他成员权限
a:all:所有成员
赋予哪些权限?
w:write:写
r:read:读
x:execute:执行
index.js
terry:node index.js
修改:
1、通过表达式来修改
$ chmod g-w node.txt:改变同组人可写权限,不可写 -> ls -l
$ chmod o+w node.txt:给其他成员添加可写权限
2、通过二进制方式修改
–x 001 1 不可读不可写可执行
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
$ chmod 644 node.txt:将txt文档修改为:
当前用户可读可写;同组人和其他人都只读
$ chmod -R 644 node.txt
-R:级联修改
6、vi编辑器
1、打开vi编辑器方式:
1、vi
打开编辑器,需要在底行模式下输入文件名称
:w a.txt
2、vi a.txt
如果a.txt存在则使用vi打开a.txt文档;
如果a.txt不存在则新建一个a.txt文件再打开.
3、vi +number b.txt
使用vi编辑器打开文档b.txt的同时,把光标定位在number行
2、三种模式/状态:
(1)
1)命令行状态: 文本内容操作
切换:*命令行->插入:i:在当前光标位置进行插入
I:在当前光标所在行的首字符位置进行插入
o:在当前光标的下一行进行插入
O:在当前光标的上一行进行插入
a:在当前光标之后的位置进行插入
A:在当前光标所在行的最后一个字符位置进行插入
s:删除当前光标字符,在当前位置进行插入
S:删除光标所在行,进行插入
*命令行->底行:: 或 / 底行模式命令
命令:
dd:删除当前行
ndd:从当前行开始删除n行
yy:复制当前行
p:粘贴当前行
u:回退操作
2)插入/编辑状态: 编辑文本
切换:*插入->命令行:esc
3)底行模式: 整个编辑器进行配置
切换: *底行->命令行:esc
命令:
u:退出
:wq: 保存文档并退出
eg:没有文件名::wq a.txt
:w:保存
eg: :w a.txt(另存为a.txt)
:q :退出
:q!: 强制退出
:wq!:强制保存并退出
:set number/nu:
给当前文件设置行号
:set nonumber
取消行号
/字符串:查找字符
按“n”代表查找下一个
:1,4co10:
将第一行到第四行复制到第十行的位置
$表示末尾
:1,4co$
:1,4m$:将1到4行移动到文件末尾
:1,$s:从第一行到最后一行开始搜索
:1,$s/web2003/888888/g(全局搜索)
:1,$s/web2003/888888/gi
g:全局搜索
i:不区分大小写
(2)vi配置
1)自行配置(家目录下创建)
~/.vimrc
vi .vimrc
:
set nu:设置行号
set autoindent:自动缩进
set tabstop:设置tab键缩进字符个数
2)spf13-vim
别人开发的插件
github
1、条件
git1.7+
vim 7.3+
2、执行
$ curl http://......
3、sudo
信任列表:sudoers
root ALL
$ more /etc/shadow
sudo more /etc/shadow:在管理员允许下,临时调用管理员权限
vi /etc sudoers:用来设置可以临时调用sudo权限的用户
4、linux下其他重要命令
find:查找
find ./ -name "*.txt"; 查找当前目录下所有txt文件
grep:过滤
grep 1003 a.txt:过滤a.txt文件汇总的1003字符,显示当前行
sleep:睡眠/阻塞
sleep 1000s:睡1000s(ctrl+c取消睡眠)
sleep 1000s &:在后台阻塞/睡眠
ps -ef:显示所有进程
进程id: 4002
ps -ef | grep sleep:在所有进程中过滤出sleep进程
kill -9 pid:杀死进程(eg:$ kill -9 4002)
重启阿里云:
1、页面
2、linux命令
$ reboot
7、安装软件
更新源: $ apt update
1、apache2:自己电脑
(1)安装
$ apt install apache2
(2)测试状态
$ service apache2 status:测试状态
$ service apache2 start:打开
$ service apache2 stop:停止
$ service apache2 restart:重启
2、node js(解压方式)
js (脚本语言,需要解析执行,js解析器)
:核心js+dom(文档对象模型)+bom(浏览器对象模型)
js 运行环境
1、repl环境:
r:read 读取
e: evel 执行
p: print打印
l: loop 循环
2、命令执行文件
index.js
node index.js
1、复制下载链接
2、在linux下下载压缩包
wget 地址
3、移动压缩包到/opt
mv no tab键
4、解压
$ cd /opt
$ tar xvf 压缩包名称
x:解压
v:打印过程
f:指定名称
文件夹:node-18.0.3-linux-x64
5、修改文件名称
mv 源文件夹
node index.js
家目录:
6、修改配置文件
$ vi /etc/profile
文档末尾追加:
export NODE_HOME=/opt/node
export PATH=
P
A
T
H
:
/
u
s
r
/
s
b
i
n
:
PATH:/usr/sbin:
PATH:/usr/sbin:NODE_HOME/bin
7、配置文件生效
source /etc/profile
8、测试
$ node --version
$ node
3、jdk:(java)jre(java运行环境)
1、安装
$ apt install openjdk-8-jre-headless
$ apt install openjdk-8-jdk-headless
2、测试
$ java -version
4、mysql:数据库
1、安装mtsql服务
$ apt install mysql-server
出现紫色密码框:重置root用户的密码
2、测试
1、进入mysql
mysql -uroot -proot
2、使用数据库
$ use mysql;
$ select host,user from user;
3、修改数据库表
> update User set Host=’%’ where User=‘root’
> update User set Host=’%’ where User=‘briup’
4、修改配置文件
/etc/mysql//etc/mysql/mysql.conf.d/mysqld.cnf
将第43行代码的bind-address的属性值修改为0.0.0.0,保存退出
5、重启mysql服务
service mysql restart
6、打开防火墙
在阿里云页面的服务器安全设置中,添加规则:
1、mysql规则,默认占据端口3306
2、自定义规则,占据端口8888(后台代码已经默认写好)
5、navicat
1、
2、新建数据库
在当前连接上,鼠标右键=》新建数据库
数据库名称:cms,字符集:utf8,排序规则:随意
3、运行sql文件
在数据库名称上鼠标右键-》运行sql文件
4、在用户新建一个用户
用户名、密码:briup
主机:%
在服务器权限和对象权限:cms后全勾选
5、测试前后台是否相通
项目部署:
前台项目:
。。/index.html…
静态项目部署目录:
/var/www/html
访问:
http://公网IP:80/5i5j/index.html
后台项目:
cms.jar
项目存放地址:
/home/…
运行Java代码:
$ cs /home
$ java -jar jar包名称
访问后台接口:
http://公网ip:8888/swagger-ui.html
js (脚本语言,需要解析执行,js解析器)
:核心js+dom(文档对象模型)+bom(浏览器对象模型)
1、js 运行环境
1、repl环境:
r:read 读取
e: evel 执行
p: print打印
l: loop 循环
2、命令执行文件
index.js
node index.js
2、javascript:
js:全称:javascript
java:服务器端语言
js和java没有关系。
1、由来:
网景公司:
开发浏览器
统一标准:javascript:
ECMAScript:核心js
dom:document object model
文档对象模型
html
js:html
bom:browser object model;
浏览器对象模型
2、特点:
1、脚本语言:本身具有逻辑能力和行为能力;需要解析执行
2、解释型语言:
需要js的解析器
默认:浏览器内置js解析器
node:js解析器(运行环境)
3、弱类型语言:js:
var a=10;//number
a=“hello”;//string 可以随意更改
强类性语言:java:
int a=10;
a=“hello”;//报错
4、从上到下依次执行.
代码顺序:
say();
function say(){}
解析顺序:
function say(){}优先解析
say();
执行顺序:
function say(){}
say();
5、大小写敏感