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: 强制删除
            注意:建议先移动至某专用的目录下;过一段时间再清理;
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/756623607-zhang/p/7536682.html