Shell命令笔记合集

目录

一 shell

二 系统基本操作 

三 LINUX系统的目录结构 

 四 命令

 五 特殊符号

 六 获取帮助

 七 重定向

 八 文本编辑器

 九 用户和组

 十 组

 十一 文件/目录的权限和归属

 十二 权限

 十三 进程

 十四 管理进程

 十五 查看进程

 十六 系统启动流程

 十七 system程序

 十八 ssh配置文件

 十九 网络配置

 二十 tar命令

 二十一 rsync命令

 二十二 at

 二十三 cron

 二十四 管理分区

 二十五 du 查看目录大小

 二十六 df 查看磁盘空间使用率

 二十七 mount 挂载分区

 二十八 umount 取消挂载

 二十九 查找和管理文件

 三十 YUM

 三十一 逻辑卷管理

 三十二 RAID

 三十三 安装KVM虚拟机

 三十四 virsh 命令

 三十五 PXE服务器

三十六 正则表达式 

 三十七 grep

 三十八 cut

 三十九 sort 例:sort sort.txt

 四十 uniq

 四十一 awk

 四十二 sed

 四十三 NICE

 四十四 查看

四十五 设置

 四十六 IPA

 四十七 SMB


shell


    命令的分类:内部命令 外部命令
            区分命令:type(cd/mkdir)
    查看系统所支持的shell:cat /etc/shells
    查看当前使用的shell:echo $SHELL

二 系统基本操作 


    shell是一门脚本语言
    虚拟终端:
        图形-字符:ctrl+alt+f2-f6
        字符-字符:alt+f2-f6
        字符-图形:alt+f1
    linux命令格式:
        命令 选项 参数
        命令必须写在第一位
        选项和参数有时可以颠倒顺序
        - 代表简写 -- 代表选项的全称
        help 内部命令 查看内部命令的帮助信息
        --help 外部命令 查看外部命令的帮助信息
        关闭当前shell:exit或者Ctrl + d
    工作区:
        互不干扰的四个工作区间  
        ctrl+alt+方向键上/下切换
    常用命令
        passwd 设置密码
        useradd zhangsan创建用户
        passwd zhangsan设置密码
        passwd -l zhangsan锁定密码
        passwd -S zhangsan查看密码状态
        passwd -u zhangsan解锁密码
        passwd -d zhangsan清空用户密码
        
        date查看当前日期
            date -s ()绑定日期和时间
        设置特殊格式:
            date +%Y-%m-%d 和 date +%H-%M-%S

        file 查看文件类型
            普通文件 目录 字符文件 块文件 套接字文件 连接文字 管道符文字p
            vim 1.txt 创建文件
            file 1.txt 查看文件类型

        head 查看文件头部10行
            -n(数字) 查看头部指定行数
            例:head -3 /etc/passwd

        tail 查看文件尾部10行
            -n(数字) 查看尾部指定行数
            -f 动态查看更新文件内容 
            例:tail -3 /etc/passwd 
                tail -f 1.txt

        wc 统计文件内容
            -l 行数
            -w 单词数
            -c 字节数
            例:wc /etc/passwd
                wc -l /etc/passwd
                wc -w /etc/passwd
                wc -c /etc/passwd
        
        history 查看历史命令
            !加命令编号 快速调用
            !加命令首字母 快速调用
            ctrl+r历史命令搜索栏
            esc + .上一条历史命令的参数
            例:!wc 
                    !wc -c

        Bash组合键
            Ctrl+a:将光标移动到首行
            Ctrl+e:将光标移动到行尾
            Ctrl+u:删除光标前的字符
            Ctrl+k:删除光标后的字符
            Ctrl+左右箭头:以单词为单位移动光标
            Ctrl+r:搜索历史命令
            tab:补全命令和路径

