您的位置:首页 > 理论基础

Linux运维初级一(计算机基础、Linux常用命令、文件系统管理、管道、grep总结)

2018-09-04 09:03 816 查看

一、Linux基础

计算机体系结构:

存储器(内存 + 编址) + CPU(控制器 + 运算器 + 寄存器) + 输入设备 + 输出设备。

操作系统(内核)功能:

进程管理、内存管理、文件系统、网络功能、硬件功能、安全机制。

Linux的基本原则:

1、由目的单一的小程序组成,组合小程序完成复杂任务;

2、一切皆文件;

3、尽量避免捕获用户接口;

4、配置文件保存为纯文本格式。

Linux基本命令:

命令类型:
                  内置命令(shell内置),内部,内建
                  外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

命令格式:命令 + 选项 + 参数

选项:

       1、 短选项: -
                       多个选项可以组合:-a -b = -ab
                    2、长选项: --

参数:命令的作用对象

文件类型:
                -:普通文件 (f)
                d: 目录文件
                b: 块设备文件 (block)
                c: 字符设备文件 (character)
                l: 符号链接文件(symbolic link file)
                p: 命令管道文件(pipe)
                s: 套接字文件(socket)

文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--

文件硬链接的次数

            文件的属主(owner)
            文件的属组(group)
            文件大小(size),单位是字节
            时间戳(timestamp):最近一次被修改的时间
            访问:access
            修改:modify,文件内容发生了改变
            改变:change,metadata,元数据

1、su: switch user   # su [-l] 用户名

2、ls:list    #列出,列表

        -l:长格式
                   -h:做单位转换
                   -a: 显示以.开头的隐藏文件
                          . 表示当前目录
                        .. 表示父目录
                   -A
                   -d: 显示目录自身属性
                   -i: index node, inode
                    -r: 逆序显示
                    -R: 递归(recursive)显示

3、pwd: Printing Working directory   #打印当前工作目录

4、cd: change directory

           cd ~USERNAME: 进入指定用户的家目录
                       cd -:在当前目录和前一次所在的目录之间来回切换

5、type: 显示指定命令属于哪种类型(内部命令还是外部命令)

6、date:时间管理 (硬件时钟、系统时钟)

        clock、cal:calendar、date、hwclock

        hwclock  -w/-s  硬件时间和系统时间同步

7、获取命令的使用帮助

         内部命令:help COMMAND

        外部命令:COMMAND --help

 

8、命令手册:manual (man COMMAND/ whatis COMMAND)

man:

                   分章节:
                       1:用户命令(/bin, /usr/bin, /usr/local/bin)
                       2:系统调用
                       3:库用户
                       4:特殊文件(设备文件)
                       5:文件格式(配置文件的语法)
                       6:游戏
                       7:杂项(Miscellaneous)
                       8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)

                       <>:必选
                       []:可选
                       ...:可以出现多次
                       |:多选一
                       {}:分组

                    NAME:命令名称及功能简要说明
                        SYNOPSIS:用法说明,包括可用的选项
                        DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
                        OPTIONS:说明每一个选项的意义
                        FILES:此命令相关的配置文件
                        BUGS:
                        EXAMPLES:使用示例
                        SEE ALSO:另外参照

                    翻屏:
                        向后翻一屏:SPACE
                        向前翻一屏:b
                        向后翻一行:ENTER
                        向前翻一行:k

                    查找:
                          /KEYWORD: 向后
                              n: 下一个
                              N:前一个 

                          ?KEYWORD:向前
                              n: 下一个
                              N:前一个 

                          q: 退出

9、file命令及其用法

        file 文件名/文件夹  查看文件类型

 

文件系统:

以下是Linux自带目录的文件夹列表及对应的作用功能:

/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
    设备文件:
        块设备:随机访问,数据块
        字符设备:线性访问,按字符为单位
        设备号:主设备号(major)和次设备号(minor)
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录;
/lib:库文件
    静态库,  .a
    动态库, .dll, .so (shared object)
    /lib/modules:内核模块文件
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin: 可执行文件, 用户命令
/sbin:管理命令

/usr:shared, read-only    系统运行程序执行的文件
    /usr/bin
    /usr/sbin
    /usr/lib
    
/usr/local:      用户安装软件执行的文件
    /usr/local/bin
    /usr/local/sbin
    /usr/local/lib

文件管理(touch、stat、file、rm、cp、mv、nano)

touch:修改文件的时间信息

        touch  file(不存在的文件):创建一个文件

使用文件编译器创建:nano 、 vim 等

stat:查看文件/文件夹 的相关信息

        stat  filename/direcory

cp:copy(复制文件)

                一个文件到一个文件
                多个文件到一个目录     

mv:move(移动文件)

文本相关的命令:
                 查看:cat, tac, more, less, head, tail
                 统计:wc
                 处理:tr, cut, join
                 排序:sort
                 uniq

查看文本:(cat、tac、more、less、head、tail)

        区别:大文档cat查看不全,more只能向后查看不能向前查看,less没限制,head -n 查看前n行,tail -n 查看后n行,tail -f 查看文件尾部,不退出,等待显示后续追加至此文件的新内容。

 文本处理:(cut、join、sed、awk)

           

目录管理(ls、cd、pwd、mkdir、rmdir、tree)

mkdir:创建空目录  

        mkdir -pv  (可创建深层目录)

        mkdir -pv /mnt/test/{x/m,y}  (可创建深层分支目录,{}是关键)

tree:查看目录树

        tree 目录:查看目录的树结构

rmdir:删除目录(只能删除空目录)

 

bash详解:

bash主要用到下面8部分的内容:

