Linux常用命令

0、打包压缩与解压、vim
    1.gzip命令
        -c 将压缩数据输出到标准输出上
        -d 解压缩
        -t 检验压缩文件的一致性
        -v 显示压缩比
        -r 目录下的文件也压缩
        -l 压缩比
        压缩
        gzip -v install.log 不保留原文件
        gzip -c install.log>install.log.gz保留原文件
        解压缩
        gzip -d install.log.gz 不保留原文件
        gunzip -c install.log.gz>install.log保留

    2.bzip2命令
        -c 将压缩数据输出到标准输出上
        -d 解压缩
        -k 保留原文件
        -z 压缩的参数
        -v 显示压缩比
        -r 目录下的文件也压缩
        -(1..9) 计算压缩比的参数,9最佳,1最快
        压缩
        bzip2 -z install.log 不保留原文件
        bzip2 -zk install.log 保留原文件
        解压缩
        bzip2 -d install.log.bz2 不保留原文件
        bzip2 -dk install.log.bz2 保留

    3.tar命令
        -c 建立打包文件
        -x 解打包或解压缩
        -t 查看打包文件的内容含那些文件
        -j 通过bzip2进行压缩/解压缩
        -z 通过gzip进行压缩/解压缩
        -v 在压缩/解压缩时将正在处理的文件名显示出来
        -f 后跟处理后文件的全名称(路径+文件名+后缀名)
        -C 在特定的目录下解压
        -p 压缩前备份(原本权限与属性)
        --exclude=FILE 压缩时不要讲哪些文件打包

        01-.tar格式
            解包:[*******]$ tar xvf FileName.tar
            打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
        02-.gz格式
            解压1:[*******]$ gunzip FileName.gz
            解压2:[*******]$ gzip -d FileName.gz
            压 缩:[*******]$ gzip FileName
        03-.tar.gz格式
            解压:[*******]$ tar zxvf FileName.tar.gz
            压缩:[*******]$ tar zcvf FileName.tar.gz DirName
        04-.bz2格式
            解压1:[*******]$ bzip2 -d FileName.bz2
            解压2:[*******]$ bunzip2 FileName.bz2
            压 缩: [*******]$ bzip2 -z FileName
        05-.tar.bz2格式
            解压:[*******]$ tar jxvf FileName.tar.bz2
            压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName
        06-.bz格式
            解压1:[*******]$ bzip2 -d FileName.bz
            解压2:[*******]$ bunzip2 FileName.bz
        07-.tar.bz格式
            解压:[*******]$ tar jxvf FileName.tar.bz
        08-.Z格式
            解压:[*******]$ uncompress FileName.Z
            压缩:[*******]$ compress FileName
        09-.tar.Z格式
            解压:[*******]$ tar Zxvf FileName.tar.Z
            压缩:[*******]$ tar Zcvf FileName.tar.Z DirName
        10-.tgz格式
            解压:[*******]$ tar zxvf FileName.tgz
        11-.tar.tgz格式
            解压:[*******]$ tar zxvf FileName.tar.tgz
            压缩:[*******]$ tar zcvf FileName.tar.tgz FileName
        12-.zip格式
            解压:[*******]$ unzip FileName.zip
            压缩:[*******]$ zip FileName.zip DirName
        13-.lha格式
            解压:[*******]$ lha -e FileName.lha
            压缩:[*******]$ lha -a FileName.lha FileName
        14-.rar格式
            解压:[*******]$ rar a FileName.rar
            压缩:[*******]$ rar e FileName.rar    
    4.vim命令
        1)Vim的三种模式
            一般模式
            编辑模式:按下i、I、o、O、a、A、r、R等任何一个字母后进入编辑模式
                该模式下可以输入文件内容,按下<Esc>返回一般模式
            命令模式:在一般模式当中,输入:/?三个字符中的任何一个按钮,就可以将光标移动到最下面那一行
        2)一般模式快捷键
            移动光标:
                [Ctrl]+[f]:屏幕向下移动一页        !!
                [Ctrl]+[b]:屏幕向上移动一页        !!
                0或[Home]:移动到此行最前面字符处    !!
                $或[End]:移到光标所在行的行尾    !!
                h或 光标左移一个字符。如果是20h,表示左移20个字符
                j或 光标下移一个字符 同上
                k或 光标上移一个字符 同上
                l或 光标右移一个字符 同上
                H 光标移到当前屏幕最上方行的第一个字符!!
                M光标移到当前屏幕中间行的第一个字符
                L光标移动到当前屏幕最下方行第一个字符!!
                G移到此文件最后一行                !!!
                nG移到第n行
                gg相当于1G,即移到第一行        !!!
                n[Enter]光标下移n行
            查找:
                /word向下查找单词“word”        !!
                ?word向上查找单词“word”    !!
                n表示重复前一个查找操作
                N与n相反(反向查找)
            替换:
                :s/word1/word2/g 在当前行将word1替换成word2        !!!
                :%s/word1/word2/g 在当前文件将word1替换成word2    !!!
                :n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2(n1、n2为数字)
                :1,$ s/word1/word2/g从第一行到最后一行查找word1替换成word2
                :%s/word1/word2/gc同上,在替换前confirm是否替换    !!!
            删除:
                x向后删除一个字符
                nx向后删除n个字符(n为数字)
                X向前删除一个字符
                dd删除光标所在行        !!!
                ndd删除光标所在行以下n行(n为数字,包含当前行在内)
                d1G删除光标所在行到第一行所有数据(包括所在的行)
                dG删除光标所在行到最后一行    !!
                d$删除光标所在处到同行最后一个字符    !!
                d0删除光标所在处到同行第一个字符。!
            复制:
                yy复制光标所在行        !!
                nyy复制光标所在向下n行(n为数字)
                y1G复制光标所在行到第一行所有数据
                yG复制光标所在行到最后一行所有数据
                y$复制光标所在处到同行最后一个字符
                y0复制光标所在处到同行第一个字符
                p将已复制的数据粘贴到光标所在下一行
                P将已复制的数据粘贴到光标所在上一行
                u复原前一个操作(类似于windows中的ctrl+z)!!!
        3)一般模式->编辑模式的转换
            i从光标所在处插入(!!!)
            I从所在行第一个非空白字符处插入(!)
            a从光标所在下一个字符处插入
            A从光标所在行最后一个字符处插入
            o在光标所在处下一行插入新的一行(!)
            O在光标所在处上一行插入新的一行
            r替换光标所在处字符一次
            R一直替换光标所在处文字直到按下Esc(!!!)
        4)命令模式快捷键
            :w [filename] 另存为filename
            :r [filename] 读取filename指定文件中的内容到光标所在的行
            :n1,n2 w [filename] 将n1到n2行另存为filename
            :! command 临时切换到命令行模式下执行command命令
            :wq 保存后离开
            :q! 不保存离开
            :set nu 显示行号
            :set nonu 取消显示行号

        
