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

Linux:

到P104 左右

一、配置:

connection失败:

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

网络连接的三种模式

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

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

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

克隆虚拟机:

虚拟机快照(存档):

vmtools:

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

命令: ()

  • 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界面 下访问不同系统的服务器

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

四、Xftp

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

五、使用vim :

vim 入门:

略:

1、 三大状态:

  • 一般模式(正常模式)

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

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

    • u :撤回

    • G : 最末行

    • gg : 最首行

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

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

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

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

    • 查询某个词: / XXX : 查询XXX ,按 n : 下一个
    • 输入 / 即可进入
    • :set nu : 显示行号
    • :set nonu : 不显示行号
    • : wq : 保存且退出
    • :q ! : 不保存提出
    • :x : 类似于 :wq , 若文件无变动,则不写入

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
      

  2. 遇到的问题:

    ​ 解决方法:

    • 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 来查看是否删干净了。

六、关机/重启 、登录 :

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 退出

七、 用户管理

常用指令 :

  •   `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 用户 创建/修改 密码

  • 注意: 语法: passwd

    • ​ 给当前==默认==用户更改密码 !!!

  • 语法: passwd -S root

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

3、 userdel删除用户

  • 语法: userdel lili

    • 删除用户 lili ,并不会删除家目录

  • 语法: userdel -r bibi

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

4、查询用户信息

  • 语法: id root

    • 查询
      • 查询已不再的用户:

5、切换用户(细节)

  1. su 与 su- 的区别

    • su

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

    • 注意

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

    su -

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

  2. 退出: exitlogout

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

  • 语法: who am iwhoamiwho are you

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

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

4 、usermod 修改用户的组

  • usermod - g jiao zwj

    • 将用户 zwj 移至组 jiao

参数
-g<群组> 修改用户所属的群组
-d 修改用户 登录后默认的目录
  • usermod -d [目录名] [用户名]

5- 与组相关的文件介绍

1、 /etc/passwd
  • 用户的配置文件包含每个用户登录 Linux 系统所必需的的信息

  • 登录shell: 类似于编码

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

3、 /etc/group 组的配置文件

八、Linux 实操篇 使用指令

8.1、linux 运行级别

1、 介绍

  • 常用 3 和 5

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

2、 设置级别
  • systemctl get-default

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

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 ~ : 回到家目录
    • 触发重定向
  • 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 源目录/源文件(此步可以目录) /需要被复制的目录

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

  • 覆盖整个文件

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

    • \cp -r /home/test /opt

      • 直接覆盖
4.5 删除目录/ 文件
  • rm /home/hellp.txt : 删除文件。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Ctrl + C 退出

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

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

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

    • cal >> /root/hello2.txt : 将当前的日期追加到该文件内

  • cat 文件1 >> 文件2 : 将文件1 的内容追加到文件2 上

4.12 ln(软链接)
  • ln

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

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

    • ln -s /root /home /myroot

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

  • 删除软连接 :

    • rm /home/myroot
    • 若写成: rm /home/myroot/
  • 故 注意;

    • 路径末尾带/是目录,你创建的链接是一个文件所以不带/
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"

  • 设置 系统日期

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

  • cal 2022: 显示2022年的日历

6、 搜索和查找文件
6.1 find

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

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

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

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

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

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

  • find / -user lsj

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

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

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

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

    locate hello2.txt

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

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

  • cat /opt/profile | grep "if"

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

7、 压缩/解压
7.1 gzip

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

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

  • gzip : 压缩文件

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

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

7.2 zip

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

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

    • 将 / home 目录的全部文件 压缩成myhome.zip

  • unzip -d /root /home/mycat.zip

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

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

  • 解压

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

-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

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

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

1.2 修改文件所属的组名 (chgrp
  • chgrp [组名] [文件名]

    • 修改 文件 hello.txt 的组名为 foxes

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

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

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

9.3 权限介绍

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`
  • 举个栗子:

    • 普通文件, 用户lsj 对该文件有 读写 执行 的权限 ,root组、内的其他用户 对该文件 仅有读的权限 ,
    • 1代表 文件和目录数为1 0 字节, 创建时间 ,文件名
    • 目录, 用户fox 具有 读、写、执行 的权限,foxes组、其它组内的其他用户对其无权限
    • 有 子文件 / 子目录数共 6 个 , 为4096字节 ,最近修改时间,目录名

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

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

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

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

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

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

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

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

  • 给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的关系,只需满足其一即执行

  • 特殊符号说明:

    • 特殊符号 含义
      * 任何,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

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

10.2 at : 任务调度一次

  • 进程在 一分钟为周期 检查 任务队列中是否存在任务

    • 若存在 则执行第一个, 任务完成后移除该任务
    • 就是放在队列中 ,执行了的就出队列
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点 执行命令

  • at 17:00 tomorrow

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

  • at now +2minutes

    • at > date > /root/date.log

  • 查询 任务队列:

  • at -d 7atrm 7

    • 删除 7 号 队列任务

十一、 磁盘的分区、挂载

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):
  • lsblklsblk -f 查看所有设备的挂载情况

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

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

三、挂载:

  • 添加硬盘

  • 分区: 选择分区磁盘:

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

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

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

    • mfks -t ext3 /dev/sda6

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

    • mount [参数]

      • mount /dev/sdb1 /newdisk

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

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

  • 永久挂载

    • 修改文件: /etc/fstab

11.2 磁盘情况查询

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

2 、du

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

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

  • 例子:

    • du -cha -max /boot

11.3 实用指令

1、 显示 /root 下的文件:

ls -l /root |grep "^-"

  • 统计 /root 下的文件 个数

    • wc [参数] [文件]

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

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

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

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

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

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

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

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