三 LINUX系统的目录结构 


    /bin 存放普通用户使用的命令
    /sbin 存放管理员可以执行的命令
    /home 存放普通的家目录 如zhangsan家目录为/home/zhangsan
    /root 管理员的家目录
    /etc 存放配置文件的目录
      /boot 存放跟启动相关的文件
    /usr 用户自定义的相关程序或文件
    /proc 内核参数相关,硬件参数相关文件的存放目录
    /var 内容经常变化的文件存放目录 如日志
    /tmp 临时文件的存放目录
    /run 存放进程文件的目录

 四 命令


        cd 切换目录:
        相对路径:以当前目录作为起点,切换目录 例:cd c/
        绝对路径:以根目录作为起点,切换目录   例:cd /root/a/b/c
        cd - 返回之前所在的目录
        cd .. 返回上一级目录
        cd ~ 返回当前用户的家目录
        cd !$ 引用上一条命令的参数
    
    pwd 查看当前所在的工作目录

    ls 查看目录的内容:
        -a查看隐藏文件               例:ls -lha / nls -a
        -A查看隐藏文件,不显示.和..  例:ls -A
        -l查看目录内容文件的详细信息 注:ls -l = ll
        -h文件大小带单位             例:ls -lh
        -d 显示目录本身的内容          例:ls -lhd
        -R递归显示目录和子目录的内容 例:ls -R
        -r 反向选取                  例:ls lhSr
        -S 文件从大到小排列          例:ls lhS
        -t 文件按创建时间排序        例:ls lhtr

    touch 创建测试用的空文件或刷新时间戳 例:touch a{1..6}.txt 可通过{}快速创建多个文件

    mv 移动或重命名                      例:mv a*.txt b

    mkdir 创建目录:                     例:mkdir a
        -p 创建多级目录              例:mkdir -p b/c

    cp复制:                             例:cp 1.txt 4.txt   
        -i 覆盖时提示信息            例:cp -i 1.txt 4.txt 注:cp = cp -i  (unalias cp去掉显示信息)
        -f 强制复制                  例:cp -f 1.txt 4.txt
        -r 递归                      例:cp -r a b(复制两个目录)
        -p 保留原属性


    rmdir 删除空目录                     例:rmdir a
 
    rm 删除文件或目录:                  例:rm a  /  rm a/*(删除a目录下的所有文件)
        -i 覆盖时提示信息
        -f 强制复制   
        -r 递归      

 五 特殊符号


    1.元字符
          > 重定向                      例:cat 1.txt > 2.txt
            将命令的输出结果不显示在屏幕上,而是输出到指定的文件里
          | 管道符                      例:cat /etc/passwd | awk -F: '{print $1}'
            将前面命令的输出作为后面命令的输入(二次筛选)
    2.通配符                              例:find . -name "*.txt"/find . -name "?.txt"
        * 代表任意位的任意字符 
        ?代表一位任意字符
        \转义符


注:考试不会考,工作可能会用到        
    b* 以字母b开头的文件或目录
    *b 以字母b结尾的文件或目录
    *b* 文件或目录名中包含字母b
    [!b]* 不以字母b开头的文件或目录
    ???* 文件名不少于3个字符长度
    *[[:digit:]]* 文件名中包含数字
    [[:upper:]]* 文件名以大写字母开头

 六 获取帮助


    man 查看帮助              例:man intro
    -a 获取所有帮助信息(按q退出)     例:man -a intro
    -k 搜索关键字            例:man -k passwd

    gedit 图形化文本编辑器    
            查看gedit(1)的手册页  man 1 gedit
        在手册页中查找如何使用gedit命令编辑文件  gedit /etc/passwd
        gedit +n/etc/passwd  跳转到第n行进行编辑 
        gedit + /etc/passwd  跳转到文本末尾进行编辑
        查案su(1)命令的手册页 man 1 su     
        更加简洁查看文件内容 man 1 su | less
            注:/ 快速定位
    emacs 图形和字符都支持的文本编辑器  ctrl+x 和 ctrl+c 退出

    info 查看帮助 对man命令的补充
    
    pinfo查看textinfo's GNU文档系统,不加任何参数
        d 返回顶级页
        u 返回上一页
        / 快速定位
        n 下一页
        q 退出

 七 重定向


    标准输入: /dev/stdin  编号0
    标准输出:/dev/stdout 编号1
    标准错误输出:/dev/stderr 编号2
      
        /dev/null  Linux的“回收站”,文件会被粉碎               例:1>/dev/null
    &  代表标准输出和标准错误输出                            例:cat 1.txt 2.txt &>3.txt
    >file2>file2 发送命令输出到文件file,发送错误到文件file2    
    >>file2>&1  发送输出和错误到同一个文件,丹保留原文件内容      例:cat 1.txt 2.txt &>3.txt 2>&1
    &>/dev/null 运行一个命令,但是抛弃所有可能的终端显示
    |tee file 同时发送命令输出到文件和屏幕中              例:cat 1.txt | tee 3.txt
    >file2>/dev/null 运行命令,保存输出到file,丢弃错误信息

 八 文本编辑器


    主要工作模式:命令模式,输入模式,末行模式

    命令-输入:    
        a 当前光标后一个输入 
           A 行尾输入 
           i 当前光标输入
           I 行首输入
           o 当前光标下一行输入  
           O 当前光标上一行输入
               输入-命令:esc
               命令-末行: :
               末行-命令:esc

    命令模式:
        G 跳转最后一行
        gg 跳转第一行
        NG 跳转第N行
        yy 复制一行
        Nyy 复制N行
        p 粘贴
        dd 删除
        Ndd 删除N行
        d$ 删除至行尾
        d^ 删除至行首
        dw 删除一个单词
        U 撤销本行的操作
        u 撤销上一步操作 直至文本初始状态
        / 向下查找
        ?向上查找
        n 向下切换
        N 向上切换
        :nohl 取消高亮显示
        :set nu 显示行号
        :set nonu 取消行号
        ZZ 保存

    末行模式:
        w 保存
        q 退出
        !强制
        w 路径 另存为
        !命令 不中断文本使用命令
        e 打开文件  例:e /etc/shadow
        r 读取其他文件内容
        s 替换  例:sub /root/boot/g (g一行都替换)
        % s 替换全文 例:% s/root/boot/c(c有提示)
        sp 文件名 水平分割
        vsp 文件名 垂直分割
        close 关闭窗口
        ctrl + w 切换窗口

    vimtutor vim帮助手册

 九 用户和组


     用户配置文件 /etc/passwd
    用户密码文件 /etc/shadow

    su 用户名   切换用户
    su - 用户名 以新的shell环境打开目标用户

    sudo 提升权限
    visudo(直接退出:wq) 或 vim /etc/sudoers (需要强制退出:wq!)打开sudo的配置文件
       (配置文件里写的内容:用户名 host01=/sbin/useradd )创建用户:sudo /sbin/useradd lisi
    sudo -l 查看本用户被授权执行的命令
    
    useradd 创建用户:
        -u 指定uid       例:useradd -u 2000 user01  
        -d 指定家目录    例:useradd -d /tmp user02 
           -e 指定失效时间  例:useradd -e 20160101 user03 
        -M 不生成家目录  例:useradd -M user04 
        -s 指定登录shell 例:useradd -M -s /sbin/nologin user05 (能访问程序但是不能登录系统)
        -g 指定基本组    例:useradd -g wheel user06 
        -G 指定附加组    例:useradd -G wheel user07 
    

     /etc/skel/ 家目录模板
    .bash_profil 登录时应用的用户配置文件
    .bashrc 切换shell时应用的用户配置文件
    .bash_logout 注销时应用的用户配置文件

    usermod 修改已存在的用户的相关属性:
        -l 重置登录名     例:usermod -l user02 user01
        -L 锁定用户    例:usermod -L user01 锁定
        -U 解锁用户    例:usermod -U user01 解锁

    userdel删除用户 :            例:userdel user01
        -r 删除用户的同时删除家目录     例:userdel -r user01

    /etc/login.defs 用户属性配置文件

 十 组


    groupadd 添加组 例:groupadd g1   useradd u1   useradd u2
        -g 指定Gid 例:groupadd -g 30000 g1

    gpasswd :
        -a 添加一个成员 例:gpasswd -a u1 g1
        -d 删除一个成员 例:gpasswd -d u1 g1
        -M 添加多个成员 例:gpasswd -M u1,u2 g1

    usermod -G g1 u1 添加用户u1到组g1
    id g1 确认添加到组g1 
    
    chage:
        -l 查看用户密码信息     例:chage -l u1 
        -M 指定密码最大有效期     例:chage -M 30 u1 
        -d 下次登录时重设密码     例:chage -d 0 u1  
    
    date -d "+180 days" 设置账号到期时间
    hage -E 2015-06021 u1 设置用户到期时间

 十一 文件/目录的权限和归属


    访问权限:
        读取r(4):允许查看文件内容,显示目录列表
        写入w(2):允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
        可执行x(1):允许运行程序,切换目录

    归属(所有权):
        属主:拥有该文件或目录的用户账号
        属组:拥有该文件或目录的组账号

    chmod  a(代表所有用户)u(属主)g(属组)o(其他)+-= rwx  文件或目录   设置权限
                             例:chmod u+x 1.txt   chmod a=rwx 1.txt   
    chmod nnn 文件或目录         例:chmod 700 1.txt  (7代表属主添加rwx权限0表示不变)
    -R:递归修改指定目录下所有子项的全新

    chown 更改属主和属组
    chgrp 更改属组                       例:chgrp u1 1.txt
    格式:    
        chown 属主 文件或目录        例:chown root 1.txt
             chown :数组 文件或目录      例:chown :u2 1.txt
              chown 属主:属组 文件或目录  例:chown u1:u2 1.txt
    -R:递归修改指定目录下所有文件,子目录的归属

    set位权限(权限字符为s)
    SUID(4):  
        为属主设置
        使用户在执行时,暂时获得属主的权限
        当表现为S时,表示该位权限为只有suid权限;
        当表现为s时,表示该位权限为suid+x权限。

    SGID(2):
        为属组设置
        使用户在执行时,暂时获得属组的权限
        当表现为S时,表示该位权限为只有sgid权限;
        当表现为s时,表示该位权限为sgid+x权限。

    Sticky(1)粘滞位权限(权限字符为t)
        为其他人设置
        使用户只能管理自己创建的文件
        当表现为T时,表示该位权限为只有t权限;
        当表现为t时,表示该位权限为t+x权限。

 十二 权限


    acl权限
    setfacl 设置附加权限
    getfacl 查看附加权限   例:getfacl ccc 查看ccc文件的权限
    -m 添加      例:setfacl -m user:manager:rwx ccc 给用户manage添加ccc文件rwx权限                      setfacl -m group:g1:rw- ccc
    -R 递归      例:setfacl -R -m user:manager:r-- ccc 子目录也生效
    -b 清空      例:setfacl -b /ccc 
    -x 删除一条      例:setfacl -x user:manager:rwx ccc 
    default 设置默认,读未来创建的文件生效 例:setfacl -m default:user:manager:rwx /ccc

 十三 进程


    程序 进程 线程
    ctrl + z 将前台的程序放进后台并挂起
    bg 序号  将后台挂起的程序,恢复运行
    fg 序号  将后台的程序,调回前台运行
    命令 &   将命令放进后台运行
    jobs 继续查看

 十四 管理进程


    kill 通过Pid杀死进程
    killall 通过进程名杀死进程
        -9 强制终止          例:kill -9 8352  killall -9 sleep
        -l 列出信号列表

    pkill 通过特定条件杀死进程 
        -U 根据用户名踢出在线用户    例:pkill -U u3
        -t 根据接口名踢出在线用户    例:pkill -9 -t pts/2

 十五 查看进程

    
    top 动态查看进程信息
    pid 进程号 pr 优先级  
    Ni内核调用优先级  
          Virt 虚拟内存使用量 
        Res 物理内存使用量
    -P 根据CPU占用率排序
    -M 根据内存占用率排序
    -t 根据时间排序
    k 杀死进程
    q 退出
    z 彩色显示Top
 

 十六 系统启动流程


    1.BIOS 基本输入输出系统
        a.POST 开机自检
        b.根据用户设置的顺序启动计算机
    2.MBR 硬件跳转指针 512字节
        第一部分 446字节
        第二部分 64字节 DPT 16*4
        第三部分 AA 55 标示MBR分区结束
    3.引导菜单 grub lilo
        根分区在硬盘中的位置
        内核的参数
        内核镜像的位置
    4.init进程
        加载内核,激活网络设置,登录提示,图形界面等

 十七 system程序


    取代传统的SysV init程序,管理系统。
    常用命令:
        systemctl       start 服务名
                          stop  服务名
                restart 服务名
                condrestart 服务名
                reload 服务名
        systemctl status 服务名                   查看服务的运行状态  
        systemctl is-active 服务名                查看服务是否开启
        systemctl list-units --type service         查看系统中所有的服务状态
        systemctl list-units --type service --all      添加显示不活动的单位
        systemctl list-units-files --type service         查看所有单位的开机启动和不启动设置
        systemctl --failed --type service          仅显示失败的服务
        service --status-all 查看系统中的服务运行状态(只能查看到少量服务,绝大多数由systemd管理)

 十八 ssh配置文件


    etc/ssh/sshd_conf
        port 22 指定端口
        PasswordAuthentication 设置用户名密码的访问方式
        PubkeyAuthentication   设置密钥对的访问方式
        PermitRootLogin        是否允许root用户远程连接

    使用方法:
        ssh 用户名@服务器地址 远程连接   例:ssh [email protected]  
        -p 指定端口号  例:ssh -p 3000 [email protected]
        w -f 确认远程登录成功
        exit 退出远程登录
        rm ~/.ssh/known_hosts 解决拒绝登录问题
        ssh [email protected] hostname 不登录远程主机查看对方主机名
        设置ssh通过私钥文件认证,实现免密码登录
        ssh-keygen 生成一个密钥对
        ssh-copy-id [email protected]  把公钥发送给指定ip

        scp 本地文件 用户名@服务器地址:目录   上传文件      例:scp 1.txt [email protected]:/tmp
        scp 用户名@服务器地址:目录 本地文件   下载文件      例 :scp [email protected]:/tmp/3.txt ./
        -P 指定端口号  例:scp -P 3000 3.txt [email protected]:/tmp

        sftp 用户名@服务器地址                 安全的FTP连接      例:sftp [email protected]
        -oPort=端口  指定端口号  例:sftp -oPort=3000 [email protected]

 十九 网络配置


    注:或前面是红帽7系统用的命令,后面是6
    ip addr 或 ifconfig                  查看网卡情况
    ip -s link show 网卡名称            查看网卡流量
    ip route 或 route -n                  显示本地路由
    ping -c3 192.168.1.1                 确认默认网关可用
    tracepath 192.168.1.1 或traceroute 192.168.1.1  查看目标路径
    ss -ltn 或 netstat -anpt            显示本地端口
    ip addr show eno16777736 确认ip地址
    
    nmcli connection show 显示所有连接
    nmcli connection show --active 显示激活的连接
    nmcli connection show "eno16777736" 显示所有连接的配置
    nmcli connection up "static-eth0" 激活新连接 

 二十 tar命令


    用途:制作归档文件,释放归档文件
    格式:    tar [选项]...归档文件名 原文件或目录      例:tar -zcvf 1.tar.gz 1.txt
              tar [选项]...归档文件名 [-C目录目录]      例:tar -zxvf 1.tar.gz -C /usr/src
    
    常用命令选项:
        -c:创建.tar格式的包文件  
        -x:解开.tar格式的包文件   
        -v:输出详细信息
        -f:表示使用归档文件
        -p:打包时保留原始文件及目录的权限
        -t:列表查看包内文件                   例:tar -tf 1.tar.gz
        -C:解包时指定释放的目录文件夹    
        -z:调用gzip程序进行压缩或解压
        -j:调用bzip2程序进行压缩或解压
        -J:创建.xz格式压缩包

 二十一 rsync命令


    用途:在两个系统之间安全同步文件
    格式:rsync [选项] 原始位置 目标位置         例: rsync -av [email protected]:/var/log /aa
    
    常用选项:
        -a:归档模式,递归并保留对象属性,等同于-rlptgoD
        -v:显示同步过程的详细(verbose)信息
        -z:在传输文件时进行压缩(compress)
        -H:保留硬连接文件
        -A:保留ACL属性信息
        --delete:删除目标位置有而原始位置没有的文件
        --checksum:根据对象的校验和来决定是否跳过文件
        -r:递归模式,包含目录及子目录中所有文件
        -l:对于符号链接文件仍然复制为符号链接文件
        -p:保留文件的权限标记
        -t:保留文件的时间标记
        -g:保留文件的属组标记(仅超级用户使用)
        -o:保留文件的属主标记(仅超级用户使用)
        -D:保留设备文件及其他特殊文件

 二十二 at


    用途:安排一次性任务计划
    格式:at 时间   例:at 11:00

    相关命令:
        ctrl + d       编辑结束
        atq或at -l     查看任务列表
        at -c 序号     预览任务,包括设置环境
        atrm 序号      删除任务
        -q:生成队列     例:at -q g teatime tomorrow 

 二十三 cron


    用途:周期性的计划任务
    格式:分 时 日 月 周  命令的完整路径(可以用which查看完整路径)
    特殊时间格式:    -连续的时间间隔
                  ,不连续的时间间隔
                  /有规律的时间间隔
                      例:30 23 1-5 */2 1,3,5 /usr/bin/touch /root/c.txt
    
    相关命令:
        crontab -e [-u 用户名] 编辑     例:crontab -e (默认root用户)
             -l [-u 用户名] 查看
             -r [-u 用户名] 删除

 二十四 管理分区


    fdisk -l         查看磁盘分区情况
    fdisk 磁盘名         划分分区                  例:fdisk /dev/sdb
    partprobe 磁盘名     刷新分区情况,更新至分区表         例:partprobe /dev/sdb
    mkfs -t 文件系统 分区名 格式化分区                  例:mkfs -t ext4(或xfs) /dev/sdb1
    mount /dev/sdb1 /aa      把分区挂在aa目录下
    df -hT             查看系统磁盘分区类型
    
    常用命令:
        p:查看当前磁盘分区情况
        n:新建分区(p主分区 e扩展分区 l逻辑分区)
        w:保存
        q:退出不保存
        d:删除分区
        t:标记分区
 

 二十五 du 查看目录大小

    -ah:查看所有目录和文件以及子目录的大小     例:du -ah 
    -sh:查看所有目录和文件的总大小             例:du -sh

 二十六 df 查看磁盘空间使用率

    -h 显示单位大小     例:df -hT  注:df -HT 以1000单位转化
    -T 显示文件系统类型

 二十七 mount 挂载分区


    例:mount    查看挂载文件
    格式:
        mount 挂载源 挂载点
        -t 指定文件系统的类型,如:nfs,iso9660,ext4等
        -o 指定挂载参数 如:remount,loop,usrquota等

 二十八 umount 取消挂载


    格式:
        umount 挂载源
        umount 挂载点             例:umount /aa

    
    /etc/fstab 自动挂载文件    
    格式:    
        挂载源 挂载点 文件系统 挂载参数 是否备份 是否进行磁盘检测
        例:/dev/sdc1     /aa     ext4    defaults  0 0
    mount -a 应用该文件内容
    
    blkid 查看设备的UUID

 二十九 查找和管理文件


    ln 创建链接文件
    格式:
        ln [-s] 源文件或目录 链接文件或目标目录     例:ln -s 1.txt 1a,txt
        -s 建立符号(软)链接文件(省略此项则建立硬链接)(软链接类似快捷方式,硬链接类似复制,软连接删除源文件链接文件也没了,硬链接则还存在)

    locate 索引式查找文件     例:locate 1.txt 找到配置文件
    -i 忽略大小写         例:locate -i 1a.txt
    updatedb  更新locate的数据库

    find 查找符合条件的文件
    -name 以文件名作为查找条件     例:find /root -name "*.txt"
    -size 以文件大小作为查找条件     例:find /usr/bin/ -size +50k        查找/usr/bin目录中所有大于50kb的文件
    -type 以文件类型作为查找条件     例:find /root -type l
    -user 以属主作为查找类型       例:find /var/lib/ -user chrony
    -group 以属组作为查找条件      例:find /var -user root -group mail  查找/var目录中所有属主是root而且属组是mail的文件
    -perm 以权限作为查找条件    例:find / -perm 755
    -esec 表示二次筛选         例:find / -size +500k -esec ls -lh {} \;
    -ok 执行前提示用户         例:find /root -name "*.txt" -ok rm -r {} \;
    {} \; 代表前面find命令的处理结果
    -mmin 查找变化的文件         例:find /root -mmin +120 查找最近120分钟内没有更改过的文件(+表示时间内没有变化的文件,-表示有变化的)

 三十 YUM


    为了解决RPM软件包安装时的依赖关系,红帽推出的软件包管理机制

    1,常见的搭建方式
        [仓库名称]
        name=描述信息
        baseurl=软件仓库的位置
        enabled=是否开启YUM功能
        gpgcheck=是否启用校验
        基于本地  仓库的位置file://
        基于FTP   仓库的位置ftp://
        基于HTTP  仓库的位置http://

    2, 常用的选项
        yum install 安装
        yum groupinstall 安装组
        yum info 查看软件信息
        yum groupinfo 查看软件组信息
        yum search 查看符合条件的软件包
        yum remove 卸载
        yum update 升级
        yum clean all 清空yum缓存
 

 三十一 逻辑卷管理


    1 结构:
    PV(物理卷):
        整个硬盘,或使用fdisk等工具建立的普通分区
        包括许多默认4MB大小的PE(基本单元)

    VG(卷组):
        一个或多个物理卷组合而成的整体

    LV(逻辑卷)
        从卷组中分割出的一块空间,用于建立文件系统

    2 命令

    scan    扫描
    例:    vgscan 

    create  建立
        pvcreate 分区名
        vgcreate -s PE大小 卷组名 分区名
        lvcreate -L 空间 -n 逻辑卷名称 卷组名
    
    例:    pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
        vgcreate vg0 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
        lvcreate -L 1G -n lv0 vg0

    display 显示   
    例:    vgdisplay vg0
        lvdisplay /dev/vg0/lv0
        pvdisplay /dev/sdb1

    extend  扩展
    例:    lvextend -L 2G /dev/vg0/lv0
        vgextend vg1 /dev/sdb1

    reduce  减少
    remove  删除    

    mkfs -t xfs /dev/vg0/lv0 格式化

 三十二 RAID


    1 类型:raid 0  raid 1  raid 5
    2 命令:mdadm
        -a 检测设备名称
        -n 指定设备数量
        -l 指定raid级别
        -C 创建         例:mdadm -Cv /dev/md0 -a yes -n 3 -l 5 /dev/sdc /dev/sdd /dev/sde
        -v 显示输出过程
        -f 模拟设备损坏     例:mdadm /dev/md0 -f /dev/sde
        -a 添加设备         例:mdadm /dev/md0 -a /dev/sdf
        -r 移除设备         例:mdadm /dev/md0 -r /dev/sde
        -Q 查看简要raid信息     例:mdadm -Q /dev/md0
        -D 查看详细raid信息     例:mdadm -D /dev/md0 或 mdadm --detail /dev/md0
        -S 停止raid         例:mdadm -S /dev/md0
        -x 指定冗余磁盘     例:mdadm -Cv /dev/md0 -a yes -n 3 -l 5 -x 1 /dev/sdc /dev/sdd /dev/sde /dev/sdf 

 三十三 安装KVM虚拟机


    条件:
    1 检查CPU是否开启VT功能
        cat /proc/cpuinfo | grep vmx 
    2 检查KVM模块是否开启
        lsmod kvm  
        如果未开启
        modprobe kvm
    3 设置网卡桥接
        cd /etc/sysconfig/network-scripts/ 网卡目录
        vim ifcfg-br0 新建网卡
        TYPE=Bridge
        DEVICE=br0
        ONBOOT=yes
        BOOTPROTO=none
        IPADDR=192.168.1.10
        NETMASK=255.255.255.0
        GATEWAY=192.168.1.1
    
        vim ifcfg-eno16777736 真实机使用的物理网卡
        #IPADDR=192.168.1.1
        #NETMASK=255.255.255.0(屏蔽ip地址)
        ONBOOT=yes
        BRIDGE=br0 指定ip地址
    
        reboot 重启
    4 安装相关的kvm软件包
        yum -y install virt-manager  libvirt-python python-virtinst libvirt-client
        systemctl start libvirtd 开启服务
        virt-manager 打开虚拟管理器
        eject 退出抽取式设备
        cp /run/media/root/...拷贝镜像文件

 三十四 virsh 命令


    virsh list --all     列出所有虚拟机并显示状态
    virsh start test     启动名为test的虚拟机
    virsh shutdown test     正常关闭名为test的虚拟机
    virsh destroy test     立即关闭名为test的虚拟机
    virsh reboot test     重启名为test的虚拟机

 三十五 PXE服务器


    功能:    实现网络装机服务
    条件:
        服务器端:DHCP服务
              TFTP服务
        客户端:网卡必须支持PXE协议
            主板必须支持网络启动
    安装:
        1 TFTP服务
        yum -y install tftp tftp-server
        vim /etc/xinetd.d/tftp
            server_args = -s /tftpboot
            disable = no
        service xinetd restart
        mkdir /tftpboot
        chmod 777 /tftpboot/
        chkconfig xinetd on
        
        2 DHCP服务
        yum -y install dhcp
        cp /usr/share/doc/dhcp-4.1.1/dhcp.conf.sample /etc/dhcp/dhcpd.conf
        vim /etc/dhcp/dhcpd.conf
        删除subnet以下的行
        修改subnet 网段为 192.168.1.0 netmask 255.255.255.0
        添加{
            option routers 192.168.1.1;网关
            option subnet-mask 255.255.255.0;子网掩码
            range 192.168.1.50 182.168.1.100;地址池
            filename "pxelinux.0";
            next-server 192.168.1.1;
        }
        service dhcp restart
        chkconfig dhcp on
        
        3 FTP服务
        yum -y install vsftpd

        mkdir /var/ftp/pub/dvd
        chmod 777 dvd

        mount /dev/cdrom /var/ftp/pub/dvd/

        ervice vsftpd restart
        chkconfig vsftpd on    
        
        4 SYSLINUX服务
        yum -y install syslinux
        mkdir /tftpboot/pxelinux.cfg
        cp /usr/share/syslinux/pxelinux.0 /tftpboot/
        cp /var/ftp/pub/dvd/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
        chmod 644 default
        cp /var/ftp/pub/dvd/isolinux/* /tftpboot/

        5 配置kickstart服务
        yum -y install system-config-kickstart

        system-config-kickstart 图形界面配置kickstart服务
        保存
        
        cp ks.cfg /var/ftp/pub/
        
        vim /tftpboot/pexlinux.cfg/default
        在第一个label区域后面加
        ks=ftp://192.168.1.1/pub/ks.cfg
    

三十六 正则表达式 


    ^a     表示以a开头的行
    a$     表示以a结尾的行
    .     表示一位任意字符
    [0-9]     表示0-9任意数字
    [a-z]     表示a-z中任意字母
    [^a-z]     表示除了a-z外任意字母
    *     表示任意字符
    \{10\}     表示10个字符

 三十七 grep


    作用:筛选符合条件的行
    选项:    -i 忽略大小写 例:grep -i "root" /etc/passwd
        -v 反向选取   例:grep -v "root" /etc/passwd

    例:
    grep "kernel" /var/log/messages
    grep "^root" /etc/passwd 
    grep "nologin$" /etc/passwd | wc -1
    grep "^[a,b].*" /usr/share/dict/words
    grep "^[^a,b].*" /usr/share/dict/words
    grep "^a.z.*" /usr/share/dict/words
    grep "^a.\{5\}$" /usr/share/dict/words  
    grep "processor" /proc/cpuinfo | wc -l      查看有几个cpu
    grep "^.\{9\}z$" /usr/share/dict/words      10个字符并以z结尾
    grep "^[a,b,c]...s" /usr/share/dict/words     以abc开头,第五位只能是s行
    grep "^[0-9][0-9].*" /usr/share/dict/words     以两位数字开头的行
    grep "^[a,b,c].*[^a,b,b]$" /usr/share/dict/words 以abc开头且不以abc结尾
    grep "^[a-z].*[A-Z]$" /usr/share/dict/words     以小写字母开头大写字母结尾

 三十八 cut


    作用:裁剪工具
    选项:
        -b 以字节为单位     例:cut -b 1 cut.txt  数字表达方式:1,2,3或1-3,5或-3(开头到第三个字节)
        -c 以字符为单位     例:cut -c 1 cut.txt
        -f 以域为单位   
        -d 指定分隔符划分不同的域  例:cut -d ":" -f 2 cut.txt

 三十九 sort 例:sort sort.txt


    作用:排序
    选项:
        -b 忽略每行前面开始出的空格字符      例:sort -b sort.txt
        -c 检查文件是否已经按照顺序排序
        -f 排序时,忽略大小写字母
        -M 将前面3个字母依照月份的缩写进行排序
        -n 依照数值的大小排序             例:sort -n sort.txt
        -o<输出文件> 将排序后的结果存入指定的文件 例:sort -r 1.txt -o 1.txt
        -r 反向排序                   例:sort -r sort.txt
        -t 指定分隔字符划分不同的域
        -k 指定所选取的域             例:sort -n -t ":" -k 2 sort.txt
        -u 合并重复行排序             例:sort -bu sort.txt

 四十 uniq


    例:uniq uniq.txt
    作用:合并重复值
    选项:
        -c 合并重复项,并显示合并的行数 例:uniq -c uniq.txt
        -d 合并显示重复行        例:uniq -d uniq.txt
        -D 不合并显示重复的所有行    例:uniq -D uniq.txt
        -u 只显示文件中不重复的各行    例:uniq -u uniq.txt

 四十一 awk


    作用:过滤
    选项:
        -F 指定分隔符   例:awk -F: '{print $1}' /etc/passwd
        print 指定选择的区域

 四十二 sed


    作用:修改文本内容
    选项:
        -n 安静模式 例:sed -n '1p' sed.txt 只显示第一行
        -a 新增  例:sed '1,3a ff\ngg' sed.txt (\n是换行符)
        -c 替换
        -d 删除  例:sed '1d' sed.txt 数字也可以写成1-3或1,3或$或2,$
        -i 插入
        -e 编辑
        -p 显示行 例:sed '1p' sed.txt 显示第一行和所有内容 
        注:cat 1.txt 2.txt > 2.txt  不能这样查看

 四十三 NICE


    设置进程优先级
    -20 - 19之间 数字越小 优先级越高
    nice -n 优先级 进程 对新进程设置优先级           例:nice -n 10 sha1sum /dev/zero &
    renice -n 优先级 进程 对已经运行的进程设置优先级 例:(sudo)renice -n -10 6149 设置优先级
    top界面下 r 可进入优先级设置界面
    seq 设定范围    例:seq 8 1-8
    sha1sum/md5     加密
    ps u $(pgrep sha1sum)     查看sha1sum进程
    killall shalsum     关掉所有进程

 四十四 查看


    getenforce     查看状态   
    setenforce 0/1     关闭/开启(临时生效) 
    
    永久开启:
    vim /etc/selinux/config
    selinux=xxx

    ENFORCING 强制开启
    PERMISSIVE 宽容级别
    DISABLED 关闭

四十五 设置

    安全上下文由user role type 三部分组成
    安全上下文设置:
        semanage fcontext -a -t 上下文 文件或目录
        restorecon -Rv 文件或目录
    布尔值设置:
        getsebool -a 查看所有布尔值
        setsebool -P 模块 on/off


    例:
        yum -y install httpd 安装网站服务器

        网页默认地址:
        cd /var/www/html/   网页文档默认地址
        vim index.html   创建首页
        systemctl start httpd.service 开启网站服务

        创建新地址:
        mkdir /aa 创建新目录
        echo "test!" > /aa/index.html  创建文件
        vim /etc/httpd/conf/httpd.conf 修改配置
        systemctl restart httpd.service 重启服务
        ls -Z /var/www/html/index.html 查看上下文
        semanage fcontext -a -t httpd_sys_content '/aa(/.*)?' 设置默认值
        restorecon -Rv /aa/  刷新

        root用户访问zhangsan用户的网页:
        vim /etc/httpd/conf.d/userdir.conf 用户个人主页配置文件
        删除UserDir disabled 打开UserDir public_html 
        systemctl restart httpd.service 重启
        useradd zhangsan 创建用户(新窗口)
        passwd zhangsan
        su - zhangsan
        mkdir public_html
        cd public_html/
        vim index.html
        chmod 711 /home/zhangsan 修改权限
        getsebool -a | grep home
        setsebool -P httpd_enable_homedirs on  设置布尔值(返回原来窗口)

 四十六 IPA

客户端配置DNS
    yum -y install bind 安装dns
    cd /etc/
    vim named.conf 
    修改:
    listen-on port 53 {any;};
    allow-query  {any;};
    cp named.rfc1912.zones named.fc1912.zones.bak 备份
    vim named.rfc1912.zones 配置区域文件
    只修改保留这些:
    zone "example.com" IN{
    type master;
    file "example.localhost";
    allow-update {none;};
    }
    cp -p named.localhost example.localhost
    vim example.localhost 配置数据文件
    @符号改成example.com
    NS   dns.example.com
    MX 5 mail.example.com 
    dns    A  192.168.1.5(主机地址)
    mail   A  192.168.1.50(地址随便写)
    server A  192.168.1.5(服务器)
    client A  192.168.1.6(客户端)
    mv named.localhost example.localhost
    systemctl start named.service 开启dns服务
    nslookup 解析域名
    service.example.com
    client.example.com
    exit


服务器配置IPA
    yum -y install ipa-server
    yum -y install bind-dyndb-ldap
    echo "192.168.1.5 server.example.com" >> /etc/hosts
    ipa-server-install --setup-dns
    authconfig --enablemkhomedir --update
    systemctl enable sssd.service
    init6 开机重启


配置防火墙
    systemctl stop firewalld  关闭防火墙


在客户端安装
    setenforce 0
    systemctl stop firewalld
    vim /etc/resolv.conf
    添加search example.com
            nameserver 192.168.1.5
    nslookup 解析
    server.example.com
    client.example.com
    yum install -y authconfig authconfig-gtk ipa-client
    authconfig-gtk 打开认证界面
    (LDAP
    dc=example,dc=com
    https://server.example.com/ipa/config/ca.crt
    去掉√
    EXAMPLE .COM
    SERVER.EXAMPLE.COM
    SERVER.EXAMPLE.COM
    )
    ipa-client-install --domain=example.com --no-ntp --realm=EXAMPLE.COM --mkhomedir
    server.example.com
 

 四十七 SMB


服务器上创建一个名为work的共享
yum -y install samba
cd /etc/samba/
ls
mv smb.conf smb.conf.bak
cat smb.conf.bak
cat smb.conf.bak | grep -v "^#"
cat smb.conf.bak | grep -v "^#" | grep -v "^;"
cat smb.conf.bak | grep -v "^#" | grep -v "^;" | grep -v "^$"
cat smb.conf.bak | grep -v "^#" | grep -v "^;" | grep -v "^$" > /etc/samba/smb.conf
vim /etc/samba/smb.conf
(把注释信息删除
添加[work]
comment = smaba
path = /aa
guest ok = yes)
useradd zhangsan
passwd zhangsan
pdbedit -a -u zhangsan
pdbedit -L 查看所有用户
systemctl start smb

客户端配置
yum -y install cifs-utils
mkdir /aa
vim /aa/zhangsan.smb
(usename=zhangsan
password=123
domain=MYGROUP)
mkdir /home/zhangsan/bb
chmod 770 /aa
chmod 600 /aa/zhangsan.smb
vim /etc/fstab
添加//server.example.com/work    /home/zhangsan/bb   cifs  credentials=/aa/zhangsan.smb 0 0
mount -a
cd /home//zhangsan/bb/  (测试文件,需提前在服务器创建文件)

几年前的笔记了,分享一下,可能有些内容和现在有些改动,请指正,谢谢!
 

你可能感兴趣的:(笔记,linux)