这是我自己总结的百度脑图链接
http://naotu.baidu.com/file/38aedb0bf416da308ed7d77065f616b5?token=bf05cc446f3e0c9f
下面是课堂笔记
阿里云、xshell、putty
1. linux
(c、Javascript、Java、Python)
集成环境 dw/ws eclipse myeclipse
1. 编程语言的学习最好在linux操作系统下
2. web开发的部署环境
静态页面
动态网站
接口服务
linux作为服务器(网页)
3. 嵌入式操作系统
linux -> 硬件系统
linux内核
android
ubuntu
红帽子
...
2. unix
免费开源
linux(unix)
linux 开源
c语言、python库
github 贡献
3. ubuntu16.04
双系统
虚拟机
云服务器(操作系统)
4. linux多人协作系统
计算机组成原理
计算机网络
c语言
操作系统
...
外网ip地址
管理员用户名 root
管理员密码 xxx
1) 登录到linux系统上
超级管理员账号(一般不使用)
普通账号
mac(linux)
ssh user@ip
windows
xshell
putty
2) 用户相关功能(超级管理员)
$ adduser 用户名
输入密码
创建了一个与用户名同名的组
创建一个指定用户名账号的用户
将用户添加到组中
创建家目录 /home/用户名
将用户基本配套复制到用户家目录中
组长 root
licy/xxx
/etc/passwd
用户信息文件
/etc/shadow
用户信息保密文件
/etc/group
用户组的信息
$ sudo more /etc/shadow
普通用户的在sudoers中配置之后才能够使用sudo完成超级管理员所能做的事情。
$ userdel -r 删除用户
$ passwd 用户名 修改指定用户的密码
3) 切换账号
$ su - 用户名
如果当前用户是root,不需要输入密码
如果当前是普通用户,需要输入密码
licy@VM-0-9-ubuntu:/etc$
licy 当前用户
@ 分割符号
VM-0-9-ubuntu 计算名
如果想要修改,直接修改/etc/hostname文件即可
: 分割符号
/etc 当前所在路径
$ 分割符号
4) linux目录结构
没有盘符概念
所有目录都位于根目录下 /
/home 普通用户家目录
/home/licy
/home/charles
...
/root 超级管理员的家目录
/etc 核心配置目录
/opt 第三方文件解压安装目录
/usr 文件安装目录
apt-get install
普通用户只具备家目录中的更新(增加,修改,删除)权限
5) 路径
. 当前
.. 上一级
/ 根
~ 家
相对路径
以 .或者..开头的路径
$ cd es5
=>
$ cd ./es5
绝对路径
以为/开头的路径
cd /home/charles/es5
6) 文件系统操作
创建目录
$ mkdir 目录名称 [目录名称2]
eg:
$ mkdir app01 app02
$ mkdir -p app/a/b/c
创建文件
$ touch 文件名称
拷贝
$ cp a.txt dir1
$ cp -r dir1 dir2
移动或重命名
$ mv a.txt dir1
$ mv dir1 dir2
当dir2存在,移动到dir2中;否则重命名为dir2
删除文件或目录
$ rm a.txt
$ rm -r dir1
$ rm -ir dir1
删除空目录
$ rmdir dir1
压缩打包
$ zip all.zip *.txt
解压到当前目录下
$ unzip all.zip
解压到指定目录下
$ unzip all.zip -d exdir
压缩格式:
gzip -z
bzip2 -j
归档
$ tar -cvf all.tar *.txt
归档并且压缩
$ tar -cvzf all.tar.gz *.txt
$ tar -cvjf all.tar.bz2 *.txt
解压
$ tar -xvf all.tar.gz
7) 修改权限
1) 关键字
u /g /o /a
r/w/x
+/-/=
2) 八进制
r-- 100 4
-w- 010 2
--x 001 1
rw- 110 6
r-x 101 5
rwx 111 7
-wx 011 3
chomd 651 a.txt
对于a.txt,拥有者具有读写权限,同组人具有读执行权限,其他人具有执行权限
8) 管道应用
$ ls -l /etc | more
以长格式查看etc下所有文件,使用more的方式来展示
$ ps -ef | grep java
找到系统中java相关进程
$ find ~ -name java | grep java
9) 文本编辑器的应用
vi
1. 打开
直接打开vim
通过vim打开一个文件
2. 模式切换
命令行模式
命令行->编辑
i I
a A
o O
命令行->底行
:
w a.txt
q
w!
q!
wq
其他设置
set nu
/
?
编辑模式【最下有insert】
底行模式【最下有: / 并且光标闪烁】
3. 命令行命令
yy
p
dd
4. vim的配置
~/.vimrc
set nu
...
第三方配置spf13
安装git
# apt install git
# git --version
安装spf13
$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
10) 基础命令
$ clear 清理屏幕
$ cd 更改目录
$ ls 查看当前目录下的文件以及子目录
-a 所有
-l 长格式
-R 递归显示目录树
drwxr-xr-x 2 licy licy 4096 Aug 12 10:20 .
d 目录
- 普通文件
rwxr-xr-x
rwx 当前用户对于该文件的权限 read/write/execute
r-x 同组人对于该文件的权限
r-x 其他人对于该文件的权限
$ pwd 打印当前所在目录
$ more 预览
回车 下一行
空格 下一页
q 退出
$ tail 预览后10行
$ head 预览头10行
$ man 命令
打开指定命令的命令手册
q 退出
11) sudo
以超级管理员身份运行
root
boss
/etc/sudoers
12) 进程相关
$ nohup java -jar homework.jar &
将这个服务在后台运行
$ ps aux | grep java
寻找java相关进程
$ kill -9 30469
杀死进程号为30469的进程
$ sudo netstat -ap
用超级管理员身份列出当前系统占据所有的端口以及相对应的进程编号
8099 - 31757
$ ifconfig
查看当前路由信息(ip)
处于同一局域网中的多个主机可以通信
路由器
如何登陆到路由器的管理系统
172.16.0.1
172.16.0.20
http://172.16.0.1
拨号
自动ip 猫
$ sleep 100s &
$ jobs / $ ps -ef | grep sleep
13. 安装apache
$ sudo apt install apache2
在浏览器中访问
http://152.136.136.220/
如果打不开
$ service apache2 status
$ service apache2 restart
apache默认部署目录
/var/www/html/wangyi/index.html
http://152.136.136.220/wangyi/
14. vsftp安装
vsftpd/subversion/nodejs/jdk/mysql
1) ftp
作用:将客户端中的网页上传到云服务器上
1.1 在客户端安装fillzilla
1.2 在服务器端安装vsftpd
$ sudo apt get install vsftpd
$ vsftpd -version
vsftpd: version 3.0.3
2) 配置
$ sudo vi /etc/vsftpd.conf
31行的注释放开即可
3) 重启
$ sudo service vsftpd restart
4) 使用fillzilla进行测试
15. subversion
版本控制器服务版
1) 安装
$ sudo apt install subversion
2) 测试
$ svn help
3) 创建仓库
$ cd ~
# 创建仓库目录,使用svnadmin初始化为svn仓库
$ mkdir repository
$ svnadmin create repository/
$ ls repository/
conf db format hooks locks README.txt
4) 修改配置文件
1. 核心配置
/repository/conf/svnserve.conf
$ vi svnserve.conf
19 anon-access = read
20 auth-access = write
27 password-db = passwd
36 authz-db = authz
2. 配置账号信息
/repository/conf/passwd
3. 配置权限信息
/repository/conf/authz
5) 启动仓库
$ svnserve -d -r /home/ubuntu/repository
svn://152.136.136.220/wangyi
6) 使用客户端软件(小乌龟)进行连接
ip: svn://152.136.136.220/wangyi
user
passwd
16. nodeJs安装【解压安装jdk/mysql (Java/python服务)】
$ vsftpd -version
/usr/bin不在PATH 环境变量的路径
1) 下载安装包
1. windows 下载,通过ftp上传云服务器上
2. 在ubuntu16.04使用wget下载
$ wget https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz
2) 解压
/opt
node的家目录 /opt/node-v10.16.2
node的可执行文件目录 /opt/node-v10.16.2/bin
3) 将bin目录配置到环境变量中
当在终端中运行一个命令的时候,系统会遍历PATH知道找到同名的文件,如果找不到提示无法运行,让我们下载并且安装
系统变量(对所有用户都生效)
/etc/profile
用户变量
/home/xxx/.bashrc
$ sudo vi /etc/profile
在最后一行后追加
export NODE_HOME=/opt/node-v10.16.2
export PATH=$PATH:$NODE_HOME/bin
保存退出
$ source /etc/profile
4) 测试
$ node -v
17. 服务器能力:
1) 文件上传 ftp
2) 部署,静态服务器 apache
3) 版本控制 subversion
小乌龟 -> svn://134.175.154.93
-4) 数据库 mysql (sql)
-5) jdk/es6n
6) node js解析器
-7) 分布式附件
fastdfs
$ vsftpd -version
usr/sbin不在PATH
1. vi /etc/profile
export PATH=$PATH:$NODE_HOME/bin:/etc/profile
2. source /etc/profile
18. git
svn 一般用于公司内部版本控制器(Java)
tortoiseSVN -> subversion
本地仓库 远程仓库
代码 --commit/update--> 代码
git 一般用于开源项目,并且可以把开源项目发布到github中
git -> github/码云(gitee)
本地仓库 远程仓库
1. 安装git
2. 测试
> git --version
3. 使用
1) 初始化本地仓库
> git init
当前目录就成为了git的本地仓库,在当前目录中会产生一个隐藏目录 git
2) 查看状态
> git status
3) 将新建文件、修改添加到git中
> git add *
4) 将改变提交为一个版本
> git commit -m '[licy]初始化版本'
请你告诉git你是谁
> git config --global user.name="pluslicy"
> git config --global user.email="[email protected]"
5) 查看历史版本
> git log
> git reflog
6) 时光穿梭
> git reset --hard 74ca8
7) .gitignore
让git不去管理指定的文件或目录
src
node_modules 第三方依赖,git
package.json
8) 本地仓库与远程仓库绑定
1. 在github/gitee中新建远程仓库
public 任何人都可以查看代码,协作者才可以提交
private 只有自己和协作者才可以查看,提交代码
2. 绑定
> git remote add origin https://github.com/pluslicy/git_web1902.git
3. 更新,将远程的主分支值更新到本地
> git pull origin master
4. 推送,将本地的仓库推送到远程
> git push origin master
需要输入用户名和密码
9) 多人协作
1. 添加协作者
2. 协作者同意后协作者就可以进行提交
1) 先将远程仓库克隆到本地
> git clone https://github.com/pluslicy/git_web1902.git
2) 操作
先更新,再提交
> git pull origin master
> git push origin master
10) 注意:
提交之前先更新
尽量不要多人同时操作一个文件
空目录不会直接提交