linux

阿里云、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) 文件系统操作
        创建目录(目录是高量显示 :es5 es6 )
        $ mkdir 目录名称 [目录名称2]
 
        eg:(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 (-r是一次把里面的东西都删除掉)
            $ rm -ir dir1  (-i 删除之前先提示询问 -I大写的I是只询问一次)
 
        删除空目录
            $ rmdir dir1
 
-R
 
              $ date > a.txt                   把数据流导入到a.txt
        $ man calendar(日历) > b.txt    把手册的内容导入到b.txt里面
        $ more /etc/passwd > c.txt   把/etc/passwd里面的东西导入到c.txt
 
 
                                压缩打包
            $ zip all.zip *.txt
        解压到当前目录下
            $ unzip all.zip
        解压到指定目录下
            $ unzip all.zip -d exdir
        压缩格式:
            gzip         -z
            bzip2     -j
        归档(归档的过程没有压缩,文件比较大)
            $ tar -cvf all.tar *.txt  (c归档 v显示归档过程 f是把谁归档到谁里面,f后面直接跟的是一个归档文件)
        归档并且压缩
            $ tar -cvzf all.tar.gz *.txt
            $ tar -cvjf all.tar.bz2 *.txt
        解压
            $ tar -xvf all.tar.gz(.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,拥有者具有读写权限,同组人具有读执行权限,其他人具有执行权限
 
cat cat (concatenate)
将多个文件内容显示出来
拼接的意思
$ cat a2.txt.l a3.txt.l > c.txt  ( 把a2.txt.l a3.txt.l  连接起来输出到c.txt里面 )
 
    8) 管道应用
        $ ls -l /etc | more
            以长格式查看etc下所有文件,使用more的方式来展示
        $ ps -ef | grep java  (ps代表查看进程,-e代表列出所有的,f代表以一个标准格式列出)
            找到系统中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
i    在光标所在字符前插入
I    在光标所在行行首插入
a    在光标所在位置后插入
a    在光标所在行行末插入
o    在光标所在行下插入一空行
O    在光标所在行上插入一空行
<Esc>    退出插入状态
 
x        删除一个字符
dw        删除当前词
3dw    删除三个词
dd        删除当前行
5dd    删除五行
:5,10d    删除5到10行内容,底行模式
r    替换一个字符
cw    替换一个单词
cc    替换一行
C    替换从光标至行尾
yw         拷贝词
yy         拷贝行(或Y)
p        当前行下粘贴
:1,2co3    拷贝行1,行2在行3之后
:4,5m6    移动行4,行5在行6之后
:w        存盘
:w newfile    存成新文件
:wq     存盘退出Vi(或ZZ,或:x)
:q!         强行退出不存盘
~        改变大小写
J        把当前行和下一行连起来
u        废除刚才的编辑操作(undo)
:set nu    显示行代码 (:set nonu)
:21        光标停在指定行
21G    光标停在指定行 (G 到文件尾,1G 到文件头)
/串        从当前行往下查找
?串        从当前行往上查找
n        查找继续
:r file2    在光标所在位置插入另一个文件
:1,$s/旧串/新串/g        替换全文
:%s /旧串/新串/g        替换全文
 
 
 
 
 
        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     递归显示目录树  $ mkdir -p app/a/b/c
            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             预览
 
$ more /etc/passwd > passwd  
查看passwd的内容,把passwd里面的东西放到本地passwd目录
 
            回车     下一行
            空格        下一页
            q         退出
        $ tail             预览后10行
        $ head             预览头10行
        $ man    命令
            打开指定命令的命令手册
            q         退出
 
exit  退出
 
 
    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
 
    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下载
        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="licy@briup.com"
 
            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) 注意:
                提交之前先更新
                尽量不要多人同时操作一个文件
                空目录不会直接提交
 
            重构
 
            psd -> 静态页面
                版本协作     git/svn
                部署         apache
 
            项目组(1个月)
                html + css + svn/git + apache + linux
 
                html + css + svn/git + apache + linux
                + bootstrap
                + js + jquery            dom驱动
                + ajax
 
                html + css + svn/git + apache + linux
                + react
                + antd pro                 数据驱动
                + dva
    
                大数据         
                JAVA
                webui                    
 
 
--------操作-------
zhangsan     zhangsan
lisi             lisi
wangwu         wangwu
licy             webui
 
 
1. 将licy组的名称换成webui
    $ groupmod -n webui licy
2. 将terry放到webui组
    $ usermod -g 1003  terry
 
 
~~day02回顾
    1. 阿里云
    2. 登录云服务器
        xshell
            ssh charles@134.175.154.93
        putty
        终端
            ssh charles@134.175.154.93
    3. 用户管理
        1) 添加用户
            $ adduser terry
            ubuntu16.04
                /etc/passwd
                /etc/shadow
                /etc/group
                /home/terry
        2) 删除用户
            $ userdel -r(彻底删除) terry
        3) 修改用户信息
            $ usermod [-g](修改组) terry        
        4) 修改组信息
            $ groupmod [-n](重命名一个名字) terry
        5) 身份切换
            su - 用户名
 
    4. 文件系统
        /
            /etc
            /home
                /terry
                /larry
            /root
            /opt
            /usr
            /var
~~

posted on 2021-01-21 18:51  人类天花板  阅读(113)  评论(0编辑  收藏  举报

导航