• linux学习笔记


    檀老师总结Linux;
    (一)知识目标
        1.理解什么是LINUX
        2.掌握虚拟主机软件的使用
        3.掌握linux系统的安装
        4.掌握对linux系统中目录的操作
        5.掌握对linux系统中文件的操作
        6.掌握对linux系统中用户的操作
        =================================================================
        7.掌握对linux系统中软件的安装、卸载、更新
        8.掌握在linux中php环境的搭建
        9.掌握在linux中SVN的安装和使用
        
        =================================================================
        10.掌握软件开发的周期
        11.掌握如何设计数据库范式
        12.掌握如何使用powerdesign创建E-R图、生成数据字典、导出sql
        13.掌握使用ThinkPHP框架进行学生选课系统项目的开发

    (二)能力目标
        1.本月整体速度目标:
        利用5天时间完成学生选课系统,主要的功能模块有:
            (1)利用linux环境+SVN+thinkPHP框架+js正则验证+COOKIE登录后进行学生登录
            (2)利用linux环境+SVN+thinkPHP框架+js正则验证+COOKIE登录后进行教师登录
            (3)利用linux环境+SVN+thinkPHP框架+表设计+教师选课
            (4)利用linux环境+SVN+thinkPHP框架+表设计+学生发表建议
            (5)利用linux环境+SVN+thinkphp框架+表设计+学生添加好友
        周考月考时:用三个小时的时间可以完成其中任意一个功能模块

    (三)教学内容及考核要求
        第一单元:Linux系统简介及安装;
        第二单元:Linux 文件常用命令
        第三单元:Linux 目录常用命令
        第四单元:Vim/Vi 文本编辑器应用
        第五单元:Linux 系统管理&软件安装

        第六单元:Linux 用户及用户组管理
        第七单元:Linux 进程管理
        第八单元:Shell 编程
        第九单元:Linux 网络管理

        第十单元:LAMP  环境搭建及管理

        第十一单元:项目搭建和SVN安装


        第十二单元:软件工程
        第十三单元:业务流程图&功能模块图
        第十四单元:数据库范式
        第十五--十九单元:项目实战!





    setup  图形界面 关闭防火墙

    Linux 待处理的问题列表  
        一、文件操作命令 【×】
            touch a.php     #创建空文件
            cp 1.php 2.php     #复制文件
            mv 1.php a/1.php #移动文件
            more         #
            head -n 文件名     #文件头几行
            tail -n 文件名   #文件尾几行
            cat              #查看文件
            less a.php       #查看文件
                q:退出
                h:显示帮助
                空格:下一页
                b:上一页
                g:到第一行
                G:到结尾
                /pattern 向下查找模式为pattern的词
                / 向下查找上一次使用的模式的词
                n 【继续查找下一个关键词】

                ?pattern 向上查找模式为pattern的词
                ? 向上查找上一次使用的模式的词
            文件查找命令:
                find:
                    find / -name filename(文件名)
                    find / -user user(用户)
                    find ./ -size +100k(文件大小)
                locate  
                    数据库:/var/lib/mlocate  配置项:/etc/updatedb.conf  命令:updatedb
                
                whereis
                    
                说明:
                    当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查 找,因此非常消耗硬盘的资源,而且效率也非常低,
                    因此建议大家优先使用whereis和locate。
                    locate 是在数据库里查找,数据库大至每天更新一次。
                    whereis 可以找到可执行命令和man page
                    find 就是根据条件查找文件。
                    which 可以找到可执行文件和别名(alias)

        二、目录操作命令 【×】
            mkdir -m 777   #创建最高权限的目录
            mkdir -p b/c/d #递归创建目录
            rmdir 目录名   #删除空目录
            rm -fr /usr/lib/mysql (强制递归删除)
                f:强制删除,不需要确认
                r:递归删除目录及其内容
            chmod 777 目录/文件名 #修改目录或文件权限
            chown -R apache blog  #修改blog文件夹的所有者 为 apache
            chgrp -R apache blog  #修改组




        三、用户操作
            id 用户名  #用户的相关Id
            su 用户名  #切换用户
            who       #当前用户详情
            users      #查看当前登录的用户
            sudo       #sudo 授权许可使用的su,也是受限制的su
            whoami     #显示当前终端上的用户名
            useradd 用户名 #创建一个新的用户帐号
                -g 指定该用户的首要组
                -G 指定该用户的次要组
                -d 指定该用户的Home目录
                -p 指定该用户的密码

                实例:useradd ora -g oinstall -G dba -d /home/oracle -p ora12
            userdel 用户名 #删除一个已存在的账号
            groupadd 组名  #创建一个新的用户组
            groupdel 组名  #删除一个已存在的用户组
            passwd           #改变自己的口令;超级用户可以修改用户的口令 passwd 用户名

            /etc/group  文件是用户组的配置文件。
            /etc/passwd 文件是用户的配置文件。
            使用cat、more、less、head、tail以及vim等命令都可以查看、修改这两个配置文件。


        五、文件权限问题
            权限八进制表示法:
                1(x) 2(w)4(r)
            用户组包含了:
                文件属主(u) 文件数组(g) 其它人(o) ||   所有人(a)
            更改文件权限实例:
                chmod u+x days
                chmod ug=rw,o+r days
                chmod 711 prog 【更多的使用这种方法】

                更改所属组   chgrp 语法:chgrp  [组名]  [文件名]
                更改所属用户 chown
                    语法: chown [ -R ] 账户名 文件名 chown [ -R ] 账户名:组名 文件名
                    这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。


            命令与权限的关系:【重要】
                进入目录:该目录至少具有可 x 权限
                查阅目录:该目录必须有 r、x 权限

                修改文件:该文件必须有 r、w 权限
            
            注意:
                只有文件的属主和root用户才有权修改文件的权限。

            
        六、用户和用户组管理 (学习笔记)
            基础知识:
                用户:使用操作系统的人
                用户组:具有相同系统权限的一组用户
            
            1、用户(组)管理:
                useradd san
                userdel san
                /etc/passwd #用户列表

                passwd san  #创建密码
                /etc/shadow #密码列表

                groupadd team
                groupdel team
                /etc/group  #组列表
            2、演示流程
                root用户在 home 下新建文件:test
                修改 home 权限;O=0
            
            3、扩展:
                linux的特点:多用户:在同一时刻可以有多个用户同时使用Unix操作系统而且他们互不干扰
                管理员权限 visudo     98行 sudo
                sudo rpm -e vim-minimal --nodeps  普通用户 强制卸载
        
        

        六、进程相关命令
            ps     #查看进程
              a 与终端相关的进程
              x 与终端无关的进程
              u 显示运行进程的用户
              实例:ps -aux | grep yum
            kill 命令:kill
               选项:-9  强行终止进程
               格式:kill [option] pid
               实例:kill -9 pid
        

        七、lamp 环境安装
            1、查看mysql是否 安装
                rpm -qa | grep mysql
                    -a   所有
                     -q  使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
            2、mysql 需要安装几个包:
                服务端、客户端、php-mysql 扩展包
            
            3、镜像文件挂载到指定目录(相当于把光盘放到光驱里面可读,可执行)
                mount /dev/cdrom /media/mnt 【前者是光盘,后者是挂载的地方】
                    error:mount: you must specify the filesystem type【你的系统不能识别这个光盘里面的数据格式】
                    检查右下角光盘是否启动?

                umount  /media/mnt  【卸载挂载】

                进入挂载的目录,查看包文件
                    cd /media/mnt/Packages
                    ls mysql*   #查看所有 mysql包 两个包(客户端和服务器包)
                    ls php*     #查看php-mysql 扩展包

                rpm -ivh mysql-5.1.66-2.el6_3.i686.rpm 【安装 mysql客户端】

                rpm -ivh mysql-server-5.1.66-2.el6_3.i686.rpm 【安装 mysql服务端 rpm包 出现依赖关系,引入yum安装】
                    i  显示套件的相关信息
                    v  显示指令执行过程
                    h  套件安装时列出标记

            4、yum 安装mysql(本地安装yum源)
                cp -r /etc/yum.repos.d/ /etc/yum.repos.d_bak #备份文件
                rm -rf /etc/yum.repos.d/*    (原来的都不要了)
                vim /etc/yum.repos.d/dvd.repo #yum源 指向本地目录

    [local_server]
    name=This is a local repo
    baseurl=file:///media/cdrom
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


                yum makecache                 #生成yum 缓存
                yum install mysql-server      #安装mysql-server

                rpm -qa | grep mysql          #查看安装好的apm包
                yum -y install php-mysql      #安装php-mysql
                    -y 参数指明默认同意

                service mysqld start|stop|status #mysql安装

        
        八、svn安装
            1、cat /etc/yum/.repos.d/dvd.repo #查看yum安装源挂载到哪里了
            2、cd /media/mnt/Packages/        #进入挂载的安装包目录
            3、ls sub*              #查看svn的安装包
            4、yum install sub===             #svn安装
            5、rpm -qa| grep sub              #查看是否安装成功
            6、svnadmin create /usr/local/svn/blog #创建版本库
            7、svnserve -dr /usr/local/svn/      #启动svn服务
            8、vim /usr/local/svn/blog/conf/svnerve.conf #配置svn权限
                要打开的地方:
                    行号:12、13、20、32
            9、develop = dev1,dev2 #新建开发者和密码
            10、Linux 自动更新
                新建文件:
                    vim /usr/local/svn/demo/hooks/post-commit

                增加可执行权限:
                    chmod -R 777 post-commit

                添加如下文字:
                    #!/bin/sh
                    export LANG=en_US.UTF-8
                    /usr/bin/svn update /var/www/html/demo  --username dev1 --password 123456

            svn 命令
                1、将文件checkout到本地目录
                    svn checkout path(path是服务器上的目录)
                    svn checkout svn://192.168.1.1/pro/domain
                    简写:svn co
                
                2、往版本库中添加新的文件
                    svn add file
                    例如:svn add test.php(添加test.php)
                    svn add *.php(添加当前目录下所有的php文件)
                
                3、将版本库中添加新的文件
                    svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
                    例如:svn commit -m "add test file for my test" test.php
                    简写:svn ci
                
                4、更新到某个版本
                    svn update -r m path
                    例如:
                         svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
                         svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
                         svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
                    简写:svn up

            


        五、shell脚本
            一、Shell 概述
                1、 ASCII 字码表
                    是一个命令解释器。
                        用户 =》 shell => 内核 调用硬件来执行这个命令
                    shell还是一个功能强大的编程语言。
                        shell是解释执行的脚本语言,在shell中可以直接调用Linux命令。


                    echo $SHELL  #查看当前的shell类型
            二、脚本执行方式:
                1、echo 输出内容到屏幕上
                    #! /bin/bash    #不是注释,也不是可有可无的,它是一个shell脚本的标准输出,必须要有
                
                2、脚本执行:
                    赋予执行权限,直接运行
                        chmod 755 hello.sh
                        ./hello.sh

                    通过Bash调用执行脚本
                        bash hello.sh

                3、Bash的基本功能:
                    命令别名与快捷键
                        命令别名 == 人的小名
                        alias  #查看所有别名

                    历史命令
            三、常用快捷键
                ctrl + c  强制终止当前命令
                ctrl + l  清屏
                ctrl + r  在历史命令中搜索
                ctrl + a  光标移动到命令行首
                ctrl + e  光标移动到命令行尾
                ctrl + u  从光标所在位置删除到行首
                ctrl + z  把命令放入后台执行

        八、PowerDesign使用
            概念建模:文件-》建立新模型 -》Conceptual Data Model (概念数据模型)
            创建物理模型:工具 -> Generate Physical Data Model (生成逻辑数据模型)
            数据库生成:数据库-> Generate Databases(生成数据库)
            
        九、计划任务
            crontab -e                #定时任务执行
            crontab -l            #定时任务列表
            crontab -e -u tan     #执行用户
            tail -f /var/log/cron #动态查看任务执行情况

            whereis php-cgi       #php执行
            /usr/bin/php-cgi -q /var/www/html/insert.php >>/root/time.txt


        十、虚拟机多域名配置
            1、vim /etc/hosts
                192.168.101.129 domain.com
            2、vim /etc/httpd/conf/httpd.conf  
                最低端 PgDn  加入代码:

                NameVirtualHost 192.168.1.115:80
                <VirtualHost 192.168.1.115:80>
                    DocumentRoot /usr/local/apache2/htdocs/project
                    ServerName domain.com
                </VirtualHost>
                <Directory "/usr/local/apache2/htdocs/project">
                    Options Indexes FollowSymLinks
                    AllowOverride all
                    Order Deny,Allow
                    Deny from all
                    Allow from all
                < /Directory>


        十一、挂载理解:
            1.umount, 老是提示:device is busy, 服务又不能停止的。
                可以用"umount -fl"解决!
    =======================

            

        



    ========================

    其它:
        命令查看帮助:less --help | man 命令
        关机:halt
        重启系统:reboot
        查看ip地址:ifconfig
        查看上次命令是否执行成功:echo $?

        服务相关:
            图形化:ntsysv 命令
            位置:Linux系统所有的预设服务可以查看/etc/init.d/目录得到:
            命令使用:
                service 服务名称  start|stop|restart|status
                iptables  #防火墙
                network   #网络服务
                crond     #计划任务

        链接ssh
            service iptables start|stop|restart|status  #关闭防火墙
            httpd #apatch
            netstat -anptu | grep ssh #

        
        快捷键:
            Ctrl+P 并回车执行。  #重复执行上一条命令:
            Ctrl + N 并回车执行  #重复下一条命令:

            Ctrl +fn+ Insert       #复制所选
            Shift + Insert      #粘贴
            Alt + Insert           #粘帖所选
            

        
        查找安装的包位置: rpm -ql 包名
            实例:rpm -ql mysql
        
        几个常用命令
            rpm -qa | grep mysql #查看rpm包是否安装
            ps -aux | grep mysql #查看进程
            whereis mysql         #查看软件安装路径
            ls http*             #该目录下的列表

        文件目录记录:
            /etc/httpd/conf/httpd.conf   #apatch 配置文件


        vi 和 vim 的区别:
            vi和vim都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
            vim的这些优势主要体现在以下几个方面:
                1、多级撤消我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
                2、易用性vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
                3、语法加亮vim可以用不同的颜色来加亮你的代码。
                4、可视化操作就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
                5、对vi的完全兼容某些情况下,你可以把vim当成vi来使用。

        今天配置lamp环境遇到php代码不解析,在浏览器中显示php代码,花了好长时间终于解决问题:
            打开/etc/httpd/conf/httpd.conf
            找到AddType application/x-gzip .gz .tgz
            在下一行加入AddType application/x-httpd-php .php
            注意AddType application/x-httpd-php .php不要拼写错了。



       

  • 相关阅读:
    IPC(进程间通信)
    进程和线程是什么
    虚拟内存
    寄存器是什么?内存、寄存器和存储器的区别
    计算机资源 —硬件资源分配
    如何将一个网页中自己想要的数据导入到Excel表格中
    Putty的安装和使用
    SQL中的ON DUPLICATE KEY UPDATE使用详解
    sql:主键(primary key)和唯一索引(unique index)区别
    直接扩频通信(上)理论基础
  • 原文地址:https://www.cnblogs.com/dwj97/p/6437810.html
Copyright © 2020-2023  润新知