一、shell
    1.echo命令 变量读取
        echo $变量名  或  echo ${变量名}
        变量设置:
            变量名=值
        变量设置规则:
            1)变量与变量内容以一个等号“=”连接(name=value)
             2)等号两边不能直接接空格符;
             3)变量名称只能是英文字母、数字、下划线,但开头不能是数字;
             4)变量内容若有空格符可使用双引号或单引号将变量内容结合起来;
                |-双引号中的特殊字符保有原本的特性 
            5)可用转义字符“\”将特殊符号
            6)变量内容由其他命令提供,使用$(其他命令),如:version=$(uname)
                或 通过反引号 version=`uname`
            7)变量增加额外内容,如:version=$version-$(uname –p)
            8)取消变量的定义:unset 变量名            
    2.env命令 环境变量
        env|more:查看环境变量    
    3.数据重定向
        数据重定向就是将某个命令执行后应该要出现在屏幕上的数据, 给他传输到其他的地方,例如传输到文件或是其他命令
        标准输入(stdin):编号为0
        标准输出(stdout):编号为1
        标准错误输出(stderr):编号为2
            1>:以覆盖的方法,将正确的数据输出到文件;
            1>>:以累加的方法,将正确的数据输出到文件;
            2>:以覆盖的方法,将错误输出的数据输出到文件;
            2>>:以累加的方法,将错误输出的数据输出到文件;
        举例:将ls的输出重定向到ls.log当中去
            ll 1> ls.log
            cat ls.log
        命令执行判断
            $?
    4.|命令 管道命令
        利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
        连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推
    5.find命令 搜索命令
        格式:find [path...] [option]
        path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
        options:
            -print:将匹配的文件输出
            -size:匹配文件大小        find ./ -size 0 显示大小为0的文件
            -name:按文件名查找
            -perm:按文件权限查找    find . -perm 755 -print
            -user:按文件所有者查找    find ~ -user root -print
            -mtime -n/+n:按修改时间查找,-n修改时间距现在n天以内,+n修改时间n天前
            -group:按所属组查找
            -nogroup:按没有所属组查找
            -type:按类型查找
                b:块设备的文件        find /etc -type b -print
                d:目录
                c:字符设备的文件
                p:管道文件
                l:链接文件
                f:普通文件
            -size n:[c] 查找长度为n块的文件,带c表示长度以字节为单位
                find . -size +100c -print在当前目录下查找长度大于100字节的文件
    6.sed命令 非交互式文本处理工具
        默认情况下,所有的输出行都被打印到屏幕上
        sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:
            sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间)
            然后处理临时缓冲区中的行,完成后把该行发送到屏幕上
            sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示
            处理完输入文件的最后一行后,sed便结束运行
            sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件
        sed [option] “[action]” [filename]
        option:
            h或—help:显示帮助
            n:仅显示script处理后的结果
            V或—version:显示版本信息
            e:允许对输入数据应用多条sed命令进行编辑。
            f:直接将sed的动作写在一个文件内,-f filename则可以运行,filename内的 sed动作
        action:
            s:字符串替换
            i:插入insert
            d:删除delete
            a:追加append
            c:替换
            p:打印指定的输出行
            /g:每行
            例:
            sed "s/teduhadoop/hadoop/g" demo.txt
                把demo.txt中所有行中的"teduhadoop"替换为"hadoop"并显示出来,原文不变
            sed "s/teduhadoop/hadoop/g" demo.txt>demo2.txt 替换后的写到demo2.txt中
            sed "3s/teduhadoop/hadoop/g" demo.txt只替换第3行
            sed "1,2s/teduhadoop/hadoop/g" demo.txt替换第1到第2行的文本
            sed "s/l/L/2" demo.txt 替换每行上的第二个l为L
            sed "s/l/L/2g" demo.txt 替换每行上的第二个及以后的l为L
            多个匹配
                sed 's/l/L/1;s/o/O/3g' demo.txt  或
                sed -e 's/l/L/1' -e 's/o/O/3g' demo.txt
            sed -i "s/teduhadoop/hadoop/g" demo.txt
                   把demo.txt中所有行中的"teduhadoop"修改为"hadoop"不显示出来,原文改变
            sed "1 i aaa" demo.txt  在第一行前插入一行aaa输出,原文不变
            sed "1 a bbb" demo.txt  在第一行后追加一行bbb输出,原文不变
            sed "/hdfs/d" demo.txt  删除可以匹配"hdfs"的行输出,原文不变        
    7.grep命令 匹配
        grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)
        一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
        grep [OPTIONS] pattern [FILE]
        -n:同时显示匹配行上下的n行  如:grep -2 pattern filename同时显示匹配行的上下2行
        -b,--byte-offset      打印匹配行前面打印该行所在的块号码
        -c,--count             只打印匹配的行数,不显示匹配的内容。
        -f File,--file=File 从文件中提取模板,空文件中包含0个模板,所以什么都不匹配
        -h,--no-filename     当搜索多个文件时,不显示匹配文件名前缀
        -i,--ignore-case      忽略大小写差别
        -q,--quiet            取消显示,只返回退出状态,0则表示找到了匹配的行
        -n,--line-number     在匹配的行前面打印行号
        -v,--revert-match     反检索,只显示不匹配的行
    8.tail命令
        tail [-F] [-c Number|-n Number|-m Number|-b Number|-k Number] [File]
        -F 监视File文件增长
        -c Number 从number字节位置读取指定文件(不包含中文)
        -n Number          行
        -m Number 从number字节位置读取指定文件(包含中文)
        -b Number 从Number表示的512字节块位置读取指定文件
        -k Number 从Number表示的1KB块位置读取指定文件
        当涉及到number,如果不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算    
    9.sort命令 排序
        -n 按数值排序        sort -n filename
        -u 不出现重复的行
        -t 指定分段的符号    
        -k 指定的第几段    sort -t "." -k 4 demo
        -r 逆向排序
    10.cut命令 剪切数据
        -b 字节            cut -b 2/1-3/4,7/-5/5- demo
        -c 字符            cut -c 2/1-3/4,7/-5/5- demo
        -f 提取第几列
        -d 按指定分隔符分割列    cut -d . -f 2 demo
    11.history命令 历史
        history 显示历史命令
        history 5 显示执行过的上5条命令
        history -c 清空历史命令
