zoukankan      html  css  js  c++  java
  • Linux期末考试知识点总结

    Linux期末考试知识点总结

    1. 常用命令

    - cd (用于切换当前工作目录至 dirName(目录参数))

    cd 目录地址(绝对地址或相对地址)
    

    - ls(列出文件或目录信息)

    //列出当前目录下的文件和目录
    ls
    //列出所有文件包括隐藏的文件
    ls -a
    //列出当前目录下所有文件的权限、所有者、文件大小、修改时间和名称
    ls -l
    //列出目录下以及所有子目录的文件名
    ls -R
    
    

    - cp (用于文件或目录的复制)

    //语法
    cp [参数] 源文件 目标文件
    //参数
    -a 状态、权限原样复制
    -f 如果目标文件或目录存在,先删除再复制,不提示
    -i 同上,但要提示
    -R 递归复制目录,包括目录下的各级子目录
    //复制test文件到当前目录下
    cp /home/test .
    
    

    - history (查询历史命令)

    //查询最近使用的n条命令
    history n
    //将目前正在使用的shell中的所有history命令全部清理
    history -c
    

    - mv (文件或目录的移动或命名)

    //语法
    mv [参数] 源文件或目录 目录文件或目录
    //参数
    -i 提示是否覆盖
    -f 不提示,直接覆盖
    //移动test文件到home目录下
    mv test /home
    

    - rm (文件或目录的删除)

    //语法
    rm [参数] 文件名或目录名
    //参数
    -i 删除文件或目录,提示
    -f 不提示
    -R 递归删除目录,包括目录下的文件和各级子目录
    //删除当前目录下的所有文件
    rm *
    
    

    - touch (建立文件或更新目录)

    //参数
    -d yyyymmdd 把文件的存取和修改时间改为当前时间
    //创建test文件在当前目录下
    touch test
    //将test文件的存取和修改时间改为2020年1月2日
    touch -d 20190102 test
    

    - hostname (修改主机名)

    hostname 主机名
    su root
    //生效执行
    

    - tar (压缩或解压文件)

    //压缩
    tar -zcvf 压缩包名.tar.gz 源文件
    //解压缩
    tar -zxvf 压缩包名.tar.gz -C 目录
    

    2. 账号管理

    - useradd (创建用户)

    useradd 用户名
    //参数
    -d 指定用户的家目录
    -g 指定所属组
    

    - passwd (为用户设置密码)

    passwd 用户名
    //参数
    -l 锁定(停用)用户账号
    -u 解锁
    

    - usermod (修改用户的属性)

    //参数
    -L 锁定
    -U 解锁
    -u 修改用户的UID
    -g 变更所属用户组
    //修改test用户的用户名为test1,添加备注信息:testuser
    usermod -l test1 -c testuser test
    

    - userdel(删除用户)

    //删除用户账户信息
    userdel 用户名
    //删除用户账户信息,并删除用户主目录及其子目录
    user -r 用户名
    

    - /etc/passwd (用户账户文件)

    //打开文件
    cat /etc/passwd
    //passwd文件的每一行用":"分隔为7个域
    如:user1:x:1002:1002::/home/user1:/bin/bash
    //各域内容:
    用户名:加密口令:UID:GID:用户的描述信息:主目录:命令解释器
    

    - /etc/shadow (用户经过加密后的口令)

    //shadow文件只对root用户开放,增加安全性
    有9个域:
    如:user1:!!::17656:0:99999:7:::
    用户名:!!(未设置密码):略
    

    3. 组的管理

    - groupadd (创建一个新的组)

    groupadd 组名
    

    - groupdel (删除一个组)

    groupdel 组名
    

    - groupmod (修改一个组)

    groupmod [参数] 组名
    //参数
    -g 修改GID
    -n 修改组名
    

    - gpasswd (在附属组中增加、删除用户)

    //语法
    gpasswd [选项] [用户] [组]
    //参数
    -a 添加用户到组
    -d 把用户从组中删除
    -r 取消组的密码
    -A 给组指定管理员
    //把用户user1加入testgroup组中
    gpasswd -a user1 testgroup
    

    4. find查找命令各个选项

    //find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
    //语法
    find [文件目录] [-参数]
    //参数
    -name 文件名 // 文件名称符合 name 的文件
    -iname 文件名 // 忽略大小写
    

    5. wc统计给定文件的字节数,字数,行数

    //参数
    -c 字节数
    -w 字数
    -l 行数
    //查看/etc/group文件的行数
    wc -l /etc/group
    或者
    cat /etc/group | wc -l
    

    6. 权限管理

    - 权限查看

    //查看权限使用ll命令
    第一组为文件的权限
    如:drwxr-xr-x
        -rw-r--r--
    第1个参数:
    d:表示是一个目录
    -:表示是一个普通文件
    
    第2,3,4个参数:表示文件所有者的权限
    第5,6,7个参数:表示文件所有者所属组成员的权限
    第8,9,10个参数:表示文件所有者所属组群以外的权限
    r:读取
    w:写入
    x:执行
    -:不具有该项权限
    
    

    - chomd (使用数字来修改权限)

    //语法
    chomd 选项数字 文件
    //数字:
    777:读写执行(所有用户)
    775:rwxrwxr-x
    666:rw-rw-rw-
    664:rw-rw-r--
    644:rw-r--r--
    

    - chgrp (变更文件与目录的所属群组)

    chgrp 组群 文件或目录
    

    - chown (指定文件的拥有者改为指定的用户或组)

    //语法
    chown [参数] user[:group] 文件
    //参数
    -R : 处理指定目录以及其子目录下的所有文件
    user : 新的文件拥有者的使用者 ID
    group : 新的文件拥有者的使用者组(group)
    
    //如:将目前目录下的所有文件与子目录的拥有者皆设为 test,群体的使用者 testgroup
    chown -R test:testgroup *
    

    7. 磁盘管理

    - fdisk (磁盘分区工具)

    //对磁盘分区,如:
    fdisk /dev/sdb
    //参数
    p:列出磁盘分区表
    w:将修改写入磁盘分区表,然后退出
    n:创建新分区
    d:删除磁盘分区
    q:不做保存更改,退出
    

    - 磁盘管理流程

    1. 新增一个磁盘,如:添加一个新磁盘/dev/sdb,用fdisk工具给磁盘分区,要求:两个主分区,一个扩展分区,两个逻辑分区。
    
    //使用df -l查看当前磁盘信息
    df -l
    //用fdisk工具给磁盘分区
    fdisk /dev/sdb
    //添加主分区
    n
    p
    默认直接回车
    +分区大小
    //添加扩展分区
    n
    e
    默认回车
    +分区大小
    //添加逻辑分区
    n
    l
    默认回车
    +分区大小
    //查看分区结果
    p
    //保存退出
    w
    
    2. 对以上四个分区进行格式化,并挂载,使得系统启动时自动挂载。
    
    //格式化
    mkfs.ext3 /dev/sdb1
    //如果出错(说分区正在被管理),解决办法
    dmsetup status
    dmsetup remove_all
    //如果说“无法对 /dev/sdb2 进行 stat 调用 --- 没有那个文件或目录"
    找不到分区设备的情况下,执行此命令(让内核同步分区信息):
    partprobe
    
    //临时挂载
    mkdir /mnt/sdb1
    mkdir /mnt/sdb2
    mkdir /mnt/sdb5
    mkdir /mnt/sdb6
    mount /dev/sdb1 /mnt/sdb1
    mount /dev/sdb2 /mnt/sdb2
    mount /dev/sdb5 /mnt/sdb5
    mount /dev/sdb6 /mnt/sdb6
    
    //永久挂载
    //修改磁盘配置文件 /etc/fstab ,添加如:
    /dev/sdb1   /mnt/sdb1   ext3    defaults   0    0
    /dev/sdb2   /mnt/sdb2   ext3    defaults   0    0
    /dev/sdb5   /mnt/sdb5   ext3    defaults   0    0
    /dev/sdb6   /mnt/sdb6   ext3    defaults   0    0
    
    //保存,重启即可
    
    //卸载四个分区,并删除/dev/sdb磁盘中的所有分区。
    1. 卸载分区
    umount /dev/sdb1
    2. 删除配置文件中的配置
    3. 删除分区
    fdisk /dev/sdb
    n
    d
    1 2 3
    

    8. 逻辑卷管理

    //先添加两块硬盘开机
    1. 创建物理卷
    pvcreate /dev/sdb /dev/sdc
    2. 加入卷组
    vgcreate storage /dev/sdb /dev/sdc
    vgdisplay查看
    3. 创建逻辑卷
    lvcreate -n storage_mail -L 39G storage
    4. 格式化逻辑卷
    mkfs.ext3 /dev/storage/storage_mail
    5. 临时挂载
    mkdir /bobby
    mount /dev/storage/storage_mail /bobby
    查看挂载状态
    df -h
    6. 永久挂载
    打开配置文件
    vim /etc/fastab
    写入配置
    /dev/storage/storage_mail    /bobby   ext3  defaults    0    0
    7. 扩容逻辑卷
    卸载关联
    umount /bobby
    扩容
    lvextend -L 100M(自定) /dev/storage/storage_mail
    8. 删除逻辑卷
    卸载关联,删除或注释配置
    删除逻辑卷
    lvremove /dev/storage/storage_mail
    删除卷组
    vgremove storage
    删除物理卷
    pvremove /dev/sdb /dev/sdc
    

    9.磁盘配额

    对/home分区进行磁盘配额的设置
    1)目的和账号:现有帐号分别是 myquota1, myquota2,且这2个用户所属的组都是 myquotagrp。
    2) 帐号的磁碟容量限制值:我想让这2个用户都能够取得 600MBytes 的磁碟使用量(hard),文件数量则不予限制。 此外,只要容量使用率超过 550MBytes ,就予以警告 (soft)。
    步骤:
    1. 创建账号myquota1,myquota2,创建组myquotagrp,把账号加入到组内:
    useradd myquota1
    useradd myquota2
    groupadd myquotagrp
    gpasswd -a myquota1 myquotagrp
    gpasswd -a myquota2 myquotagrp
    查看
    grep myquotagrp /etc/group
    2. 对组myquotagrp设置磁盘配额
    (1)启用文件系统的配额支持
    df -h /home
    mount -o remount,usrquota,grpquota /home
    mount | grep home
    卸载/home,重新加载/etc/fstab文件
    umount /home
    mount -a
    (2)创建配额文件
    quotacheck -ugcv /dev/sda3
    查看
    ls -l /home/quota.*
    (3)编辑组账号的配额设置
    edquota -g myquotagrp
    输入
    /dev/sda3    0     0     1000000    0     8
    (4)开启文件系统磁盘配额功能
    quotaon -ugv /home
    (5)验证磁盘配额功能
    第一步:查看/home目录的权限,设置/home目录权限使得普通用户拥有w权限。
    ll /
    sudo chomd 777 /home
    第二步:登录普通用户myquota1进行验证。
    dd if=/dev/zero of=myfile bs=1M count=120
    输出:打开myfile失败,超出磁盘限额
    

    10. 计划任务

    1. 每周一下午5:50将/data目录下的所有目录和文件归档并压缩为:backup.tar.gz,放在/home/backup目录下。(先新建/data目录,并在目录中随意生成几个文件)。
    创建好压缩包后
    打开计划任务文件
    crontab -e
    输入任务:
    50 17 * * 1 tar -zcvf /home/backup.tar.gz /data
    2. 每天早上7:50自动开启sshd服务,22点50时关闭 
    50 7 * * * service start sshd
    50 22 * * * service stop sshd
    3. 每隔5天清空一次FTP服务器公共目录/var/ftp/pub
    * * */5 * * /bin/rm -rf /var/ftp/pub/*
    4. 每周一、三、五的17:30时,打包备份/etc/httpd目录
    30 17 * * 1,3,5 /bin/tar -zcvf /tmp/http
    5. 每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件
    55 23 * * 0 /bin/cp /etc/passwd /root/pwd.txt
    

    11. shell编程

    1. if,else语句
    创建用户脚本
    vi sh01.sh
    ------------
    #!/bin/bash
    read -p "please input your username(default:user1):" name
    if [ "$name" == "" ]
    then name = user1 && echo "user1 created successfully."
    else
    /usr/sbin/useradd "$name" && echo "$name created successfully."
    fi
    ------------
    sh sh01.sh
    
    2. while语句
    对100以内的所有正整数相加求和
    ------------
    #!/bin/bash
    u=0
    i=1
    while [$i -le 100];do
     let u+=$i
     let i++
    done
    echo $u
    ------------
    
    计算10以内的所有正整数的平方
    ------------
    #!/bin/bash
    u=0
    i=1
    while [$i -le 10];do
     let u+=$[$i*$i]
     let i++
    done
    echo $u
    ------------
    
    3. for语句
    9*9乘法表
    ------------
    #!/bin/bash
    for ((row=1;row<=9;row++));do
     for ((column=1;column<=$row;column++));do
      echo -ne "${column}*${row}=$[${column}*${row}]	"
     done
    done
    ------------
    

    12. rpm包管理

    rpm参数
    -q 软件包名    查询
    -qf 系统文件   查询
    
    安装,查询,卸载,yum安装
    
    查询ls命令属于哪个安装包
    rpm -qf /bin/ls
    

    配置yum源(不是很理解,希望不会考)

    加油!奥里给

    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    技术分享的一些好的建议
    项目经理排期的几个tip
    公司的目标和你的目标的关系
    Android实现双击事件的两种方式
    互联网公司团队建设的几个要点
    一对一还是一对多? MVP设计前提
    互联网产品研发的典型流程
    架构和模式的区别:三层架构和MVC在应用开发中的位置
    Android Studio插件:PlantUML
    Android Studio插件:GsonFromat
  • 原文地址:https://www.cnblogs.com/zq98/p/15027947.html
Copyright © 2011-2022 走看看