zoukankan      html  css  js  c++  java
  • linux系统方面的知识

     
    1、什么是Linux?
    组成部分:硬件、内核、lib库、应用程序
     
    硬件:工作中真正工作的组成部分是硬件
     
    linux内核(kernel):管理硬件
    Linux团队管理的版本
     
    lib库:封装内核接口,提供系统调用
     
    应用程序:和用户交互,提供某项特定的服务
    GNU:在linux内核之上研发了很多常见的应用程序,并且把这些应用程序开源了
     
    2、Linux发行版?
    RedHat:按照特定的格式将linux内核、lib库、应用程序,组成一个操作系统,redhat发行版
     
    CentOs:6.6   
     
    Ubuntu:
     
    3、Linux哲学思想:
        1、Linux中一切皆文件
        2、Linux将一个大型需求,分解成非常多的的小需求,有专门的小程序去完成每个小需求,一个小程序只干一件事情             
     
    4、什么是shell?
    可以简单理解为shell是命令解析器,将你输入的命令解析并传达给内核
     
    shell是用户接口(用户和操作系统之间的接口,)
    shell是应用程序,shell是个特殊的应用程序,所有运行在内核之上的程序都称之为应用程序
     
    shell是一个特殊的交互式实用程序。它为用户提供了一种启动程序、管理文件系统中的文件和管理运行在Linux系统上的进程的方式。
     
    shell包含一组内部命令,此命令可以用来控制文件复制、文件移动、文件重命名,以及显示当前运行在系统上的程序等操作。除了内部命令外,shell还允许命令在命令提示符处输出程序的名称shell可以将程序名称传递到内核以启动该程序.
     
    命令分类:
        内部命令:
        外部命令:
     
    命令提示符:
    [u@h W]$
     
    配置命令提示行的样式:PS1 =
    d   显示日期,格式为"日 月 年"
    h   本地主机名
    H   完整的域名
       显示时间;为24小时制,格式为"小时:分钟:秒"
    T   显示时间;为12小时制,格式为"小时:分钟:秒"
    u   当前用户名
    w   当前工作目录
    W   当前工作目录的绝对路径
     
    路径:
    根目录:/
    /root/test
    /etc/text
    /bin/text
    cd test
    cd /root/test
     
    相对路径:从当前路径开始查找
    绝对路径:从根路径开始查找
     
     
     
    命令格式:
    命令  命令选项   命令参数
     
    命令:程序
     
    命令选项:指定怎么来运行这个命令
    长选项:--
    短选项:-
     
    命令参数:指定这个程序作用再那个对象上
     
    如何获取命令帮助:
    内部命令的帮助:help 命令
    外部命令的帮助:1、命令  --help
                    2、man 命令
     
    帮助手册:
                NAME
                SYNOPSIS
                DESCRIPTION
                OPTIONS
                EXAMPLES
                AUTHOR
                BUGS
                SEE ALSO
                SYNOPSIS:
                    []: 可选内容
                    <>:必选内容
                    a|b: 从中选一;
                    ...: 同类的内容可出现多个
        使用手册:是压缩格式文件的,且有章节之分
            1:用户命令;
            2:系统调用;
            3:C库函数;
            4:设备文件及特殊文件;
            5:文件格式;
            6:游戏;
            7:杂项;
            8:管理工具及守护进程;
            man手册的存放位置:/usr/share/man
                man命令自己有配置文件:/etc/man.config
                    MANPATH /path/to/somewhere: 定义man手册查找路径;
                -M /path/to/somewhere: 指定查找帮助手册的路径列表
      
     
      man命令操作方法:
            翻屏:
                空格键:向文件尾部翻屏;
                b: 向文件首部翻屏;
                回车键:向文件尾部翻一行;
                k: 向文件首部翻一行;
                Ctrl+d:向文件尾部翻半屏;
                Ctrl+u:       首部
                G:跳转至文件尾部
                1G:跳转至第一行;
                #G:跳转至第#行;
            文本搜索:
                /keyword: 搜索指定字串;不区分字符大小写;从文件首部向文件尾部方向进行查找;
                    n: 下一个
                    N:前一个
                ?keyword: 搜索指定字串;不区分字符大小写;从文件尾部向文件首部方向进行查找;
                    n: 下一个
                    N:前一个
                    退出:q
     
     
     
     
    Linux的文件系统:
            /bin: 存储基本的用户命令
            /boot: boot loader相关的静态文件,内核以及ramdisk文件
            /dev: 设备相关的文件
            /etc: 主机特有的系统配置文件
            /home: 用户的家目录(可选)
            /lib: 基本的共享库文件,以及内核模块文件
                    .so, .ko
            /lib64: 64bits系统的基本共享库文件
            /media:可移除设备的挂载点
            /mnt:可挂载文件系统的临时使用的挂载点
            /opt:第三方应用程序的安装位置
            /root: 管理员root用户的家目录
            /sbin: 系统管理相关的二进制程序
                注意:执行设定操作时,此目录下的命令仅具有管理权限的用户可执行
            /srv: 当前系统的服务相关的数据
            /tmp: 临时文件目录,具有特殊权限设定
            /usr:可被共享的、只读数据的存放位置
                bin: 二进制程序
                include: C程序用到的头文件
                lib: 库文件
                lib64: 库文件
                local: 本地程序目录结构
                share: 独立于平台架构的数据
                sbin: 管理程序
                src: 源代码目录
            /var:可变文件目录
                cache: 应用程序的缓存数据
                lib: 可变的状态信息数据
                local: 为/usr/local下的程序准备的可变数据目录
                lock: 锁文件目录
                log: 日志文件
                run: 运行进程时相关的数据,如守护进程的PID文件
                tmp: 系统重启之后需要留存的临时文件目录
            /proc: 内核及进程相关信息的虚拟文件系统接口
                伪文件系统:本身不是文件系统,但输出为文件系统
            /sys: 伪文件系统,硬件设备相关信息的虚拟文件系统接口
     
        Linux下应用程序的组成部分:
            二进制程序:bin, sbin
            库文件:lib, lib64
            配置文件:etc
            帮助文件:/usr/share/man, /usr/local/share/man
     
        Linux下的文件类型:
            -:普通文件
            d: 目录文件
            b: block,块设备文件
                随机访问设备
            c:character, 字符设备文件
                线性访问设备
            l: 软链接文件
            p: pipe, 命名管道
            s: socket,套接字文件
     
    环境变量:
    PS1:定义命令提示符格式:
     
    命令:
    type:判断一个程序是内部命令还是外部命令
    cd:切换工作路径
    pwd:显示当前工作路径
    ls:显示当前或指定目录的下的文件及目录
        -a:显示所有文件,包括影藏文件
        -A
        -l: 长格式列表,显示文件属性信息
            -rw-r--r-- 1 root root 1619 Nov  9 22:55 /etc/passwd
                -: 文件类型
                rw-r--r--:文件访问权限
                1:文件被硬链接的次数
                root root: 文件的属主(owner),文件属组(group)
                1619:文件大小,默认单位为Bytes
                Nov  9 22:55   文件最近一次被修改的时间;
                /etc/passwd    文件名
        -d:显示目录本身的信息
        -h: human-readable,对文件大小做单位换算以实现易读
        -R: 递归
        -i:显示文件inode号
     
    cat:显示文件内容
        cat [FILE]...
            -n: 给输出的内容加上行号;
            -e: 显示非打印字符及行结束符$
     
    文件内容类型查看命令:
        file [FILE]...
            判断文件内容的类型
     
    回显命令:echo
        echo [options] [argus]
        -n: 不进行换行;
        -e: 让控制符生效;
             : 换行
        echo ${VAR_NAME}:显示变量的值
     
    8、bash基础特性之globbing:
        文件名通配:元字符
            *: 匹配任意长度的任意字符
                pa*, *pa*, *pa, p*a, *p*a
            ?:匹配任意单个字符
                p?
                思考:
                    pad: p?d, p*d
                    pd: p?d, p*d
                    paad: p?d, p*d
            []:匹配指定集合内的任意单个字符
                [0-9]:任意数字
                [a-z]:任意小写字符
                [A-Z]:
                [0-9a-zA-Z]
                p[mn]*
            [^]:匹配指定集合外的任意单个字符
                p[^m-z]*
            字符集合:
                [:space:] 所有的空白字符, [[:space:]]
                [:punct:] 所有标点符号
                [:lower:] 所有小写字母
                [:upper:]     大
                [:digit:] 所有数字
                [:alpha:] 所有字母
                [:alnum:] 所有字母和数字
        练习1:显示/var目录下所有l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
        # ls -d /var/l*[0-9]*[a-z]
        # ls -d /var/l*[[:digit:]]*[[:lower:]]
            
        练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
        # ls -d /etc/[0-9]*[^0-9]
            
        练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
        # ls -d /etc/[^[:alpha:]][[:alpha:]]*
            
        练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;
        #cp -r /etc/m*[^0-9] /tmp/mageedu    
        练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu2目录中;
        #cp -r /etc/*.d /tmp/mageedu2
            
        练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/mageedu3目录中;
        #cp -r /etc/[mnrp]*.conf /tmp/mageedu3
            
    9、目录管理类命令:cd, pwd, ls
        mkdir, rmdir
        mkdir:
            mkdir [options] DIRECTORY ...
                -v: verbose,详细信息
                -p: parent,级联创建目录,指定的目标目录的父目录如果不存在,则先创建之;
        aa/bb
        rmdir: 删除空目录
            rmdir [options] DIRECTOTRY ...
                -v
                -p:
        问题1:如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
        mkdir -pv x/{y1,y2}/{a,b}
        mkdir -pv x/y1/a
        mkdir -pv x/y1/b
        mkdir -pv x/y2/a
        mkdir -pv x/y2/b
        问题2:如何创建a_d, a_c, b_d, b_c四个目录?
            # mkdir a_d a_c b_d b_c
     
    10、 文件管理工具:cp, mv, rm
            cp  选项  源文件  目标位置
            cp  源文件  目标文件
            cp  file1   file2
                        存在    
                        不存在  
            cp  源文件  目录
            cp  源目录  目录
            cp的常用选项:
                -r: 复制目录时实现递归复制
                -d: 不跟随符号链接文件指向的源文件,即复制链接文件本身而非其指向的文件
                -a: 相当于-dr
                -i: interactive, 目标文件存时,提醒用户是否执行覆盖(y/n);
                -f: force,强行覆盖;
            注意:如果源文件是符号链接文件,则复制时会拷贝链接指向的源文件的内容;
            文件移动:mv
                mv [OPTION] SRC DEST
                mv [OPTION] SRC... DIRECTORY
                mv  源文件   目标文件
                    源文件   目录
                    源目录   目标目录
                -i:interactive
                -f: force
            文件删除:rm
                rm [OPTION] FILE...
                    -r: 递归删除目录及其内部的所有文件;
                    -f: 强制删除
                注意:建议先移动至某专用的目录下;过一段时间再清理;
     
     
     
     
     
     
     
  • 相关阅读:
    编程官方文档中常见的参数格式说明
    console.dir()和console.log()的区别
    JS中逗号运算符的用法
    Image 对象事件
    git已经删除了远程分支,本地仍然能看到
    Nginx初入
    WebApi设置SessionState为Required
    WebAPI2使用AutoFac依赖注入完整解决方案。
    CodeFirst时使用T4模板
    mysql5.7 java读取乱码
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/7536682.html
Copyright © 2011-2022 走看看