二.shell script脚本
    1.执行脚本有以下三种方式:
        1、直接执行(shell.sh文件必须具备可读与可执行 (rx)的权限):
            绝对路径:运行/home/shell.sh 来执行指令
            相对路径:cd到/home/ ,使用/shell.sh执行
        2、source 执行 source shell.sh
        3、bash执行: 
            bash shell.sh
            sh shell.sh 
        修改权限: chmod 755 shell.sh
    2.数值运算:
        简单的加减乘除 格式:$((运算内容))
            #!/bin/bash
            read -p "please input first number:" num1
            read -p "please input second number:" num2
            echo "$num1 * $num2 = $(($num1*$num2))"
            exit 0
    3.test判断命令
        1)判断文件类型     案例:test • -e • demo.txt 
            -e 该文件是否存在!!!
            -f 该文件是否存在且为file类型!!!
            -d 该文件是否存在且为directory类型!!!
            
            -b 该文件是否存在且为一个 block device装置?
            -c 该文件是否存在且为一个 character device 装置?
            -S 该文件是否存在且为一个 Socket 文件? 
            -p 该文件是否存在且为一个 FIFO (pipe) 文件?
            -L 该文件是否存在且为一个链接文件?
        2)判断文件权限
            -r 检查该文件是否存在且具有可读的权限?!!
            -w 检查该文件是否存在且具有可写的权限?!!
            -x 检查该文件是否存在且具有可执行的权限?!!
            -s 检查该文件是否存在且为非空文件?!!
            -u 检查该文件名是否存在且具有SUID的属性?
            -g 检查该文件名是否存在且具有SGID的属性? 
        3)判断字符串
            test -z string 判断为空字符串,则为true
            test -n string 判断为空,则为false
            test str1 = str2 或==,若等则返回true
            test str1 != str2
        4)两个文件比较        test file1 -nt file2
            -nt 判断file1 是否比 file2 新
            -ot 判断file1 是否比 file2 旧
            -ef 判断两个文件是否为同一个文件
        5)判断符号[](基本跟test相同) !!!
            [  ] 脚本范例 (注意[]和脚本之间保留空格)
            ==和!=用于比较字符串;
            整数比较只能使用-eq,-gt,-ge,-lt,-le这种形式
            [ ]中的逻辑与和逻辑或使用-a 和-o 表示
        6)shell script默认参数
             /path/to/scriptname arg1 arg2 arg3 arg4
                    $0               $1   $2   $3   $4 
            – $0:代表脚本程序本身
            – $1,$2,…:代表后面第一个参数,第二个参数,等等
            – $#:代表后接的参数个数,以上边为例,这里显示为4;
            – $@:代表 "$1" "$2" "$3" "$4",每个变量是独立
            的(用双引号括起来);
            – $*:代表 "$1 $2 $3 $4" 
            shift 偏移一位
            shift n 偏移n位
    4.条件判断语句
        1)if语句
            if [ 条件判断 ]
            then
            条件成立执行,命令
            fi
            if [ 条件判断 ];then
            条件成立执行,命令;
            fi 
            将if反过来写,就成为fi 结束if语句
            && 代表 and || 代表 or

            if [ 条件1 ];then
            条件1成立执行,指令集1
            else
            条件1不成执行指令集2;
            fi

            if [ 条件1 ];then
            条件1成立,执行指令集1
            elif [ 条件2 ];then
            条件2成立,执行指令集2
            else
            条件都不成立,执行指令集3
            fi 
        2)case语句
            case $变量名称 in "值1")
                程序段1
            ;;
            "值2")
                程序段2
            ;;
            *)
                exit 1
            ;;
            esac

            函数格式:
                function fname(){
                命令
                }
            函数例子:
                #!/bin/bash
                function print(){
                    echo "you input:$1"
                }
                case $1 in "one")
                    print "one a"    #函数print的输出值
                    exit 0
                ;;
                [6,8])
                    print "qita"
                ;;
                *)
                    print "please input one/two"
                    exit 1
                ;;
                esac
        3)shell script脚本检查
            sh [-nvx] scripts.sh 
            选项与参数: 
            -n :不执行script,仅查询语法的问题; 
            -v :在执行script前,先将scripts的内容输出到屏幕上; 
            -x :将使用到的script内容显示到屏幕上,这是很有用的参数; !!!
    4.循环语句
        1)while循环语句
            while [ condition ];do
            命令
            done
            或者
            while [ condition ]
            do
            命令
            done 
        2)until循环语句
            until [ condition ];do
            命令
            done
            或者
            until [ condition ]
            do
            命令
            done
        3)for循环语句
            for 变量名 in 变量取值列表
            do
            命令
            done

            seq –s 分隔符 起始 步长 终点
            [root@tedu example]#seq -s " " 5 -1 1
            5 4 3 2 1
        4)课件分发
            vim send.sh
            #!/bin/bash
            for ip in `cat /root/ips.txt`
            do
            scp /root/epel.rpm root@${ip}:/root
            done
            修改课件权限:chmod 777 send.sh
            文件ips.txt内容:
                192.168.80.10
                192.168.80.90
            在分发课件之前,要对ips.txt中的主机进行免密登录
                #生成公钥-私钥对
                    ssh-keygen    
                #将公钥拷贝到服务器端
                    ssh-copy-id -i /root/.ssh/id_rsa.pub  root@192.168.80.10
                #远程登录
                    ssh root@192.168.80.10
        5)定时任务
            分  小时  日    月  星期  用户名   命令
            10 0-23 1-31 1-12 0-6  root  command (取值范围,0表示周日一般
            一行对应一个任务)
            记住几个特殊符号的含义:
            "*"  代表取值范围内的数字,
            "/"  代表"每",
            "-"  代表从某个数字到某个数字,
            ","  分开几个离散的数字
            */1 * * * * root /home/jinxf/day05/sh/send.sh
            每分钟以root用户执行/home/jinxf/day05/sh/send.sh
            a)新增调度任务
                [root@localhost ssh]在命令行输入: crontab -e 然后添加相应的任务或用下述方法
                [root@localhost ssh]# vim /etc/crontab 
                SHELL=/bin/bash
                PATH=/sbin:/bin:/usr/sbin:/usr/bin
                MAILTO=root
                HOME=/

                # For details see man 4 crontabs

                # Example of job definition:
                # .---------------- minute (0 - 59)
                # |  .------------- hour (0 - 23)
                # |  |  .---------- day of month (1 - 31)
                # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
                # |  |  |  |  .---- day of week(0-6)(Sunday=0)sun,mon,tue,wed,thu,fri,sat
                # |  |  |  |  |
                # *  *  *  *  * user-name  command to be executed
                 */1 *  *  *  *   root     /home/day05/sh1/send.sh
                 */1 *  *  *  *  root run-parts /etc/cron.daily  [注:run-parts参数表示,执行后面目录中的所有可执行文件]
            b)启动crontab服务
                service crond start
            c)查看crontab是否已经运行
                service crond status 或 ps -ef|grep crond
        6)crontab
            crontab [-u username]    //省略用户表表示操作当前用户的crontab
            -e      (编辑工作表)
            -l      (列出工作表里的命令)
            -r      (删除工作作)
            实例:
                实例1:每1分钟执行一次myCommand
                * * * * * myCommand
                实例2:每小时的第3和第15分钟执行
                3,15 * * * * myCommand
                实例3:在上午8点到11点的第3和第15分钟执行
                3,15 8-11 * * * myCommand
                实例4:每隔两天的上午8点到11点的第3和第15分钟执行
                3,15 8-11 */2  *  * myCommand
                实例5:每周一上午8点到11点的第3和第15分钟执行
                3,15 8-11 * * 1 myCommand
                实例6:每晚的21:30重启smb
                30 21 * * * /etc/init.d/smb restart
                实例7:每月1、10、22日的4 : 45重启smb
                45 4 1,10,22 * * /etc/init.d/smb restart
                实例8:每周六、周日的1 : 10重启smb
                10 1 * * 6,0 /etc/init.d/smb restart
                实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
                0,30 18-23 * * * /etc/init.d/smb restart
                实例10:每星期六的晚上11 : 00 pm重启smb
                0 23 * * 6 /etc/init.d/smb restart
                实例11:每一小时重启smb
                * */1 * * * /etc/init.d/smb restart
                实例12:晚上11点到早上7点之间,每隔一小时重启smb
                * 23-7/1 * * * /etc/init.d/smb restart
