初学Linux——week2

命令汇总:

    1. nslookup  [域名] ===> 查看域名解析  

    2. useradd  [选项]  [用户名] ===> 创建用户  -u -d -G -s

    3. passwd [用户名] ===> 设置密码
        echo '[密码]'  |  passwd --stdin  [用户名] 

    4. usermod  [选项]  [用户名] ===> 修改用户信息  -u -d -G -s

    5. userdel  [用户名] ===> 删除用户  如果加上  -r  就是先家目录一起删除

    6. groupadd [组名] ===> 添加组  如果 -g + [ID]  就是设置组的gid

    7. gpasswd  [选项]  [用户]  [组名] ===> 给组内修改用户  -a  -d  

    8. groupdel  [组名] ===> 删除组

    9. tar -[格式]cf  [压缩包名]  [文件1] …… ===> 压缩文件
       tar -xf  [压缩包名]  -C  [解压位置] ===> 解压文件
       tar -tf  [压缩包名] ===> 查看包文件的内容目录

    10. date ===> 查看时间信息
          date  -s  "年-月-日  时:分:秒" ===> 修改时间

    11. chmod [-R] [归属关系][+-=][权限类别]   文档... ===> 设置文档权限
         chown  [-R]  属主:属组 文档... ===> 设置文档所属关系

    12. setfacl [-R] [选项]  u:[用户名]:[权限类别]  [文档]...  ===> 用acl为用户单独设置权限  -m -x -b
          getfacl  [文档]... ===> 查看某文档的acl权限情况

    13. showmount  -e  [ip] ===> 查看服务端共享的目录情况

    14. crontab  [选项]  [-u 用户名] ===> 设置计划任务  -e -l -r

    15. grep  [选项]  [匹配要求]  [文件] ===> 从文件中提取符合要求的内容  -v  -i

    16. find  [目录]  [条件1]  [-a || -o]  [条件2]…… ===> 从目录中找文件
         -type  -name  -size  -user  -exec \;   -iname  -group  -maxdepth  -mtime

    17. lsblk  ===> 查看分区情况,磁盘一般存放在/dev下具体根据这个命令查到的信息判断。 

    18. fdisk ===> [磁盘]  交互式划分分区  m是帮助

    19. mkfs.[文件系统]  [分区的位置] ===> 按照文件系统格式化文件(注意命令中有个点,连上文件系统才是完整的一个命令符)

    20. blkid [磁盘分区的系统位置] ===> 查看磁盘分区的文件系统
   
    21. mount  -a ===> 检测挂载配置文件的正确与否,并挂载里面记录了没有挂载的任务
   
    22. df  -h ===> 查看全局的已挂载情况

    23. pvcreate [分区的路径(没有挂载)] ===> 创建物理卷
           pvs  [物理卷的系统位置] ===>查看物理卷信息

    24. vgcreate [卷组的名字]===> 创建卷组
          vgs [卷组名] ===> 查看卷组的信息
          vgextend  [卷组]  [分区磁盘1]  …… ===> 扩大卷组
  
    25. lvcreate -L  [大小]  -n [逻辑卷的名字]  [卷组名称] ===> 创建逻辑卷
          lvs  /dev/[卷组名]/[逻辑卷名] ===> 查看逻辑卷的信息
          lvextend  -L  [大小]  /dev/[卷组名]/[逻辑卷名] ===> 扩大逻辑卷

    26. lvremove  /dev/[卷组名]/[逻辑卷名] ===> 移除逻辑卷
          vgremove   [卷组名] ===> 移除卷组
          pvremove   [物理卷的存储地址] ===> 移除逻辑卷


