zoukankan      html  css  js  c++  java
  • Linux操作系统基本应用(完结)

     
    时间:2015-4-10 12:40

    Linux第一天 
    Linux基本命令 

    Linux各文件夹的作用
        bin  二进制可执行命令
        dev  设备特殊文件
        etc  系统管理和配置文件
        etc/rc.d  系统启动的配置文件和脚本
        home  用户文件夹
        lib  标准程序设计库  作用类似于Windows中的 .dll
        sbin   系统管理命令
        tmp  公用的临时文件储存点
        root  特权阶级
        mnt  临时挂载其他的文件系统
        var  可编数据
        opt  第三方软件(非应用  支持系统)
        usr  应用软件
        boot  启动文件
    ————————
    基本命令
        ls  显示目录(d表示文件夹、-表示文件、l 表示软链接、红色表示压缩文件、蓝色表示文件夹、绿色表示可执行文件)
            -a 显示所有文件,包括隐藏文件
            -l  显示详细信息
            -d 查看目录属性 
        chmod 766 文件名  或者  chmod u+rwx 文件名/*给user添加rwx权限*/
            rwx        rwx          rwx             root         root
            所有者   所属组     其他人        所有者    所属组
            user       group      others
        r = 4  w = 2  x = 1
    ——————————————————————————————————————
    |    代表字符    |       权限      |        对文件的含义        |                对目录的含义                |
    ——————————————————————————————————————
    |           r           |    读权限     |    可以查看文件内容    |         可以列出目录中的内容         |
    ——————————————————————————————————————
    |          w           |    写权限     |    可以修改文件内容    |    可以在目录中创建、删除文件   |
    ——————————————————————————————————————
    |           x           |  执行权限   |        可以执行文件        |                可以进入目录                |
    ——————————————————————————————————————
        rwx 对文件的权限
            r - cat、more、head、tail
            w - echo、vi
            x - 命令、脚本
        rwx 对目录的权限
            r - ls
            w - touch、mkdir、rm
            x - cd
        chown 用户名
            改变文件或目录的所有者
        chgrp 用户名
            改变文件所属组
        su - 用户名   
            切换当前用户 
        touch 文件名 
            创建空文件
        cp -R 源文件或目录 目的目录 
            复制文件
        which 命令名称
            显示系统命令所在目录
        例子:$which ls
        find查找
        find 搜索路径 搜寻关键字
            功能描述:查找文件或目录 
        find -name 文件名
            * 匹配任意字符 init*
            ? 匹配单个字符 init??
        find -size 文件大小
            数据块 512字节  block
            大于 +
            小于 -
        find -user 所有者
        find -time
            1、天 ctime、atime、mtime
            2、分钟 cmin、amin、mmin
        c = change 改变  表示文件的属性被修改过,文件的所有者 
        a = access  访问
        m = modify  修改  表示文件的内容被修改过
        - 之内
        + 超过
        例:
            find /etc -mmin -120    /*查找120分钟内被修改过的文件*/ 
    gzip压缩:
        gzip 文件名
            gzip 只能压缩文件 不能压缩目录 
            gzip  压缩后不保留源文件
    解压缩:
        gunzip -d  或者  gzip -d
    tar压缩:
        tar  选项  目录
            -c 产生.tar打包文件
            -v 显示详细信息
            -f 制定压缩后的文件名
            -z 打包同时压缩
    功能描述:
        打包目录
        压缩后文件格式.tar.gz
    例子:
        $tar  -zcvf  dir1.tar.gz dir1  /*打包后产生的文件名在后*/
            将目录 dir1压缩成一个打包并压缩的文件
    解压缩:
        $tar -xfz 文件名
            -x  是解压
            当文件名后缀没有.tar.gz   可以用 file  xxx 来查看文件
    bzip2压缩:
        bzip2 选项 文件
            -k  产生压缩文件后保留源文件
        功能描述
            压缩文件
        压缩后文件格式:
            .bz2
        例子:
            $bzip2 -k file1
    解压缩:
        bunzip2 -k 压缩文件
            -k  解压缩后保留原文件
        功能描述:
            解压缩
        例子:
            $bunzip2 -k file.bz2 
        bc  计算器
        cal  日历
        date  时间
        exit  退出
        reboot  重启
        vi/gedit  编辑器
        gcc 123.c -o 32.c  重命名 123.c文件为321.c
        ./123.c  运行123.c程序
        whereis 123.c  寻找123.c文件的位置
        pwd  显示当前文件位置
        cp  复制
        mv  移动/剪切
        rm  删除
        rmdir  删除空目录/*只能删除空目录*/
        cat  查看文件内容
        more  文件名/*分页显示文件内容*/
            空格 或 f    显示下一页
            Enter         显示下一行
            Q 或 q       退出
        head  -5  文件名 /*显示文件前5行内容*/
        tail  -5  文件名  /*显示文件后5行内容*/ 
        mkdir  创建文件夹
        ctrl + c  终止命令
        双击tab  补全命令
        cd + 文件名  下层目录
        cd(空格)..  退到上层目录
        cd(空格)/  退到根目录
    ————————
    VI编辑器

        v:显示
        y:复制
        a:编辑
        w:保存
        q:退出 
    ————————
     Linux第二天
    shell命令编程
        用VI创建一个名为“hello.sh”的shell文件
        vi  hello.sh
        输入语句
        #!/bin/sh
        echo "hello world!"
        修改权限
        chmod 766 hello.sh
        运行“hello.sh”
        ./hello.sh 
    ————————
    变量赋值
        var1= 1      var2= “aaa”  /*Linux中没有数据类型,所以直接定义变量*/
    输入输出
        read  输入  相当于C语言中的 scanf
            read var    属于一个数据存储到var当中
         echo 输出  相当于C语言中的printf
            echo “$var”  输出变量var的值
        调用变量时要用$引用变量  $var /*当变量为右值使用时必须使用$*/
    数学运算命令
        expr $var+1 或 (($var  + 1))  
    引用命令时用反短斜线 ` `  /*数字1左边的键*/ 或
     $()
    ————————
    简单运算
        #!/bin/sh
        echo "input a number"
        read var1
        var= `expr $var1 + 1`
        echo $var
        /*  
            输入一个数字  将该数字赋值给var1
            调用var1  使var+1  将相加后的结果赋给var
             输出var
        */
    ————————
    条件执行
        命令1;命令2    /*命令1执行完毕,无条件执行命令2*/
        命令1&&命令2   /*当命令1执行成功则执行命令2,命令2执行完毕返回“成功”,否则返回“失败”*/
        命令1 || 命令2    /*当命令1执行失败则执行命令2,命令1执行成功则不执行命令2*/
    例句
        ls~/abc || mkdir~/abc && touch~/abc/aa
            touch的作用是修改文件 时间戳
        -a    &&    逻辑与  -and
        -o    ||    逻辑或  -or
    ————————
    Linux流程控制结构
        if语句结构[if/then/elif/else/fi]
        if 条件
        then
        语句
        elif 条件
        语句
        else
        语句
        fi
        /*
            如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符、逻辑表达式详解shell命令
           [chengmo@centos5 ~]$ a=5;if [[ a -gt 4 ]] ;then echo 'ok';fi;                       
           ok
        */ 

        实例:
        (test.sh)#!/bin/shscores=40;
        if [[ $scores -gt 90 ]]; then
            echo "very good!";
        elif [[ $scores -gt 80 ]]; then
            echo "good!";
        elif [[ $scores -gt 60 ]]; then
            echo "pass!";
        else
            echo "no pass!";
        fi; 
        图片
        条件测试有:[[]],[],test 这几种,注意:[[]] 与变量之间用空格分开。
    ———— 
        for … in 语句
        for 变量 in seq字符串
        do
        语句
        done
        说明:seq字符串 只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量。

        实例
        (testfor.sh):
        #!/bin/sh
        for i in $(seq 10); do
        echo $i;
        done;
        图片
        seq 10 产生 1 2 3 。。。。10空格分隔字符串
        [user@bogon ~]$sh xxx.sh  相当于 . / 运行shell文件
    ————
        for((赋值;条件;运算语句))
        do
        语句
        done; 
        
    实例(testfor2.sh):#!/bin/shfor((i=1;i<=10;i++));do
        echo $i;
        done;
        图片
    ————
        while 条件语句
        do
        语句
        done;
        
        实例1:
        #!/bin/sh
        i=10;
        while [[ $i -gt 5 ]];do
        echo $i;
        ((i--));
        done;
        运行结果:
        ========================
        sh testwhile1.sh
        10
        9
        8
        7
        6
        !!实例2:(循环读取文件内容:)
        #!/bin/sh
        while read line;do
            echo $line;
        done < /etc/hosts;
     
        运行结果:
        ===================
        sh testwhile2.sh

        # Do not remove the following line, or various programs
        # that require network functionality will fail.
        127.0.0.1 centos5 localhost.localdomain localhost
    ————
        语法结构:
        until 条件
        do
        action
        done
        意思是:直到满足条件,就退出,否则执行action。

        实例
        (testuntil.sh):
        #!/bin/sh
        a=10;
        until [[ $a -lt 0 ]];do
        echo $a;
        ((a--));
        done;
        结果:
        sh testuntil.sh
        10
        9
        8
        7
        6
        5
        4
        3
        2
        1
        0
    ————
        case选择语句使用(case/esac)
        语法结构
        case $arg in  
            pattern | sample) # arg in pattern or sample  
            ;;  
            pattern1) # arg in pattern1  
            ;;  
            *) #default  
            ;;  
        esac 
        说明:pattern1 是正则表达式,可以用下面字符:
                     *       任意字串
                     ?       任意字元
                     [abc]   a, b, 或c三字元其中之一
                     [a-n]   从a到n的任一字元
                     |       多重选择
          
        实例:
        #!/bin/sh 
        case $1 in
        start | begin)
            echo "start something"  
        ;;
        stop | end)
        echo "stop something"  
        ;;
        *)
        echo "Ignorant"  
        ;;
        esac
        运行结果:
        ======================
     
        testcase.sh start
        start something
    ————
        select语句使用方法(产生菜单选择)
     
        语法:select 变量name  in seq变量do    actiondone实例:#!/bin/sh select ch in "begin" "end" "exit"
        do
        case $ch in
        "begin")
        echo "start something" 
        ;;
        "end")
        echo "stop something" 
        ;;
        "exit")
        echo "exit" 
        break;
        ;;
        *)
        echo "Ignorant" 
        ;;
        esac
        done;运行结果:
        图片
        说明:select是循环选择,一般与case语句使用。
    ————————
    重定向
        标准输入            命令<文件(覆盖)  <<(追加)
        标准输出            命令>文件(覆盖)  >>(追加)
        标准错误输出     错误命令 2>文件(覆盖)  2>>(追加)
    例句
        ls -l > aa.txt  /**/
        vi bb.txt < aa.txt
    ————————
    正则表达式
          简单的说,正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,
          可以,让用户轻易达到查找、删除、替换某特定字符串的处理程序。
         正则表达式主要分为两类:基本正则表达式和扩展正则表达式。
         特殊符号   
            符号 含义 举例
            ^ 开始标记 "^abc"满足的例子abc、abcd
            ^ 非(在[]内) "[^abc]"满足的例子:ddd、mpd
            $ 结束标记 ”abc$”满足的例子abc、mmabc
            . 任意字符 "a.c"满足的例子abc、fapcc
            < 匹配单词开始 "<abc"满足的例子abc、abcd
            > 匹配单词结束 "abc>"满足的例子abc、pmrabc
            | "AAA|BBB"满足的例子AAA、BBBpp
        ^ 行首锚定符
        & 行尾锚定符
        grep ‘wang’ file    /*筛选文件名为'wang’的文件*/
        grep 'wang[12]' file     /*筛选出“wang1”,“wang2”*/
        grep 'wang[^2]' file     /*筛选出不包括2的所有文件名为“wang”的文件*/
        grep 'wang[1-5]' file     /*筛选出包含“1—5”的所有文件名为"wang"的文件*/
        grep '^a' file     /*筛选出以a开头的所有文件*/
        grep 'g$' file     /*筛选出以g结尾的所有文件*/
        grep 'a{2}' file     /*表示精确匹配2次*/
        grep 'a{2,5}' file     /*表示其前面的字符a最少出现2次,最多出现五次*/
        grep ’a{2,}' file   /*表示匹配其前面的字符a最少出现2次,最多无限*/
        grep 'wa*' file     /*匹配其前面的字符零到多次,例如 waaang,wngg*/
        grep 'w..g' file    /*匹配任意单个字符,一个  .  一个字符,例如love,line*/
        grep '[a-z]' file     /*指定范围内的任意单个字符,例如 actor,build*/
        grep ‘^[a-z]' file     /*筛选除指定字符外的其它任意字符*/
    ———————— 
    管道命令   |
        1)把前面的命令结果作为后面命令的输入数据
        2)后面的命令必须是管道命令(以文件为输入,可以处理文件内容)
        筛选 grep 'xx'文件  /*xx是文件名*/
        切行 cut -d'分隔符' -f 字段
        排序 sort -r(反向)
        合并行 uniq 计数 wc -l 行 -w 词
    例句
        ls -l | grep 'wang' | cut -f 3,5 | sort
     ————————
     awk命令
        awk '条件{动作}条件{动作}......'文件名
        awk '{print $1" " $3}' aa.txt
        awk '{print $1" " NR " " NF}' aa.txt     /*NR  行号    NF  字段号*/
        awk 'BEGIN{FS=" "}$3>10{print $}' aa.txt      /*FS  分隔符*/
        awk 'NR=1{} NR >= 2{}' aa.txt 
    例句(删除存储大小为0的文件)
        #!/bin/sh
        for filename in 'ls'
        do
        if test -d $filename;then 
        b=0
        else
        a= $(ls -l $filename | awk '{print$5}')
        if test $a -eq 0; then
        rm $filename
        fi
        fi
        done
     ————————
    Linux中字符比较的写法
        -eq    相等
        -ne    不等
        -lt     小于
        -le    小于等于
        -gt    大于
        -ge    大于等于
        -f xxx    文件存在
        -d xxx    目录存在
        -x xxx    文件可执行
        -n xxx    变量有数据
        -a    &&  逻辑与
        -o    ||  逻辑或
    ————————
    Linux第三天
    Linux服务器
    软件安装
        1、源码安装
            下载 wget http://www.xxx.com/xxx.tar.bz2
            解压 tar -jxvf xxx.tar.bz2
            编译和安装 make   make install
        2、yum安装
            yum info xxx  /*information  显示安装文件信息*/
            yum install xxx  /*install  安装文件*/
            yum remove xxx   /*remove  删除安装文件*/
            yum list xxx    /*list  显示安装文件列表*/
            yum search xxx    /*search  查找安装文件*/
     ————————
    网络命令和配置文件
        IP地址 ifconfig    /*查看网卡信息*/
            ifconfig etho 192.168.111.128 netmask 255.255.255.0
        防火墙 /etc/sysconfig/iptables
            -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
    ————————
    SSH
        安装服务端
            yum install openssh-server
        启动
            /etc/init.d/sshd start (stop or restart)
        连接
            yum install ssh
            ssh xxx.xxx.xxx.xxx    /*输入IP地址*/
        Windows平台
            下载安装putty(远程登录)
    ————————
    LAMP(Linux+Apache+MySQL+PHP)
        安装
            yun install httpd mysql mysql-server php php-mysql
        启动
            /etc/init.d/mysql start
            /etc init.d/httpd start    /*d代表服务端*/
        测试
            在/var/www/html/下创建phpinfo.php文件    /*创建php脚本文件*/
            在phpinfo.php文件中输入<?php phpinfo();?>
            用浏览器打开 http://xxx.xxx.xxx.xxx/phpinfo.php
    ————————
        1、安装
            yum install xxx
        2、查看IP地址 
            ifconfig
        3、设置防火墙端口
            /etc/sysconfig/iptables
        4、安装远程登录服务端
            yum install openssh-server
        5、启动/重启/关闭
            /etc/init.d/xxxd start/restart/stop(d  服务端,相当于server,ssh-server、mysql-server)
  • 相关阅读:
    JAVA 单例模式
    CodeForces Round #563 Div.2
    拓扑排序 JAVA
    初识 Dubbo
    CodeForces Round #567 Div.2
    Educational Codeforces Round 65 (Rated for Div. 2)
    最短路径问题
    C++使用fixed和precision控制小数和有效位数的输出以及setw()设置输出宽度
    poj3684(弹性碰撞模型)
    集合的整数表示
  • 原文地址:https://www.cnblogs.com/wwwwyc/p/6374940.html
Copyright © 2011-2022 走看看