三、rpm安装软件
    1.rpm安装
        rpm -ivh package
        -i:install的意思
        -v:查看更细部的安装画面
        -h:显示安装进度
        安装一个rpm
            rpm -ivh package
        安装多个rpm    
            rpm -ivh package1 package2 package3
        安装网上某个位置rpm包
            rpm -ivh http://website.name/path/pkgname.rpm
    2.rz命令
        rz:从本机到虚拟机;
        sz:从linux虚拟机到本机
        安装lrzsz
            首先使用可视化界面用root登录进入,浏览器访问
            http://rpmfind.net/linux/rpm2html/search.php?query=lrzsz
            下载lrzsz-0.12.21-15.x86_64.rpm
    3.rpm升级与更新
        rpm -Uvh <package_name>
            -Uvh后面接的软件如果没有安装过, 系统会直接安装,若后面接的软件安装过但版本较旧,则更新至新版
        rpm -Fvh <pacakge_name>
            -Fvh如果后面接的软件并未安装到Linux系统上,则该软件不会被安装,只有已安装的软件才会被升级
    4.rpm查询
        -q :仅查询,后面接的软件名称是否有安装
        -qa :列出所有的,已经安装在本机Linux系统上面的所有软件名称 !!!
        -qi :列出该软件的详细信息,包含开发商、版本和说明等
        -ql :列出该软件所有的文件与目录所在完整文件名
        -qc :列出该软件的所有配置文件
        -qd :列出该软件的所有说明文件
        -qR :列出和该软件有关的相依软件所含的文件
        -qf :由后面接的文件名,找出该文件属于哪一个已安装的软件
        查询某个 RPM 文件内含有的信息:
        -qp[icdlR]:
        注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出 某个 RPM
        文件内的信息,而非已安装的软件信息
        例:
            rpm -qa |grep jdk    查找是否安装jdk
            rpm -qa |head -n 4    查找所有系统已经安装的包,并只查看前3个
            rpm -ql lrzsz    查询lrzsz所包含的文件及目录
