zoukankan      html  css  js  c++  java
  • Linux-day1-上课笔记

    命令的组成

    命令关键字 [选项] [参数]

    注意:

    1. 通常情况下 选项- --连接

    ls -l /etc

    2. - 选项和选项之间是可以合并的

    ls -ld /etc

    ls 罗列文件   常见的选项 -l 罗列文件属性

          -d 罗列目录本身

          -a 罗列所有文件(包括隐藏文件)    以点起始的文件-隐藏文件

          特殊注意事项  .. 上一级目录

           . 当前目录

    cd 切换目录

    cd /etc

    cd /usr/lib

    pwd 显示当前目录绝对路径

    查看帮助文档

    man

    基于文件的基础操作指令

    1. 创建文件

    touch /tmp/file1

    2. 删除文件

    rm /tmp/file1

    3. 复制文件

    cp 源文件1 [源文件2] [源文件3] 目的地

    cp /tmp/file5 /srv

    4. 移动文件

    mv 源文件1 [源文件2] [源文件3] 目的地

    mv /tmp/file3 /srv

    5. 创建目录

    mkdir

    mkdir -p /tmp/a/b/c/d/e/f/g

    递归创建目录

    6. 删除目录

    rmdir

    rm -r

    rm -rf

    7. 复制目录

    cp -r test/ /tmp

    8. 移动目录

    mv /tmp/test /srv

    基于文件内容执行的操作

    1. 查看文件内容

    cat  用于查看小文件,不适用于日志型(大文件)查看

    head 查看文件头部,默认情况下,将文件前10行显示到屏幕上

         -n 指定显示行数

    tail 查看文件尾部,默认情况下,将文件前10行显示到屏幕上

         -n 指定显示行数

         -f /var/log/messages 动态查看文件尾部追加内容

         中断指令ctrl + c

    more 查看大文件,按空格翻下一页,b翻上一页,退出q

    less 查看大文件,按空格翻下一页,b翻上一页,退出q,/搜索的关键字

    2. 修改文件内容

    vim

    1) 查看模式

    2) 进入插入模式的方法

    i

    退出插入模式

    esc

    3) 退出模式

    保存退出:wq

    不保存退出:q!

    保存不退出:w

    3. 统计文件内容

    过滤行:

    grep 字符串 文件

         -v 反选

         字符串的特殊表达方式  ^ 行起始  $ 行结尾

    [root@jenny tmp]# grep ^root /etc/passwd

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

    [root@jenny tmp]# grep login$ /etc/passwd

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    operator:x:11:0:operator:/root:/sbin/nologin

    games:x:12:100:games:/usr/games:/sbin/nologin

    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    nobody:x:99:99:Nobody:/:/sbin/nologin

    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

    dbus:x:81:81:System message bus:/:/sbin/nologin

    polkitd:x:999:998:User for polkitd:/:/sbin/nologin

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

    postfix:x:89:89::/var/spool/postfix:/sbin/nologin

    apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

    [root@jenny tmp]#

    A下几行

    B上几行

     grep -A1 -B1 root /etc/fstab

    截取列

    [root@jenny tmp]# cut -d":" -f1 /etc/passwd

    以冒号作为分割的第一列截取出来

    练习:

    1. 创建/tmp/a/b/c目录

    mkdir -p /tmp/a/b/c

    2. 在该目录下创建20个文件,名为file1-20

    touch /tmp/a/b/c/file{1..20}

    3. 复制file1 file2 file3 到/srv目录

    cd /tmp/a/b/c

    cp file{1..3} /srv

    4. 移动file5 到/srv目录

    cd /tmp/a/b/c

    mv file5 /srv

    5. 移动b目录到/opt目录

    [root@jenny c]# mv /tmp/a/b/ /opt/

    6. 删除/tmp/a

    rm -rf /tmp/a/

    7. 编辑/srv/file5,写入hello并保存退出

    vim /srv/file5

    i

    hello

    esc

    :wq

    ==================================

    ls -l

       -a

       -d

    cp -r 源文件 目标地址

    mv 源文件 目标地址

    mkdir

    rm

    . 当前目录

    .. 上一级目录

    {1..10}

    * 通配符

    ==================================

    8. 截取/etc/passwd的第一列

    cut -d":" -f1 /etc/passwd

    9. 检索/etc/passwd以bash结尾的行

    grep bash$ /etc/passwd

    #10. 统计/etc/passwd行数

    11. 查看/etc/目录下所有以.conf结尾的文件属性

    ls -l /etc/*.conf

    12. 显示/etc/passwd中不含bin的行

    grep -v bin /etc/passwd

    13. 显示/etc/fstab不以"#"开头的行

    grep -v ^# /etc/fstab

    14. 去除空行显示/etc/fstab

    grep -v ^$ /etc/fstab

    #15. 检索/var/log/messages中包含kernel的行,并以页的方式进行查看。

    #16. 查看当前年月日

    回家作业

    1. 如果有一个文件名为全空格,如何将该文件删除?

    例如:

    [root@jenny tmp]# touch '      file'

    [root@jenny tmp]# ls -al

    total 4

    drwxrwxrwt. 10 root root 255 Apr 14 10:32 .

    dr-xr-xr-x. 17 root root 253 Apr 14 10:28 ..

    -rw-r--r--.  1 root root   0 Apr 14 10:32       file

    用户相关概念

    1. 用户家目录:存放用户独有的信息

    2. 用户: uid

    3. 每个用户都会有对应的所属组: 默认组、附加组

    4. 密码

    三类

    1)root用户(超级管理员)

    2)系统用户(保证一些程序能够安全稳定的运行而产生的账户)     不允许人为登录操作系统的

    /sbin/nologin

    3)普通用户(能够登录操作系统,但是权限受到一定限制的用户) 允许登录,允许执行命令

    shell --> bash

    /bin/bash

    用户信息文件: /etc/passwd

    test:x:1000:1000::/home/test:/bin/bash

    apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

    以冒号作为分割,总共有7列

    用户名:密码占位符:uid:默认组的gid:描述:用户家目录:登录shell

    /etc/login.defs 定义了用户初始化的参数

    通常情况下,自定义用户uid 1000-60000,系统用户uid范围201-999

    /etc/shadow

    man 5 shadow

    root:$6$as1u8f2ySgWp2YXh$VXIiTYn5YZBEPuFkKH7Hj7wv97.Gb/BeGWBUjY49FoJA8ikBqK931VwK..eaYlcozgLizhg5Wy8Dj3DtuANzN1::0:99999:7:::

    /etc/group

    systemd-journal:x:190:

    组名:x:gid:以附加组身份用户名单

    用户相关的配置文件

    - /etc/passwd 存放用户信息

    - /etc/shadow 存放用户密码策略的

    - /etc/login.defs 存放用户初始化相关定义参数的

    - /etc/default/useradd 创建用户默认参数

    组相关的配置文件

    - /etc/group 组相关的配置文件

    组的命令

    1. 添加组

    groupadd 组名

    groupadd -g gid 组名

    2. 删除组

    groupdel 组名

    3. 修改组的属性

    groupmod

    用户的命令

    1. 添加用户

    useradd

          -d 指定用户家目录位置

          -u 指定用户uid

          -g 指定用户默认组,(默认组有且只有一个)

          -G 指定用户附加组

          -s 指定用户的登录shell

    2. 删除用户

    userdel 仅删除用户

    userdel -r 删除用户及个人配置信息

    3. 给用户设置密码

    passwd 用户名

    4. 修改用户的属性

    usermod

          -d 修改用户家目录位置

          -u 修改用户uid

          -g 修改用户默认组,(默认组有且只有一个)

          -G 修改用户附加组

          -aG 追加附加组

          -s 修改用户的登录shell

    uid=1005(webuser) gid=1005(webuser) groups=1005(webuser),1001(jenny),1002(carol),1003(alexey),1006(grouptest1)

    5. chage 修改用户的密码策略

    [root@jenny home]# chage -l webuser

    Last password change : Apr 14, 2019

    Password expires : never

    Password inactive : never

    Account expires : never

    Minimum number of days between password change : 0

    Maximum number of days between password change : 99999

    Number of days of warning before password expires : 7

    [root@jenny home]# chage webuser

    Changing the aging information for webuser

    Enter the new value, or press ENTER for the default

    Minimum Password Age [0]: 7

    Maximum Password Age [99999]: 90

    Last Password Change (YYYY-MM-DD) [2019-04-14]:

    Password Expiration Warning [7]:

    Password Inactive [-1]:

    Account Expiration Date (YYYY-MM-DD) [-1]:

    6. 切换用户身份

    su - webuser

    exit

    要求:

    1. 创建jenny用户和carol用户,并设置其密码为Yyit123456

    useradd

    passwd jenny

    2. 创建组grouptest1和grouptest2,要求该组的gid分别为10001和10002

    groupadd -g 10001 grouptest1

    groupadd -g 10002 grouptest2

    3. 创建用户alexey,要求该用户以附加组成员身份添加grouptest1和grouptest2。

    useradd alexey -G grouptest1,grouptest2

    4. 创建用户appuser,要求该用户不允许登录操作系统

    useradd appuser -s /sbin/nologin

    5. 创建用户ivy,要求该用户家目录在/opt/ivy这个位置, 并设置密码xxxxx

    useradd ivy -d /opt/ivy

    passwd ivy

    6. 要求删除jenny用户及其个人配置信息

    userdel -r jenny

    第一人要管理网络,重启服务,

    第二个管理用户,useradd,usermod,userdel,groupadd,groupdel,groupmod

    sudo权限:在执行某些特定指令的时候,获取其他人的身份(不需要知道其他人的密码)

    配置文件 /etc/sudoers

    root

    修改配置文件 建议使用visudo命令

    用户 地方=(身份) 命令

    alexey  ALL=(ALL)       /usr/sbin/useradd

    命令写绝对路径(可通过Whereis useradd查找到绝对路径在哪里)

    当用户想要去执行指令的时候

    sudo useradd peter(第一次执行时候需输入自己的密码)

    alexey  ALL=(ALL)       /usr/sbin/useradd,/usr/bin/userdel

    作业:

    允许alexey用户通过sudo能够执行useradd,usermod,userdel,groupadd,groupdel,groupmod

    思考:能否免密码执行该指令

    vim使用

    在一般模式下能够做的事情

    1. 光标的跳转

    G: 直接跳转到文件最后一行

    10G: 跳转到文件第十行

    gg: 直接跳转到文件第一行

    2. 行复制黏贴

    yy: 复制一行

    p: 在当前行下方黏贴

    3yy: 复制三行

    p: 在当前行下方黏贴

    3. 行删除、剪贴

    dd: 删除一行

    3dd: 删除三行

    dd剪贴,p 贴

    4. 撤回

    条件: 不执行wq,都可以撤回

    u: 撤回执行操作

    5. 查找

    执行'/查找的字符串'

    如何进入到插入模式

    i: 在光标所在位置进入到插入模式

    o: 在当前光标所在位置下方新开一行进入到插入模式

    O: 在当前光标所在位置上方新开一行进入到插入模式

    A: 在当前光标所在行尾部进入插入模式

    I: 在当前光标所在行头部进入到插入模式

    如果要进行文本保存,需进入到命令模式(退出模式)

    插入模式 ---> 一般模式   ----> 命令模式

             esc   :

    命令模式下可以做的事情

    :wq

    :q! (! 强制)

    :wq!

    :set nu 显示行号

    :set nonu 取消行号显示

    替换

    :s/被替换的内容/替换后的内容/

    :s/games/happy/ 意味着将当前光标所在行匹配到的第一个games替换为happy

    :s/games/happy/g  意味着当前光标所在行所有的games替换为happy

    :%s/sbin/happy/g  意味着全文中的sbin替换为happy

    cp /etc/passwd /tmp

    对该文件进行vim的系列操作

    1. 将第一行复制到第十行

    2. 删除第五行

    3. 查找全文中所有bash,将其替换为test

    4. 将第三行,第四行剪贴至文件末尾处

    5. 保存退出

  • 相关阅读:
    .Net 框架培训
    根据 XSD生成 Data Contract之怪现象
    WCF performance
    IIS7 performance
    【原】[SQL function] SQL Server Split Function
    【原】[Data.Common.Format] 格式化传入的float(浮点型)字符串
    【原】[Crystal Reports] 当前一条记录与前一条记录比较
    【转】C#中处理XML文档的方法
    【原】Crystal Reports水晶报表 格式化传入的float字符串
    【转】[ASP] 用 ASP 创建 GUID
  • 原文地址:https://www.cnblogs.com/lz-tester/p/10708124.html
Copyright © 2011-2022 走看看