linux 基础命令1

牧云@^-^@ 提交于 2019-12-17 03:53:58

回显命令:echo 
    内建命令
    echo "How are you"
    echo "$SHELL"   弱应用,显示变量中的值
        /bin/bash
    echo '$SHELL'   强引用类型,不会显示变量中的值
        $SHELL
    -n:禁止显示换行符,默认自动加换行符
    -e:允许使用转义符
        \n:换行
        \t:制表符
        echo -e "\n 哈哈"
    

显示文件的路径:which
    which [OPTION] COMMAND
        --skip-alias    不显示别名
    
whereis:locate the binary,source,and manual page files for a COMMAND
whatis
    使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字
    创建一个数据库
    Linux会自动运行创建这个数据库

系统管理类命令:
    关机:
        halt,poweroff,shutdown,init 0
        shutdown是安全关机方式

        
    重启:
        reboot,init 6,shutdown
    与用户登录有关的:
        w,who,whoami
        whoami:
            看当前用户是谁
        who:
            显示当前有哪些用户登录系统
        w: show who is logged on and what they are doing


    
    关机或重启命令:
        halt,poweroff,reboot
            -f 强制关机,不建议。不保存。
            -p 切断电源。

        shutdown
            shutdown [OPTION]...  TIME [MESSAGE]
                -r reboot
                -h halt 切断电源。
                -c cancel 取消shutdown
                TIME: 
                    now 0也是现在
                    +m:表示从命令提交开始m分钟之后
                    hh:mm 绝对时间。 
                MESSAGE:警告的内容
        

Linux的文件系统
    根文件系统(rootfs):
        root filesystem

    LSB:FHS (FileSystem Heirache Standard)
        /etc,/usr,/var,/root,/home,/dev

        /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)
        都存放在此目录
        /bin:供所有用户使用的基本命令:不能关联至独立分区,OS启动就用到的程序放在这里
        /sbin:管理类的基本命令;不能关联至独立分区,OS启动就用到的程序放在这里.
        /lib:基本的共享库和内核模块,以及内核模块文件(/lib/modules);
        /lib64:专用于x86_64基本的共享库和内核模块,以及内核模块文件;
        /etc:配置文件目录(纯文本文件)
        /home/USERNAME:家目录
        /root:管理员的家目录
        /media:Mount point for removeable media
        /mnt:Mount point for temporarily media
        /dev:Device files;设备文件及特殊文件
            b:block Device --可随机访问
            c:character device --必须顺序访问

        /opt Add-on application software packages
            第三方应用程序的安装位置。
        /srv:系统上运行的服务用到的数据
        /tmp:临时文件存放位置

        /usr:一般独立分区
            universal shareable read-only data
            必须有下列目录
            bin:存放系统完成基本功能的程序,不是启动时的
            sbin
            lib
            lib64
            include:c程序的头文件存放位置
            share:结构化独立的数据,例如doc,man等
            src:源代码所在位置
            local:Local hierachy;第三方应用程序的安装位置,目前最常见,也可以mount到独立的文件系统
                bin,sbin,lib,lib64
        /var: Hierarchy
            经常发生变化的数据文件存放位置
            cache:应用程序缓存数据目录
            lib:应用程序状态数据
            local:专用于为/usr/local下的应用程序存储可变数据
            lock:应用程序的锁文件
            log:日志文件
            opt:专用于/opt下的可变数据
            run:运行中的进程相关数据;通常用于存储进程的PID文件
            spool:缓冲池
            tmp:系统2次重启过程中的临时文件存放位置
        /proc:伪文件系统,用于输出内核与进程信息相关的虚拟文件系统。
        /sys:伪文件系统,用于输出当前系统上硬件设备相关信息的虚拟文件系统。
        /selinux:security enhanced Linux,selinux相关的安全策略等信息的存储位置。

    Linux上的应用程序的组成部分
        二进制程序: /bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
        库文件: /lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib
        配置文件:/etc,/etc/directory,/etc/local/etc
        帮助文件:/usr/share/man,/usr/share/doc ,/usr/local/share/man,/usr/local/share/doc

    Linux下的文件类型:
        - (f):普通文件
        d:目录文件
        b:块设备:
        c:字符设备
        l:符号链接文件,软连接文件
        p:管道文件;
        s:套接字文件;socket文件
bash的基础特性:
    (1) 命令历史
        history
            环境变量:
                HISTSIZE:命令历史记录的条数:
                HISFILE: ~/.bash_history;
                HISFILESIZE; 命令历史文件记录历史的条数;

            history -d OFFSET 删除指定条目的历史记录
                -c 清空
            history #:显示最近的number个历史记录
            -a:append;手动追加当前会话缓冲区的命令历史至历史文件中。

        调用历史中的命令:
            !!:最近一次命令
            !# :第#号命令
            !string:最近一个已制定字符串开头的历史命令
        调用上一条命令的最后一个参数
            !$:
                上一条命令: cat /etc/fstab
                当前命令:ls -l !$  #相当于 ls -l /etc/fstab
            ESC, .
        控制命令历史的记录方式:
            环境变量:HISTCONTROL
                ignoredups:忽略重复的命令,连续而且相同
                ignorespace:忽略所有以空白字符开头的命令
                ignoreboth:以上二者都生效
            修改环境变量的方式:(只对当前shell和子进程有效)
                export 变量名=.....
    (2)命令补全
        bash执行命令:
            内部命令:build in
            外部命令:搜索$PATH环境变量定义的路径,自左向右在每个路径搜寻以用户给定
            名命名的文件,第一次找到的即为要执行的命令。

    (3) 路径补全
    (4) 命令行展开
        ~:展开为用户的家目录
        ~USERNAME :展开为USERNAME的家目录
        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径。
            /tmp/{a,b} = /tmp/a,/tmp/b
        例子:
            (1):如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,
            /tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
                mkdir -p /tmp/x/{y1,y2}/{a,b}
            (2):如何创建x_m,y_m,x_n,y_n
                mkdir -p /tmp/{x,y}_{m,n}
            (3):如何创建/tmp/bin,/tmp/sbin,/tmp/usr,/tmp/usr/bin,
            /tmp/usr/sbin
                mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
    (5) 命令的执行结果状态
        bash使用特殊变量$?保存最近一条命令的执行状态结果。
            0:成功
            1-255:失败

目录管理类命令:
    cd pwd,ls
    mkdir rmdir ,tree
    mkdir [option] /path/to/somewhere /path/to/somewhere2
        可以用空格,一次创建多个目录。
        -p:存在也不报错。如果需要,自动创建父目录。
        -m mode ,创建目录时直接指定权限。
    rmdir [option] /path
        只能删除空目录
        -p: 删空目录,一直追溯到不空的父目录

    tree:
        树状结构显示
        -d 仅显示目录
        -L:最多显示多少层级。
    

文件查看类命令
    cat,tac
    more,less,tail,head

    more [option] [file]

    less [option] [file]

    head [option] [file]
        -c #:指定获取前#个字节
        -n #:指定获取前#行;默认就是前十行
    
    tail [option] [file]
        与head类似
        -f 继续跟踪file新追加的内容。查看log文件特别有用

文件的时间戳管理工具
    touch
    文件:metadata,data
        查看文件状态:stat
        三个时间戳:
            access time,atime: 访问时间,只要用可执行程序访问过,就更新此时间
            modify time,mtime:修改时间,改变文件内容,更新这个数据
            change time ctime: 改变时间,元数据改变,更新这个数据,而元数据包含这三个时间戳
                                所以,如果atime和mtime改变了。那么ctime也改变了。
    touch [option] [file]
        默认touch会改变文件的atime、mtime、ctime
        -a: 只改变访问时间
        -m:只改变修改时间戳
        -t:指明时间戳
            touch -m -t 201909011234666 /etc/fstab
        -c: 如果文件不存在,那么不创建文件。
        

            

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!