四、yum安装软件
    1.Epel是什么?
        它是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
        我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件
    2.安装epel
        在CentOS 上安装EPEL,要想安装EPEL,我们先要下载EPEL的rpm安装包。CentOS/RHEL下的6.x和5.x版本下载页面如下:noarch是支持32位和64位
        http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
        http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
        根据你的CentOS 版本来选择正确的下载地址。请注意EPEL 的安装包是独立编译的,所以它可以安装在32位和64位系统中。
        1)查看有没有epel
            [root@bogon ~]# cd /etc/yum.repos.d/
            [root@bogon yum.repos.d]# ll
        2)确认你的CentOS 的版本
            [root@tedu yum.repos.d]# cat /etc/redhat-release
            CentOS release 6.5 (Final) 
        3)下载EPEL 的rpm 安装包
            [root@tedu yum.repos.d]# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
        4)通过以下命令安装EPEL 软件包
            [root@tedu yum.repos.d]# rpm -ivh epel-release-6-8.noarch.rpm
            非root账户登录可以使用:sudo rpm -ivh epel-release-6-8.noarch.rpm
        5)安装好EPEL 源后,用yum 命令来检查是否添加到源列表
            [root@tedu yum.repos.d]# yum repolist
            出现下面表示成功
                Loaded plugins: fastestmirror, refresh-packagekit, security
                Loading mirror speeds from cached hostfile
                epel/metalink                                            | 5.0 kB     00:00     
                 * base: mirrors.tuna.tsinghua.edu.cn
                 * epel: mirrors.tuna.tsinghua.edu.cn
                 * extras: mirrors.yun-idc.com
                 * updates: mirrors.yun-idc.com
                epel                                                     | 4.3 kB     00:00     
                epel/primary_db                                          | 5.8 MB     00:09     
                repo id       repo name                    status
                base         CentOS-6 - Base                6,696
                epel         Extra Packages for Enterprise Linux 6 - x86_64   12,131
                extras        CentOS-6 - Extras                62
                updates       CentOS-6 - Updates             677
                repolist: 19,566
        6)现在来试一下从EPEL 获取软件包
            [root@tedu yum.repos.d]# yum install htop
            [root@tedu yum.repos.d]# rpm -qa |grep htop
            htop-1.0.3-1.el6.x86_64
            [root@tedu yum.repos.d]#yum list | grep mysql
            mysql-libs.x86_64 5.1.71-1.el6   @anaconda-CentOS-201311272149.x86_64/6.5
            apr-util-mysql.x86_64                       1.3.9-3.el6_0.1              base   
            asterisk-mysql.x86_64                       1.8.32.3-2.el6               epel   
            bacula-director-mysql.x86_64                5.0.0-13.el6                 base   
            bacula-storage-mysql.x86_64                 5.0.0-13.el6                 base   
            collectd-mysql.x86_64                       4.10.9-3.el6                 epel   
            dmlite-plugins-mysql.x86_64                 0.7.6-3.el6                  epel   
            dovecot-mysql.x86_64                        1:2.0.9-22.el6               base   
            dpm-copy-server-mysql.x86_64                1.8.11-1.el6                 epel   
            dpm-name-server-mysql.x86_64                1.8.11-1.el6                 epel   
            dpm-server-mysql.x86_64                     1.8.11-1.el6                 epel   
            dpm-srm-server-mysql.x86_64                 1.8.11-1.el6                 epel 
            其中base、epel列出来此软件包的源。
    3.yum查询参数
        search:查询某个软件名称或者是描述的关键字
        list:列出目前yum所管理的所有的软件名称与版本,有点类似 rpm -qa
        info:同上,格式不太一样,不过有点类似 rpm -qai 的执行结果
    4.yum安装/升级/卸载软件
        yum [install|update|remove] 软件名
            install:后面接要安装的软件
            update:后面接要升级的软件,若要整个系统都升级,就直接update即可
            remove:删除某个软件时,依赖于该软件并已经安装到系统中的 其它软件或者包,会被一并删除(rpm方式删除某个包时,如果依赖于该包的其它包之前也被安装到系统中,删除不会成功,需要先手动删除那些包. )
    5.yum进阶
        5.1.yum客户端运行机制
            1)客户端每次使用yum调用 install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的文件,这些配置文件指定了yum服务器的地址。
            2)yum会定期去“更新”yum服务器上的rpm “清单” ,然后把“清单”下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum/$basearch/$releasever下、即/var/cache/yum/x86_64/6),每次调用yum安装包的时候都会去这个cache目录下去找“清单”,根据“清单”里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,如果rpm包的cache不存在,就去yum服务器下载rpm包安装。
        5.2.yum repo配置文件信息
            [root@localhost soft]# cd /etc/yum.repos.d
            [root@tedu yum.repos.d]# cat CentOS-Base.repo
            [base]
            name=CentOS-$releasever - Base
            mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
            #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
            gpgcheck=1
            gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
            其中:
            [base]:代表容器的名字,中括号是必须带的,里面名字可以自定义,但不能有两个相同的名字,否则yum找不到相关的软件列表
            name:只是描述容器而容器可以使用的镜像站点,如不使用则使用已
            mirrorlist: “#”注释掉
            baseurl:容器的固定地址
            gpgcheck:gpg验证是否开启, 1是开启,0是不开启;“开启”会让yum检查每个下载的RPM的GnuPG签名。这么做是因为你需要适当的GnuPG key注册到您的RPM数据库。可以防止被欺骗,如:非法入侵发行版网站,木马导入软件包,使不知情用户下载
            gpgkey:数字证书公钥文件所在位置
        5.3.如何让yum支持hadoop分布式软件安装?
            1、查看当前系统中yum支持的所有软件包中是否存在hadoop
            [root@tedu yum.repos.d]# yum list|grep hadoop #发现没有
            2、如果想要当前系统的yum支持hadoop软件包,需要本地/etc/yum.repos.d下创建
            cloudera-cdh5.repo文件,保存hadoop对应的repo配置,而具体的配置信息可使用:
            http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
            3、再次查看
            [root@tedu yum.repos.d]# yum list|grep hadoop #发现显示很多hadoop相关的包
            注: http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5/RPMS/
            noarch/ # 对系统没有要求
            x86_64/ #64位操作系统
            点击进入x86_64/可以看到很多与hadoop相关的rpm包
        5.4. yum服务器端
            所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式 都可以。yum服务器有一个最重要的环节就是整理出每个rpm 包的基本信息,包括rpm包对应的版本号,conf文件,binary 信息,以及很关键的依赖信息。
            在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清 单",这张"清单"就是描述每个rpm包的spec文件中信息。
        5.5.创建本地yum源
            1.检查本机是否有web服务器,如没有则安装
            [root@tedu ~]# rpm -qa |grep httpd
            2.创建本地web服务:yum •install •httpd
            3.安装yum自带工具:yum •install •yum-utils createrepo
            4.在/var/www/html/ 下,执行 reposync -r cloudera-cdh5
            5.通过http://ip:port/项目名来访问本地yum源 ???
            6.最后修改/etc/yum.repos.d/xxx.repo 文件中的 baseurl,换成 本地地址
