zoukankan      html  css  js  c++  java
  • 2018-08-05学习linux小结

    入门容易精通难,现在的小结还只是对文件进行操作。

    这次小结将总结一下几个知识点:

    1.基础操作

    2.对文件的管理操作

    3.对文件、用户的编辑

    4.对文件、用户的权限管理

    5.linux远程连接

    本篇小结大部分是语句格式,如果需要代码实现的截图,以及部分额外知识点标注,可以下载安装xmind软件后,下载云盘里的思维导图进行查看。

    链接:https://pan.baidu.com/s/1pFXHks7j77YgUrkR2vetNQ 密码:sgqp

    xmind内容如下:


     

    基础操作:

    一.切换用户和退出:

    su:超级用户登录进入当前目录

    su - :登录进入超级用户家目录

    su后跟用户表示登录该用户。

    关机:使用root用户输入poweroff

    exit:退出当前shell

    二.获取帮助:man/help

    man 命令:获得类似用户手册的反馈

    命令 --help / -h:获取帮助


    文件操作:

    一.目录

    1.pwd:查看当前工作目录

    2.cd:切换工作目录

    格式:cd [目录位置]        如果cd,cd ~均是回到当前用户的家目录

    3.ls:列表(list)显示目录内容

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

    -l:以长格式显示,ll:就是ls -l

    -a:显示所有子目录和文件的信息,包括隐藏文件

    -d:显示目录本身的属性

    4.mkdir:创建新的目录

    格式:mkdir [-p] [路径] 目录名       -p用于创建多级目录

    写成mkdir -p 1/2/3/4 则会目录分级创建下去

    {}多个目录同时创建:mkdir {开始..结束}

    也可以写上目录进行创建

    二.文件

    1.touch:创建空文件,或更新文件时间标记(时间戳)

    格式:touch 文件名

    2.vi/vim:文本编辑器

    作用:创建或修改文本文件,维护linux系统中的各种配置文件

    格式:vim 文件名

    三.操作

    1.cp:复制文件或目录

    格式:cp [选项] 源文件或目录 目标地址

    -r:递归复制整个目录树

    用于复制文件夹时

    cp可以对文件进行改名,在指令最后如果不是一个目录,则会将目标文件改名为最后的代码

    2.rm:删除文件或目录

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

    -r:递归删除整个目录树

    在root下输入:rm -rf /* 有惊喜

    删除系统

    3.mv:移动文件或目录(如果目标位置与原位置相同,则相当于重命名)

    格式:mv [选项] 源文件或目录 目标文件或目录

    4.cat/less/more/head/tail:查看文本文件

    cat:显示出文件的全部内容

    格式:cat 目标文件

    less/more:全屏方式分页显示文件内容

    格式:less/more 目标文件

    交互操作方法:

    按enter键向下逐行滚动

    按空格键向下翻一屏、按b键向上翻一屏

    按q退出

    head:查看文件从头开始前10行

    格式:head 目标文件

    查看前20行:head -n 20 目标文件

    tail:查看文件从末尾开始后10行

    查看后20行:tail -n 20 目标文件

    5.grep:在文件中查找并显示包含指定字符串的行

    格式:grep [选项] 查找条件 目标文件

    常用命令选项

    -i:查找时忽略大小写

    -v:反转查找,输出与查找条件不相符的行

    查找条件设置

    要查找的字符串以双引号括起来

    “^......”:以......开头

    “......$”:以......结尾

    “^$”:空行

    6.命令替换:格式  $()  或  ``

    举例:echo 'date' 或 echo $(date)会获得当前日期

    touch test_`date`;

    今天是八月五日,则创建的文件名为:test_2018-8-5

     


    文件编辑:

    一.重定向:

    小概念:正常显示的内容为标准输出,错误提示的内容是标准错误

    1.标准输出的重定向格式: 

    > file (覆盖重定向)

    >> file (追加重定向)(新添数据到最后)

    将正确输出的数据保存

    2.标准错误的重定向格式:

     2> file (覆盖重定向)

    2>> file (追加重定向)

    将错误输出的数据保存起来

    3.标准错误和标准输出同时重定向:

    &> file

    &>> file

    二.管道

     | 管道:连接左右两个命令,将左侧的命令输出的结果传递给右侧,作为右侧命令的处理对象

    格式:cmd1 | cmd2 [选项]

    wc  统计:行数 字数(单词数) 字符数

    -l:只查看行

    free指令是查看内存

    free -m | grep "Mem" | awk '{print $2,$4}'        多个指令一起

    三.vi/vim:文本编辑器

    作用:创建或修改文本文件,维护linux系统中的各种配置文件

    vi:类Unix系统中默认的文本编辑器

    vim:vi编辑器的增强版本,习惯上成为vi

    末行模式:按v键

    :set nu    (显示行号)

    :set nonu  (取消行号显示)

    ctrl + v  (进入块选择模式)

    y    (复制)

    dd    (删除光标所在的一行)

    x    (删除一个字符)

    p    (粘贴)

    / 字符    (查找字符)

    n/N    (匹配寻找到的下/上一个字符)

    :noh    (取消高亮显示)

    :wq等同于ZZ   (保存并退出)

    :q!  (不保存退出)

    :s /旧字符/新字符    (将找到的第一个字符替换为新字符)

    :% s/旧字符/新字符    (将所有的旧字符替换为新字符)

    插入模式:按i键

    自由输入


    用户、组管理

    用户和组账号概述

    用户账号:

    超级用户root,用户id=0

    普通用户 

    系统用户:id:0id<1000,维护某个服务或进程

    组账号:

    基本组(私有组)

    附加组(共有组)

    UID和GID:

    UID:用户标识号

    GID:组标识号

    passwd(用户账号文件):用于保存用户账号的基本信息

    文件位置:/etc/passwd

    每一行对应一个用户的账号记录

    字段1:用户账号的名称

    字段2:用户密码字串或者密码占位符“x”

    字段3:用户账号的UID号

    字段4:所属基本组账号的GID号

    字段5:用户全名

    字段6:宿主目录

    字段7:登录shell信息(bin/bash可以登录,sbin/nologin不可以登录)


     

    1.useradd:添加用户账号

    格式:useradd [选项] 用户名

    -u:指定UID标记号

    -d:指定宿主目录,缺省为/home/用户名

    -e:指定账号失效时间

    -g:修改用户所属的群组(属组)

    -G:修改用户所属的附加群组

    -s:指定用户的登录shell

    指定多条信息,在每个选项后添上值即可

    2.userdel删除用户账号:

    格式:userdel [-r] 用户名

    -r表示将用户的宿主目录一起删除

    3.usermod(修改用户账号的属性):

    格式:usermod [选项] 用户名

    -u,-d,-e,-g,-G,-s用法与useradd相同

    4.passwd:创建或者修改用户密码

    格式:passwd [用户] 修改输入用户的密码

    passwd 修改当前用户密码

    普通用户

    root用户(可以无需密码通过su登录其他用户)

    另一种修改密码:echo 新密码 | passwd --stdin 用户名

    此方法也就是通过管道

    5.groupadd添加组账号:

    格式:groupadd [-g GID] 组账号名

    创建的组是空组

    6.groupdel删除组:

    格式:groupdel 组账号名

    7.groupmod:修改组

    格式:groupmod 组账号名


    权限管理

    1.访问权限

    读取:允许查看文件内容、显示目录列表

    写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

    可执行:允许运行程序、切换目录(cd)

    归属:           属主:拥有该文件或目录的用户账号

                           属组:拥有该文件或目录的组账号


    查看目录权限 ll -d

    l开头的表示链接,d开头表示目录,-开头表示文本文件,.开头表示隐藏文件

    2~4是属主的权限,5~7是属组的权限,8~10是其他人的权限

    r:读 w:写 w:可执行

    权限字符对应的数字:

    r:4  w:2  x:1

    读写可执行:4+2+1=7

    读写:4+2=6

    读可执行:4+1=5

    写可执行:2+1=3

    2.chmod设置文件/目录的权限

    格式1:chmod [ugoa][+-=][rwx] 文件或目录

    u,g,o,a分别表示属主、属组、其他用户、所有用户

    +、-、=分别表示增加、去除、设置权限

    [rwx]对应权限的字符

    格式2:chmod nnn 文件或目录

    nnn是三位八进制数,即与上面读写可执行的数字对应

    -R:递归修改指定目录下的所有文件、子目录的权限

    特殊权限:

    set位权限:

    为可执行(有x权限的)违建设置,权限字符为“s”

    如同student修改自身密码,可以成功,但进行修改的是root进行修改,而不是student去操作

    g+s(对属组):该目录下创建的新目录自动继承属组

    student用户创建了一个student目录,通过g+s修改权限为rwxrwsrwx,意为其他组在该组下创建的属组继承student

    u+s(对属主):以拥有这个文件的用户的身份去运行

    o+t(对其他人):所有用户可以创建目录但是不能删除别人在此目录下创建的目录


     

    suid:4  guid:2  t:1

    这个文件的权限是4755

    s处如果没有x,显示的会是S

    如果:

    6755:rwsr-gr-x

    7755:rwsr-gr-t

    1755:rwxr-gxr-t

    4655:rwSr-xr-x

    3.chown设置文件/目录的归属

    格式1:chown 属主 文件或目录

    格式2:chown .属组 文件或目录

    格式3: chown 属主:属组 文件或目录

    -R:递归修改指定目录下的所有文件、子目录的归属

    chgrp:修改属组

    chgrp 属组 文件名称


    远程链接

    systemctl 选项 服务名称

    选项:start,restart,stop,enable(设置开机启动),disable(停止开机启动),status(查看服务当前状态)

    1.远程连接:

    1.在虚拟机设置中找到网络适配器,勾选桥接模式

    2.systemctl restart network重启网络

    只有重启一次,修改的东西才能生效,sshd也一样

    3.ip a查看IP地址,ens33中的是IP地址

    4.ssh 被连接者用户名@IP地址    并确认链接

    5.输入密码

    6.连接成功进行操作

    7.退出登录:exit logout

    2.通过秘钥无密码链接

    ssh(系统中的secure shell软件的软件实施),用于在远程系统上安全运行的shell

    ssh-keygen(生成秘钥):

    ssh-copy-id root@IP地址(链接)

    操作过程:

    1.生成秘钥:ssh-keygen

    前三个冒号后,可无需内容直接enter

    2.将秘钥传递给秘钥接收者:ssh 被连接者用户名@IP地址

    输入一次密码,此处的密码是秘钥接受者的密码

    3.无密码成功登录

    成功后,无需密码便可登陆秘钥接受者账户

    秘钥是单向的,对面想无密码登录,也需要来一次秘钥传递


        这一周学习状态不佳,而且总结也极其的偷懒,一顿复制粘贴自己也不知道有没有条理,下周的总结希望做的好点吧。如果小伙伴们有疑问或建议,欢迎留言。

  • 相关阅读:
    Python 教程之String
    python 斐波纳契数列实现
    js 中 document.createEvent的用法
    C#里调用 MysqlDB
    [网购]
    [ENLearning] 2010920
    [EN Learning] 2010913
    [EN Learning] 2010910
    [ENLearning] 2010921
    [EN Learning] 2010916
  • 原文地址:https://www.cnblogs.com/bkytep/p/9427537.html
Copyright © 2011-2022 走看看