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 待處理的問題列表  
    1、文件操做命令 【×】
        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)

    2、目錄操做命令 【×】
        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  #修改組




    3、用戶操做
        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等命令均可以查看、修改這兩個配置文件。


    5、文件權限問題
        權限八進制表示法:
            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用戶纔有權修改文件的權限。

        
    6、用戶和用戶組管理 (學習筆記)
        基礎知識:
            用戶:使用操做系統的人
            用戶組:具備相同系統權限的一組用戶
        
        一、用戶(組)管理:
            useradd san
            userdel san
            /etc/passwd #用戶列表

            passwd san  #建立密碼
            /etc/shadow #密碼列表

            groupadd team
            groupdel team
            /etc/group  #組列表
        二、演示流程
            root用戶在 home 下新建文件:test
            修改 home 權限;O=0
        
        三、擴展:
            linux的特色:多用戶:在同一時刻能夠有多個用戶同時使用Unix操做系統並且他們互不干擾
            管理員權限 visudo     98行 sudo
            sudo rpm -e vim-minimal --nodeps  普通用戶 強制卸載
    
    

    6、進程相關命令
        ps     #查看進程
          a 與終端相關的進程
          x 與終端無關的進程
          u 顯示運行進程的用戶
          實例:ps -aux | grep yum
        kill 命令:kill
           選項:-9  強行終止進程
           格式:kill [option] pid
           實例:kill -9 pid
    

    7、lamp 環境安裝
        一、查看mysql是否 安裝
            rpm -qa | grep mysql
                -a   全部
                 -q  使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶。
        二、mysql 須要安裝幾個包:
            服務端、客戶端、php-mysql 擴展包
        
        三、鏡像文件掛載到指定目錄(至關於把光盤放到光驅裏面可讀,可執行)
            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  套件安裝時列出標記

        四、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安裝

    
    8、svn安裝
        一、cat /etc/yum/.repos.d/dvd.repo #查看yum安裝源掛載到哪裏了
        二、cd /media/mnt/Packages/        #進入掛載的安裝包目錄
        三、ls sub*              #查看svn的安裝包
        四、yum install sub===             #svn安裝
        五、rpm -qa| grep sub              #查看是否安裝成功
        六、svnadmin create /usr/local/svn/blog #建立版本庫
        七、svnserve -dr /usr/local/svn/      #啓動svn服務
        八、vim /usr/local/svn/blog/conf/svnerve.conf #配置svn權限
            要打開的地方:
                行號:十二、1三、20、32
        九、develop = dev1,dev2 #新建開發者和密碼
        十、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 命令
            一、將文件checkout到本地目錄
                svn checkout path(path是服務器上的目錄)
                svn checkout svn://192.168.1.1/pro/domain
                簡寫:svn co
            
            二、往版本庫中添加新的文件
                svn add file
                例如:svn add test.php(添加test.php)
                svn add *.php(添加當前目錄下全部的php文件)
            
            三、將版本庫中添加新的文件
                svn commit -m "LogMessage" [-N] [--no-unlock] PATH(若是選擇了保持鎖,就使用--no-unlock開關)
                例如:svn commit -m "add test file for my test" test.php
                簡寫:svn ci
            
            四、更新到某個版本
                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

        


    5、shell腳本
        1、Shell 概述
            一、 ASCII 字碼表
                是一個命令解釋器。
                    用戶 =》 shell => 內核 調用硬件來執行這個命令
                shell仍是一個功能強大的編程語言。
                    shell是解釋執行的腳本語言,在shell中能夠直接調用Linux命令。


                echo $SHELL  #查看當前的shell類型
        2、腳本執行方式:
            一、echo 輸出內容到屏幕上
                #! /bin/bash    #不是註釋,也不是無關緊要的,它是一個shell腳本的標準輸出,必需要有
            
            二、腳本執行:
                賦予執行權限,直接運行
                    chmod 755 hello.sh
                    ./hello.sh

                經過Bash調用執行腳本
                    bash hello.sh

            三、Bash的基本功能:
                命令別名與快捷鍵
                    命令別名 == 人的小名
                    alias  #查看全部別名

                歷史命令
        3、經常使用快捷鍵
            ctrl + c  強制終止當前命令
            ctrl + l  清屏
            ctrl + r  在歷史命令中搜索
            ctrl + a  光標移動到命令行首
            ctrl + e  光標移動到命令行尾
            ctrl + u  從光標所在位置刪除到行首
            ctrl + z  把命令放入後臺執行

    8、PowerDesign使用
        概念建模:文件-》創建新模型 -》Conceptual Data Model (概念數據模型)
        建立物理模型:工具 -> Generate Physical Data Model (生成邏輯數據模型)
        數據庫生成:數據庫-> Generate Databases(生成數據庫)
        
    9、計劃任務
        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


    10、虛擬機多域名配置
        一、vim /etc/hosts
            192.168.101.129 domain.com
        二、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>


    11、掛載理解:
        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的這些優點主要體如今如下幾個方面:
            一、多級撤消咱們知道在vi裏,按 u只能撤消上次命令,而在vim裏能夠無限制的撤消。
            二、易用性vi只能運行於unix中,而vim不只能夠運行於unix,windows ,mac等多操做平臺。
            三、語法加亮vim能夠用不一樣的顏色來加亮你的代碼。
            四、可視化操做就是說vim不只能夠在終端運行,也能夠運行於x window、 mac os、 windows。
            五、對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不要拼寫錯了。



    php

相關文章
相關標籤/搜索