1. linux
 (c、Javascript、Java、Python)
 集成环境 dw/ws eclipse myeclipse1. 编程语言的学习最好在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
 管理员密码 xxx1. 登录到linux系统上
 超级管理员账号(一般不使用)
 普通账号
mac(linux)
 ssh user@ip
 windows
 xshell
 putty2. 用户相关功能(超级管理员)
 $ 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/es56. 文件系统操作
 创建目录
 $ 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.gz7. 修改权限
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 java9. 文本编辑器的应用
 vi1. 打开
 直接打开vim
 通过vim打开一个文件2. 模式切换
 命令行模式
 命令行->编辑
 i I
 a A
 o O
 命令行->底行
 :
 w a.txt
 q
 w!
 q!
 wq
 其他设置
 set nu
 /
 ?
 编辑模式【最下有insert】
 底行模式【最下有: / 并且光标闪烁】3. 命令行命令
 yy
 p
 dd4. 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.sh10. 基础命令
 $ 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/sudoers12. 进程相关
 $ 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 sleep1. 安装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/2. vsftp安装
 vsftpd/subversion/nodejs/jdk/mysql1. ftp
 作用:将客户端中的网页上传到云服务器上
 1.1 在客户端安装fillzilla
 1.2 在服务器端安装vsftpd
 $ sudo apt get install vsftpd
 $ vsftpd -version
 vsftpd: version 3.0.32. 配置
 $ sudo vi /etc/vsftpd.conf
 31行的注释放开即可3. 重启
 $ sudo service vsftpd restart4. 使用fillzilla进行测试
3. subversion
 版本控制器服务版1. 安装
 $ sudo apt install subversion2. 测试
 $ svn help3. 创建仓库
 $ cd ~
 创建仓库目录,使用svnadmin初始化为svn仓库
 $ mkdir repository
 $ svnadmin create repository/
 $ ls repository/
 conf db format hooks locks README.txt4. 修改配置文件
1. 核心配置
 /repository/conf/svnserve.conf
 $ vi svnserve.conf
 19 anon-access = read
 20 auth-access = write
 27 password-db = passwd
 36 authz-db = authz2. 配置账号信息
 /repository/conf/passwd3. 配置权限信息
 /repository/conf/authz5. 启动仓库
 $ svnserve -d -r /home/ubuntu/repository
svn://152.136.136.220/wangyi
 6) 使用客户端软件(小乌龟)进行连接
 ip: svn://152.136.136.220/wangyi
 user
 passwd4. 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.xz2. 解压
 /opt
 node的家目录 /opt/node-v10.16.2
 node的可执行文件目录 /opt/node-v10.16.2/bin3. 将bin目录配置到环境变量中
 当在终端中运行一个命令的时候,系统会遍历PATH知道找到同名的文件,如果找不到提示无法运行,让我们下载并且安装
系统变量(对所有用户都生效)
 /etc/profile
 用户变量
 /home/xxx/.bashrc
 $ sudo vi /etc/profile
 在最后一行后追加
 export NODE_HOME=/opt/node-v10.16.2
 export PATH=NODE_HOME/bin
保存退出
 $ source /etc/profile4. 测试
 $ node -v5. 服务器能力:
1. 文件上传 ftp
2. 部署,静态服务器 apache
3. 版本控制 subversion
 小乌龟 -> svn://134.175.154.93
 -4) 数据库 mysql (sql)
 -5) jdk/es6n4. node js解析器
 -7) 分布式附件
 fastdfs$ vsftpd -version
 usr/sbin不在PATH1. vi /etc/profile
export PATH=NODE_HOME/bin:/etc/profile1. source /etc/profile
1. git
 svn 一般用于公司内部版本控制器(Java)
 tortoiseSVN -> subversion
 本地仓库 远程仓库
 代码 --commit/update–> 代码
git 一般用于开源项目,并且可以把开源项目发布到github中
 git -> github/码云(gitee)
 本地仓库 远程仓库1. 安装git
2. 测试
 git --version3. 使用
1. 初始化本地仓库
 git init
 当前目录就成为了git的本地仓库,在当前目录中会产生一个隐藏目录 git2. 查看状态
 git status3. 将新建文件、修改添加到git中
 git add *4. 将改变提交为一个版本
 git commit -m ‘[licy]初始化版本’请你告诉git你是谁
 git config --global user.name=“pluslicy”
 git config --global user.email=“licy@briup.com”1. 查看历史版本
 git log
 git reflog2. 时光穿梭
 git reset --hard 74ca83. .gitignore
 让git不去管理指定的文件或目录
 src
 node_modules 第三方依赖,git
 package.json4. 本地仓库与远程仓库绑定
1. 在github/gitee中新建远程仓库
 public 任何人都可以查看代码,协作者才可以提交
 private 只有自己和协作者才可以查看,提交代码2. 绑定
 git remote add origin https://github.com/pluslicy/git_web1902.git3. 更新,将远程的主分支值更新到本地
 git pull origin master4. 推送,将本地的仓库推送到远程
 git push origin master
 需要输入用户名和密码5. 多人协作
1. 添加协作者
2. 协作者同意后协作者就可以进行提交 
          
1. 先将远程仓库克隆到本地
 git clone https://github.com/pluslicy/git_web1902.git2. 操作
 先更新,再提交
 git pull origin master
 git push origin master6. 注意:
 提交之前先更新
 尽量不要多人同时操作一个文件
 空目录不会直接提交