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号 杀进程

 





 

 

 

 

 














 

 
posted @ 2020-03-24 21:32  炎诸DL  阅读(258)  评论(0编辑  收藏  举报