五、任务管理
    1.把任务放到后台执行
        直接将命令放到后台执行 & 如:cp file1 file2 &
        通过 Ctr+z将正在执行的任务放到后台
    2.查看后台任务
        jobs        显示全部后台进程(不含PID)
        jobs -l        显示全部后台进程(含PID)
        jobs –r        仅列出正在后台 run 的任务        
        jobs -s        仅列出正在后台暂停 (stop) 的任务
    3.将后台任务拿到前台执行:fg(foreground)
        fg [%]jobnumber
            jobnumber为任务号码(数字);%可有可无
            fg 1 将任务号为1的进程调到前台执行
    4.让任务在后台中变成执行状态: bg
        bg 2
    5.终止job
        kill -9 pid
    6.脱机及注销后任务执行
        nohup 可以让你在脱机或注销后(比如exit退出当前shell),还能够让工作继续进行
        nohup [命令与参数] 在当前终端前台执行
        nohup [命令与参数] & 在后台执行
        nohup tail -f test &
六、系统资源监控
    free :观察内存(memory)使用情况
    uname:查阅系统与核心相关信息
    uptime:观察系统启动时间与工作负载
    netstat :网络监控
    vmstat :侦测系统资源变化, CPU/内存/磁盘输入输出状态
    1.free :观察内存使用情况
        [root@tedu ~]# free [-b|-k|-m|-g] [-t]
        选项与参数:
        -b :直接输入free时,显示的单位是bytes,我们可以使用b(bytes), m(Mbytes),k(Kbytes),及g(Gbytes) 来定义显示单位
        -t :在输出的最终结果时,显示物理内存与 swap 的总量
        [root@tedu ~]# free
              total   used   free shared buffers cached
        Mem: 1012352 318528 693824  0     23592   113208
        -/+ buffers/cache: 181728 830624
        Swap: 2031608 0 2031608
        Mem一行显示的是物理内存的量
        Swap,虚拟内存的量
        total是总量,used是已被使用的量,free则是剩余可用的量
        shared,共享内存
        buffers,将写磁盘的内容
        cached,已写磁盘或者已从磁盘读出的内容
    2.uname:查阅系统与核心相关信息
        uname [-asrmpi]
        选项与参数:
        -a :所有系统相关的信息,包括以下的数据都会被列出来;
        -s :系统内核名称
        -r :内核版本
        -m :本系统的硬件名称,例如 i686或x86_64 等;
        -p :CPU 的类型,与 -m 类似,是显示的是CPU的类型;
        -i :硬件的平台(ix86);
    3.uptime:观察系统启动时间与工作负载
        [root@tedu ~]# uptime
        08:05:08 up 3:10, 2 users, load average: 0.00, 0.00, 0.00
        显示目前系统当前时间、已经开机多长的时间,用户数、以及 1,5,15分钟的平均负载
    4.netstat:网络(network)监控(netstat -[atunlp])
        选项与参数:
        -a :将目前系统上所有的已经连接、监听、Socket数据都列出来
        -t :列出tcp网络包的信息
        -u :列出udp网络包的信息
        -n :以端口(port number)方式来显示(不以程序的服务名称)
        -l :列出目前正在监听(listen)的服务;
        -p :列出该网络服务的进程id(PID)
        netstat常用的命令
        [root@tedu ~]# netstat –atp #所有tcp协议的链接,并输出pid号
        [root@tedu ~]# netstat –antp
        [root@tedu ~]# netstat -lntp
    5.vmstat:侦测系统资源变化
        动态的了解一下系统资源的运作,CPU/内存/磁盘输入输出状态
        选项与参数:
        -a :使用 inactive/active(活跃与否) 取代 buffer/cache 的内存输出信息;
        -f :开机到目前为止,系统复制 (fork) 的进程数;
        -s :将一些事件 (开机至目前为止) 导致的内存变化情况列表说明;
        -S :后面可以接单位,让显示的数据有单位。例如 K/M 取代bytes的容量;
        -d :列出磁盘的读写总量统计表
        -p :后面列出磁盘分区,可显示该磁盘分区的读写总量统计
        统计目前主机CPU状态,每秒一次,共计四次
        [ro@tedu ~]# vmstat 1 4
七、进程
    1.如何查看进程
        1)进程查看命令
            ps(process status):将某个时间点的程序运作情况截取下来
            选项和参数
            a:和输入终端(terminal)关联的所有process,通常与x一起使用,出完整息
            x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息
            u :有效使用者 (effective user) 相关的 process
            常用组合
            ps aux 观察系统所有的程序数据 (常用) !!!
            ps -lA 也是能够观察所有系统的数据!
            ps axjf 连同部分程序树状态。        !!
        2)top:动态观察进程的变化
            ps是截取一个时间点的进程状态,而top则可以持续观察进程运行的状态
            选项与参数:
            -d :后面可以接秒数,就是整个程序画面更新的秒数。默认5秒;
            -b :以批次的方式执行 top ,还有更多的参数可以使用,通常会搭配数据流
            重导向来将批次的结果输出成为档案;
            -n :与 -b 搭配,意义是需要进行几次 top 的输出结果;
            -p :指定某些个 PID 来进行观察监测而已;
            #top –d 2
            #top –b
            #top –b –n 2
            #top –b –n 5 > a.log
            #cat a.log
            在 top 执行过程当中可以使用的按键指令:
                ? :显示在 top 当中可以输入的按键指令
                P :以CPU的使用资源排序显示
                M :以Memory的使用资源排序显示
                N :以PID来排序
                T :由该Process使用的CPU时间累积 (TIME+) 排序
                k :给予某个PID后kill该进程
                r :给予某个PID重新制订一个nice值
                q :离开top软件的按键 。
                #top –d 1
        3) pstree查看进程树
            选项与参数:
            -A :各程序树之间的连接以 ASCII 字符来连接;
            -U :各程序树之间的连接以万国码的字符来连接。在某些终端接口下 可能会有
            乱码;
            -p :并同时列出每个 process 的 PID;
            -u :并同时列出每个 process 的所属账号名称。
             系统进程树同时显示PID与user(root身份来执行,属于root的程序不会显示)
            [root@tedu ~]# pstree –Aup #(演示)
    2.进程管理
        Kill发送信号(并不只是杀进程)
        –选项与参数:
        -l :这个是 L 的小写,列出目前 kill 能够使用的信号(signal)有哪些? signal :向进程发送的信号,指示其进行不同操作。用man7signal可知:
        -15:以正常的程序方式终止一个进程!!!;
        -9 :立刻强制终止一个进程!!!;
        -2 :代表由键盘输入 [ctrl]-c 同样的动作;
        -1 :对于sshd这样的守护进程,重新读取一次参数的配置文件 (类似 reload),如果进程为非守护进程,默认为终止进程;