1、命令历史、命令补全
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程

命令行编辑:
光标跳转:
    Ctrl+a:跳到命令行首
    Ctrl+e:跳到命令行尾
    Ctrl+u: 删除光标至命令行首的内容
    Ctrl+k: 删除光标至命令行尾的内容
    Ctrl+l: 清屏
    
命令历史:
 查看命令历史:history
      -c:清空命令历史
      -d OFFSET
: 删除指定位置的命令
      -w:保存命令历史至历史文件中

  命令历史的使用技巧:
      !n:执行命令历史中的第n条命令;
      !-n:执行命令历史中的倒数第n条命令; 
      !!: 执行上一条命令;
      !string:执行命令历史中最近一个以指定字符串开头的命令
      !$:引用前一个命令的最后一个参数; 
      Esc, .   

命令别名:
        alias CMDALIAS='COMMAND [options] [arguments]'
        在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;

命令替换: $(COMMAND), 反引号:`COMMAND`
        把命令中某个子命令替换为其执行结果的过程
        file-2013-02-28-14-53-31.txt


bash支持的引号:
        ``: 命令替换
        "": 弱引用,可以实现变量替换
        ' ': 强引用,不完成变量替换


文件名通配, globbing
         *: 任意长度的任意字符
         ?:任意单个字符
         []:匹配指定范围内的任意单个字符
               [abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
               [:space:]:空白字符
               [:punct:]:标点符号
               [:lower:]:小写字母
               [:upper:]: 大写字母
               [:alpha:]: 大小写字母
               [:digit:]: 数字
               [:alnum:]: 数字和大小写字母

用户、组、权限

用户和组相关信息存放的文件:

        用户:UID, /etc/passwd
                   组:GID, /etc/group

               影子口令(密码):
                  用户:/etc/shadow
                  组:/etc/gshadow

用户及组的相关命令

    useradd  [options]  USERNAME 
        -u UID
        -g GID(基本组)
        -G GID,...  (附加组)
        -c "COMMENT" (备注信息)
        -d /path/to/directory (家目录,默认创建与用户名同名的组)
        -s SHELL (指定base脚本,默认是/etc/bash)
        -m -k
        -M
        -r: 添加系统用户
        
    /etc/login.defs
   
    /etc/shells:指定了当前系统可用的安全shell
    userdel:

    userdel [option] USERNAME
        -r: 同时删除用户的家目录

    id:查看用户的帐号属性信息
        -u
        -g
        -G
        -n

    finger: 查看用户帐号信息
    finger USERNAME

    修改用户帐号属性:
    usermod
        -u UID 
        -g GID
        -a -G GID:不使用-a选项,会覆盖此前的附加组;
        -c
        -d -m:
        -s
        -l
        -L:锁定帐号
        -U:解锁帐号
        
    chsh: 修改用户的默认shell

    chfn:修改注释信息

    密码管理:
    passwd [USERNAME]
        --stdin
        -l
        -u
        -d: 删除用户密码

    pwck:检查用户帐号完整性


    组管理:
      创建组:groupadd
        groupadd 
           -g GID
            -r:添加为系统组
        
        groupmod
            -g GID
            -n GRPNAME

        groupdel

        gpasswd:为组设定密码

bash的配置文件:

        全局配置
            /etc/profile, /etc/profile.d/*.sh, /etc/bashrc
        个人配置
            ~/.bash_profile, ~/.bashrc
            
        profile类的文件:
            设定环境变量
            运行命令或脚本

        bashrc类的文件:
            设定本地变量
            定义命令别名
            
        登录式shell如何读取配置文件?
        /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

        非登录式shell如何读取配置文件?
        ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh

管道和重定向:>  <  >>  <<  |

        >: 覆盖输出
        >>:追加输出

        set -C: 禁止对已经存在文件使用覆盖重定向;
            强制覆盖输出,则使用 >|
        set +C: 关闭上述功能


        2>: 重定向错误输出
        2>>: 追加方式


        &>: 重定向标准输出或错误输出至同一个文件


        <:输入重定向
        <<:Here Document

 

        管道:前一个命令的输出,作为后一个命令的输入

        命令1 | 命令2 | 命令3 | ...

grep 使用规则

        grep, egrep, fgrep    

        grep: 根据模式搜索文本,并将符合模式的文本行显示出来。
        Pattern: 文本字符和正则表达式的元字符组合而成匹配条件

        grep [options] PATTERN [FILE...]
            -i
            --color
            -v: 显示没有被模式匹配到的行
            -o:只显示被模式匹配到的字符串

            
        *: 任意长度的任意字符
        ?: 任意单个字符
        []:
        [^]:    

        正则表达式:REGular EXPression, REGEXP
        元字符:
        .: 匹配任意单个字符
        []: 匹配指定范围内的任意单个字符
        [^]:匹配指定范围外的任意单个字符
            字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]

        次数匹配:
        *: 任意多
        \?: 0或1次
        \{m,n\}:至少m次,至多n次;

        .*: 任何字符任意个数

        匹配次数(贪婪模式):
        *: 匹配其前面的字符任意次    
            a, b, ab, aab, acb, adb, amnb
            a*b, a?b
            a.*b

       

        位置锚定:
        ^: 锚定行首,此字符后面的任意内容必须出现在行首
        $: 锚定行尾,此字符前面的任意内容必须出现在行尾
        ^$: 空白行

        \<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现
        \>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

        分组:
        \(\)
            \(ab\)*
            后向引用
            \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
            \2:

egrep:增强grep,使用时无需加\符号来进行转译

fgrep: 不支持正则表达式

 

 

 

 

                 

 

 

        

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: