学习韩顺平-Linux:

本文详细介绍了学习Linux的基础教程,涵盖网络连接模式、虚拟机管理、远程登录、vim编辑器使用、文件目录结构、用户与组管理、任务调度、磁盘分区挂载、网络配置、进程监控等内容,适合Linux新手快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习韩顺平老师的Linux课程:【小白入门 通俗易懂】2021韩顺平 一周学会Linux
参考 2021韩顺平图解linux_狗剩学习笔记以习之。

Linux:

到P104 左右

image-20210819175001323

一、配置:

connection失败:

  • ifconfig 查到 linux 的 IP , 修改之即可

image-20210821170538539

image-20210817222606529

image-20210817222727769

网络连接的三种模式

  • 桥接模式: 虚拟系统(自己另创的)可与外界连接通讯,但易与真实系统的IP产生冲突。

  • NAT模式: 网络地址转换模式,其虚拟系统,可与外界连接通讯,且与真实系统的IP不造成冲突。

  • 主机模式: 虚拟系统不与外界发生通讯

克隆虚拟机:

image-20210818114209541

虚拟机快照(存档):

image-20210818115211724

image-20210818120054154

vmtools:

可使Windows 与虚拟系统linux一起管理某个文件夹

image-20210818120256874

命令: ()
  • cd … [ 返回上一级目录]

    • 用tab键 自动补全文件
    • ls [ 查看当前文件夹的文件]
  • cd /opt [ 进入到opt目录]

  • tar -zxvf xxxxx [解压某压缩包]

  • ./ xxxxx 【安装某程序】

二、linux 目录结构:

1、 基本介绍:

linux 一切皆文件。 采用层级式的树状目录结构

  • 该结构的最上层是 【根目录】“ / ”

2、 具体的目录结构:

  1. /bin( /usr/bin、 /usr/local/bin) : 常用
    • 存放最经常使用的命令
  2. /sbin : 管理员使用的命令(权限高的命令
  3. /home : 存放每个普通用户的信息(目录),以用户名命名 常用
  4. /root : 系统管理员的用户主目录 常用
  5. /lib: 存放应用程序的 共享库
  6. /lost+found: 存放系统不正常关机时 存放的文件
  7. /etc: 某应用程序的配置文件及子目录 eg: mysql.conf 常用
  8. /usr: 默认的下载目录 常用
  9. /boot: linux启动的核心文件 常用
  10. /proc: 系统内存的映射信息 常用
  11. /srv : service : 服务启动所使用的数据
  12. /sys: 系统内核(关键文件)
  13. /tmp: 存放的临时文件
  14. /dev: 设备管理器 《以文件的形式存储》
  15. /media: 存放 linux 自动识别设备的 常用
  16. /mnt: 虚拟系统与主系统共享的文件 常用
  17. /opt: 主机额外安装软件所存放的目录
  18. /usr/local : 软件安装完成后,的目标目录 常用
  19. /var: 日志: 常用
  20. /seliinux : [security - enhanced linux]:
    • 安全子系统

三、远程登录linux-----Xshell

1、 对linux 进行远程的命令操作

  • 支持SSH1,SSH2,以及微软的TELnet 协议
  • 可在Windows界面 下访问不同系统的服务器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KlaqShX-1631534093537)(D:\Typora\yuancpan\Typora\typora-user-images\image-20210818192919831.png)]

  • 小结: 使用Xshell时 , 若linux在本地,则需要开启虚拟机方可进行连接

四、Xftp

  • 对linux 进行远程的文件上传及下载

image-20210818194530284

五、使用vim :

vim 入门:

略:

img

1、 三大状态:

image-20210819162139620

  • 一般模式(正常模式)

    • 此时可以 ----> xyy : 复制 x x x​行代码,p 粘贴结果

    • xdd: 删除 x x x​​行代码.

    • u :撤回

    • G : 最末行

    • gg : 最首行

    • 20 Shift+G : 光标移至第二十行

    • / String ; 查找String , 按 n 寻找下一个

  • 编辑模式: 正常–>编辑模式

    • 通过输入 ia 进入
    • 开始编辑内容
  • 命令模式: 正常–>命令模式

    • 查询某个词: / XXX : 查询XXX ,按 n : 下一个
    • 输入 / 即可进入
    • :set nu : 显示行号
    • :set nonu : 不显示行号
    • : wq : 保存且退出
    • :q ! : 不保存提出
    • :x : 类似于 :wq , 若文件无变动,则不写入
    • 查找与替换
  • :s(substitute)命令用来查找替换字符串。

  • :{作用范围}s/{目标}/{替换}/{替换标志}
    例如: %s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)。

image-20210819162230870

2、 实操(写一个HelloWorld):
  1. 创建 hello.java 文件:

    • vim hello.java 
      
    • 编写简单的hello程序:

    • public class hello{
          public static void main (String args[]){
      
              System.out.println("你好呀");
          }
      }
      
      
    • 编译成.class文件:

    • javac hello.java 
      
    • 运行程序:

    • java hello
      
    • image-20210819172932320

  2. 遇到的问题:

    • image-20210819173046240

    ​ 解决方法:

    • yum install java-devel
      

      稍等片刻后 即可解决.

  • linux 下使用 vim 卡死原因与解决方法

    • ​ 我们在linux 下使用vim 编辑文件时,习惯性的使用了 Ctrl + s , 导致vim 僵死,无法编辑,此时只需要使用 Ctrl + q 解除即可。

      在vim 中,Ctrl + S 是锁屏快捷键, Ctrl+ q 解锁

  • 不小心按了ctrl +Z

    • 强制返回 ,导致产生 swp 文件:如下3、
3、Linux下删除SWP文件
可以输入如下指令:

rm -rf xxx.swp

来删掉该文件。

之后可以输入ls -a 来查看是否删干净了。

image-20210819173426933

六、关机/重启 、登录 :

1、 关机

注意: 关机/重启 首先使用==sync==命令

  • shutdown -h now : 立即关机
  • shutdown -h 1 : 一分钟 后关机
  • shutdown -r now : 现在重启计算机
  • halt : 关机
  • reboot : 重启计算机
  • sync将内存的数据同步到磁盘

2、 切换、登录用户

现在以 lsj(普通用户)登录

  • su - root : 切换到root用户
  • su - lsj :切换到 lsj 用户
  • 在root 用户下 ,执行 logout 指令, 切换回 lsj 用户
  • 在 lsj 用户下,再次执行logout 退出

image-20210819193537836

七、 用户管理

常用指令

  •   `pwd`  : 查看當前的目录的绝对路径(所在位置)
    
  •   `ls` :   查看当前目录 下的内容
    
  •   `ls - a`  : 查看当前目录下的内容(包括隐藏文件【以 **.** 开头】) 
    
  •   `ls - l`  :  以列的形式查看内容   可简写为  `ll`
    
  •   `ls -t` :     以最近修改时间为序 查看内容
    
  •   `ls - alt` :  综合以上
    
  •   `ls  -h`, (–human-readable) 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
    

1、useradd添加用户

x 用户会默认归到 名为x 的分组

  • 语法: useradd haha
    • 说明: 会创建一 用户 haha , 且在 /home 下创建同名的家目录
      • 目前不可登录,需要设置密码
  • adduser bibi : 效果一样
  • useradd -d /home/test haha :
    • 说明: 在 /home/test 的目录下创建用户haha

2、passwd 设置 / 修改密码

  • ​ 语法: passwd haha : 给haha 用户 创建/修改 密码

    • image-20210820220946654
  • 注意 语法: passwd

    • ​ 给当前==默认==用户更改密码 !!!
      •    image-20210820221116433
  • 语法: passwd -S root

    • 查看当前用户的**密码信息**
      
      • image-20210820221537000

3、 userdel删除用户

  • 语法: userdel lili
    • 删除用户 lili ,并不会删除家目录
    • image-20210820230636886

  • 语法: userdel -r bibi

    • 删除用户 bibi 且删除其用户的家目录
    • 要慎重!!image-20210820230928270
  • bug

    • image-20210820233356781

4、查询用户信息

  • 语法: id root
    • 查询
    • image-20210820231328119
      • 查询已不再的用户:
      • image-20210820231517640

5、切换用户(细节)

  1. su 与 su- 的区别

    • su

    su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

    • 注意
      • ​ 该操作仅仅只是可以对某用户进行操作,只是一个线程。

    su -

    su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量
    即刻切换到指定目录的环境变量。

  2. 退出: exitlogout

6、 查看当前用户登录的信息

  • 语法: who am iwhoamiwho are you
    • image-20210820232525735

who am i会显示初次登陆用户,whoami不会

image-20210820232921124

7、 用户组

1、 groupadd添加组
  • 指令: groupadd h ----> 添加组名:h
2、groupdel 删除组
  • 指令: groupdel h ----> 删除组名:h
  1. id 命令可以显示真实有效的用户ID(UID)和组ID(GID)
3- groupadd增加 某用户到 某组
  • groupadd ha

  • useradd -g ha lsj 在 ha 组中 加入用户lsj

image-20210820234443015

4 、usermod 修改用户的组
  • usermod - g jiao zwj
    • 将用户 zwj 移至组 jiao

image-20210820234709302

参数
-g<群组>修改用户所属的群组
-d修改用户 登录后默认的目录
  • usermod -d [目录名] [用户名]
5- 与组相关的文件介绍
1、 /etc/passwd
  • 用户的配置文件包含每个用户登录 Linux 系统所必需的的信息

image-20210820235140485

  • 登录shell: 类似于编码

  • image-20210820235913574

  • image-20210820235204312

image-20210820235224680

2、 /etc/shadow
  • 指令的配置文件
    image-20210820235420558

image-20210820235509992

image-20210820235535287

3、 /etc/group 组的配置文件
  • image-20210820235633838

  • 在这里插入图片描述

  • image-20210820235746336

八、Linux 实操篇 使用指令

8.1、linux 运行级别

1、 介绍

image-20210821172314495

  • 常用 3 和 5

    • init 5 : 使用5 级别 : (图形界面)
    • init 3 : 使用3 级别 : (无图形界面)
      • 如此设置 重启后失效

    image-20210821172606273

