redhat linux 基础命令笔记

文件管理类命令:
    文件类型
    文件信息查看
    用户和权限
    bash的一些特性
        管道和重定向
        文件本编辑器
        正则表达式
        文件查找

    文件类型:
        普通文件:-, f
        目录文件: d
        符号链接文件:l
        设备文件:
            字符设备:c (线性设备)
            块设备:b (随机设备)
        命名管道:p
        套接字文件:s (unix sock文件)

    文件内容的类型:
        file /path/to/somefile

    目录管理:
        cd, pwd, ls

        mkdir: make directory
            -p: 当指定的目标目录的父目录不存在时,则先创建之

        rmdir: remove directory
            -p: 删除单传目录路径中各目录

        bash的工作特点:没有返回信息通常最好的信息
            每个命令执行结束后,会有一个“执行状态返回值”,有效范围0-255
                0: 执行成功
                1-255: 执行失败

            使用特殊变量$?可以获取最近一条命令的状态返回值
                # echo $?

        bash特性之一:命令行展开
            ~: 用户家目录
            ~USERNAME: 指定用户的家目录

            {}: 
                /tmp/{x,y}
                    /tmp/x, /tmp/y

                /tmp/{x,y}/z
                    /tmp/x/z, /tmp/y/z

扫描二维码关注公众号,回复: 5009267 查看本文章

            创建/tmp/x/z, /tmp/y/z, /tmp/x/m, /tmp/y/m

            练习1:创建/tmp/ 
                a_b, c_b, a_d, c_d

            练习2:创建/tmp/mylinux/
                boot
                    grub
                bin
                sbin
                etc
                    rc.d
                        init.d
                    sysconfig
                        networking-scripts
                lib
                    modules
                lib64
                usr
                    local
                        bin
                        sbin
                        lib
                        lib64
                    bin
                    sbin
                    lib
                    lib64
                proc
                sys
                dev
                var
                    log
                    run
                    lock
                tmp

    # mkdir -pv /tmp/mylinux/{boot/grub,bin,sbin,etc/{rc.d/init.d,sysconfig/networking-scripts},lib/modules,lib64,usr/{bin,sbin,lib,lib64,local/{bin,sbin,lib,lib64}},proc,sys,dev,var/{log,run,lock},tmp}

    如何安装tree:
        # cd /etc/yum.repos.d/
        # wget http://172.16.0.1/centos6.5.repo
        # rm CentOS-Base.repo
        # yum -y install tree

    ls命令:
        list简写

        ls [option] [file]

            常用选项:
                -l: long,长格式显示文件的详细属性信息
                    drwxr-xr-x.  2 root root  4096 Feb 12 09:55 account
                        左起第一位:文件类型
                        后面的9位:权限,常称为mode
                            r: 读,Read
                            w: 写, Write
                            x:执行, eXcute
                        .: 表示文件有隐藏属性
                            lsattr命令可以查看
                        数字:此文件被硬链接的次数
                        属主:owner, 文件的拥有者
                        属组:group, 文件的所属的组
                        4096: 文件大小,单位是字节
                            -h: human-readable,自动做单位换算
                        文件最近一次被修改的时间
                        文件名
                -a: 显示所有文件
                -d: 通常和-l一起使用,用于仅显示目录自身属性
                -r: reverse, 逆序显示
                -R: recursive, 递归显示,显示子目录中的内容

    文件管理类的命令:
        查看:cat, tac, head, tail, less, more
        时间戳管理:touch
        复制:cp
        移动:mv
        查看元数据属性:stat
        文本编辑器:nano, vi

    stat: 显示文件的元数据
        时间戳:
            atime
            mtime
            ctime

    touch:改变文件的atime和mtime
        touch [option]... FILE
            如果FILE不存在,默认会创建一个空文件

            -a: 仅改变atime
            -m: 仅改变mtime
            -c: 不创建空文件
            -t [[CC]YY]MMDDhhmm[.ss]

    文件查看类命令:
        cat: 连接并显示文本文件内容

        数据流:stream

            -E:显示行结束符
            -n: 显示行号

        tac: 逆序显示文件内容

            Shift+PageUp/PageDown: 翻屏

        分屏显示:
            more 和 less

        查看首部或尾部的部分内容:
            head
            tail
                -n #: 指定的行数

            tail -f

    命令总结:shutdown, date, reboot, halt, poweroff, which, who, man, info, help, whatis, makewhatis, whoami, hwclock, ntpdate, touch, stat, file, cat, tac, more, less, head, tail, mkdir, rmdir, cd, pwd, ls, type, hash

回顾:
    文件类型:
        f, d, l, c, b, p, s

        file

    文件timestamp:
        atime
        mtime: 数据的改变
        ctime: 元数据的改变

        stat

        ls -l

    文本查看:cat, tac, more, less, head, tail

    
bash特性之命令别名和命令引用:
    alias
    alias ALIAS=COMMAND

    别名与命令同名时:
        绝对路径
        \COMMAND

        生效范围:命令行定义的别名,其生效范围为当前会话;

    unalias [ALIAS]
        -a: 撤消所有别名

    bash支持的引用:
        ''
        ""
        ``:引用一个命令的执行结果
            $()


bash特性之文件名通配(globbing):
    *: 任意长度的任意字符
        p*d, pad, pbd, pd
        *ab*c
    ?: 匹配任意单字符
    []: 匹配指定范围内的任意单字符
        [abc], [a-z], [0-9], [0-9a-z]
    [^]:匹配指定范围以外的任意单字符
        [^0-9a-z]

        字符集合:
            [:space:] : 所有空白字符
            [:punct:] : 所有标点符号
            [:lower:] :所有小写字母
            [:upper:]
            [:digit:]
            [:alnum:]
            [:alpha:]

    练习:
        1、显示/var目录下所有以l开头,以一个小字母结尾,且中间出现一位数字的文件或目录;
            # ls /var/l*[[:digit:]]*[[:lower:]]
        2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
            # ls -d /etc/[[:digit:]]*[^[:digit:]]
        3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度字符的文件或目录;
            # ls -d /etc/[^[:alpha:]][[:alpha:]]*

    练习:
        1、在/tmp/mytest目录中创建以testdir打头,后跟当前日期和时间的空目录,形如testdir-2014-07-03-09-15-33;
            # mkdir -pv /tmp/mytest/testdir-$(date +%F-%H-%M-%S)


echo命令
    echo [-neE] [arg ...]

        \n
        \t

        \033[
            单个数字:控制字体
            3#:#是一个数字,3表示控制其前景色
            4#:#是一个数字,4表示控制其背景色

            组合使用,彼此间使用;分隔

        m:是固定格式

    \033[0m:控制符的功能至此结束

文件管理类命令:
    复制:cp
    移动:mv
    删除:rm

    cp: 
        cp SRC DEST
            SRC是文件:
                如果DEST不存在:复制SRC为DEST
                如果DEST存在:
                    如果DEST是文件:则覆盖
                    如果DEST是目录:将SRC复制进DEST中,并保持原名

        cp SRC... DEST
            如果SRC不止一个,则DEST必须得是目录;

        cp SRC DEST
            SRC是目录:
                可使用-r选项:

        cp -r SRC... DEST

        练习:复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录;
            # mkdir /tmp/mytest1
            # cp -r /etc/p*[^[:digit:]]  /tmp/mytest1

        练习:复制/etc/目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录;
            # mkdir /tmp/mytest2
            # cp -r /etc/*.d  /tmp/mytest2

        练习:复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录;
            # mkdir /tmp/mytest3
            # cp -r /etc/[lmn]*.conf /tmp/mytest3

        -P: 复制符号链接文件本身,而非其指向的目标文件
         --preserve[=ATTR_LIST]
             mode,ownership,timestamps
                 mode: 权限
                 owership: 属主、属组
                 timestamps: 时间戳

             -p: 相当于 --preserve=mode,ownership,timestamps

        -a:相当于 -dR --preserve=all
            归档:archive

        -i: interactive
        -f: force

    mv命令:
        mv SRC... DEST

        -i: interactive

    rm命令:
        -i
        -f

        --no-preserve-root

文本编辑命令:nano
    全屏编辑器:

文本处理类命令:
    wc: Word Count
        -l: 仅显示行数
        -w:
        -c:

    cut: 
        -d: 指定分隔符
        -f: 指定要显示的字段
            m: 第m列
            m,n: 第m和n列
            m-n: 第m到第n列

    sort: 
        sort [option] FILE...
            -f: 忽略字符大小写
            -t: 指定分隔符
            -k: 指定分隔之后要进行排序比较的字段
            -n: 以数值大小进行排序
            -u: 排序后去重

    uniq: 
        -d
        -u
        -c: 统计行出现的次数

    练习:
        1、显示当前系统上每个用户的shell;
            # cut -d: -f1,7 /etc/passwd

        2、显示当前系统上所有用户使用的各种shell;
            # cut -d: -f7 /etc/passwd | sort | uniq

        3、取出/etc/inittab文件的第7行;
            # head -n 7 /etc/inittab | tail -n 1

        4、取出/etc/passwd文件中第7个用户的用户名;
            # head -n 7 /etc/passwd | tail -n 1 | cut -d: -f1

        5、统计/etc目录下以大小写p开头的文件的个数;
            # ls -d /etc/[pP]* | wc -l
 

猜你喜欢

转载自blog.csdn.net/qq_40210617/article/details/86572078