配置文件:

    1. 网络信息 /etc/sysconfig/network-scripts/if$

    2. 挂载  /etc/fstab

    3. 硬盘 /dev/*

    4. 用户 /etc/passwd
  
    5. 用户密码 /etc/shadow
   
    6. 组  /etc/group
  
    7. 别名  /root/.bashrc

    8. yum软件仓库  /etc/yum.repos.d/*.repo

    9. 主机名  /etc/hostname

    10. DNS  /etc/resolv.conf

    11. NTP  /etc/chrony.conf

    12. cron计划任务  /var/spool/cron/[用户名] 


网络知识延展

     DNS服务,永久修改DNS服务的配置文件是/etc/resolv.conf

Linux 中文件/目录等的 颜色 及其对应的含义  

     蓝色                        目录
     白色(命令的颜色)  文件
     青色                        链接,快捷方式
     黄色                        系统文件
     红色                        压缩包
     绿色                        可执行文件


用户和组

 用户帐号:1.能够登陆操作系统  2.不同的用户不同的身份,可以进行很好控制
    UID:唯一标识一个用户,编号

    所有用户的基本信息存放在 /etc/passwd 文件,每一个用户占用,一行信息
    文件中的内容 --> 用户名:密码占位符:UID:基本组的GID:用户的描述信息:用户的家目录:解释器

    添加用户:useradd [选项]... 用户名
    -u 用户id、-d 家目录路径、-G 附加组、-s 登陆解释器程序(其中/sbin/nologin:禁止用户登录系统)

    交互式修改密码:passwd [用户名] 
    非交互式修改密码:echo '[密码]' | passwd --stdin [用户名]

    密码信息存放在 /etc/shadow 文件
    文件中的内容 --> 用户名:密码加密字符串:上一次修改密码的时间.......

    修改用户属性:usermod [选项]... 用户名 (选项和添加用户的一样)

    删除用户属性:userdel [选项] 用户名      选项-r指连家目录一起删除

 组:方便管理用户 ,权限分配方面。
    将想要具备相同权限的用户,加入一个组,最后给组设置权限

    组的分类:基本组        附加组(从属组)
    GID:唯一标识一个组,编号

    组基本信息存放在 /etc/group 文件
    文件中的内容 --> 组名:组的密码占位符:组的GID标识:组的成员列表

    添加组:groupadd [-g 组ID] 组名

    修改组中用户:gpasswd [选项] 用户名 组名  -a 添加    -d 删除


权限
  访问方式(权限)
    读取:允许查看内容-read   r
    写入:允许修改内容-write  w
    可执行:允许运行和切换-execute   x

  对于文本文件,文件的权限是用于开放和限制自身文件的操作
     r:cat  less  head  tail
     w:vim   >   >>
     x:Shell脚本  可以运行
  对于目录,目录的权限是用于开放和限制目录下子文件和子目录的操作
     r:能够 ls 浏览此目录内容
     w:能够执行 rm/mv/cp/mkdir/touch/ 等更改目录内容的操作
     x:能够 cd 切换到此目录 ,并且可以根据子文件的权限情况对子文件进行操作

  权限适用对象(归属)
    所有者:拥有此文件/目录的用户-user --> u
    所属组:拥有此文件/目录的组-group --> g
    其他用户:除所有者、所属组以外的用户-other --> o

  查看权限
    ls -ld 文件或目录...
     开头 d 为目录
     开头 - 为文本文件
     开头l 为快捷方式

  设置基本权限
    使用 chmod 命令
    chmod [选项] [归属关系][+-=][权限类别]   [文档1] [文档2]   -R 代表递归赋权

  判断用户权限:        
    1.判断用户的角色      顺序:所有者>acl>所属组>其他人   匹配及停止
    2.查看相应权限位置的权限设置

  Permission denied : 权限不足
  command not found: 命令没有找到

  设置文档归属
    使用 chown 命令
    chown [-R] 属主 文档...
    chown [-R] :属组 文档...
    chown [-R] 属主:属组 文档...

  Set GID
    附加在属组的 x 位上,属组的权限标识会变为 s
    适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组

   Set UID
     附加在属主的 x 位上,属主的权限标识会变为 s
     适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

  Sticky Bit
     附加在其他人的 x 位上,其他人的权限标识会变为 t
     适用于开放 w 权限的目录,可以阻止用户滥用 w 权限(只能操作属于的文档)

   Acl策略
       可以但多为一个人设置权限
        setfacl  [选项]  u:用户名:权限  文档 
        setfacl  [选项]  g:组名:权限  文档
           -m 创建   -x  删除    -b  清空
        getfacl  [文档]...    查看某文档的acl权限情况

   权限修改是即时生效的,可是用户加入组,需要用户重新登录才能生效


tar压缩

   Linux常见的压缩格式及命令工具和选项代表字符:
    gzip ---> .gz  ----> z
    bzip2 ---> .bz2 ----> j
    xz ---> .xz  ----> J

   压缩  tar -[格式代表字符] -cf [(路径)/tar包]  [被压缩的文件] 

   解压  tar -xf [(路径) / tar包] -C [解压的目标目录]

   查看压缩包的目录  tar -tf [(路径)/tar包]


NTP时间同步

  Network Time Protocol
    NTP服务器为客户机提供标准时间
    NTP客户机需要与NTP服务器保持沟通
  1.安装一个和NTP服务器沟通的软件
     yum install -y chrony

  2.指定NTP服务器,修改配置文件/etc/chrony.conf
     vim /etc/chrony.conf
  
   3.重起刷新
      systemctl restart chronyd
      systemctl enable chronyd    #设置开机自启动

LDAP认证和NFS网络共享
   实现网络用户:用户集中管理,用户由LDAP服务器创建
   本地用户:本地机器创建,只能用于本地登陆

   Network File System,网络文件系统
   由NFS服务器将指定的文件夹共享给客户机,客户机将此共享目录 mount 到本地目录,访问此共享资源就像访问本地目录一样方便,类似于 EXT4、XFS等类型,只不过资源在网上
   具体的操作查看Day6

  如何修改一个用户的家目录并登陆:
   1. 用命令usermod修改家目录     2. 拷贝原家目录信息到新家目录下   3. 赋权


cron周期计划
   用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
   需要安装两个软件包 yum  install  -y   cronie  crontabs
   其系统服务为  crond  一般默认开机自启
   其配置文件在 /var/spool/cron/[用户名]  

   编辑计划任务 : crontab  -e  [-u 用户名]   用户名指的是以什么身份进行计划任务
        使用命令或者直接创建编辑配置文件
 
   文件的书写的任务计划为
      分  时  日  月  周  命令  (每个部分一个空格,开头必须顶格写) 
        *  : 匹配范围内任意时间
         ,  : 分隔多个不连续的时间点
        -  : 指定连续时间范围
        /n : 指定时间频率,每n ...

   查看计划任务 : crontab  -l  [-u 用户名]
   清除计划任务 : crontab  -r  [-u 用户名]


查找:

   grep 
      根据字符串模式提取文本行
      grep  [选项]  [匹配模式]  文本文件...
      命令行 | grep  [选项]  [匹配模式]

      [word]   包含字符串[word]
      ^[word]  以字符串[word]开头
      [word]$  以字符串[word]结尾
      ^$         匹配空行

   find
      根据预设的条件递归查找对应的文件路径
      find  [目录]  [条件1]  [-a|-o]  [条件2] ...

      -a 是且,默认多条件的时候是且
      -o 是或

      -type [f 文本文件、d 目录、l 快捷方式]    文件类型选择
      -name  "[文档名称]"    匹配符合某种条件名称的文件
      -size  [+-] [文件大小(k、M、G)]   匹配超过或小于或等于某存储大小的文件
      -user  [用户名]    匹配所有者为某用户的文件
      -exec  处理命令  {}   \;      以 {} 代替每一个结果,逐个处理,从-exec开始,遇 \; 结束
      -iname [用户名]   根据名称查找,忽略大小写
      -group [组]   根据所属组
      -maxdepth  [数字]   限制目录查找的深度(最大层数)
      -mtime [+-] [天数]   根据文件修改时间,所有的时间都是过去时间


磁盘  Day8

   磁盘 包括 磁片 磁头 主轴
   磁片中有磁道,磁道中分成扇片,扇区大小 512 字节

    识别硬盘 => 分区规划 => 格式化 => 挂载使用
   
  1. 识别硬盘 : 用 lsblk 识别硬盘

  2. 分区规划 : 
        三个分区 :  主分区  扩展分区  逻辑分区
        主分区:1-4个主分区  或者  0-3个主分区+1个扩展分区(n个逻辑分区)
        扩展分区: 不能存储东西,他的作用只是创建更多的拓展分区,一般分区的时候,都是吧所有剩余空间都给扩展分区
        逻辑分区: 作用和主分区差不多,都是存储数据的

     分区的命令是: fdisk  [磁盘的系统位置]
        n  创建新的分区
            一开始可以选择主分区或者扩展分区,当已经有3个主分区后会默认创建扩展分区,创建完扩展分区后,每次创建分区都是创建逻辑分区
            一般起始位置,我们直接回车采用默认数据,在终了位置,一般用 +[计划磁盘大小] 这样就可以实现预定计划的分区计划

        p  查看分区表
        d  删除分区
        w  保存退出
        q  不保存退出

  3. 格式化:赋予空间文件系统(存放数据的规则)
      命令格式:mkfs.ext4      mkfs.xfs   按照文件系统需求格式化
      查看分区文件系统的情况:blkid  [磁盘的系统位置]

  4. 挂载使用:本次采用永久挂载的方法,一次性挂载请见Day2
       先修改配置文件  /etv/fstab 文件中的记录格式是:
           设备路径    挂载点    文件类型    参数(defaults)    备份标记(0)    检测顺序(0)
       再 测试启用   mount -a
       最后查看一下  df  -h

总结 磁盘分区的步骤:
  1.查看识别的硬盘--->lsblk
  2.划分分区--->fdisk
  3.刷新分区--->partprobe
  4.格式化---> mkfs.ext4  mkfs.xfs---->blkid查看文件系统
  5.挂载使用--->mount-->通过/etc/fstab实现开机自动挂载--->mount -a
  6.查看正在挂载设备的使用情况--->df -h


LVM逻辑卷的管理

   作用:1.空间可以变大  2.整合分散的空间
   将众多的物理卷(PV)组成卷组(VG),再从卷组中划分逻辑卷(LV)创建逻辑卷 

    0. 创建物理卷  
         pvcreate   [分区系统位置]  
         pvs  [分区系统位置]    查看物理卷情况
    1. 创建卷组   创建卷组的时候会自动创建物理卷 
         vgcreate   [卷组名称]  [分区系统位置]  
         vgs  [卷组名称]    查看物理卷情况
    2. 创建逻辑卷
         lvcreate  -L  [大小]  [逻辑卷名] [卷组名]
         lvs  /dev/[卷组名]/[逻辑卷名]  查看逻辑卷
    3. 逻辑卷使用
        格式化   挂载

  LVM逻辑卷的扩大
    0. 扩大卷组 :vgextend [卷组] [分区磁盘1] [分区磁盘2] ……
    1. 扩大逻辑卷空间 : lvextend -L [大小] /dev/[卷组名]/[逻辑卷名]
    2. 扩展逻辑卷的文件系统:
          ext4文件系统: resize2fs
          xfs文件系统:xfs_growfs
          [resize2fs]  /dev/[卷组名]/[逻辑卷名]

  LVM逻辑卷的删除
     先删除逻辑卷 : lvremove  /dev/[卷组名]/[逻辑卷名]
     再删除卷组:vgremove   [卷组名]
     最后删除物理卷: pvremove   [物理卷的存储地址]


Shell脚本

   重定向输出:将前面命令的输出结果,写入到文本文件中
       >   :   覆盖重定向(正确的)
       >> :  追加重定向
       2> :错误信息重定向
       &> :正确错误重定向

    管道操作:将前面命令的输出结果,交由后面命令再处理一次
       格式 : [命令1]  |  [命令2]

   脚本的一般组成:
       #! 环境声明(以下所有代码利用哪一个程序解释)
       # 注释文本
       可执行代码

   变量的赋值
       变量名=变量值
       等号两边不要有空格

   变量名要求 
       变量名只能由字母/数字/下划线组成,区分大小写
       变量名不能以数字开头,不要使用关键字和特殊字符
       若指定的变量名已存在,相当于为此变量重新赋值

条件测试及选择判断

[  -e  文件|| 目录 ] 存在 ===>  正确     [  $a  -gt  $b  ] a  大于  b   ===>  正确  
[  -d  目录  ] 是目录并且存在 ===>  正确     [  $a  -ge  $b  ] a  大于等于  b   ===>  正确  
[  -f  文件  ] 是文件并且存在 ===>  正确     [  $a  -eq  $b  ] a  等于  b   ===>  正确  
      [  $a  -ne  $b  ] a  不等于  b   ===>  正确  
[  $a  ==  $b  ] 字符a和字符b相同  ===>  正确   [  $a  -lt  $b  ] a  小于  b   ===>  正确
[  $a  !=  $b  ] 字符a和字符b不同  ===>  正确   [  $a  -le  $b  ] a  小于等于  b   ===>  正确

if选择结构

    if [条件测试1];then
        命令序列1
    elif [条件测试2];then
        命令序列2
    elif [条件测试3];then
        命令序列3
         ......

    else
        命令序列n
    fi

阅读更多
文章标签: Linux 总结
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