2、 设置级别
  • systemctl get-default
    • 当前的级别
  • systemctl set-default graphical.target
    • 设置级别为 graphical.target

image-20210821172645841

8.2、忘记 root 密码怎么办

略详见

( linux shell centos 7.6 重置root 密码_狗剩的专栏-CSDN博客

8.3、帮助指令、shell

linux的帮助命令help、man、–help - 简书 (jianshu.com)

  • ls man : 查看ls指令的帮助信息()
  • ls help :只能显示shell内部的命令帮助信息
shell
  • shell 就是一个解释器: 将使用者的命令转换成二进制语言进而使计算机进行操作;
  • 计算机内核将结果返还给shell,shell翻译成人所熟悉的语言,将结果展示出来
内部指令
  • shell 程序的一部分,位于内存中
外部指令
  • shell 程序以外的指令 ,位于硬盘中

8.4、 文件目录指令

1、 pwdls
  • 查看當前的目录的绝对路径(所在位置)

2、 ls 详见七、常用指令

3、cd

绝对路径相对路径的区别:

  • ,绝对路径就是从根目录开始,
  • 相对路径是从你所在的当前目录开始
  • cd ~ : 回到家目录
  • image-20210822210210780
    • 触发重定向
  • cd .. : 返回上一级目录
  • cd ../../home : 以相对路径的方式返回home
4、 目录:
4.1 mkdir 创建目录:(makedir)
  • mkdir dog : 创建目录dog
  • mkdir -p /home/animal/cat : 创建多级目录
4.2 rmdir 删除目录 : (removedir)
  • rmdir /dog : 删除空目录 dog
    • 仅可删除非空目录
  • rm -rf /animal : 删除非空目录animal
4.3 创建空文件(记事本 摸一下)
  • touch hello.txt 创建空文件hello.txt
  • touch /home/hellp2.txt : 在指定的目录下创建空文件
4.4 cp拷贝文件到指定目录

参数: -r : 递归复制文件和目录

  • cp /home/hello.txt /opt

    • 将home目录下的hello.txt 文件复制到 /opt 的目录下
  • cp -r /home/test /opt

    • 将home/test目录下所有文件复制到 /opt 的目录下

    • ​ cp -r 源目录/源文件(此步可以目录) /需要被复制的目录

    即可(以最后的节点生效)

image-20210822140947777

image-20210822141019424

  • 覆盖整个文件

    • /cp -r /home/test /opt
    • 会显示 是否覆盖 一下的所有文件

    image-20210822141849906

    • \cp -r /home/test /opt
      • 直接覆盖
4.5 删除目录/ 文件
  • rm /home/hellp.txt : 删除文件。。

  • rm -r / home/test1 : 删除test1 目录下的所有文件

  • rm -rf / home/test1 : 删除test1 目录下的所有文件 ,且不提示

image-20210822142638477

4.6 移动/重命名目录
  1. 重命名: (在同一目录下)
  • mv cat.txt dog.txt : 将cat.txt 重命名为 dog,txt

image-20210822181050470

  1. 移动 (在不同的目录下)

    • mv /home/test /root/tset : 将 test 目录 移动到 root目录下,且命名为 tset

      image-20210822183136020

4.7 查看文件内容
catvim 的比较
  1. catvim 都可以查看文件内容
  2. cat 只可读 ,不可修改 , vim 可读可改 。 cat指令更安全
cat 语法:
  • cat /etc/profile : 查看 profile文件
  • cat /etc/profile -n : 显示行号
  • cat /etc/profile -n |more : 用more 去以一页一页的形式显示
more 语法
  • more /etc/profile : 查看?

cat是直接输出全部内容 加上more是输出一部分内容 起到管理作用

  • more

  • 会以一页一页的形式显示,更方便使用者逐页阅读,

    • 而最基本的指令就是按空白键(space)就往下一页显示

    • ,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

more 的 常用操作命令
  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

image-20210822190907668

4.7.2 less (查看比较大的文件)
  • less 与 more 类似,可支持各种终端,并不是一下加载整个文件,而是根据需求去加载

    • less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
  • less /etc/profile

image-20210822204836814

4.8 echo
  • 将内容输出到控制台 类似于 (sysout)
  • echo “你好”
  • echo $PATH :输出环境变量
  • echo $​HOSTNAME​ 主机名

image-20210822212732879

4.9 head
  • 显示 某文件的开头部分

  • head /etc/profile : 默认输出前 10 行

    • image-20210822213122837
  • head -n 5 etc/profile : 前五行

    • -n后面接数字,代表显示几行的意思
4.10 tail
  • 显示 某文件的末尾部分

  • tail /etc/profile 默认输出文末 10 行

  • tail -n 5 /etc/profile 末五行

    • image-20210822213516374
  • tail -f /root/hello2.txt : 实时监控某文件

    • Ctrl + C 退出
    • image-20210822213908235

    image-20210822213921259

4.11 >>>
  • > : 覆盖某文件的内容

    • ls -l > /root/hello2.txt: 将当前的列表(ls - l)覆盖掉 hello2.txt 文件

    image-20210822214400269

  • >> : 对某文件进行追加内容

    • cal >> /root/hello2.txt : 将当前的日期追加到该文件内
      • image-20210822214746502
  • cat 文件1 >> 文件2 : 将文件1 的内容追加到文件2 上

  • image-20210822215358433

4.12 ln(软链接)
  • ln

    • 为某一个文件在另外一个位置建立一个同步的链接。类似于Windows的创建快捷方式

    • ln [参数][源文件或目录][软连接名]
      
      • 给源文件 创建一个软链接
    • -s: 软链接(符号链接)。

    • ln -s /root /home /myroot

      • 在 home 目录下建立 一个查看root的连接 — myroot
    • 注意 : 此时使用 pwd : 目录仍为 软连接的目录(/myroot)

image-20210823125123686

image-20210823125205508

  • 删除软连接 :

    • rm /home/myroot
    • 若写成: rm /home/myroot/
      • image-20210823131606020
  • 注意;

    • 路径末尾带/是目录,你创建的链接是一个文件所以不带/
4.12.1硬链接与软连接的区别
  • ​ 简单地说,软链接是存放另一个文件的路径,而硬链接是以文件副本的形式存在,但不占用实际空间
  • ​ 挂载这个概念就比较好理解了,实际上就是文件系统和硬盘分区之间的一种关系,如果他们关联上了,我们 就认为挂载了,如果他们取消了这个关联,就是卸载了
4.13 history
  • history : 显示之前使用过的命令
  • history 10 : 最近使用的10条指令
  • !512执行第512条指令
5 、时间日期指令
  • date
  • date "+%Y - %m-%d "
  • date "+%Y - %m - %d %H : %M : %S"

image-20210823134509227

  • 设置 系统日期

    • date -s “2022-08-23 13:18:03”
  • cal

  • cal 2022: 显示2022年的日历

image-20210823134609357

6、 搜索和查找文件
6.1 find

从某个目录下开始递归搜索其各个子目录。

  • 和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

  • find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。

  • find [查找和搜索范围] [查找方式]

    • 查找方式含义
      -name按名称查找
      -size按大小查找
      -user按用户名查找
      -type按类型查找
      -iname忽略大小写
    • find / -name h.txt

      • 在 “ / ” (根目录)下 根据文件名去查找 h.txt

image-20210823200843774

  • find / -user lsj

    • 查找 根目录下 用户为 lsj 的文件
  • find / root -size +1M

    • 在 root目录下查找 比1MB大的文件
    • ( +n 大于 -n 小于 n 等于 )

image-20210823202205600

6.2 locate
  • 快速定位某文件的路径,不搜索具体目录

    • 而是搜索一个数据库/var/lib/locatedb 查询速度快,
    • 需要手动更新该数据库 updatedb
  • update

    locate hello2.txt

image-20210823203627582

6.3 which (查找指令的位置)
  • which ls 查找ls 指令的位置

image-20210823204231264

6.4 grep (过滤查找文件的关键字)
  • grep 【选项】 查证内容 源文件

image-20210823210132595

  • cat /opt/profile | grep "if"

image-20210823210833162

  • grep -n "if" more /etc/profile 也可

    • image-20210823211159028
7、 压缩/解压
7.1 gzip

​ gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

​ gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。

  • gzip : 压缩文件

    • gzip /home/cat.txt : 将cat文件进行压缩
  • gunzip : 解压文件

    • gunzip /home/cat.txt.gz : 将该文件解压

image-20210823231049660

7.2 zip

语法: zip [选项] [压缩包名] [源文件或源目录列表]

参数含义
-r递归压缩处理,将指定目录下的所有文件和子目录一并压缩
  • zip -r mycat.zip /home
    • 将 / home 目录的全部文件 压缩成myhome.zip

image-20210823234509403

  • unzip -d /root /home/mycat.zip
    • 将 /home/mycat.zip 解压到 / root 下

image-20210823235643782

7.3 tar
  1. 利用tar命令,可以把一大堆的文件和目录全部打包成一个文件

  2. 语法:tar [参数] [文件或目录]

  3. 常见参数:

    参数
    -x解压tar文件
    -z通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
    -c打包成tar文件
    -v显示指令执行过程
    -f指定压缩后的文件名
    -C<目录>指定解压后的路径
    -P使用文件名的绝对路径,不移除文件名称前的“/”号
  • 压缩:

    • tar -zcvPf st.tar.gz /home/shuye.txt /home/tingan.txt
    • 将 /home 路径下的 shuye.txt 和 tingan.txt 压缩成 st.tar.gz

    image-20210824123751212

  • 解压

    • tar -zxvfP /home/st.tar.gz -C /opt
    • 将 /home 路径下的 压缩包 st.tar.gz 在 /opt 压缩

image-20210824124423037

-z先压缩成.gz文件,c再打包成.tar包文件。压缩和解压都是要z的,区别就在于:有x解包的时候z对应的就是解压的意思,有c打包的时候z就是压缩的意思

​ 打包解包是针对.tar文件而言的:.tar文件就是将多个文件合并成一个单文件;解压和压缩是针对.gz文件而言;-c是打包成.tar文件,-x是把.tar包解开;-z会根据带的x还是c来决定解压还是压缩

九、 linux的组、权限管理

9.1 简介:
  • linux 的每个用户都 具有一个组, 用户不可独立于组外。
  • 每个文件都具有其 所有者
  • 其它组: 除去 文件所有者和所在组 的用户以外 ,系统的其他用户
9.2 命令:

1、 文件、目录的所有者

  • 所有者即 文件的创建者。
  • 查看文件的创建者:
  • ll

image-20210824163533236

1.1 修改文件创建者(chown
  • 语法: chown [用户名] [文件名]

image-20210824163707637

  • 常用参数
    -R对目前目录下的所有文件与子目录进行递归修改用户名

image-20210824233453940

1.2 修改文件所属的组名 (chgrp
  • chgrp [组名] [文件名]
    • 修改 文件 hello.txt 的组名为 foxes

image-20210824165724872

  • 常用参数
    -R对目前目录下的所有文件与子目录进行递归修改组名

image-20210824233644005

1.3 修改文件的rwx权限(chmod)
  • chmod [设置权限] [文件]
    • 方式一、 + - =
      • u : 所有者 , g : 所有组 , o : 其他人 a : 所有人,所有用户(u 、g、o的总和)
      • u + rw : 所有者增加 读,写的权限
      • g - x : 所有组减去 执行权限
      • o = rwx : 其它组赋予 读、写、执行的权限
    • 方式二 、 数字
    • r = 4 , w = 2 ,x = 1 故 rwx = 7
    • chmod 770 cat.txt

image-20210824230916733

注意 , 不可有空格,要写逗号

image-20210824231548829

9.3 权限介绍

image-20210824220117409

9.3.1 前面的十位 :0~ 9)
  • 第0 位 :文件类型

    • ​ I 链接 d 文件夹 c 设备 b 块设备 - 普通文件
    标识表示文件类型
    -普通文件
    d [directory]目录文件
    c [character]字符设备文件、鼠标、键盘
    b(block)块设备文件(硬盘)
    l(小写L)软链接文件 (快捷方式)
    p管道符文件
    s套接字文件
  • 第 1 - 3 位: 文件所有者 (User) 对文件的权限

  • 第 4 -6 位: 文件所属组(Group)的权限

  • 第 7 -9 位:(Other) 其他组 对文件的权限

9.3.2 rwx 权限
1. rwx 对文件
  • [ r ] : (read)可读文件内容
  • [ w ] : (write) 可修改文件内容 但不可删除该文件
  • [ x ] : (execute) 可执行该文件
2. rwx 对 目录
  • [ r ] : (read)可读目录内容列表ls -al
  • [ w ] : (write) 可创建、删除、重命名、复制文件/ 目录
  • [ x ] : (execute) 可进入该目录(可以执行命令:cd
    • 注意
      • 拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。
      • ​ 且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限。
    • ​ 这样,对目录有写权限,就可以操作文件主体增删改名,对文件有写权限,只是写文件里面的内容
3、rwx 的其他表示
`r = 4 , w = 2 ,x = 1  故 rwx = 7`
  • 举个栗子:

    image-20210824223837613

    • 普通文件, 用户lsj 对该文件有 读写 执行 的权限 ,root组、内的其他用户 对该文件 仅有读的权限 ,
    • 1代表 文件和目录数为1 0 字节, 创建时间 ,文件名
  • image-20210824224010058

    • 目录, 用户fox 具有 读、写、执行 的权限,foxes组、其它组内的其他用户对其无权限
    • 有 子文件 / 子目录数共 6 个 , 为4096字节 ,最近修改时间,目录名

    关于文件的个数为目录时就是看子目录的个数是多少

    新建一个空目录为2是因为目录里面有…和.这两个隐藏目录

9.3.3 权限管理应用
1、警察与土匪游戏

image-20210825150630176

结论: 其它组或 同一组的其他用户,

​ 若要对一个目录内的文件进行操作,就需要具有对该目录的相应权限

权限只是给了所有者,又不是组内

要有文件和 目录读权限,不然就算进了组还是不行

  • 别的人要修改Jack家目录下的jack.txt , jack不仅要赋予他人对jack.txt 的rwx , 还要赋予对 /jack 目录的rwx
2、神仙与妖怪

image-20210825150721835

  • 给r不给x进都进不去,当然有异常

  • 目录上的读就是对文件夹进行读取,就算没有读取权限,只要有执行权限,不影响能操作目录内的文件

  • 应该是说目录的读是读取目录中的文件信息,修改应该就是对目录里的文件进行删除和创建操作

十、任务调度

10.1 contab 调度任务多次

介绍

  • crontab 进行定时任务
  • 任务调度: 设置系统在某个时间执行特定的命令或程序
    • eg: 每隔段时间去执行某些程序或脚本
1、 语法
  • ​ 语法: crontab [选项]

    • 常见选项含义
      -e编辑 crontab 定时任务
      -l查询crontab 任务
      -r删除当前所有的 crontab任务
      -u指定要设定计时器的用户名称
      –help显示帮助信息
2、 crontab文件
  • 组成: 共六段,前五段是时间设置,第六段是要执行的命令

    • 格式:

      minute hour day month week command

      • minute: 表示分钟,可以是从0到59之间的任何整数。

      • hour:表示小时,可以是从0到23之间的任何整数。

      • day:表示日期,可以是从1到31之间的任何整数。

      • month:表示月份,可以是从1到12之间的任何整数。

      • week:表示星期几,可以是从0到7之间的任何整数,

      • 这里的0或7代表星期日

      • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

    • 星期与前面月份日期是or的关系,只需满足其一即执行

image-20210827144523513

  • 特殊符号说明:

    • 特殊符号含义
      *任何,eg: 第一个 * 代表每一分钟 执行一次
      * 2,3,7 * * *: 每天的2,3 ,7 点执行命令
      -* 2-6 * * *: 每天的2到6点执行命令
      */n每隔 n 执行一次: */10 * * * *: 每隔10分钟执行一次
    • 案例

      • 3,15 8-11 * * * command
        • 每天 8到11 点的 第3, 第15分钟 执行命令
      • 3,15 8-11 */2 * * command
        • 每隔两天 的 上午 8-11点的 第3和15分钟 执行命令
      • 3,15 8-11 * * 1 command
        • 每星期一的。。。
      • crontab * * */10 * *,是每隔10天的那一天每分钟执行一次,
      • 40 4 * * 1-5 每周一到周五的4点40分执行
      • 0 0 1,15 * 1 : 每周一与每月的1号,15号,的0时0分
        • crontab表达式,前面四项的关系之间为and的关系,需要同时满足才能执行;
          • 但星期那一项与前面月份日期是or的关系,只需满足其一即执行;
3、 实例
  1. 每隔一分钟,就将 当前的日期追加到 /opt/mydate 的文件中
    • crontab - e
      • */1 * * * * date >> /opt/mydate
  2. 每隔1 分钟,用文件将当前的日期、日历 都追加到 /home/mycal 中
    • vim /home/my.sh
    • date >> /home/mycal
      • cal >> /home/mycal
    • crontab -e
      • */1 * * * * /home/my.sh

查看当前的任务调度信息:crontab -l

image-20210827202658071

终止(删除remove)所有的任务调度:crontab -r

image-20210827202714215

10.2 at : 任务调度一次

image-20210828153352702

  • 进程在 一分钟为周期 检查 任务队列中是否存在任务
    • 若存在 则执行第一个, 任务完成后移除该任务
    • 就是放在队列中 ,执行了的就出队列
1 语法: at [选项] [时间]
选项含义
-m当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。
-c 工作标识号显示该 at 工作的实际内容。
-t 时间在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。
-d删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。
-l列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。
-f 脚本文件指定所要提交的脚本文件。
很重要时间
格式用法
HH:MM比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight)代表 12:00 AM(也就是 00:00)。
Noon(noon)代表 12:00 PM(相当于 12:00)。
Teatime(teatime)代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY比如 011518 表示 2018 年 1 月 15 号。
now+时间以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。
时间 + 年月日4:00 2021-8-27 : 8月27号4点执行 时刻必须在前面
时刻 +tomorrow明天的某时刻 去执行
2 实例
  • at 5pm +2days

    at > /bin/ls/home

    • 在两天后的下午5点 执行命令

    image-20210828160253458

  • at 17:00 tomorrow

    • at > date >> /root/date.log

    image-20210828170937060

  • at now +2minutes

    • at > date > /root/date.log

image-20210828171201276

  • 查询 任务队列:

    • image-20210828171223979
  • at -d 7 atrm 7

    • 删除 7 号 队列任务
  • image-20210828171637829

十一、 磁盘的分区、挂载

11.1 磁盘分区
  • 一个磁盘,可以有多个分区

  • Linux采用了一种叫 “载入” 的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。

  • 简单来说,一个分区代表了一块具体的存储空间,Linux通过挂载的技术将这块空间挂载了一个具体的目录下面。

  • 通过 将磁盘的分区 与 linux的目录相联系 即为挂载

一、Linux 硬盘分类及说明
  • IDE 硬盘: 标识符 hdx *

    • hd : 代表为IDE接口的硬盘
    • x : 盘号 (a 基本盘,b 基本从属盘,c 辅助主盘,d 辅助从属盘)
    • * : 第几个分区(1,2,3,4) hdb3: 第二个IDE硬盘的第三个分区
  • SCSI 硬盘 : sdx *

    • sd : 指 SCSI硬盘
      • x: 盘号
      • * : 分区: sda1 : 第一个SCSI硬盘的第一个分区
二、lsblk(list block):
  • lsblk lsblk -f 查看所有设备的挂载情况

image-20210830122250866

  • ​ linux操作系统将所有的设备都看作文件 将整个计算机的资源都整合成一个大的文件目录

  • ​ 我们要访问存储设备中的文件 必须将文件所在的分区挂载到一个已存在的目录上 然后通过访问这个目录来访问存储设备

三、挂载:

image-20210830122604049

  • 添加硬盘

  • 分区: 选择分区磁盘:

    [root@linuxcool ~]# fdisk /dev/sdb
    

image-20210830123126923

  • 分区完成后 ,该磁盘具有一个分区

  • 挂载之前,需要格式化,产生唯一标识符UUID后才能挂在成功

    • mfks -t ext3 /dev/sda6
      • 对分区 /dev/sda6 进行格式化为 ext3
  • 命令行挂载

    • mount [参数]
      • mount /dev/sdb1 /newdisk
        • 挂载 分区/dev/sdb1 到 linux的 /newdisk 目录
  • 不想与某目录挂载了, 卸载

    • 回退 到根目录
    • umount /newdiskumount /dev/sdb1

image-20210830124143801

  • 永久挂载
    • 修改文件: /etc/fstab

image-20210830124929943

11.2 磁盘情况查询
1、 df -h :
  • 查看整个系统磁盘被占用了多少空间、还剩多少空间等信息。

image-20210830134808917

2 、du

image-20210830145320839

  • du [参数] [文件/目录]

    • 常用参数:含义
      -a显示目录中所有文件大小
      -h以易读方式显示文件大小
      -s仅显示总计
      -c列出 明细且 显示总计
      – max -depth = 1子目录的深度
    • 查询指定目录磁盘占用情况

  • 例子:

    • du -cha -max /boot
    • image-20210830142338983

image-20210830135756850

11.3 实用指令

image-20210830235423210

1、 显示 /root 下的文件:

ls -l /root |grep "^-"

image-20210830235627312

  • 统计 /root 下的文件 个数

    • wc [参数] [文件]

    • wc命令统计指定文件中的字节数、字数、行数

    • 参数
      -w统计字数,或–words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
      -c统计字节数,或–bytes或–chars:只显示Bytes数
      -l统计行数,或–lines:只显示列数
    • ll /root |grep "^-" |wc -l

      image-20210830235931127

2、 统计 /root 下的目录 个数
  • ll /root |grep "^d" |wc -l

image-20210831000216431

3、统计 /root 下的文件 个数 , 包括子文件夹
  • ls - R

    • 参数
      -R递归列出所有子目录
  • ls -lR /root |grep "^-" |wc -l

    image-20210831000603209

4、统计 /root 下的目录个数 , 包括子文件夹
  • ls -lR |grep "^d" | wc -l

    image-20210831000749669

image-20210831213225807

5、 以树状的结构显示目录
  • tree /root

    ​ 若没有该命令 , 则用 yum install tree 下载

    image-20210831000855886

十二 、 网络配置

12.1 查看当前IP

Linux:
  • ifconfig

image-20210901180704353

Windows:
  • ipconfig
    • image-20210901180728617

12.2 使虚拟机linuxIP固定

  • 修改文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33

    • image-20210901224241693
  • 按照上图的IP地址 和网关 修改虚拟机的 VMnet8 的 ip子网网关

    • IP子网
    • image-20210901224521514
  • 网关:

    • image-20210901224658233
  • 确定后,重启 Linux 或 重启网络服务:

    • reboot
    • service network restart

12.3 主机名:

  • 查看主机名

    • hostname
  • 修改

    • vim /etc/homename
      • 重启生效

DNS缓存:

查看网址:

  • ​ 首先查看浏览器缓存是否包含该 域名
  • 若无,在看DNS 缓存
  • 若无,看本机的 hosts 文件
  • 若无 ,最后访问DNS (域名解析器)

十三、 进程

13.1 定义:
  • 执行程序。 每个进程都分配一个pid(进程号)
    • 存在方式:
      • 前台: 用户可以查看到,且可操作
      • 后台 : 系统的服务,且常驻在系统中,直至关机进程结束
1、 ps查询进程
  • ps [参数] : 显示当前系统的进程状态

    • 常用参数含义
      -a显示所有终端机下执行的程序,除了阶段作业领导者之外
      -u根据用户显示进程信息
      -x显示后台进程运行 的参数?!
ps -aux

组合使用信息更全

image-20210906102546138

  • USER : 用户 / 使用者
  • PID : 进程号
  • PPID : 父进程
  • %CPU : 占用CPU(中央处理器)的百分比
  • %MEM: 占用物理内存百分比
  • VSZ : 虚拟内存大小(KB)
  • RSS:占用实际物理内存大小(KB)
  • TTY: 终端名
  • STAT: 进程状态( -S : 睡眠,-R :运行,-Z : 僵死进程,-D: 短期等待)
  • START:进程开始时间
  • TIME:进程占用CPU总时间
  • COMMAND: 启动该进程的命令和参数

image-20210906105309676

ps - ef
参数含义
-f显示UID,PPIP,C与STIME栏位
-e显示所有程序
  • image-20210906111250396

image-20210906111806868

  • PID = 11 的父进程: PID = 2

  • PID = 2 的子进程: 4、6、7、8、9 …

  1. 查看 登录用户信息

image-20210906111043027

pstree查询进程
  • 语法: pstree [参数]

    • 参数含义
      -a显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
      -p显示进程的 PID
      -u显示进程所属用户

image-20210906214453058

13.2 终止进程 kill/killall
1、 kill
  • 语法: kill [参数] [进程号]
  • 使用kill命令杀死指定进程PID的进程
    • -9 : 强制删除进程、、

image-20210906210851131

  • 踢出用户 xh

image-20210906210512129

  • 终止进程sshd 服务:( Xshell远程连接)

    image-20210906211210904

    • 恢复 Xshell 远程连接
      • systemctl start sshd ##开启服务
    • 关于远程连接:
      • image-20210906212619143
  • 终止多个gedit(文本编辑器,类似于vim) 进程

    • killall gedit
  • 强制杀掉终端:

    • kill -9

image-20210906211720738

2、 killall
  • killall [参数] [进程名]

    • 参数含义
      -i交互式,询问是否要杀死某个进程;
  • 需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一

  • 交互式杀死进程

    • image-20210906213250647

13.3服务管理

服务:
1、service
  • 本质即 (守卫) 进程、。

    • 守卫进程:运行于后台 、 监听某个端口,等待其他程序的请求
    • image-20210908203733236
  • 服务的设置状态选项: start 、 stop、 restart、reload(重载)、 status(查看此服务的状态)

  • 语法:service [服务名] [设置状态选项]

    • image-20210908204907748
    • image-20210908205002281
  • 被service命令管理的服务:于 /etc/init.d 文件下

    • ls -l /etc/init.d

image-20210908203617738

1.1 查看服务名:
  • ls -l etc/init.d : 查看由service 指令管理的服务 (有限

  • 全部setup

image-20210908205540967

1.2服务的运行级别:

image-20210908205907916

运行级别设置:

详见 八、8.1

1.2.1(chkconfig)设置运行级别的自启动
  • 对 0、1、2、3、4、5、6 级别设置自启动

  • 语法:chkconfig [参数]BSD风格

参数含义
–list查看列表
-- level X 服务名 {on/off}设置服务``X级别 开启/关闭 (重启生效
  • chkconfig --list

image-20210908211119175

  • chkconfig --level 3 network on

image-20210908211244942

2、systemctl
  • 语法:systemctl [参数] [ 服务]

    • 参数含义
      start / stop /restart/ statusstatus:查看服务状态
      enable使某服务开机自启
      disable关闭某服务开机自启
      is-enabled查看该服务是否自启动
      `list -unit-filesgrep服务名`
      list -units --type=service列举所有已启动服务
  • 该命令管理的指令 目录/usr/lib/systemd/system

  • 例子:

    • ls -l /usr/systemd/system |grep fire

      • 查到关于防火墙的服务
        请添加图片描述
    • systemctl list -unit-files | grep firewalld

      • 查到防火墙的服务自启动状态
        -请添加图片描述
    • systemctl status firewalld

      • 防火墙的服务 当前的状态
        -请添加图片描述
    • systemctl is-enabled firewalld

      • 防火墙服务是否自启动
        请添加图片描述
        注意:以下操作 只是临时生效,重启后仍回归默认设置
    • systemctl stop firewalld

      • 停止防火墙服务
    • systemctl start firewalld

      • 开启防火墙服务
    • 注意:以下操作 永久生效

    • systemctl enable firewalld
      请添加图片描述

3、防火墙firewall-cmd
  • 语法:firewall-cmd [参数]

    • 参数含义
      –permanent --add-port= 端口号/协议
      –permanent --remove-port =端口号/协议
      –reload不重启立即加载
      –query-port= 端口号/协议查看端口是否打开
      –state显示当前服务运行状态
      –zone=public --list-ports查看所有打开运行的端口
  • 例子:

    • netstat -anp : 查到服务的端口号/协议
      请添加图片描述
    • firewall-cmd --permanent --add-port=111/tcp
      • 打开端口号为111,协议为tcp的服务
    • firewall-cmd --reload
      • 重载
    • firewall-cmd --permanent -remove -port=111/tcp
      • 关闭端口
    • 注意打开/关闭端口号****需要重载才可生效

请添加图片描述

13.4 动态监控进程

top
  • 介绍: 类似于ps ,用来查询正在执行的进程。以 每隔3秒默认更新进程
  • 语法:top [选项]
参数含义
-d [秒数]改变显示的更新速度,按 s,默认3s
-i不显示闲置/僵尸进程
-p通过指定监控进程ID 来监控某个进程
-q没有任何延迟的显示速度,
-c切换显示模式

请添加图片描述

image-20210909205721218

0 zombie: 0 僵死

  • 交互操作:

    • 参数含义
      P以 CPU大小排序
      M以内存使用率排序
      N以PID排序
      u监视某用户
      q退出
  • top

    • u
    • lsj – 监视用户lsj
  • top -d 4

    • 改变刷新时间

请添加图片描述

13.5 监控网络 状态

netstat
  • netstat [参数]

  • 参数含义
    -a显示所有连线中的Socket
    -p显示正在使用Socket的程序识别码和程序名称
    -u显示UDP传输协议的连线状况
    -i显示网络界面信息表单
    -n直接使用IP地址,不通过域名服务器
  • netstat -anp

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值