• Linux的学习过程(大二网课)


    1. 字符页面的管理
      xshell 中新建会话,输入RHEL吧啦吧啦,然后代码操作
    2. 图形界面的管理
      在新建会话,隧道选择转发X11,完成。通过代码打开软件,实现图形界面的管理
      例如:gedit & ---->后台打开记事本 【"&" : 后台打开】 Firefox & -----> 后台打开记事本

    访问命令行

    1. Bash:人机交互的接口
      人---> Bash -----> 机器
    2. 介绍提示符
      [root【用户名】@node1【主机名hostname】~]#   root用户是最高权限用户  #代表权限最高
      [zjj@node1~]$   自创的用户,权限有限    $代表普通用户
      指令:
      hostnamectl set-hostname xxx(要改的名)-----修改主机名
      cat  /etc/hostname ------查看主机名
      whoami------查看当前用户名

      pwd-----查看当前目录

    3. 介绍命令语法
      构造:命令 [参数] [选项](可加可不加)
      指令:
      ls-----查看当前目录下文件清单

       例如
      ls /boot -----查看boot文件下清单

       ls -l /boot -------查看boot文件下long格式清单

    4. 虚拟控制台
      方式:Ctrl + Alt + F(1-6)【F1 F2为图形(就是登陆后的窗口),F3--F6为命令界面】
      随便进入一个后的界面

      此时输入root,再输入root的密码即可登陆进去
      指令:
      tty----查询终端
      此时是通过F5进入的控制台
      w(切记小写)----查看哪些用户登入

      exit----退出登陆(清空界面,返回登陆)

    5. 远程访问命令行

      使用SSH登陆  -----(科普:ssh作用:为远程登录会话和其他网络服务提供安全性协议
      格式:用户名@IP地址   后面疯狂yes就好了

      这里我用了老师的截图
      退出输入exit或者Ctrl + d


    使用桌面去访问命令行

    1. 在桌面如何使用命令行
      Alt + F2

      输入gnome-terminal ------打开终端

      关机命令: Ctrl + Alt + Del


    使用Bash执行命令

    1. 基本命令语法
      一行多个命令 ------ 在多个命令中间加分号(;)
      指令:
      ip addr ----- 查看IP地址
      例如w;tty   先出现登录记录,后出现终端号
    2. 基本命令示例
      1.date 修改时间 设置时间
      查看date的用法指令 date -help
      将时间校对为系统时间 hwclock -w
      查看系统时间 hwclock -r
      查看年月日时间格式 ------ date %F
      查看时分格式 ------date %R
      查看月日年格式 ------date %x

      2.passwd
      修改密码
      passwd 用户名-----修改
      (没有图,没实践)
      root可修改所有用户的密码

      3.file
      查看文件类型

      查看文件的内容
      1.cat
      格式:cat filename(文件名)-------一次显示整个文件

      2.more
      格式:more filename(文件名)--------会以一页一页的形式显示,而最基本的指令就是按空白键(space)就往下一页显示,按理来说只能向下翻,(这个未确认
      )按 b 键就会往回(back)一页显示
      q退出,输入 / 字符并在其后加上你想要查找的文字(小写n下一个)

      3.less
      格式:less filename(文件名)---------可通过pg up和pg down上下翻页,上下键过行

      4.head文件头部/tail文件尾部
      格式:head / tail  文件名----------从头部或尾部查看文件
      head / tail -行数 文件名---------查看几行文件

      5.wc (word count统计文档字数)
      格式:wc 文件路径---------查询文档的字数
      wc -l 文件路径 ----------查询文档的行数  (line行)
      wc -c 文件路径------------查询文档的字符数     (char字符)
      wc -w 文件路径----------查询文档的单词数      (word单词)

    3. 使用tab补全命令
      1.补全命令 补全命令 补全选项
      输入部分,双击tab键自动补全

    4. 长命令的执行
      加入    分割回车  出现 > 后继续输入

    5. history命令的历史输入
      格式:history------查看历史输入
      history [#] --------查看#条历史记录
      ! + 序号 ------执行第(序号)条命令
      ! + 命令 -------执行最近一次以命令开头的指令
      history -c ------清楚历史
      Alt  + 。-------重新调用前一个命令中最后一个参数

    6. 编辑命令行

      Ctrl+a 移动到当前行的开头
      Ctrl+e 移动到当前行的结尾
      Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
      Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身
      Ctrl-R: 开始增量历史命令搜索,可以按照关键字查查自己用过哪些命令


    使用命令行管理文件

    1. Linux文件层次结构
      1.1文件系统层次结构
      只有一个根文件系统(所有硬件以文件方式显示)
      进入根目录方法------cd /
      就是一个树形文件系统

      1.2典型目录意义

      /usr:Unix System Resource Unix操作系统的软件资源  用户安装软件的目录,我们用的文件和应用程序几乎都放在这个目录下


      /etc:整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件(系统配置文件所在目录)例如账号什么的保存在这


      /var:储存各种变化的文件,例如日志文件


      /run:存在内存中,记录系统中的log文件,进程相关的id号

      /dev:设备目录,Linux在这里创建设备节点,例如逻辑卷硬盘光盘光驱

      /home:系统默认用户家目录,用户主目录,Linux在这里创建用户目录(新增用户目录,家目录存在此目录下)

      /root:系统管理员家目录,超级用户root的主目录(在Linux系统中,斜杠字符“/”是整个系统的根目录,而非超级用户的主目录

      /tmp:临时存放文件的目录,可以在该目录中创建和删除临时工作文件

      /boot:启动目录,存放启动文件.目录存放系统核心文件以及启动时必须读取的文件,包括Linux内核的二进制映像。


    2. 相对路径和绝对路径

      绝对路径:从根目录/开始

      相对路径:从当前目录开始




    3. 命令
      . :当前目录    ./
      .. :上级目录   ../
      cd 路径 --------转到对应的路径
      pwd -------查看当前路径
      ls ---------查看当前目录下文件及目录
      mkdir dir-------在当前目录下创建该目录(dir是目录名)
      mkdir -p 路径(例:/aaa/bbb/ccc)--------一个个创建,否则会因为目录不存在而创建失败
      tree 目录名--------查看目录下的树形文件

      cp/copy 要复制的文件名/目录名 要移动到的路径 ----------复制文件到该目录下
      cd - ---------返回上一次的目录

       cd ~ --------前往用户的家目录下


      cd ~ 用户名 -------去该用户的家目录下


    4. 使用命令行工具管理文件

      1.mkdir -----创建目录
      格式:mkdir 创建目录的位置及相关目录 -p -------------先从父目录开始创建,后创建子目录
      例如:mkdir aaa/bbb/ccc -p

      2.cp ------复制
      格式:cp -f(强制覆盖) 要移动的文件 要移到的位置 -------将文件移动到对应位置(强制)
      其中 cp -f:强制  cp -i:交互

      3.mv -----移动,剪切目录/文件
      格式:mv 要移动的文件 移动到的位置 --------移动文件位置
      mv 同目录下原文件 同目录下的改名后文件 -------在同目录下修改文件名

      4.rmdir -----删除目录
      格式:rmdir 目录路径 ------只删除空目录
      rm可以删除非空目录
      rm -rf 目录(例如aaa/bbb/ccc)--------一层层删除


    5. 链接
      链接分为硬链接和软链接,硬链接是一个档案可以有多个名称,软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统

      格式:
      ln 源文件 硬链接的名字 ------在相同的目录下新建一个硬链接
      ln -s 源文件 软链接的文字 ------在相同的目录下新建一个软链接

      软链接:
      1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
      2.软链接可以 跨文件系统 ,硬链接不可以
      3.软链接可以对一个不存在的文件名进行链接
      4.软链接可以对目录进行链接

      硬链接:
      1.硬链接,以文件副本的形式存在。但不占用实际空间。
      2.不允许给目录创建硬链接
      3.硬链接只有在同一个文件系统中才能创建

      原文件删除后,软链接无法访问,而硬链接还可以继续访问
      区别:
      1.占用的大小不同
      2.



      5.2转义字符
      ---- 将符号转为普通字符
      例如 $(hostname)------输出为hostname
      ‘’--------将内部所有的符号视为无效
      “” ----据说有特殊含义

    6. 命令行的扩展
      1.文件通配符
      * ------任意字符  
      例如 ll /etc/a* ------查找a开头的文件
      ? ----单个字符
      例如 ll /etc/?a* -----查找第二个是a的文件或目录
      [  ] -------集合中的单个的字符
      例如 ll /etc/[abc]* ------ 查找以a/b/c开头的文件
      [^] ------- 不在集合中的单个字符
      例如 ll /etc/[^a]* ------查看非a开头的文件

      2.大括号扩展
      { },,(分隔),..(连续)
      例如创建文件
      mkdir f{1..3}.txt ------ 创建f1,f2,f3.txt
      mkdir f{5,7}.txt ------创建f5,f7.txt
      touch f{a{1,2},b,c}.txt ------创建f(a1,a2,b,c).txt

      3.命令替换
      $()------调用命令
      例如
      touch f$(date %F).txt ------建立当前时间名的txt文件
       ` ` ----在双引号中调用命令
      例如“ ········` hostname`    ” ------中间可以显示主机名


    获取帮助

    • 4.1help 与 --help
      内置命令用help,外置命令用 --help 都可以
      【怎么查看是否是内外置命令】
      type 命令 ------查看命令是内外置命令

      外置命令

       内置命令

    • man手册  (常用)
      格式:man 命令 -------打开该命令的man手册
      下例 :man passwd



      查询关键字
      man -k 关键字 ------

      【如果出现下面的情况,则是没有安装mandb】

      此时输入mandb安装后即可

      man 序号 关键字 -------选择对应的操作(与上图相关,例如选择5使用对应 )
      man 5 passwd

       /关键字 --------查找对应关键字
      q退出

    •  info 和man差不多,比man更详细一些(吧)
      格式:info 关键字

    • 帮助文档
      位置:/usr/share/doc


    创建查看编辑文本文件

    • 重定向
      有输入重定向,输出重定向,管道
      先说输出重定向
      是将得到的结果输出到文件中
      格式:ls(当时位于某个目录下) >(这符号代表输出重定向) 文件名.文件类型
      例如:ls > ls.txt
      命令 >> 文件.文件类型 --------将结果追加到文件中(如果只是用上面的方法,则会覆盖)
      【这里有个注意点,这里只保存对的运行结果,错的不执行】
      例如
      ls -l(长目录格式) ls.txt lsls.txt(假设的不存在文件) > xxx.txt
      存储的只有ls.txt的结果
      但是面对要存储正确的错误的结果要用不同的方法
      1 > -----正确的      2 > ---------错误的    2>&1----全部的
      使用上述方法就可以存储错的结果
      例如
      ls  -l ls.txt lsls.txt(不存在的文件) 1 > ok.txt  2 > err.txt ---------将对和错的结果分开存储
      【错的结果内容



      ls -l ls.txt lsls.txt > all.txt 2>&1 -------将对错的结果统一存储

      输入重定向
      这个不是很清楚......但是是用 <

      管道
      将上一条命令的输出作为输入
      具体不清楚
      例如:cat /etc/passwd | wc -l -------统计前一条命令的行数(是后者将前者的输出作为了输入去计算)


    • vim编辑器
      对文件进行修改
      命令模式(进来时的初始模式)

       当输入
      i进入编辑模式(insert键也可以)按esc返回命令模式
      v进入可视
      u进入撤销

      命令模式的操作
      #G-------跳转到#行
      #dd ------删除/剪切#行  单删一行直接dd
      #yy------复制#行   单复制一行yy
      p/P -----粘贴,前者贴下面,后者贴上面
      u-------撤销
      ctrl+z ------恢复

      编辑模式的操作(在命令模式下的操作)
      i ------光标所在位置开始插入
      A ------最后一个开始插入
      O -------上插入一个空白行
      o --------下插入一个空白行

      末行操作(输入一个:后的操作)
      w:保存
      q:退出
      wq:保存退出
      q!:强制退出
      wq!:强制保存退出
      / :搜索(从上往下)
      ?:搜索(从下往上)
      s:替换  
      只换一个 (在当前行) s/原来的字/要换的字
      换一行 (在要换的行) s/原来的字/要换的字/g
      换全部 1,$ s/原来的字/要换的字/g


    用户介绍以及提升权限

    • 用户与组管理
      位置 /etc/passwd
      打开文件后节选一段来讲解

       例如这个顺序是
      用户名,密码,用户ID号(0代表root用户,1--999系统用户,1000+普通用户),组ID号(0代表root用户),全名,家目录

      passwd -S 用户名 -------查看用户状态

      密码位置:/etc/shadow
      打开文件后节选一段来讲解

       顺序:用户:SHA512算法加密后的密码:salt(我也不知道这是干嘛的)


      组的位置:/etc/group
      打开文件后节选一段来讲解

       组名:不知道意思的符号(都是这样的):组ID号

      id 用户名 --------查看用户的uid gid 和组

       


    •  如何获得用户权限

      su 切换用户
      su - 完全登陆(su - root)
      sudo 给某一个用户特别权限

      针对sudo的用法
      相关配置文件目录 /etc/sudoers.d
      在目录下vim 用户名(建立相关文件并编辑)
      语法:用户名 ALL(全部设备)= 身份【这个意思是在全部的设备上是以什么身份运行】 给予的权限目录(例如/usr/bin/mount,多权限逗号分隔)
      设置无密码:用户名 ALL=(root) NOPASSWD:ALL

      sudo -l -----查看授权(权限)
      sudo -k -------清理缓存 


    • 管理本地用户
      1.useradd 添加用户
      语法:useradd -d(指定家目录) 位置(例如/user03)(默认/home/~)-m(创建用户家目录) -g(添加到某一组)  组名  -r(系统用户) -------创建一个可用的用户

      2.userdel 删除用户
      语法:userdel 用户名 -r(删除用户家目录) ---------删除用户

       
      3.usermod 用户属性的修改
      语法:usermod -g(强制改组)用户名 组名------------修改用户的组

      4.passwd 改变用户的密码
      语法:passwd 用户名--------更改用户的密码(普通用户只能改自己密码)

    • 管理本地的组
      1.groupadd

      groups 组名 --------查看组下的成员


      2.groupmod修改组的属性

      3.groupdel删组

      gpasswd -a(向组中添加用户)要添加的用户 组名 -------将一个用户添加进组中
      gpasswd -d(删除)要删的用户名 组名 -------将一个用户从组中删除


    • 管理用户密码
      组成:目录下/etc/shadow  看上面
      设置密码【
      useradd user03
      echo ‘rehat’|passwd --stdin(标准输入) user03 ------以管道的方式设置user03的密码


      shadow文件的组成
      登陆名:加密密码:最后一次更改日期:密码最小年龄:最大年龄:密码警告时间段:密码禁用期
      最后一次更改时间:是从1970.01.01开始计算的天数,如果是0,则下次登陆要修改密码
      密码最小年龄:最少几天要改密码
      密码最大年龄:密码存活时间
      密码警告时间段:密码过期警告
      密码禁用期:逾期时间(过了几天还能用)

      timedatectl set - time “~” -------设置时间

      timedatectl----------查看时间

      同样的可以用chage来查看

       

      限制访问
      1.在/etc/passwd下修改后面的家目录改成/sbin/nologin  ----限制登陆
      2.usermod -L  用户名------锁定账号/U是解锁

      /etc/default/useradd ====== 保存了用户创建的默认值
      /etc/login.defs =====账号信息




    文件系统权限

    • 权限相关的概念 
      在目录中使用ll指令去查看权限

      前面第一个代表文件属性【-代表普通文件,d代表目录】
      后面的rwx分别意思为
      文件:读取,修改文件(可写),可执行
      目录:读取,创建修改改名文件/子目录 ,可进入目录
      后面的减号则是分隔用户

      后面从2或者1后第一个开始,分别是ugo,分别对应前面的权限
      u:user用户
      g:group组
      o:others其他用户

      改变权限
      chmod u/g/o +/- 可执行权限(rwx)  文件路径 --------------修改权限

      设置权限
      (root用户不受权限限制)
      符号法
      chmod -R(递归修改) u/g/o/a(所有)  +/-/=(可以直接修改)  r/w/x  filename/directory
      数字法
      chomod 777(所有权限,r=4,w=2,x=1,分别对应ugo) /aaa

      修改拥有者
      chown 用户 /filename/directory--------------修改拥有者

       同理修改组
      chgrp 组名 filename/directory


    • 三个特殊权限及默认权限
      1.u+s(其他用户都可享有文件属主的权限)
      任何用户在执行命令时,是以命令所有者的身份执行,例如普通用户重启时,是以root身份执行reboot命令
      which 命令名 --------查找命令所在的位置
      例:chmod u+s /usr/bin/systemctl -------赋予权限
      2.g+s(无论哪个用户在该组下创建目录文件,该文件目录均属于g+s的组)
      chmod g+s 目录名
      3.o+t
      此目录只有root和此目录的拥有者可以删除
      防止同组误删文件

      4.默认权限umask
      root用户默认umask = 022【这个对应ugo】
      创建目录时常是777 - umask = 755
      创建文件时常是666 - umask = 644
      这个umask是从权限中去掉哪些成为最终默认权限

      临时修改--------umask 数字
      永久修改------在/etc/bashrc 下添加 umask 数字



    进程管理 

    • 工作控制jobs(查看进程)
      当程序运行后在系统的表现称为进程
      1.暂停 Ctrl + z
      前台进程后台运行
      例如:控制台打开某软件后处于无法操作的状态,Ctrl + z 后台运行
      jobs ------ 查看进程

      2.& 后台运行
      gedit & -------后台打开笔记本软件

      3.bg 让进程在后台运行
      bg(background)
      bg 进程ID号------使对应的进程后台运行

      4.fg 让进程在前台运行
      同上

      5.Ctrl + c 终止任务
      或kill -9 %ID号 杀进程


















     
  • 相关阅读:
    html页面格式化输出js对象
    JavaScript之构造函数
    关于配置nginx服务器相关事宜
    react-native实践(基于antd-mobile)
    python字典和条件控制
    python运算符与数据类型
    python简介和python工具的选择
    day48-python爬虫学习三
    day47-python爬虫学习二
    day46-python爬虫学习
  • 原文地址:https://www.cnblogs.com/YanZhuDL/p/12483176.html
Copyright © 2020-2023  润新知