十二 、 网络配置

12.1 查看当前IP

Linux:

  • ifconfig

Windows:

  • ipconfig

12.2 使虚拟机linuxIP固定

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

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

    • IP子网
  • 网关:

  • 确定后,重启 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

组合使用信息更全

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

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

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

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

  1. 查看 登录用户信息

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

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

13.2 终止进程 kill/killall

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

  • 踢出用户 xh

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

    • 恢复 Xshell 远程连接

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

    • killall gedit
  • 强制杀掉终端:

    • kill -9

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

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

  • 交互式杀死进程

13.3服务管理

服务:

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

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

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

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

    • ls -l /etc/init.d

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

  • 全部setup

1.2服务的运行级别:

运行级别设置:

详见 八、8.1

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

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

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

  • chkconfig --level 3 network on

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

    • 参数 含义
      start / stop /restart/ status status:查看服务状态
      enable 使某服务开机自启
      disable 关闭某服务开机自启
      is-enabled 查看该服务是否自启动
      list -unit-files |grep服务名 查看服务的自启动状态
      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 切换显示模式

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

学习韩顺平-Linux:相关推荐

  1. 【韩顺平Linux】学习笔记1

    [韩顺平Linux]学习笔记1 一.网络连接的三种方式 二.虚拟机克隆 三.虚拟机快照 四.虚拟机迁移和删除 五.VMtools 六.Linux目录结构 七.远程登录和文件传输 一.网络连接的三种方式 ...

  2. 韩顺平Linux教程学习笔记

    Linux系统学习笔记   新装了deepin v23系统,结果磁盘没设置好,玩崩了,百度半天修复不了,看看韩顺平老师的Linux操作课程,做做笔记(只记录对自己有用的).   B站网址 基础篇·Li ...

  3. 鸟哥linux+韩顺平linux视频教程学习小结

    linux的特点 优点: 1.免费的/开源的系统 2.支持多线程/多用户的系统 3.安全性好 4.对内存和文件管理优越 linux体积最少只需要内存4M,由于小所以可以做嵌入式开发 缺点: 操作相对困 ...

  4. 韩顺平Linux视频教程—笔记(全)

    Linux操作系统学习 linux的特点 优点: 1.免费的/开源的系统 2.支持多线程/多用户的系统 3.安全性好 4.对内存和文件管理优越 linux体积最少只需要内存4M,由于小所以可以做嵌入式 ...

  5. 韩顺平-linux笔记

    首先:一切皆文件 介绍目录 /:根目录 /bin:存放最经常使用的命令 /lib:系统开机所需要的最基本的动态连接共享库 /home:普通用户的主目录 /root:系统管理的用户主目录 /etc:系统 ...

  6. 学习韩顺平老师java io 笔记整理

    一.文件 文件流 文件在程序中以留的形式来操作的 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nXoI6Vnc-1642335857608)(F:\人生苦短,我用IO ...

  7. 韩顺平老师《一周学会Linux》视频笔记

    前言: 这个教学视频使用的软件环境是: Red Hat Linux(Kernel 2.4.20-8)红帽Linux系统[release 9 shrike],在虚拟机中运行 1.成为一个Linux专家的 ...

  8. 韩顺平老师讲诉如何学习PHP

    有很多网友发来邮件询问各种问题,有深有浅, 有难有易.因为很多时间需要上课,没有一一回答,这里给大家道个歉,这里我举例出了几封网友的来信: 发件人:Chen Ma 发送时间: 2012-09-18 1 ...

  9. 2021韩顺平图解linux

    韩顺平图解Linux全面升级 https://www.bilibili.com/video/BV1Sv411r7vd 27 小时 .153 讲, 2021 韩顺平 一周学会Linux 简介 目录 P0 ...

最新文章

  1. UVa 11059 - Maximum Product
  2. 数字图像处理:基于MATLAB的车牌识别项目
  3. 开发笔记:掉落系统模块设计思路
  4. 超简单的JNI——NDK开发教程
  5. 关于机器学习,你应该至少学习这8个落地案例|干货集锦
  6. VMware虚拟机软件
  7. 使用performance monitor 查看 每一个cpu core的cpu time
  8. 如何清除web 服务器的缓存
  9. Visual C++ 2008入门经典 第十章标准模板库(二)
  10. 轻松学DDD之二:如何高效消化知识
  11. 代码管理学:功能实现,一定要与界面分开
  12. git 取消merge_git 入门教程之备忘录[译]
  13. Oracle JDBC 驱动
  14. 日常开销记账表格_日常NetQuote的开销我们的管理风格在很大程度上是一种欺骗...
  15. php 新浪微博登陆,PHP使用新浪微博登入第三方网站实例代码
  16. IDEA项目上传码云报错:Push rejected: Push to origin/master was rejected
  17. 《植物大战僵尸》游戏存档修改
  18. 利普希茨【NOIP2017模拟8.7A组】
  19. 江门环境监测实验室通风工程设计
  20. c语言圆环内外半径圆环面积,《圆环的面积》微课教学设计

热门文章

  1. html垂直布局入门
  2. POJ3618 绝对值排序
  3. My Seventh Page - 设计链表 - By Nicolas
  4. 我们就聊聊遇到困境的时候应该怎么办?
  5. echarts 使用仪表盘图展示百分比
  6. 中科院 太极计算机公司,郭明焕-中国科学院大学-UCAS
  7. 记录integral中遇到的问题
  8. windows远程登录linux方法之putty的使用
  9. w7怎么显示计算机网络,win7系统本地连接显示网络2怎么办
  10. 关键周!非农携众多重量级数据来袭、黄金多头冲击千八大关!