八、用户、用户组管理
    1.添加用户
        useradd [选项] 用户名
        选项:
        -p 指定用户的密码
        -c comment 指定一段注释性描述
        -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
        -g 用户组 指定用户所属的用户组
        -G 用户组,用户组 指定用户所属的附加组
        -s Shell文件 指定用户的登录Shell
        -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
        创建用户:useradd tom
        查看用户信息:id tom
            uid=502(tom) gid=502(tom) groups=502(tom)
        创建用户,指定其UID为800: useradd -u 800 jerry
        添加用户lucy,并设置他的个人主目录:useradd –d /usr/lucy -m lucy
        创建用户gm,指定他属于主用户组“jerry”,附加组“adm、root”,登录使用的shell是/bin/sh
            useradd -s /bin/sh -g jerry -G adm,root gm
        创建用户(伪用户),没有可登陆的shell:useradd -s /sbin/nologin alice
    2.修改用户
        usermod [选项] 用户名
        常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
        另外,这个选项指定一个新的账号,即将原来的用户名改为新的用户名
        将用户gm的登录shell修改为bash,主目录改为/home/z,用户组改为root
            usermod -s /bin/bash -d /home/z -g root gm
    3.用户密码的管理
        passwd [选项] 用户名
        可使用的选项:
        -l(lock) 锁定口令,即禁用账号
         -u(unlock) 口令解锁
        -d(HOME_DIR) 使账号无口令(删除密码)
        -f 强迫用户下次登录时修改口令
        如果默认无用户名,则修改当前用户的口令
        修改密码
            #passwd ->修改自己的密码(普通用户修改比较麻烦)
            #passwd tom->修改tom的密码(管理员才可以修改其他人的密码)
    4.切换用户
        su 目标用户   管理员切用户不需要密码,用户切管理员需要密码
    5.删除用户
        userdel 用户名 删除指定的用户
        userdel -r 用户名 在删除指定用户的同时删除他的home目录(工作中不建议使用,一个用户离职后,用户可以删掉,但是他的工作文件很可能还有用)
    6.用户组添加
        groupadd [选项] 用户组
        可以使用的选项有:
        -g GID 指定新用户组的组标识号(GID)。
        -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
        添加用户组emp
        #groupadd emp
        添加用户组market,并指定标识号为8000
        #groupadd –g 8000 market
        将用户添加到附加组
        #usermod –aG market tom (a:append G:附加组)
    7.用户组删除
        groupdel group1
        如果删除的用户组,已经被用户追加为附件组,对应的所有用户的该附件组会被撤销掉。
        如果被删除的用户组,已经被用户指定为主组,则该用户组无法被删除
    8.用户组修改
        groupmod [选项] 用户组
        常用的选项有:
        -g GID 为用户组指定新的组标识号。
        -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
        -n新用户组 将用户组的名字改为新名字
    ssh 10.170.130.179
    ssh root@10.170.130.179
    ssh jianlin@10.170.130.179
九、网络
    1.网络配置
        如何修改网卡eth0
        vim /etc/sysconfig/network-scripts/ifcfg-eth0
        service network restart
    2.网络操作
        1)通过主机名查看IP: host www.tedu.cn
        2)将本地的demo目录拷贝到服务器IP的/root目录下
            scp -r /home/demo root@服务器IP:/root 
        3)远程登录:ssh 用户名@服务器IP
    3.SSH远程免密登录
        先说RSA
            非对称加密算法,秘钥对分为公钥、私钥对
            公钥加密的内容,只有拥有私钥者才可解密
        免密码操作
            具体实现方法,客户端执行
            1)生成公钥/私钥对:
                ssh-keygen
            2)将公钥拷贝到服务器端:
                ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<server>
    4.网络下载
        1)wget命令
            用于从网络上下载资源,没有指定目录,下载资源默认存储到当前目录。
            wget [参数] [URL地址]
            –支持断点下载功能
            –同时支持FTP和HTTP下载方式
            –支持代理服务器
            使用wget下载单个文件:
                wget http://www.tedu.cn    
            使用wget -O下载并以不同的文件名保存
                wget -O newname.new http://www.tedu.cn
            使用wget --limit-rate限速下载(单位,byte/秒)
                wget --limit-rate=300k http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
            使用wget -c断点续传
                wget -c http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
            使用wget -b后台下载
                wget -b http://mirrors.hust.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
                wget http://mirrors.hust.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
            使用wget -i下载多个文件
                wget -i urlfile.txt
                urlfile.txt内容为:
                    http://www.tedu.cn
                    http://big.tedu.cn/index.html


学习命令:
    xargs

find /home/mj/work -mtime -1

1.读文件最后100行
    tail -n 100 filename
2.查看文件大小
    ls -lht  查看所有
    ls -lh 1.txt
