linux、git、svn学习笔记

  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

    1. 安装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/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进行测试
    3. 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

    4. 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= P A T H : PATH: PATH:NODE_HOME/bin

        保存退出
        $ source /etc/profile

      4. 测试
        $ node -v

    5. 服务器能力:

      1. 文件上传 ftp
      2. 部署,静态服务器 apache
      3. 版本控制 subversion
        小乌龟 -> svn://134.175.154.93
        -4) 数据库 mysql (sql)
        -5) jdk/es6n
      4. node js解析器
        -7) 分布式附件
        fastdfs

      $ vsftpd -version
      usr/sbin不在PATH

      1. vi /etc/profile

      export PATH= P A T H : PATH: PATH:NODE_HOME/bin:/etc/profile

      1. source /etc/profile
    6. 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]

        1. 查看历史版本
          git log
          git reflog

        2. 时光穿梭
          git reset --hard 74ca8

        3. .gitignore
          让git不去管理指定的文件或目录
          src
          node_modules 第三方依赖,git
          package.json

        4. 本地仓库与远程仓库绑定

          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
            需要输入用户名和密码
        5. 多人协作

          1. 添加协作者
          2. 协作者同意后协作者就可以进行提交
            1. 先将远程仓库克隆到本地
              git clone https://github.com/pluslicy/git_web1902.git
            2. 操作
              先更新,再提交
              git pull origin master
              git push origin master
        6. 注意:
          提交之前先更新
          尽量不要多人同时操作一个文件
          空目录不会直接提交

你可能感兴趣的:(linux,git,svn)