美文网首页
linux入门知识点

linux入门知识点

作者: TonyCatM | 来源:发表于2020-05-26 18:20 被阅读0次

    linux目录结构树形结构

    / 根目录:所有数据都在此目录下(Linux系统的起点)

    /dev:存放设备相关数据

    ls      格式 ls [选项]  [目录或文件名]

    常用命令选项   -l     以长格式显示

    cat  查看文本内容

    cat   -n  (加上行号)

    命令字     选项     参数1    参数2

    查看内核版本         uname   -r   

    查看cpu                   lscpu

    检查内存大小、空闲情况         cat  /proc/meminfo

    #临时设置IP        ifconfig eth0 192.168.1.1 

    ######################################################

    创建目录

    • mkdir — Make Directory

    – 格式:mkdir  [/路径/]目录名...

    #########################################################

    • touch命令

    – 用途:新建空文件

    – 格式:touch 文件名...

    #####################################

    文本内容操作

    • less分屏阅读工具,查看内容较多的文件     

    • 格式:less [选项] 文件名...

    – 优势:支持前后翻页

    • 基本交互操作

    [root@A ~]# less /etc/passwd

    – 按 上 下键进行滚动

    – 按 /root 全文查找root字符串

    – 按 q 退出

    ######################################

    • head、tail 命令

    – 格式:

      head -n 数字  文件名

        tail -n 数字  文件名

    [root@A ~]# tail -1 /etc/passwd

    [root@A ~]# head /etc/passwd    #默认显示头10行

    #############################################

    • grep工具

    – 用途:输出包含指定字符串的行

    ]# grep root /etc/passwd  #在/etc/passwd中过滤包含root的行

    ###################################################

    pwd命令查看当前位置

    ####################################################

    • 快捷键

    – Ctrl + c:废弃当前编辑的命令行(结束正在运行的命令)

    – Esc + . 或 Alt + . :粘贴上一个命令的参数

    – Ctrl + l:清空整个屏幕

    #####################################################

    Linux:识别光盘内容,在Linux中访问设备内容,必须通过访问点

          光盘------->光驱设备---------->目录 /abc (访问点)

                /dev/cdrom

    [root@A ~]# ls /dev/cdrom#青色:代表快捷方式

    /dev/cdrom

    • 使用mount命令

    – 格式:mount 设备路径    挂载点目录      #让目录成为设备的访问点

    [root@A ~]# mkdir /abc

    [root@A ~]# ls /abc

    [root@A ~]# mount  /dev/cdrom  /abc

    mount: /dev/sr0 写保护,将以只读方式挂载

    [root@A ~]# ls /abc/

    [root@A ~]# ls /abc/Packages/

    总结:

        1.Linux访问点为一个目录

        2.mount命令,让目录成为设备的访问点

          3.一个设备可以有多个访问点,一个访问点不可以有多个设备

    卸载:  umount  挂载点路径

    [root@A ~]# ls /abc

    [root@A ~]# umount /abc

    [root@A ~]# ls /abc

    [root@A ~]# mkdir /dvd

    [root@A ~]# mount /dev/cdrom  /dvd

    [root@A ~]# ls /dvd

    [root@A ~]# mount /dev/cdrom  /abc

    [root@A ~]# ls /abc

    注意事项:

        1.卸载:当前路径不要在访问点路径内

      [root@A dvd]# umount /dvd/

      umount: /dvd:目标忙。

            (有些情况下通过 lsof(8) 或 fuser(1) 可以

            找到有关使用该设备的进程的有用信息)

      [root@A dvd]#

          2.访问点的选择,建议自己创建目录

    ###########################################

    [root@A lisi]# useradd tom #创建用户tom

    [root@A lisi]# useradd zhangsan    #创建用户zhangsan

    ##############################################

    • ls — List

    – 格式:ls [选项]... [目录或文件名]

    • 常用命令选项

    – -l:以长格式显示

    – -A:包括名称以 . 开头的隐藏文档

    – -d:显示目录本身(而不是内容)的属性

    – -h:提供易读的容量单位(K、M等)

    ###############################################

    使用通配符

    • 针对不确定的文档名称,以特殊字符表示

    – *:任意多个任意字符

    – ?:单个字符

    [root@A ~]# ls  /boot/vm*    #匹配以vm开头

    [root@A ~]# ls  /dev/tty*    #匹配以tty开头

    [root@A ~]# ls  /etc/*tab    #匹配以tab结尾

    [root@A ~]# ls  /etc/*.conf  #匹配以.conf结尾

    [root@A ~]# ls  /etc/re*.conf #匹配以re开头并且以.conf结尾

    [root@A ~]# ls  /dev/tty? 

    [root@A ~]# ls  /dev/tty??

    [root@A ~]# ls  /dev/tty???

    • 针对不确定的文档名称,以特殊字符表示

    – [a-z]:多个字符或连续范围中的一个,若无则忽略

    – {a,min,xy}:多组不同的字符串,全匹配

    [root@A ~]# ls /dev/tty[1-3]

    [root@A ~]# ls /dev/tty[7-8]

    [root@A ~]# ls /dev/tty[1-9]

    [root@A ~]# ls /dev/tty{1,3,5,7,9,13}

    [root@A ~]# ls /dev/tty{S0,S1,S2,S3}

    ####################################################

    别名的定义:简化复杂较长的命令

    • 查看已设置的别名

    – alias [别名名称]

    • 定义新的别名

    – alias 别名名称= '实际执行的命令行'

    • 取消已设置的别名

    – unalias [别名名称]

    [root@A /]# hn

    bash: hn: 未找到命令...

    [root@A ~]# alias  hn='hostname'  #定义别名hn

    [root@A ~]# hn

    [root@A /]# alias        #查看当前生效的别名

    [root@A /]# unalias hn  #删除hn别名

    [root@A /]# hn

    bash: hn: 未找到命令...

    [root@A /]# alias

    [root@A ~]# alias  myls='ls -lh'

    [root@A ~]# myls /root

    ##################################################

    mkdir 创建目录

    • mkdir — Make Directory

    – 格式:mkdir [-p] [/路径/]目录名...

    ]# mkdir -p  /vod/movie/cartoon  #-p表示连父目录一起创建

    ]# ls -R /vod/    #递归显示

    ########################################################

    rm 删除

    • rm — Remove

    – 格式:rm [选项]... 文件或目录...

    • 常用命令选项

    – -r、-f:递归删除(含目录)、强制删除

    [root@A /]# mkdir /opt/abc01

    [root@A /]# mkdir /opt/abc02

    [root@A /]# touch /opt/1.txt

    [root@A /]# ls /opt/

    1.txt  abc01  abc02

    [root@A /]# rm -rf /opt/abc*

    [root@A /]# ls /opt/

    1.txt

    [root@A /]# rm -rf /opt/1.txt

    [root@A /]# ls /opt/

    ################################################

    mv 移动/改名

    • mv — Move

    – 格式:mv [选项]... 原文件...    目标路径

    [root@A /]# rm -rf /opt/*

    [root@A /]# ls /opt/

    [root@A /]# mkdir /opt/nsd

    [root@A /]# touch /opt/1.txt

    [root@A /]# ls /opt/

    1.txt  nsd

    [root@A /]# mv /opt/1.txt /opt/nsd/

    [root@A /]# ls /opt/

    nsd

    [root@A /]# ls /opt/nsd/

    重命名:路径不变的移动

    [root@A /]# ls /opt/

    nsd

    [root@A /]# mv /opt/nsd/  /opt/abc

    [root@A /]# ls /opt/

    [root@A /]# mv /opt/abc/  /opt/student

    [root@A /]# ls /opt/

    [root@A /]# mv /opt/student  /opt/haha

    [root@A /]# ls /opt/

    #############################################

    cp 复制

    • cp — Copy

    – 格式:cp [选项]... 原文件...    目标路径

    • 常用命令选项

    – -r:递归,复制目录时必须有此选项         

    [root@A /]# ls /mnt/

    nsd03

    [root@A /]# cp /etc/passwd  /mnt/

    [root@A /]# ls /mnt/

    [root@A /]# cp /etc/redhat-release  /mnt/

    [root@A /]# ls /mnt/

    [root@A /]# cp -r /home/  /mnt

    [root@A /]# ls /mnt

    [root@A /]# cp -r /boot/ /mnt/

    [root@A /]# ls /mnt/

    复制时出现同名重复,取消提示

    在本次操作临时取消别名

    [root@A /]# cp -r /boot/ /mnt/

                按Ctrl + c 结束

    [root@A /]# \cp -r /boot/ /mnt/

    复制支持两个及以上多个参数:

          永远认为最后一个参数为目标路径,其他的所有参数都作为源

    [root@A /]# rm -rf /mnt/*

    [root@A /]# ls /mnt/

    [root@A /]# cp -r /etc/passwd /etc/fstab /boot/ /home/ /etc/redhat-release  /mnt/

    [root@A /]# ls /mnt/

    复制支持一个点的应用:  .表示当前路径

    [root@A /]# cd /mnt/

    [root@A mnt]# ls

    [root@A mnt]# pwd

    [root@A mnt]# cp /etc/hosts  .

    [root@A mnt]# ls

    [root@A mnt]# cd /etc/pki/CA

    [root@A CA]# pwd

    [root@A CA]# ls

    [root@A CA]# cp /etc/shells  .

    [root@A CA]# ls

    复制时,可以重命名目录路径 文档的名称

    [root@A /]# cp /etc/redhat-release  /mnt/abc

    [root@A /]# ls /mnt/

    [root@A /]# cat /mnt/abc

    [root@A /]# cat /etc/redhat-release

    [root@A /]# rm -rf /mnt/*

    [root@A /]# cp -r /home/  /mnt/test 

                #将home放到mnt下改名为test

    [root@A /]# cp -r /home/  /mnt/test

                #将home放到/mnt/test目录下

    [root@A /]# ls /mnt/

    [root@A /]# ls /mnt/test/

    ###################################################

    vim文本编辑器:修改文件内容

    模式: 命令模式      输入模式(插入模式)      末行模式

    [root@server0 ~]# vim  /opt/a.txt   

            i 键

    命---------------->输入模式(按Esc 键回到命令模式)

    式---------------->末行模式(按Esc 键回到命令模式)

                  : 键

        末行模式  :wq  保存退出

        末行模式  :q!  不保存退出

    #############################################

    Linux scp 命令用于 Linux 之间复制文件和目录。

    scp /home/space/music/1.mp3 root@www.runoob.com(ip):/home/root/others/music

    scp /home/space/music/1.mp3 root@www.runoob.com(ip):/home/root/others/music/001.mp3

    scp /home/space/music/1.mp3 www.runoob.com(ip):/home/root/others/music

    scp /home/space/music/1.mp3 www.runoob.com(ip):/home/root/others/music/001.mp3

    #######################################################################

    [root@room9pc01 ~]# ssh 用户名@对方的IP地址

    [root@room9pc01 ~]# ssh root@172.25.0.11

    [root@server0 ~]# exit

    登出

    ########################################################################

    永久别名配置:/root/.bashrc #开启一个新的终端才会生效

    [root@room9pc01 ~]# vim /root/.bashrc

    [root@room9pc01 ~]# head -3 /root/.bashrc

    # .bashrc

    alias  gos='ssh  -X  root@172.25.0.11'

    alias  god='ssh  -X  root@172.25.0.10'

    ############################################################

    • 使用wget下载工具

    – wget 软件包的URL网址

    – wget 软件包的URL网址  -O(大写)  /目录路径/新文件名

    ###########################################################

    安装软件包

    • RPM Package Manager,RPM包管理器

    – rpm -q  软件名...    #查询软件是否安装

    – rpm -ivh 软件名-版本信息.rpm...  #安装软件包

    – rpm -e  软件名...    #卸载软件包

    [root@server0 ~]# rpm -q vsftpd

    未安装软件包 vsftpd

    [root@server0 ~]# rpm -q firefox

    firefox-24.5.0-1.el7.x86_64

    [root@server0 ~]# rpm -q bash

    bash-4.2.45-5.el7.x86_64

    [root@server0 ~]# rpm -q zip

    zip-3.0-10.el7.x86_64

    [root@server0 ~]# rpm -q httpd

    未安装软件包 httpd

    [root@server0 ~]# rpm -q haha

    未安装软件包 haha

    [root@server0 ~]# rpm -q hostname

    hostname-3.13-3.el7.x86_64

    ##############################

    [root@server0 ~]# rpm -q vsftpd #查询软件包是否安装

    未安装软件包 vsftpd

    [root@server0 ~]# rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm

    警告:vsftpd-3.0.2-9.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

    准备中...                                            ################################# [100%]

    正在升级/安装...

      1:vsftpd-3.0.2-9.el7                              ################################# [100%]

    [root@server0 ~]#rpm -ql vsftpd  #查询安装的清单

    [root@server0 ~]# rpm -q  vsftpd 

    vsftpd-3.0.2-9.el7.x86_64

    [root@server0 ~]# rpm -e  vsftpd  #卸载软件程序

    [root@server0 ~]# rpm -q  vsftpd

    ########################################################################

    Yum软件包仓库

    服务:自动解决依赖关系安装软件包

    服务端: 1.众多的软件包  2.仓库数据文件  3.搭建Web服务或FTP服务

              总结:搭建Web服务或FTP服务,共享光盘所有内容

                Web服务使用协议:

                http:超文本传输协议

                https:安全超文本传输协议

                FTP服务使用协议:

                FTP:文件传输协议

      修改配置文件:/etc/yum.repos.d/*.repo

      客户端配置文件,错误的文件 会影响正确的配置文件

    [root@server0 ~]# rm -rf /etc/yum.repos.d/*

    [root@server0 ~]# vim  /etc/yum.repos.d/dvd.repo

    [rhel7]              #仓库标识       

    name=RHEL7.0          #仓库描述信息

    baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/            #服务端具体位置

    enabled=1            #是否启用本文件

    gpgcheck=0            #是否检测红帽签名信息

    [root@server0 ~]#yum repolist  #列出仓库信息

    Yum仓库的使用                                         

    1.安装软件包       

    [root@server0 ~]# yum -y install httpd

    [root@server0 ~]# yum -y install sssd

    [root@server0 ~]# yum -y install system-config-kickstart

    [root@server0 ~]# yum -y install gcc

    [root@server0 ~]# yum -y install dhcp

    [root@server0 ~]# yum -y install mariadb-server

    2.卸载软件包

    [root@server0 ~]# yum  remove  httpd

    [root@server0 ~]# yum  remove  dhcp

    3.清空Yum缓存

    [root@server0 ~]#yum clean all

    ############################################################

    升级内核

    1.下载新的内核软件包

    [root@server0 ~]# wget http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm

    [root@server0 ~]# ls

    ]# uname -r

    ]# rpm -ivh kernel-3.10.0-123.1.2.el7.x86_64.rpm

    ]# uname -r

    ]# reboot

    [root@room9pc01 ~]# gos

    [root@server0 ~]# uname -r    #查看内核版本

    3.10.0-123.1.2.el7.x86_64

    #########################################################

     永久设置主机名

    [root@server0 ~]#vim  /etc/hostname  #永久主机名配置文件

    nsd.tedu.cn

    [root@server0 ~]# hostname

    nsd.tedu.cn

    [root@server0 ~]# exit

    登出

    Connection to 172.25.0.11 closed.

    [root@room9pc01 ~]# gos

    Last login: Thu Jan  3 16:21:18 2019 from 172.25.0.250

    [root@nsd ~]# hostname

    nsd.tedu.cn

     永久配置IP地址  子网掩码  网关地址

    网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

    通过命令nmcli进行配置

    1.利用nmcli命令,进行查看网卡识别的名称

    [root@nsd ~]# nmcli connection show

    名称       

    System eth0 

    2.利用nmcli命令,进行配置

    ]#nmcli connection modify 'System eth0'   

      ipv4.method manual                                 

      ipv4.addresses '172.25.0.110/24  172.25.0.254'       

      connection.autoconnect yes

    ]# nmcli connection  修改  '网卡名称'

      ipv4.方法  手工配置

      ipv4.地址  'IP地址/子网掩码    网关地址'

        每次开机自动启用配置

    3.激活配置

    ]# nmcli connection up 'S(tab)'         

    ]# ifconfig

    ###############################################################

    DNS服务器地址

        告知本机解析域名,去寻找那台机器

    [root@nsd ~]#vim /etc/resolv.conf  #指定永久DNS服务器

    nameserver  172.25.254.254

    [root@nsd ~]# cat /etc/resolv.conf

    测试DNS解析的命令

    [root@nsd ~]#nslookup classroom.example.com

    [root@nsd ~]# nslookup desktop0.example.com

    网络参数配置顺序:

        首先配置主机名,然后配置配置IP地址  子网掩码  网关地址,最后指定永久DNS服务器

    查看网关地址命令:

    [root@nsd ~]#route

        Gateway       

          172.25.0.254   

    ###########################################################

    设置永久别名

    永久别名配置:/root/.bashrc  #开启一个新的终端才会生效

    [root@room9pc01 ~]#vim /root/.bashrc

    [root@room9pc01 ~]# head -3 /root/.bashrc

    # .bashrc

    alias  gos='ssh  -X  root@172.25.0.11'

    alias  god='ssh  -X  root@172.25.0.10'

    ###########################################################

    管理用户和组

      用户账户: 登陆操作系统,不同用户具备不同权限

      组:方便管理用户,进行分类

      用户账户唯一标识:  UID(编号)  GID(编号)

      管理员的UID永远为0

      组帐号:  基本组    附加组(从属组)

      基本组:由Linux系统创建,并且由系统将用户加入,与用户同名

      附加组:由系统管理员创建,并且由系统管理员加入

      Linux中一个用户至少属于一个组

    ####################################################

    添加用户

    所有用户基本信息存放在 /etc/passwd 文件

    [root@server0 ~]# head  -1  /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    用户名:密码占位符:UID:基本组GID:用户描述信息:用户的家目录:解释器

    • 使用 useradd 命令

    – useradd [选项]... 用户名

    • 常用命令选项

    – -u 用户id、-d 家目录路径、-G 附加组、-s 指定解释器程序

    [root@server0 ~]# useradd nsd01

    [root@server0 ~]# id dc        #查看用户基本信息

    id: dc: no such user          #没有此用户

    [root@server0 ~]# id nsd01      #查看用户基本信息

    [root@server0 ~]# useradd nsd02

    [root@server0 ~]# id nsd02

    [root@server0 ~]# useradd nsd03

    [root@server0 ~]# id nsd03

    [root@server0 ~]# useradd -u 1500  nsd04  #创建用户指定UID

    [root@server0 ~]# id nsd04

    -d 家目录路径、-G 附加组

    [root@server0 ~]# useradd -d /mnt/nsd06  nsd06

    [root@server0 ~]# ls /mnt/

    nsd06

    [root@server0 ~]# grep nsd06 /etc/passwd

    nsd06:x:1502:1502::/mnt/nsd06:/bin/bash

    [root@server0 ~]# groupadd tarena        #创建tarena组

    [root@server0 ~]# useradd -G tarena nsd07

    [root@server0 ~]# id nsd07

    [root@server0 ~]# useradd -G tarena nsd08

    [root@server0 ~]# id nsd08

    -s 指定解释器程序

    /sbin/nologin:禁止用户登陆系统

    [root@server0 ~]# useradd -s /sbin/nologin nsd09

    [root@server0 ~]# grep nsd09 /etc/passwd

    nsd09:x:1504:1505::/home/nsd09:/sbin/nologin

    [root@server0 ~]# useradd -s /sbin/nologin nsd10

    [root@server0 ~]# grep nsd10 /etc/passwd

    nsd10:x:1505:1506::/home/nsd10:/sbin/nologin

    ##################################################

    设置登录密码

    • 使用 passwd 命令

    – passwd [用户名]

    [root@server0 ~]# passwd nsd01

    更改用户 nsd01 的密码 。

    新的 密码:                              #输入 密码

    无效的密码: 密码少于 8 个字符

    重新输入新的 密码:                  #重新输入密码

    passwd:所有的身份验证令牌已经成功更新。

    [root@server0 ~]# su - nsd01    #命令行临时切换到nsd01用户

    [nsd01@server0 ~]$ passwd

    Changing password for user nsd01.

    Changing password for nsd01.

    (current) UNIX password:          #输入旧密码

    New password:                      #输入新密码

    Retype new password:              #重新输入新密码

    passwd: all authentication tokens updated successfully.

    [nsd01@server0 ~]$ exit        #退回到root用户

    successfully(成功)

    #######################################################

    重定向输出:将命令的输出,写入到文本文件中       

      >:覆盖重定向

      >>:追加重定向

    [root@server0 ~]# ls --help  > /opt/ls.txt

    [root@server0 ~]# less /opt/ls.txt

    [root@server0 ~]# hostname

    [root@server0 ~]# hostname > /opt/ls.txt

    [root@server0 ~]# cat /opt/ls.txt

    [root@server0 ~]# hostname >> /opt/ls.txt

    [root@server0 ~]# cat /opt/ls.txt

    [root@server0 ~]# tail -2 /etc/passwd >> /opt/ls.txt

    [root@server0 ~]# cat /opt/ls.txt

    [root@server0 ~]# echo 123456 

    [root@server0 ~]# echo 123456 >> /opt/ls.txt

    [root@server0 ~]# cat /opt/ls.txt

    [root@server0 ~]# echo nsd.qq.com > /etc/hostname

    [root@server0 ~]# cat /etc/hostname

    [root@server0 ~]# exit

    [root@room9pc01 ~]# gos

    ]# hostname

    ]# echo nameserver 172.25.254.254

    ]# echo nameserver 172.25.254.254 > /etc/resolv.conf

    ]# cat /etc/resolv.conf

    ]# echo 123 > /opt/1.txt

    ]# cat /opt/1.txt

    管道  |  :  将前面命令的输出,传递到后面命令,作为后面命令的参数

      显示/etc/passwd文件 8~12行内容?

    [root@nsd ~]# head -12 /etc/passwd

    [root@nsd ~]# head -12 /etc/passwd  |  tail -5

    [root@nsd ~]# head -12 /etc/passwd  | tail -5 | cat -n

    [root@nsd ~]# cat -n /etc/passwd | head -12 | tail -5

    [root@nsd ~]# ifconfig | less

    [root@nsd ~]# ifconfig | head -2

    ]# cat -n /etc/passwd | head -12 | tail -5

    ]# cat -n /etc/passwd | head -12 | tail -5  > /opt/a.txt

    非交互式设置密码:

    – echo '密码'  |  passwd --stdin 用户名

    [root@nsd ~]# echo 123 | passwd --stdin nsd01

    更改用户 nsd01 的密码 。

    passwd:所有的身份验证令牌已经成功更新。

    [root@nsd ~]# echo redhat | passwd --stdin nsd02

    更改用户 nsd02 的密码 。

    passwd:所有的身份验证令牌已经成功更新。

    用户密码信息存放在 /etc/shadow 文件

    [root@nsd ~]# tail -1 /etc/shadow

    nsd10:!!:17900:0:99999:7:::

    当第二个字段为!!时,代表锁定该用户

    [root@nsd ~]# echo 1 | passwd --stdin nsd10

    更改用户 nsd10 的密码 。

    passwd:所有的身份验证令牌已经成功更新。

    [root@nsd ~]# tail -1 /etc/shadow

    nsd10:$6$bOG/zYu7$dQID7YKMq3dSWzMg386xPECbLxRq9M/.uPry1S4IkwTU98NUK/.x0RVbUGUAOSMhHz0Nmmci2TSjxROXRNVs/1:17900:0:99999:7:::

    用户名:密码加密字符串:上一次修改密码时间

                                    1970-1-1~2019-1-1

    查看系统时间:

      date

    修改时间:  date  -s  '年-月-日  时:分:秒'

    [root@nsd ~]# date

    [root@nsd ~]# date -s '2008-10-1  12:10:8'

    [root@nsd ~]# date

    2008年 10月 01日 星期三 12:10:09 CST

    [root@nsd ~]#

    计算器bc

              加 +      减 -      乘 *        除 /

    [root@nsd ~]# bc 

    1+1

    2

    ##################################################

    修改用户属性

    • 使用 usermod 命令

    – usermod [选项]... 用户名

    • 常用命令选项

    – -u 用户id、-d 家目录路径、-s 登录Shell、-G 附加组

    [root@server0 ~]# useradd nsd12

    [root@server0 ~]# id nsd12

    [root@server0 ~]# grep nsd12 /etc/passwd

    ]# usermod -u 1600 -d /mnt/nsd12  -G tarena  -s /sbin/nologin  nsd12

    [root@server0 ~]# id nsd12

    [root@server0 ~]# grep nsd12 /etc/passwd

    #####################################################

    删除用户

    • 使用 userdel  命令

    – userdel [-r] 用户名

      -r:连同家目录一并删除

    Permission denied:权限不足

    [root@server0 ~]# userdel  nsd02

    [root@server0 ~]# id  nsd02

    [root@server0 ~]# userdel  nsd03

    [root@server0 ~]# id  nsd03

    ####################################################

    管理组账号

    添加组

    组基本信息存放在 /etc/group 文件

    [root@server0 ~]# grep stugrp /etc/group

    stugrp:x:1509:

      组名:密码占位符:组的GID:组成员列表

    • 使用 groupadd 命令

    – groupadd [-g 组ID] 组名

    [root@server0 ~]# groupadd stugrp        #创建组stugrp

    [root@server0 ~]# grep stugrp /etc/group

    stugrp:x:1509:

    [root@server0 ~]# useradd harry

    [root@server0 ~]# useradd natasha

    [root@server0 ~]# useradd jack

    [root@server0 ~]# useradd kenji

    管理组成员

      组的密码信息存放在 /etc/gshadow 文件

    • 使用 gpasswd 命令

    – gpasswd -a 用户名 组名  #将用户添加到组

    – gpasswd -d 用户名 组名  #将用户从组删除

    [root@server0 ~]# gpasswd -a harry stugrp

    [root@server0 ~]# grep stugrp /etc/group

    [root@server0 ~]# gpasswd -a kenji stugrp

    [root@server0 ~]# grep stugrp /etc/group

    [root@server0 ~]# gpasswd -a natasha stugrp

    [root@server0 ~]# grep stugrp /etc/group

    [root@server0 ~]# gpasswd -d harry stugrp

    [root@server0 ~]# grep stugrp /etc/group

    [root@server0 ~]# gpasswd -a jack stugrp

    [root@server0 ~]# grep stugrp /etc/group

    修改组属性

    • 使用 groupmod 命令

    – groupmod [-g 组ID] [-n 新组名]  组名

    删除组

    • 使用 groupdel 命令                 

    – groupdel 组名

      不能删除用户的基本组

    ###################################################

    tar备份与恢复

      1.减少占用的硬盘空间  2.将零散的数据进行整合

    • 归档的含义

    – 将许多零散的文件整理为一个文件

    – 文件总的大小基本不变

    • 压缩的含义

    – 按某种算法减小文件所占用空间的大小

    – 恢复时按对应的逆向算法解压

    常见的压缩格式及命令工具:

    .gz ---> gzip

      .bz2 ---> bzip2

      .xz ---> xz

    tar进行归档及压缩(打包)

    格式:

      tar  选项      /路径/压缩包的名字      /路径/源文档1  /路径/源文档2

    tar进行释放(解包)

    格式:

      tar  选项  /路径/压缩包的名字    选项    释放的路径

    • tar 集成备份工具

    – -c:创建归档

    – -x:释放归档

    – -f:指定归档文件名称(所有的选项的最后)

    – -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理

    – -t:显示归档中的文件清单

    – -C:指定释放的路径

    ]# tar -zcf /opt/file.tar.gz  /home/  /boot/

    ]# ls /opt/

    ]# tar -jcf /opt/abc.tar.bz2  /etc/passwd  /etc/shadow

    ]# ls /opt/

    ]# tar -Jcf /opt/nsd.tar.xz  /etc/group  /etc/gshadow

    ]# ls /opt/

    ]# date -s '2019-1-4 15:50'         

    ]#tar -xf /opt/file.tar.gz -C /mnt/

    ]# ls /mnt/

    ]# ls /mnt/home/

    ]# ls /mnt/boot/

    ]# tar -xf /opt/nsd.tar.xz -C /mnt/

    ]# ls /mnt/

    ]# ls /mnt/etc/

    ]# tar -xf /opt/abc.tar.bz2 -C /mnt/

    ]# ls /mnt/etc/

    使用 tar 工具完成以下备份任务:

    – 创建一个名为 /root/backup.tar.bz2 的归档文件

    – 其中包含 /usr/local 目录中的内容

    – tar 归档必须使用 bzip2 进行压缩

    [root@server0 ~]# tar -jcf /root/backup.tar.bz2 /usr/local/

    [root@server0 ~]# ls /root/

    [root@server0 ~]# tar -tf /root/backup.tar.bz2  #查看包里内容

    ###################################################

    NTP时间同步

    NTP网络时间协议

    • Network Time Protocol

    – NTP服务器为客户机提供标准时间

    – NTP客户机需要与NTP服务器保持沟通

    NTP服务器:虚拟机classroom构建完成

    NTP客户机:指定NTP服务器位置

    虚拟机server:

    1.安装chrony软件,可以和NTP服务器沟通

    [root@server0 ~]# rpm -q chrony

    chrony-1.29.1-1.el7.x86_64

    2.修改主配置文件

    [root@server0 ~]# vim  /etc/chrony.conf

      大多数配置文件中,以#开头的行为注释信息

    #server 0.rhel.pool.ntp.org iburst

    #server 1.rhel.pool.ntp.org iburst

    #server 2.rhel.pool.ntp.org iburst

    server classroom.example.com  iburst    #指定服务端位置

    3.重起服务(重起程序)

    ]# systemctl  restart  chronyd 

    ]# systemctl  enable  chronyd    #设置服务开机自起

      daemon:守护神;(希腊神话中)半人半神的精灵;[计]守护进程

    4.验证:                                                     

    [root@server0 ~]# date

    [root@server0 ~]# date -s '2000-10-1'   

    [root@server0 ~]# date

    [root@server0 ~]# systemctl restart chronyd

    [root@server0 ~]# date

    [root@server0 ~]# date

    [root@server0 ~]# date 

    ##################################################

    cron计划任务(周期性任务)(定时任务)

    • 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务

    • 软件包:cronie、crontabs

    • 系统服务:crond

    • 日志文件:/var/log/cron

    执行周期 配置说明

    分钟 从0到59之间的整数

    小时 从0到23之间的整数

    日期 从1到31之间的整数

    月份 从1到12之间的整数

    星期 0~7之间的整数,0或7代表星期日

      *:匹配范围内任意时间

      ,:分隔多个不连续的时间点

      -:指定连续时间范围

    /n:指定时间频率,每n ...

    如何编写crontab任务记录

      分  时  日  月  周      任务命令行(绝对路径)

      30 23  *  *  *    poweroff           

      30  */2  *  *  * 

      34  8  *  *  1-5 

      34  8  1  *  1      每月1号与每周一都会运行 

    • 使用 crontab 命令

    – 编辑:crontab -e  [-u 用户名]

    – 查看:crontab -l  [-u 用户名]

    – 清除:crontab -r  [-u 用户名]

      每分钟记录当前系统的时间,写入/opt/time.txt

    [root@server0 ~]# date

    2019年 01月 04日 星期五 17:29:25 CST

    [root@server0 ~]# date >> /opt/time.txt

    [root@server0 ~]# cat /opt/time.txt

    [root@server0 ~]# crontab -e -u root  #编写root用户计划任务

    * * * * *  date >> /opt/time.txt

    [root@server0 ~]# crontab -l -u root  #查看root用户计划任务

    [root@server0 ~]# ls /var/spool/cron/   

    [root@server0 ~]# cat /var/spool/cron/root#生成的任务文件

    * * * * *  date >> /opt/time.txt

    [root@server0 ~]# cat /opt/time.txt

    #######################################################################

    基本权限

    • 访问方式(权限)

    – 读取:允许查看内容-read  r

    – 写入:允许修改内容-write  w

    – 可执行:允许运行和切换-execute  x

      对于文本文件:

            r:cat  less  head  tail

            w:vim能够保存  >    >>

            x:针对与Shell脚本

    • 权限适用对象(归属)

    – 所有者:拥有此文件/目录的用户-user  u

    – 所属组:拥有此文件/目录的组-group    g

    – 其他用户:除所有者、所属组以外的用户-other  o

    查看权限

    • 使用 ls -l 命令

      – ls -ld 文件或目录...

      以 d 开头为目录

      以 l 开头为快捷方式

      以 - 开头为文本文件

      权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

    [root@server0 ~]# ls -ld /etc/       

    [root@server0 ~]# ls -l /etc/passwd

    [root@server0 ~]# ls -ld /root

    [root@server0 ~]# ls -l  /etc/shadow

    [root@server0 ~]# ls -ld /home/student

    [root@server0 ~]# ls -ld /tmp

    设置基本权限

    • 使用 chmod 命令

    – chmod        归属关系+-=权限类别 文档...

            [-R]  递归修改权限

    [root@server0 ~]# mkdir /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod u-w /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod g+w /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod o=rwx /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod o=--- /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# chmod ugo=rwx /nsd01

    [root@server0 ~]# ls -ld /nsd01

    [root@server0 ~]# mkdir -p /opt/aa/bb/cc

    [root@server0 ~]# ls -ld /opt/aa

    [root@server0 ~]# ls -ld /opt/aa/bb/

    [root@server0 ~]# ls -ld /opt/aa/bb/cc/

    [root@server0 ~]# chmod -R o=--- /opt/aa

    [root@server0 ~]# ls -ld  /opt/aa

    [root@server0 ~]# ls -ld  /opt/aa/bb/

    [root@server0 ~]# ls -ld  /opt/aa/bb/cc/

    ####################################################

    Linux中如何判定用户具备的权限:        匹配及停止

      1.判断用户属于角色                    所有者>所属组>其他人 

      2.查看相应角色权限位置的权限

      1.王老师可以进入              1.所有人不可以进入

      2.所有人不可以进入            2.王老师可以进入

    Permission denied:权限不足

    ####################################################

    目录的 r 权限:能够 ls 浏览此目录内容    4

    目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作    2

    目录的 x 权限:能够 cd 切换到此目录    1

    以root用户新建/nsddir/目录,在此目录下新建readme.txt文件

    并进一步完成下列操作

    1)使用户lisi能够在此目录下创建子目录    切换用户  su  -  lisi

        chmod o+w  /nsddir/

    2)使用户lisi不能够在此目录下创建子目录

        chmod o-w  /nsddir/

    3)使用户lisi能够修改readme.txt文件内容

        chmod o+w  /nsddir/readme.txt

    4)调整此目录的权限,使所有用户都不能cd进入此目录

        chmod u-x,g-x,o-x  /nsddir/

    5)为此目录及其下所有文档设置权限 rwxr-x---

        chmod -R  u=rwx,g=rx,o=---  /nsddir/

    ##############################################

    设置文档归属

    – chown [-R] 属主 文档...

    – chown [-R] :属组 文档...

    – chown [-R] 属主:属组 文档...

    [root@server0 ~]# mkdir /nsd03

    [root@server0 ~]# ls -ld /nsd03

    [root@server0 ~]# groupadd  tarena

    [root@server0 ~]# chown  lisi:tarena  /nsd03

    [root@server0 ~]# ls -ld /nsd03

    [root@server0 ~]# chown root /nsd03

    [root@server0 ~]# ls -ld /nsd03

    [root@server0 ~]# groupadd tedu

    [root@server0 ~]# chown :tedu /nsd03

    [root@server0 ~]# ls -ld /nsd03

    ##################################################

    利用root用户新建/nsd06目录,并进一步完成下列操作

    1)将属主设为gelin01,属组设为tarena组             

    [root@server0 /]# useradd gelin01

    [root@server0 /]# useradd gelin02

    [root@server0 /]# groupadd tarena

    [root@server0 /]#chown gelin01:tarena  /nsd06

    2)使用户gelin01对此目录具有rwx权限

          除属主与属组之外的人,对此目录无任何权限

    [root@server0 /]# chmod o=--- /nsd06

    3)使用户gelin02能进入、查看此目录

    [root@server0 /]# gpasswd -a  gelin02  tarena

    4)将gelin01加入tarena组, 将nsd06目录的权限设为rw-r-x---

          再测试gelin01用户能否进入此目录

    [root@server0 /]# gpasswd -a  gelin01  tarena

    [root@server0 /]# chmod u=rw,g=rx /nsd06

    ######################################################

    实现lisi用户,对/etc/shadow文件具备读权限,您有几种办法?

        1.修改其他人权限  chmod o+r /etc/shadow

        2.修改归属关系,将lisi修改所有者 

          chown  lisi  /etc/shadow

          chmod  u+r  /etc/shadow

        3.修改归属关系,将lisi组修改所属组

          chown  :lisi  /etc/shadow

          chmod  g+r    /etc/shadow

        4.利用ACL策略  setfacl -m  u:lisi:r  /etc/shadow

    #####################################################

    附加权限(特殊权限)

    Set GID

    • 附加在属组的 x 位上

    – 属组的权限标识会变为 s

    – 适用于目录,Set GID可以使目录下新增的文档自动设

    置与父目录相同的属组 

    – 传递所属组身份

    [root@server0 /]# mkdir /nsd08

    [root@server0 /]# ls -ld /nsd08

    [root@server0 /]# chown :tarena /nsd08

    [root@server0 /]# ls -ld /nsd08

    [root@server0 /]# mkdir /nsd08/abc01

    [root@server0 /]# ls -ld /nsd08/abc01

    [root@server0 /]# chmod g+s /nsd08/    #设置Set Gid权限

    [root@server0 /]# ls -ld /nsd08/

    [root@server0 /]# ls -ld /nsd08/abc01/

    [root@server0 /]# mkdir /nsd08/abc02

    [root@server0 /]# ls -ld /nsd08/abc02

    [root@server0 /]# touch /nsd08/abc02/1.txt

    [root@server0 /]# ls -l /nsd08/abc02/1.txt

    案例1:配置附加权限

    创建一个共用目录 /home/admins,要求如下:

    – 此目录的组所有权是 adminuser

    – adminuser 组的成员对此目录有读写和执行的权限,

    除此以外的其他所有用户没有任何权限(root用户能

    够访问系统中的所有文件和目录)

    – 在此目录中创建的文件,其组的所有权会自动设置为

    属于 adminuser 组

    [root@server0 /]# mkdir /home/admins 

    [root@server0 /]# groupadd adminuser

    [root@server0 /]# ls -ld /home/admins/

    [root@server0 /]# chown :adminuser /home/admins/

    [root@server0 /]# ls -ld /home/admins/

    [root@server0 /]# chmod g+w /home/admins/    #题意要求

    [root@server0 /]# ls -ld /home/admins/

    [root@server0 /]# chmod o=--- /home/admins/  #题意要求

    [root@server0 /]# ls -ld /home/admins/

    [root@server0 /]# chmod g+s /home/admins/

    [root@server0 /]# ls -ld /home/admins/

    [root@server0 /]# touch /home/admins/1.txt

    [root@server0 /]# ls -l /home/admins/1.txt

    ####################################################

    acl访问控制列表(特殊人权限)

    acl策略的作用

    • 文档归属的局限性

    – 任何人只属于三种角色:属主、属组、其他人

    – 无法实现更精细的控制

    • acl访问策略

    – 能够对个别用户、个别组设置独立的权限

    – 大多数挂载的EXT3/4、XFS文件系统默认已支持

    • 使用 getfacl、setfacl 命令

    – getfacl 文档..      .#查看

    – setfacl  -m  u:用户名:权限类别    文档...#设置用户

    – setfacl  -m  g:组名:权限类别    文档...    #设置组

    – setfacl  -x  u:用户名        文档...        #删除指定的ACL策略

    – setfacl  -b  文档...                        #清除所有ACL策略

    [root@server0 /]# mkdir /nsd11

    [root@server0 /]# chmod o=--- /nsd11

    [root@server0 /]# ls -ld /nsd11

    [root@server0 /]# su - lisi

    [lisi@server0 ~]$ cd /nsd11

    -bash: cd: /nsd11: Permission denied

    [lisi@server0 ~]$ exit

    [root@server0 /]#setfacl -m u:lisi:rx /nsd11  #设置ACL策略

    [root@server0 /]# getfacl /nsd11  #专用于查看ACL策略

    [root@server0 /]# su - lisi

    [lisi@server0 ~]$ cd /nsd11

    [lisi@server0 nsd11]$ pwd

    [lisi@server0 nsd11]$ exit

    [root@server0 /]#

    [root@server0 /]# mkdir /nsd12       

    [root@server0 /]# setfacl -m u:dc:rwx  /nsd12

    [root@server0 /]# setfacl -m u:lisi:rx  /nsd12

    [root@server0 /]# setfacl -m u:zhangsan:rwx  /nsd12

    [root@server0 /]# setfacl -m u:tom:rx  /nsd12

    [root@server0 /]# setfacl -x u:tom  /nsd12  #删除指定ACL策略

    [root@server0 /]# getfacl /nsd12

    [root@server0 /]# setfacl -x u:dc  /nsd12

    [root@server0 /]# getfacl /nsd12

    [root@server0 /]# setfacl -b  /nsd12      #清除所有ACL策略

    [root@server0 /]# getfacl /nsd12

    ###################################################

    设置黑名单

    [root@server0 /]# mkdir /public

    [root@server0 /]# chmod ugo=rwx /public

    [root@server0 /]# ls -ld /public

    drwxrwxrwx. 2 root root 6 1月  5 16:08 /public

    [root@server0 /]# id tom

    uid=1004(tom) gid=1006(tom) 组=1006(tom)

    [root@server0 /]# setfacl -m u:tom:--- /public

    [root@server0 /]# getfacl  /public

    ###################################################

    使用LDAP认证,实现网络用户认证,达到用户的集中管理

        网络用户:用户信息会放在网络中LDAP服务器

        本地用户:用户信息会放在/etc/passwd

    LDAP服务器:虚拟机classroom

    客户端:虚拟机server

    1.安装sssd软件,与LDAP服务器沟通

    [root@server0 /]# yum -y install sssd

    [root@server0 /]# rpm -q sssd

    2.安装authconfig-gtk图形的工具,进行配置客户端sssd软件

    [root@server0 /]# yum -y install authconfig-gtk

    [root@server0 /]# authconfig-gtk

    完全合格的主机名  www.baidu.com    www.qq.com

                  classroom.example.com

        选择LDAP

          dc=example,dc=com            #指定服务端域名

          classroom.example.com        #指定服务端主机名

        勾选TLS加密

          使用证书加密:

        http://classroom.example.com/pub/example-ca.crt

        选择LDAP密码

    3.重起服务

    [root@server0 ~]# systemctl  restart  sssd  #重起服务

    [root@server0 ~]# systemctl  enable  sssd    #设置开机自启动

    [root@server0 ~]# grep ldapuser0 /etc/passwd

    [root@server0 ~]# id ldapuser0    #验证LDAP用户信息

    ###################################################     

    家目录漫游

    什么是NFS共享

    • Network File System,网络文件系统

    – 由NFS服务器将指定的文件夹共享给客户机

    – 客户机将此共享目录 mount 到本地目录,访问此共享

    资源就像访问本地目录一样方便

    – 类似于 EXT4、XFS等类型,只不过资源在网上

    NFS服务器:虚拟机classroom

    客户端:虚拟机server

    1. 查看NFS资源

    – showmount -e [服务器地址]

    [root@server0 ~]# showmount -e classroom.example.com

    Export list for classroom.example.com:

    /home/guests  172.25.0.0/255.255.0.0

    [root@server0 ~]#

    2. 挂载NFS共享目录

    –mount 服务器地址:目录路径 本地挂载点

    ]# mkdir /home/guests

    ]# mount  classroom.example.com:/home/guests/  /home/guests/

    ]# ls  /home/guests/

    ]# su  -  ldapuser0

    ###################################################

    附加权限

    Set UID

    • 附加在属主的 x 位上

    – 属主的权限标识会变为 s

    – 适用于可执行文件,Set UID可以让使用者具有文件属

    主的身份及部分权限

    – 传递所有者身份

    [root@server0 ~]# ls /usr/bin/touch         

    [root@server0 ~]# /usr/bin/touch  a.txt

    [root@server0 ~]# ls

    [root@server0 ~]# cp /usr/bin/touch /usr/bin/hahach

    [root@server0 ~]# /usr/bin/hahach b.txt

    [root@server0 ~]# ls

    [root@server0 ~]# chmod u+s /usr/bin/hahach  #设置SUID权限

    [root@server0 ~]# ls -l /usr/bin/hahach

    [root@server0 ~]# su - student

    [student@server0 ~]$ /usr/bin/touch nsd01.txt

    [student@server0 ~]$ ls -l nsd01.txt

    [student@server0 ~]$ /usr/bin/hahach nsd02.txt

    [student@server0 ~]$ ls -l nsd02.txt

    [student@server0 ~]$ exit

    ####################################################

    Sticky Bit

    • 附加在其他人的 x 位上

    – 其他人的权限标识会变为 t

    – 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入

    权限(禁止操作别人的文档)

    [root@server0 ~]# ls /home/

    [root@server0 ~]# mkdir /home/public

    [root@server0 ~]# ls /home/

    [root@server0 ~]# chmod ugo=rwx /home/public

    [root@server0 ~]# ls -ld /home/public

    [root@server0 ~]# useradd lisi

    [root@server0 ~]# useradd harry

    [root@server0 ~]# useradd natasha

    [root@server0 ~]# chmod o+t /home/public/

    [root@server0 ~]# ls -ld /home/public/

    #################################################

    改变家目录

    [root@server0 ~]# useradd tom

    [root@server0 ~]# grep tom /etc/passwd

    [root@server0 ~]# ls /home/

    [root@server0 ~]# grep tom /etc/passwd

    [root@server0 ~]# usermod -d /opt/abc tom  #修改用户家目录

    [root@server0 ~]# grep tom /etc/passwd

    [root@server0 ~]# cp -r /home/natasha/  /opt/abc

    [root@server0 ~]# chown  -R  tom:tom  /opt/abc  #修改归属关系

    [root@server0 ~]# ls  -ld /opt/abc

    drwx------. 5 tom tom 101 1月  7 10:29 /opt/abc

    [root@server0 ~]# ls  -lA /opt/abc

    [root@server0 ~]# su  - tom

    #####################################################

    查找文本内容

    • 根据字符串模式提取文本行

    – grep [选项] '匹配模式' 文本文件...

    – 命令行 | grep [选项] '匹配模式'

    • 常用命令选项

    – -v,取反匹配

    – -i,忽略大小写

    [root@server0 ~]# grep root /etc/passwd

    [root@server0 ~]# grep ROOT /etc/passwd

    [root@server0 ~]# grep -i ROOT /etc/passwd

    [root@server0 ~]# grep  man /etc/man_db.conf

    [root@server0 ~]# grep -i man /etc/man_db.conf

    [root@server0 ~]# grep root /etc/passwd

    [root@server0 ~]# grep -v root /etc/passwd

    – ^word 以字符串word开头

    – word$ 以字符串word结尾

    –  ^$      匹配空行

    [root@server0 ~]# grep root /etc/passwd

    [root@server0 ~]# grep ^root /etc/passwd

    [root@server0 ~]# grep root$ /etc/passwd

    [root@server0 ~]# grep bash$ /etc/passwd

    [root@server0 ~]# grep ^$  /etc/default/useradd

    [root@server0 ~]# grep -v ^$ /etc/default/useradd

    请显示/etc/default/useradd文件有效信息(去除空行 去除注释)

    ]# grep  ^# /etc/default/useradd

    ]# grep -v ^# /etc/default/useradd 

    ]# grep -v ^# /etc/default/useradd  |  grep -v ^$

    ]# grep -v ^# /etc/default/useradd |  grep -v ^$  > /root/user.txt

    ]# cat /root/user.txt

    ##################################################

    查找文件

    • 根据预设的条件递归查找对应的文件

    – find [目录] [条件1] [-a|-o] [条件2] ...

    – 常用条件表示:

      -type 类型(f 文件、d 目录、l 快捷方式)

      -name "文档名称"

      -size +|-文件大小(k、M、G)

      -user 用户名

    – 常用条件表示:

      -type 类型(f 文件、d 目录、l 快捷方式)

    [root@server0 ~]# find /boot/  -type d

    [root@server0 ~]# find /boot/  -type l

    /boot/grub/menu.lst

    [root@server0 ~]# ls /boot/grub/menu.lst

    /boot/grub/menu.lst

    [root@server0 ~]# ls -l /boot/grub/menu.lst

    lrwxrwxrwx. 1 root root 9 5月  7 2014 /boot/grub/menu.lst -> grub.conf

    [root@server0 ~]# find /boot/ -type f

      -name  "文档名称"

    [root@server0 ~]# find /etc/  -name  "passwd"

    [root@server0 ~]# find /etc/  -name  "*tab"

    [root@server0 ~]# find /etc/  -name  "*tab*"

    [root@server0 ~]# mkdir  /root/nsd01

    [root@server0 ~]# mkdir  /root/nsd02

    [root@server0 ~]# touch  /root/nsd1812.txt

    [root@server0 ~]# find  /root  -name  "nsd*"

    [root@server0 ~]# find  /root  -name  "nsd*"  -a  -type f

    [root@server0 ~]# find  /root  -name  "nsd*"  -type  f

    [root@server0 ~]# find  /root  -name  "nsd*"  -type  d

      -size  +|-文件大小(k、M、G)

    [root@server0 ~]# find /boot/ -size +10M

    [root@server0 ~]# ls -lh /boot/initr*

    [root@server0 ~]# find /boot/ -size +300k

      -user 用户名(按照文档所有者查找)

    [root@server0 ~]# find  /  -user student

    [root@server0 ~]# find  /  -user tom

    • 根据名称查找,忽略大小写

    – -iname

    [root@server0 ~]# find /etc -name "PASSWD"

    [root@server0 ~]# find /etc/ -iname "PASSWD"

    • 根据所属组

    – -group

    [root@server0 ~]# find /home/ -group tom

    • 限制目录查找的深度(最大层数)

    – -maxdepth

    [root@server0 ~]# find /etc/  -name  "*.conf"

    [root@server0 ~]# find /etc/  -maxdepth 1  -name  "*.conf"

    [root@server0 ~]# find /etc/  -maxdepth 2  -name  "*.conf"

    [root@server0 ~]# find /etc/  -maxdepth 3  -name  "*.conf"

    • 根据文件修改时间,都是过去时间

    – -mtime +10  #10天之前,创建或修改过的文件

    – -mtime -10  #最近10天之内,创建或修改过的文件

    三个月之前的日志文件?

    [root@server0 ~]# find /var/log -mtime +90

    [root@server0 ~]# find /var/log -mtime +1000

    [root@server0 ~]# find /opt -mtime -10

    #####################################################

    处理find查找到的结果:

    查找/boot目录下大于10M,将其复制到/opt

    ]# find /boot/ -size +10M

    ]# find /boot/ -size +10M  -exec cp {}  /opt/  \;

    ]# ls /opt/

    查找/etc目录下以tab结尾的,将其复制到/mnt

    ]# find /etc -name "*tab"

    ]# find /etc -name "*tab" -exec cp {}  /mnt/  \;

    ]# ls  /mnt/

    案例2:查找并处理文件

    • 使用find命令完成以下任务                     

    – 找出所有用户 student 拥有的文件

    – 把它们拷贝到 /root/findfiles/ 文件夹中

    ]# mkdir /root/findfiles

    ]# find  /  -user  student  -type f

    ]# find  /  -user  student  -type f  -exec cp  {}  /root/findfiles/  \;

    ]# ls -A /root/findfiles/

    #######################################################

    查看命令帮助信息

    [root@server0 ~]# man find

    #######################################################

    相关文章

      网友评论

          本文标题:linux入门知识点

          本文链接:https://www.haomeiwen.com/subject/vpsvahtx.html