3.Linux下目录复制:
    本机->远程服务器:scp -r /home/code/Egg root@192.168.0.1:/home/web
    远程服务器->本机:scp -r root@192.168.0.1:/home/web /home/code/Egg
4.Linux下压缩文件夹
    unzip -r mydir.zip ./mydir
5.关闭防火墙的方法为:
    永久性生效
        开启:chkconfig iptables on
        关闭:chkconfig iptables off
    即时生效,重启后失效
        开启:service iptables start
        关闭:service iptables stop
    systemctl start firewalld.service(开启防火墙)
    systemctl stop firewalld.service(关闭防火墙)
    systemctl disable firewalld.service(禁止firewall开机启动)
    service firewalld restart(重启防火墙)
    firewall-cmd --state(查看防火墙状态)
    firewall-cmd --zone=public --add-port=4400-4600/udp --permanen(指定端口范围为4400-4600通过防火墙)
    firewall-cmd --add-port=1024/tcp --permanent(指定端口1024通过防火墙)
    firewall-cmd --zone=public --add-port=8080/udp --permanen(指定端口为8080通过防火墙)
    firewall-cmd --zone=public --remove-port=80/tcp --permanent(关闭指定端口)
    firewall-cmd --zone=public --list-ports(查看通过的端口)
    查看防火墙状态 :firewall-cmd --state

    firewall常用命令如下:
    常用命令介绍
    firewall-cmd --state ##查看防火墙状态,是否是running
    firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
    firewall-cmd --get-zones ##列出支持的zone
    firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
    firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
    firewall-cmd --add-service=ftp ##临时开放ftp服务
    firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
    firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
    firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
    iptables -L -n ##查看规则,这个命令是和iptables的相同的
    man firewall-cmd ##查看帮助
6.VmWare虚拟机中网卡更改为eth0的方法
    root登录,cp /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak
    vi /etc/udev/rules.d/70-persistent-net.rules,删除eth0有关内容,修改eth1为eth0,记录下这个新eth0的mac地址
    vi /etc/sysconfig/network-scripts/ifcfg-eth0,修改其中的mac地址为上步中记录的地址
    重启,检查配置
7、远程连接时,防火墙启用端口号 
    /sbin/iptables -I INPUT -p tcp--dport 3306 -j ACCEPT
    /etc/rc.d/init.d/iptables save
    
8、检查开启远程访问的端口
    netstat –nat
统计某文件夹下文件的个数 
ls -l |grep "^-"|wc -l

9、挂载光盘、软盘或U盘
    挂载光盘:mount -t is09660 /dev/cdrom /mnt/cdrom  #该命令将光盘挂载到/mnt/cdrom目录,使用“ls /mnt/cdrom”命令即可显示光盘中数据和文件。
      卸载光盘:umount /mnt/cdrom
    显示光盘中数据和文件:ls /mnt/cdrom
    挂载镜像iso文件:mount -o loop /tmp/linux.iso  /mnt/linux   或:mount -o loop,ischarset=gb2312 /tmp/linux.iso /mnt/linux
    挂载软盘:mount /dev/fd0 /mnt/floppy
    卸载软盘:umount /mnt/floppy
    挂载U盘:
        首先使用“fdisk -l”命令查看外挂闪存的设备号,一般为/dev/sda1。然后用“mkdir /mnt/usb”命令建立一个挂载U盘用的目录,之后使用如下命令挂载FAT格式的U盘:mount -t msdos /dev/sda1 /mnt/usb
        使用如下命令挂载FAT32格式的U盘:mount -t vfat /dev/sda1 /mnt/usb
    挂载外挂硬盘分区(本地分区):
        挂载外挂硬盘分区(FAT32格式)同样需要先用“fdisk -1”查看外挂的硬盘分区设备号,假设为/dev/hda1。建立/mnt/vfat挂载目录后,使用如下命令进行挂载:mount -t vfat /dev/hda1 /mnt/vfat
        挂载本地系统中的windows分区,并挂载其中一个文件系统:
            #mkdir /mnt/d
            #mount -t ntfs -o iocharset=gb2312 /dev/hdc5  /mnt/d
            其中 ntfs为ntfs分区 iocharset=gb2312是为了支持中文,如果已经支持中文,可以用
            #mount -t ntfs  /dev/hdc5  /mnt/d
            #mount -t vfat  /dev/hdc5  /mnt/d   挂载fat32格式分区
    挂载windows的共享目录
          在一个局域网中,一般会有多台windows操作系统的电脑
        将windows文件系统映射成文件系统的mount命令格式
        #mount -t  smbfs  -o  username=用户名,password=密码  共享名 挂载点
        如:
        #mount -t smbfs  -o username=rq,password=1234  //dz118/software  /mnt/software
          注意,默认情况下Linux只允许root用户执行mount命令。如果想让一般用户也能挂载,并且希望在系统启动时自动挂载光盘或软盘,需要修改/etc/fstab配置文件,加入以下内容:
              LABEL=/ / ext3   defaults  11
              /dev/cdrom/mnt/cdrom iSo9660 auto,owner,kudzu,ro,user 00
              /dev/fdo /mnt/floppy auto auto,owner,kudzu,ro,user 00
              其中,“user”表示将mount命令赋予一般用户使用。
              /etc/fstab文件在Linux的帮助手册中讲得很详细,不妨看一看。

查看服务器信息
    1、查看CPU是几核:
        命令:cat /proc/cpuinfo |grep "cpu cores"|uniq
        结果:cpu cores    : 12
    2、查看逻辑cpu
        命令:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
        结果:48  Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz
        说明:上面可以看到有48个逻辑CPU。 型号是Intel(R) Xeon(R) Silver 4214 CPU  ,主频是 2.20GHz
    3、查看物理cpu的个数
        命令:cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
        结果:2
    4、查看逻辑cpu的个数
        cat /proc/cpuinfo |grep "processor"|wc -l
    5、查看cpu的core数
        cat /proc/cpuinfo |grep "cores"|uniq |awk '{print $NF}'
    6、查看网卡
        命令:ethtool eno1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值