Linux的学习

一、CentOS的安装

1、VM安装的步骤

1、联想电脑如何启动BIOS并开启CPU虚拟化功能

2、安装虚拟软件VMware Workstation Pro

2、CentOS的安装

2.1 VMware三种网络模式联网

安装好VMware之后会出现多个虚拟网卡

在这里插入图片描述

  • VMnet0:用于虚拟桥接网络下的虚拟交换机
  • VMnet1:用于虚拟Host-Only网络下的虚拟交换机
  • VMnet8:用于虚拟NAT网络下的虚拟交换机
  • VMware Network AdapterVMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
  • VMware Network Adapter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡
  1. bridge(桥接模式)

虚拟机就和物理机一样,同属于一个局域网中的一台独立的主机,可以访问网内任一机器。可以手工配置IP地址、子网掩码,但是需要保证和物理机同属一个网段,这样虚拟机和物理机才能进行通信。

桥接模式就是将物理机网卡虚拟机虚拟的网卡利用虚拟网桥进行通信。

在这里插入图片描述

  1. NAT(网络地址转化模式)

虚拟机借助虚拟NAT设备虚拟DHCP服务器,通过物理机的所在的网络来访问公网。

在这里插入图片描述

  1. HostOnly(仅主机模式)

Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。此时如果想要虚拟机上外网则需要主机联网并且网络共享。

在这里插入图片描述

2.2 vmtools安装
2.2.1 介绍
  1. 可以直接在 Windows 和 CentOS 之间粘贴
  2. 可以设置windows 和 CentOS 的共享文件夹
2.2.2 vmtools 的安装和使用
  1. 进入CentOS
  2. 点击VM菜单菜单的->install vmware tools
  3. CentOS桌面出现一个Vmware Tools文件夹,里面有以tar.gz结尾的压缩文件
  4. 将压缩文件复制到 /opt文件夹中,进行右键解压(或命令 tar -zxvf VmwareTools-10.0.5-3228253.tar.gc
  5. 解压后形成wmware-tools-distrib文件夹,进入其中
  6. 安装 ./vmware-install.pl
  7. 全部使用默认设置
  8. reboot重启生效
2.2.3 使用vmtools 来设置windows 和 linux 的共享文件夹
  1. 菜单->vm->setting 选项里的共享文件夹
    • 注意:设置为 always enable ,就可以读写了
  2. 共享文件夹在centos 的 /mnt/hgfs/下

二、Linux 的目录结构

1、目录结构介绍

linux 的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录 “/” ,然后在此目录下再创建其他目录。Linux 的各个目录存放的内容的规划好的,不用乱放文件。

记住经典话:在Linux世界里,一切文件

在这里插入图片描述

/bin [重点] (/usr/bin、/usr/local/bin)

  • 该目录称为二进制目录。存放着重要的linux命令和二进制(可指向)文件,包含shell解释器等。

/sbin (/usr/sbin、/usr/local/sbin)

  • 这里存放的是系统管理员使用的可执行命令。如fdisk、shutdown\mount等。与 /bin 不同的是,这几个目录是给管理员root使用的命令,一般用户只可查看不能使用。

/home [重点]

  • 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • ~ 表示当前用户的目录(cat ~/.gitconfig 该命令可以查看git配置)

/root [重点]

  • 该目录为系统管理员,也称作超级权限者的用户主目录

/boot [重点]

  • 存放系统的内核文件和引导装载程序文件

/media [重点]

  • media 介质

  • linux系统会自动识别一些设备,如U盘、光驱等,识别后,linux会把识别的设备挂载到这个目录下

/mnt [重点]

  • mount v 攀登; 增加; 安装
  • 该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在 /mnt/ 上,然后进入该目录就可以查看里面的内容了。d:/myshare

/var [重点]

  • 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log。
  • /var/log/message: 所有的登录文件存放目录。
  • /var/spool/mail: 邮件存放的目录。
  • /var/run: 程序或服务启动后。
  • 建议单独分区,设置较大的磁盘空间。

/dev

  • device 设备,装置
  • 类似于windows的设备管理器,把所有的硬件用文件的形式存储

/etc

  • etc不是什么缩写,是and so on的意思 来源于法语的 etcetera 翻译成中文就是 等等 的意思. 至于为什么在/etc下面存放配置文件, 按照原始的UNIX的说法(linux文件结构参考UNIX的教学实现MINIX) 这下面放的都是一堆零零碎碎的东西, 就叫etc, 这其实是个历史遗留。
  • 存放程序所需的整个文件系统的配置文件。
  • 重要的配置文有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11(X Window系统有关)、/etc/sysconfig(与网络有关)

/opt

  • 给主机额外安装软件的目录。如 安装ORACLE数据库就可放到该目录下。

/proc

  • 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统的信息。

/srv

  • service 服务
  • 存放一些服务启动之后需要提取的数据

/tmp

  • 存放一些临时文件

2、基本文件系统类型

LINUX有四种基本文件系统类型:普通文件目录文件连接文件特殊文件,可用file命令来识别。

普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名。

目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件。

连接文件:是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以"->"指向所连接的文件。

特殊文件:LINUX的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。例如,软驱A称为/dev/fd0。LINUX无C:的概念,而是用/dev/had来自第一硬盘。

3、不同的颜色代表不同的文件

蓝色:目录

绿色:可执行文件

红色:压缩文件

蓝绿色:链接文件

白色:其他文件

黄色:设备文件,其中包括block,char,fifo.

三、远程登录 Linux 系统

1、为什么需要远程登录 Linux

正式上线的项目是运行在公网的,因此程序员需要远程登录到 centos 进行项目管理

在这里插入图片描述

2、Xshell 和 Xftp 介绍和使用

2.1 Xshell

Xshell 是目前最好的远程登录到 Linux 操作的软件,流程的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。

Xshell [1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2,以及 Microsoft Windows平台的TELNET协议。

Xshell可以在 Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

特别说明:如果希望安装好XShell 5就可以远程访问Linux系统的话,需要有一个前提,就是Linux启用了SSHD服务,该服务会监听22号端口。

Xshell 远程登录 Linux 使用命令来操作 Linux 系统

在这里插入图片描述

2.2 Xftp

是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp以后,windows用户能安全地在UNIX/Linux和Windows PC之间传输文件。

Xftp 连接Linux
在这里插入图片描述

2.3 如何解决Xftp中文乱码问题

在这里插入图片描述

四、vi 和 vim 编辑器

4.1 基本介绍

所有的 Linux 系统都会内建 vi 文本编辑器

Vim 具有程序编辑的能力,可以看做是Vi 的增强版本,可以主动的以字体的颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

4.2 vi 和 vim 的三种常见模式

4.2.1 正常模式

在正常模式下,我们可以使用快捷键。

以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用「上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。

4.2.2 插入模式 / 编辑模式

在该模式下,程序员可以输入内容。

按下 i 、I、o、O、a、A、r、R 等任何一个字母之后进入编辑模式,一般来说按 i 即可。

4.4.3 命令行模式

在该模式下,回有相关指令完成读取、存盘、替换、离开vim、显示行号等。

在这里插入图片描述

  • :w 保存但不退出

  • :wq 保存并退出

  • :q 退出

  • :q! 强制退出,不保存

  • :e! 放弃所有修改,从上次保存文件开始再编辑命令历史

五、开机、重启和用户登录

5.1 开启&重启命令

shutdown

  • shutdown -h now:表示立即关机
  • shutdown -h 1:表示1分钟后关机
  • shutdown -r now:立即重启

halt:效果等价于关机

reboot:重启系统

syn:把内存的数据同步到磁盘

5.2 用户登录和注销

  1. 登录时尽量少用root 帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用 **su -用户名 **命令来切换成系统管理员身份。

  2. 在提示符下输入 **logout **即可注销用户。

logout 注销指令在图形运行级别无效,在运行级别 3下有效

六、用户管理

6.1 基本介绍

在这里插入图片描述

说明

  1. Linux 系统是一个多用户多任务的系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  2. Linux 的用户需要至少属于一个组。

6.2 添加用户

useradd [选项] 用户名

添加一个用户 xiaoming

在这里插入图片描述

注意:

  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

在这里插入图片描述

6.3 给用户指定(或)修改密码

passwd 用户名

给xioaming 指定密码
在这里插入图片描述

6.4 删除用户

userdel 用户名

1、删除用户 xiaoming ,但是要保留目录

​ userdel xiaoming

2、删除用户 xiaoming 以及用户主目录

userdel -r xiaoming

在删除用户时,我们一般不会将家目录删除。

6.5 查询用户信息

id 用户名

在这里插入图片描述

6.6 切换用户

在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限的用户,比如 root。

su - (注意这里有个空格)切换用户名

在这里插入图片描述

  • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
  • 当需要返回原来用户时,使用 exit 指令

6.7 用户组

类似于角色,系统可以对有共性的多个用户进行统一管理。

增加组 groupadd 组名

删除组 groupdel 组名

6.8 增加用户时直接加上组

useradd -g 用户组 用户名

6.9 查看 文件/目录所有者

一般谁创建了该文件,谁就是该文件的所有者。

ls -ahl

eg:创建一各组名为police,再创建一个用户tom,将tom放在police组,然后用tom创建一个文件,查看文件所属情况。

在这里插入图片描述

6.10 修改用户的组

usermod -g 用户组 用户名

6.11 修改文件所有者

chown 用户名 文件名

**eg:**用root 创建一个文件orange.txt,然后将其所有者修改为 tom

在这里插入图片描述

8.3 修改文件所在组

chgrp 组名 文件名

eg:用root 创建文件blue.txt,查看当前文件属于哪个组,然后将这个文件所在组,修改到police组

在这里插入图片描述

6.10 /etc/passwd 文件

用户的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识符:组标识符:注释性描述:主目录:登录Shell

在这里插入图片描述

6.11 /etc/shadow 文件

口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

6.12 /etc/group 文件

组的配置文件,记录Linux 包含的组的信息

每行的含义:组名:口令:组标识号:组内用户列表

在这里插入图片描述

七、实用指令

7.1 指定运行级别

运行级别说明:

0:关机

1:单用户(找回密码)

2:多用户无网络服务

3:多用户有网络服务

4:系统未使用留给用户

5:图形界面

6:系统重启

常用运行级别是 3 和 5 ,要修改默认的运行级别,通过修改 /etc/inittab 的 id:5:initdefault:这一行中的数字
在这里插入图片描述

7.2 切换到指定运行级别的指令

init [0123456]

7.2.1 如何找回 root密码

解决:进入 单用户模式,然后修改密码。因为单用户模式,root不需要密码就可以登录。

总结:

开机 > 在引导时键入回车键 >

看到一个界面键入e >

在这里插入图片描述

看到一个新的界面,选中第二行(编辑内核),再输入e >

在这里插入图片描述

在这行最后键入1,回车 >
在这里插入图片描述

再输入b,进入单用户模式,使用passwd 指令来修改密码。

7.3 帮助指令

当我们对某个指令不熟悉时,我们可以使用 Linux 提供的帮助指令来了解这个指令的使用方法。

7.3.1 man 获得帮助信息

man [命令或配置文件](功能描述:获得帮助信息

7.3.2 help 指令

help 命令(功能描述:获得shell 内置命令的帮助信息

在这里插入图片描述

7.4 文件目录类

7.4.1 pwd 指令

pwd

  • Print the name of the current working directory.
  • 功能描述:显示当前工作目录的绝对路径
7.4.2 ls 指令

ls [选项] [目录或文件]

  • list directory contents
  • -a :显示当前目录所有的文件和目录,包括隐藏的
  • -l :以列表的方式显示信息
7.4.3 cd 指令

cd [参数]

常用参数:

  • 绝对路径和相对路径
  • cd ~ 回到自己家目录
  • cd … 回到当前目录的上一级目录
7.4.4 mkdir 指令

mkdir [选项] 要创建的目录

  • make directory
  • -p:创建多级目录

在这里插入图片描述

7.4.5 rmdir 指令

rmdir [选项] 要删除的空目录

  • rmdir 删除的是空目录,要是目录下有内容则无法删除
  • 删除非空目录使用 rm -rf 要删除的目录

在这里插入图片描述

7.4.6 touch 指令

touch 文件名称

  • 创建空文件
  • 跟多个文件名称即可创建多个文件
7.4.7 cp 指令(重要)

cp [选项] source dest

  • 拷贝文件到指定目录
  • -r :递归复制整个文件夹

在这里插入图片描述

7.4.8 rm 指令

rm [选项] 要删除的文件或目录

  • -r :递归删除整个文件夹
  • -f:强制删除不提示
7.4.9 mv 指令

mv oldNameFile newNameFile(功能描述:重命名

mv 文件名 目录(功能描述:移动文件

7.4.10 cat 指令

cat [选项] 要查看的文件

  • -n :显示行号
  • 为了浏览方便,一般会带上管道命令 | more
7.4.11 more 指令

more 要查看的文件

  • more 指令时一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
  • more指令中内置了快捷键如下图

在这里插入图片描述

7.4.12 less 指令

less 要查看的文件

  • less指令用来分屏查看文件内容,它的功能与more 指令类似,但是比more指令更加强大,支持各种显示终端。
  • less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据需要加载内容,对于大型文件具有较高的效率。

在这里插入图片描述

7.4.13 指令 > 和 指令 >>

输出重定向 >:会将原来文件的内容覆盖掉

追加>>:不会覆盖原来文件的内容,而是追加到文件的尾部

eg:

1、ls -l > 文件 显示的列表内容覆盖到文件中,如果文件不存在,就创建该文件。

在这里插入图片描述

2、ls -al >> 文件 列表的内容追加到文件末尾

在这里插入图片描述

7.4.15 echo 指令

echo [选项] [输出内容] (功能描述:输出内容到控制台

echo 输出环境变量

在这里插入图片描述

7.4.16 head 指令

head 用于显示文件的开头部分内容,默认显示文件的前10行内容

head 文件 (功能描述:查看文件的头10行内容)

head -n 5 文件(功能描述:查看文件的5行内容,5可以是任意行数)

7.4.17 tail 指令

tail用于输出文件尾部的内容,默认显示尾部10行内容

tail 文件(功能描述:显示文件后10行内容

tail -n 5 文件(功能描述:显示文件后5行内容,5可以是任意数

tail -f 文件(功能描述:实时追踪该文档的所有更新,工作中经常使用

7.4.18 ln 指令

软链接也叫符号链接,类似windows的快捷方式,主要存放了链接其他文件的路径。

ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接

在这里插入图片描述

7.4.19 history 指令

history (功能描述:查看已经执行过的历史指令)

history 10 显示最近使用过的10个指令

!5 执行编号为5的指令

7.5 日期时间类

7.5.1 date 指令 显示当前日期
  • date (功能描述:显示当前时间)
  • date +%Y (功能描述:显示当前年份)
  • date +%m (功能描述:显示当前月份)
  • date +%d (功能描述:显示当前是哪一天)
  • date “+%Y-%m-%d %H:%M:%S”(功能描述:显示当前年月日时分秒)
7.5.2 date 指令 设置日期

date -s 字符串时间

eg:date -s “2018-10-10 11:22:22”

7.5.3 cal 指令

cal [选项](功能描述:不加选项,显示本月日历

cal 2020 (显示2020年日历)

查看日历指令

7.6 搜索查找类

7.6.1 find 指令

find [搜索范围] [选项]

  • find 指令从指定目录向下递归的遍历子目录,将满足条件的文件或目录显示在终端。
  • 选项说明
    • -name 按照指定的文件名查找文件
    • -user 查找属于指定用户名的所有文件
    • -size 按照指定的文件大小来查找文件
  • 应用实例

按文件名:根据名称查找 /home 目录下的hello.txt 文件

在这里插入图片描述

按拥有者:查找/opt目录下,用户名称为nobody的文件

在这里插入图片描述

查找整个linux 系统下大于20M的文件(+n 大于 ,-n 小于,n 等于)
在这里插入图片描述

7.6.2 locate 指令

locate 搜索文件

  • locate 指令可以快速定位文件路径
  • locate 指令利用事先建立的系统中所有文件名称及路径的locate数据库,快速定位给定的文件
  • 为了保证查询结构的准确性,管理员必须定期更新locate时刻

特别说明:由于locate 指令是基于数据库进行查询的,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库

在这里插入图片描述

7.6.3 grep 指令和管道符号 |

管道符 “|” ,表示将前一个命令的处理结果输出传递给后面的命令处理

grep [选项] 查找内容 源文件

  • grep 能使用正则表达式搜索文本,并把匹配的行打印出来;
  • 常用选项
    • -n 显示匹配行及行号
    • -i 忽略字母大小写
  • 应用实例

在hello.txt文件中,查找 “yes” 所在行,并且显示行号

在这里插入图片描述

7.7 压缩和解压类

7.7.1 gzip/gunzip 指令

gzip 文件(功能描述:压缩文件,只能将文件压缩为.gz文件*)

gunzip 文件.gz(功能描述:解压缩文件命令

在这里插入图片描述

当我们使用gzip 对文件进行压缩后,不会保留原来的文件

7.7.2 zip/unzip 指令

zip [选项] xxx.zip 要压缩的内容(功能描述:压缩文件和目录的命令

unzip [选项]xxx.zip(功能描述:解压缩文件

  • zip 常用选项
    • -r:递归压缩,即压缩目录
  • unzip 常用选项
    • -d <目录>:指定解压文件存放目录

在这里插入图片描述

7.7.3 tar 指令

tar [选项] xxx.tar.gz 要打包的内容(功能描述:压缩后的格式为.tar.gz

选项:

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

zip

  • zip是用于windows的操作系统压缩格式的一种。

  • zip流行于windows系统上的压缩文件(其他系统也可以打开)。zip格式开放而且免费。zip支持分卷压缩,128/256-bit AES加密算法等功能。zip的含义是速度,其目标就是为顶替ARC而诞生的“职业”压缩软件。

  • ,但在windows系统中用WinRar工具同样可以解压缩tar.gz格式的

tar.gz

  • “tar.gz是用于unix的操作系统的压缩格式
  • .tar.gz其实上是2个工具。tar是打包工具,把很多文件打包成一个文件,gz是压缩格式。因为太常用,所以linux下tar命令是直接支持gz压缩和解压缩的。
  1. 压缩.tar.gz文件

命令:tar -zcvf 压缩文件名.tar.gz 被压缩文件名

  eg:tar -zcvf demo.tar.gz test
  1. 解压缩命令

命令:tar -zxvf 压缩文件名.tar.gz -C /指定路径

eg:tar -zxvf demo.tar.gz -C /home

八、权限管理

8.1 权限的介绍

-rw-r–r--. 1 root root 0 12月 2 19:57 a.txt

0-9说明:

  • 第0位确定文件类型(-普通文件,d目录, c字符设备[键盘,鼠标],b块文件,硬盘,l 软连接)
  • 第1-3位确定该文件所有者拥有该文件的权限 --User level
  • 第4-6位确定该文件所属组(同用户的)拥有该文件的权限 --Group
  • 第7-9位确定该文件其他用户拥有该文件的权限 --Other level
  • 可以用数字表示:r=4,w=2,x=1 因此 rwx=4+2+1=7

8.2 修改权限-chmod

8.2.1 第一种方式:+、-、= 变更权限
  • u:所有者s
  • g:所有组
  • o:其他人
  • a:所有人(ugo的综合)

eg:

1、给abc 文件的所有者读写执行权限,给所在组读执行权限,给其他组读执行权限

在这里插入图片描述

2、给abc 文件的所有者消除执行权限,增加组的写的权限

在这里插入图片描述

3、给abc 文件的所有用户添加读的权限

chomd a+r abc

8.2.2 第二种方式:通过数字变更权限

规则:r=4 w=2 x=1 rwx=4+2+1=7

  • chmod u=rwx,g=rx,o=x 文件目录名

  • chmod 751 文件目录名

eg:/home/abc.txt 文件的权限修改成 rwxr-xr-x,使用数字的方式实现

rwx=7、r-x=5

chmod 755 /home/abc.txt

九、crond任务调度

在这里插入图片描述

9.1 概述

任务调度:是指系统在某个时间执行的特点的命令或程序。

任务调度分类:

  • 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描
  • 用户工作:个别用户希望执行某些程序,如对mysql数据库的备份

9.2 crontab(定时任务) 指令

crontab [选项]

常用选项:

  • -e:编辑crontab定时任务
  • -l:列出当前有那些任务调度
  • r:删除当前用户所有的crontab任务

service crond restart 重启任务调度

9.3 快速入门

任务要求:每小时的每分钟执行 ls -l /etc/ >> /tmp/to.txt

步骤:

  1. crontab -e
  2. 输入*/1 * * * * ls -l /etc/ >> /tmp/to.txt
  3. :wq保存退出
  4. 在每一分钟都会自动会调用 ls -l /etc/ >> /tmp/to.txt

参数说明:

在这里插入图片描述

9.4 案例

eg1:每隔一分钟,将当前的日期信息,追加到/temp/mydate 文件

  1. 编写shell文件,vim /home/mytask1.sh;输入date >> /tmp/mydate
  2. 给mytask1.sh执行权限,chomd 744 /home/mytask1.sh
  3. crontab -e
  4. */1 * * * * /home/mytask1.sh
  5. 成功

eg2:每隔一分钟,将当前日期和日历,追加到/home/mycal 文件

  1. 编写shell文件,vim /home/mytask2.sh;输入

    ​ date >> /tmp/mydate

    ​ cal >> /tmp/mydate

  2. 给mytask2.sh执行权限,chomd 744 /home/mytask1.sh

  3. crontab -e

  4. */1 * * * * /home/mytask2.sh

  5. 成功

eg3:每天凌晨2:00将mysql数据库testdb,备份到文件mydb.bak中

  1. 编写shell文件,vim /home/mytask3.sh;输入

    ​ /user/local/mysql/bin/mysqldump -uroot -padmin testdb > /tmp/mydb.bak

  2. 给mytask3.sh执行权限,chomd 744 /home/mytask3.sh

  3. crontab -e

  4. 0 2 * * * /home/mytask3.sh

  5. 成功

十、Linux 磁盘分区、挂载

10.1 分区基础知识

MBR和GPT是不同的分区类型

  • MBR(Master Boot Record,主引导记录)分区是计算机开机后访问硬盘时所必须要读取的首个扇区,内包含引导加载程序。
  • GPT(GUID Partition Table,全局唯一标识磁盘分区表)分区,这是一个正逐渐取代MBR的新标准,它由UEFI辅住而形成的,这样就有了UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。

Legacy和UEFI都是BISO的类型

  • UEFI,全称Unified Extensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,旨在代替BIOS(基本输入/输出系统)。此标准由UEFI联盟中的140多个技术公司共同创建,其中包括微软公司。UEFI旨在提高软件互操作性和解决BIOS的局限性

  • Legacy启动模式:开机→BIOS初始化→BIOS自检→引导操作系统→进入系统

  • UEFI启动模式:开机→UEFI初始化→引导操作系统→进入系统

BIOS(Basic Input Output System),直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,开机自动执行的一个程序,自动读取磁盘的第一个扇区内的内容–MBR。

Linux:存在几十个文件系统类型:ext2,ext3,ext4,xfs,brtfs,zfs(man 5 fs可以取得全部文件系统的介绍)。不同文件系统采用不同的方法来管理磁盘空间,各有优劣;文件系统是具体到分区的,所以格式化针对的是分区,分区格式化是指采用指定的文件系统类型对分区空间进行登记、索引并建立相应的管理表格的过程。

  • ext2:适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
  • ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
  • ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
  • swap:用于linux的交换分区,用来提供虚拟内存,一般为物理内存的2倍。由操作系统自行管理
  • iso9660:光盘使用的标准文件系统,
  • Windows:FAT32, NTFS,exFAT

EXT(Extended file system)是延伸文件系统、扩展文件系统,ext1于1992年4月发表,是为linux核心所做的第一个文件系统。

格式化命令:mkfs -t <文件系统类型> <分区设备文件名>

mkfs.xfs /dev/sdb1

10.2 原理介绍

Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。

在这里插入图片描述

10.3 硬盘说明

Linux 硬盘分 IDE 硬盘 和SCCI 硬盘,目前基本是SCSI 硬盘。

对于IDE硬盘,驱动器标识符为 “hdx~

  • hd: 表明分区所在设备的类型,这里指IDE硬盘
  • x :为盘号;a为基本盘、b为基本从属盘、c为辅助主盘、d为辅助从属盘
  • ~:代表分区;前四个分区用数字1-4,它们是主分区或扩展分区,从5开始就是逻辑分区
  • eg:hda3 表示第一个IDE硬盘上的第三个主分区或扩展分区;hdb2 表示为第二个IDE硬盘上的第二个主分区或扩展分区

对于SCSI硬盘,启动器标识符为 “sdx~” ,其他同IDE硬盘。

10.4 lsblk 指令查看当前系统分区状况

lsblk - list block devices

在这里插入图片描述

10.5 挂载案例

要求:给Linux 系统增加一个新的硬盘,并且挂载到 /home/newdisk

第一步 虚拟机添加硬盘

在【虚拟机】菜单中,选择【设备】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,直到完成。然后重启系统才能识别!

第二步 分区 fdisk

分区命令 fdisk /dev/sdb

  • m 显示命令帮助
  • p 显示磁盘分区 同fdisk -l
  • n 新增分区
  • d 删除分区
  • w 写入并退出

开始分区后输入 n(新增分区),然后选择p(分区类型为主分区)。两次回车默认剩余全部空间。最后w写入分区并退出。

在这里插入图片描述

第三步 格式化 mkfs

格式化磁盘命令: mkfs -t ext4 /dev/sdb1

  • -t表示分区指定分区类型为ext4
第四步 挂载 mount

挂载就是把一个分区和一个目录联系起来

mount 设备名称 挂载目录

mount /dev/sdb1 /home/newdisk

unmount是卸载

第五步 设置自动挂载(永久挂载)

通过修改 /etc/fstab 实现永久挂载

添加完成后 执行 mount -a

  • -a 表示:Mount all filesystems (of the given types) mentioned in fstab.

在这里插入图片描述

10.6 df -h 查询系统整体磁盘使用情况

df - report file system disk space usage

  • -a,–all:全部文件系统列表
  • -B, --block-size=SIZE:指定分区块大小
  • -h:人类可阅读的方式显示
  • -i:以inode模式来显示磁盘使用情况

eg:查询系统整体磁盘使用情况

在这里插入图片描述

10.7 du 查询指定目录的磁盘占用情况

du - estimate file space usage

  • -a :包含文件,不仅仅是目录
  • -c:列出明细的同时,增加汇总值
  • -h:带技计量单位
  • –max-depth=1 :子目录深度

eg:查询/opt目录的磁盘占用情况,深度为1

在这里插入图片描述

10.8 磁盘情况 - 工作实用指令

wc是word count的缩写,即统计单词数。用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

  • -c 统计字节数
  • -l 统计行数
  • -m 统计字符数。该参数不能与-c一起使用
  • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
  • -L 打印最长行的长度

1、 统计/home文件夹下的文件个数

ls -l /home | grep “^-” | wc -l

2、 统计/home文件夹下的目录个数

ls -l /home grep “^d” | wc -l

3、 统计/home文件夹下的文件个数,包括子文件夹里的

ls -lR /home | grep “^-” | wc -l

4、统计/home文件夹下的目录个数,包括子文件夹里的

ls -lR /home | grep “^d” | wc -l

5、以树状显示目录结构

yum install tree

tree

十一、网络配置

11.1 网络配置原理图

在这里插入图片描述

11.2 查看网络IP 和 网关

在这里插入图片描述
在这里插入图片描述

11.3 Linux网络环境配置

11.3.1 第一种方法(自动获取)

在这里插入图片描述

缺点:Linux启动后会自动获取IP,缺点是每次自动获取的IP地址可能会不一样。这就不适用于作服务器,因为我们的服务器IP需要是固定的。

11.3.2 第二种方法(指定固定IP)

通过修改配置文件来指定IP

配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

修改后一定要重启服务

1)service network restart

2)reboo重启系统

十二、进程管理

  • 在 Linux 中每个执行的程序都称为一个进程。每个进程都分配一个ID号。
  • 每个进程都对应一个父进程,而这个父进程可以复制多个子进程。
  • 每个进程都可以以前台和后台方式存在。
  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻系统中,直至关机才结束。

12.1 ps 显示系统执行的进程

ps (Process Status) 进程状态

ps命令支持三种语法格式

  • Unix风格的参数,前面加单破折线
  • BSD风格的参数,前面不加破折线
  • GNU风格的长参数,前面加双破折线

1、ps -aux 是以BSD方式显示

  • a (show processes for all users) 显示所有用户的进程

  • u (display the process’s user/owner) 显示用户

  • x (also show processes not attached to a terminal)显示无控制终端的进程

2、ps -ef 是以System V方式显示,该种方式比BSD方式显示的多

  • -e (all processes)显示所有用户的进程此参数的效果和指定"a"参数相同

  • -f 显示UID,PPIP,C与STIME栏位。

3、grep

用于查找文件里符合条件的字符串。

12.2 Linux上进程有5种状态

进程状态含义对应ps命令的状态码
运行正在运行或在运行队列中等待R 运行 runnable (on run queue)
中断休眠中, 受阻, 在等待某个条件的形成或接受到信号S 中断 sleeping
不可中断收到信号不唤醒和不可运行, 进程必须等待直到有中断发生D 不可中断 uninterruptible sleep (usually IO)
僵死进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放Z 僵死 a defunct (”zombie”) process
停止进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行T 停止 traced or stopped

12.3 信息说明

ps -aux

在这里插入图片描述

  • USER:启动这些进程的用户名
  • PID:进程ID
  • %CPU:进程占用CPU的百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用虚拟内存大小(单位:KB)
  • RSS:进程占用物理内存大小(单位:KB)
  • TT:进程启动时的终端名称
  • STAT:进程状态(R、S、的、D、Z、T)
  • STARTED:进程的启动时间
  • TIME:CPU时间,即进程使用CPU的总时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

ps -ef

在这里插入图片描述

  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:COU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低。
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU时间
  • CMD:启动进程所用的命令和参数

12.4 查看sshd进程的父进程号是多少

ps -ef | grep sshd

12.5 终止进程 kill 和 killall

kill [选项] 进程号(功能描述:通过进程号杀死进程)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,着在系统因负载过大而变得很慢时很有用)

常用选项

  • -9 :表示强迫进程立即停止

eg:

  1. 踢掉某个非法的登录的用户

在这里插入图片描述

  1. 终止远程登录服务sshd,在适当时候再次重启sshd服务

在这里插入图片描述

  1. 终止多个gedit编辑器(killall ,通过进程名称来终止进程

在这里插入图片描述

  1. 强制杀掉一个终端

在这里插入图片描述

12.6 查看进程树 pstree

pstree [选项] 可以更加直观的来看进程信息

常用选项:

  • -p:显示进程的PID
  • -u:显示进程的所属用户

12.7 服务管理

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd,防火墙等)因此我们又称其为守护进程。

service 服务名 [start | stop | restart | reloa | status]

在Centos 7.0后,不再使用service,而是systemctl

eg:

  1. 查看当前防火墙的状况,关闭防火墙和重启防火墙
service iptables status  //查看防火墙状态

service iptables stop	//关闭防火墙

service iptables status	

service iptables start	//开启防火墙

注意:

  1. 关闭或者防火墙后,立即生效(telnet可以测试某端口是否打开)
  2. 这种方式只是临时生效,当重启系统后,还会复原;要想永久生效,要用chkconfig 指令,下面说该指令。
12.7.1 查看服务名

方式一:使用setup->系统服务 , 就可以看到

方式二:/etc/init.d/服务名称 (ls -l /etc/init.d/

12.7.2 服务的运行级别

查看或者修改默认运行级别:vi /etc/inttab

Linux 系统有7种运行级别(runlevel):常用的级别是3和5

  • 运行级别0:关机,系统默认级别不能设为0,否则不能正常启动

  • 运行级别1:单用户(找回密码),root权限,用于系统维护,禁止远程登录

  • 运行级别2:多用户无网络服务

  • 运行级别3:多用户有网络服务

  • 运行级别4:系统未使用留给用户

  • 运行级别5:图形界面

  • 运行级别6:系统重启,系统默认级别不能设为6,否则不能正常启动

12.7.3 开机流程说明

在这里插入图片描述

12.8 chkconfig指令

通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭

  1. chkconfig --list 显示当前系统所有服务的各个运行级别的运行状态

在这里插入图片描述

  1. service sshd status 查看sshd服务的运行状态

在这里插入图片描述

  1. chkconfig --level 5 sshd off 设置sshd服务在运行级别为 5 发情况下,不要自启动

  2. chkconfig --level 5 iptables off 在运行级别为5 时,关闭防火墙

  3. chkconfig --list | grep sshd 查看sshd服务

在这里插入图片描述

  1. chkconfig iptables --list 查看防火墙服务

在这里插入图片描述

  1. chkconfig iptables off 在所有运行级别下,关闭防火墙

  2. chkconfig iptables on 在所有运行级别下,开启防火墙

12.9 动态监控进程

top 与 ps

  • 相同点:它们都是用来显示正在执行的进程。
  • 不同点:top默认三秒可以更新正在运行的进程。

top [选项]

选项说明:

  • -d 秒数 指定top命令每隔几秒更新,默认是三秒
  • -i 使top不显示任何闲置或僵死进程
  • -p 指定监控进程ID,来监控某个进程的状态

交互操作说明:

操作功能
P以CPU使用率来排序,默认就是此项
M以内存的使用率来排序
N以PID排序
q退出top

eg:

  1. 监视特定用户

输入top命令,查看执行的进程

然后输入 u 来指定用户名即可

  1. 终止指定进程

输入top命令,查看执行的进程

然后输入 k 来指定要结束的进程ID号

12.10 查看系统网络情况 netstat 🔺

netstat [选项]

选项说明

  • -a (all)显示所有选项,netstat默认不显示LISTEN相关
  • -n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
  • -p 显示建立相关链接的程序名(display PID/Program name for sockets)

eg:

  1. 查看系统所有的网络服务

netstat -anp | more

  1. 查看服务名为sshd的服务的信息

netstat -anp | grep sshd

十三、RPM

13.1 介绍

一种用于互联网下载包的打包及安装工具,它包含在某些 Linux分发版种,它生成具有RPM扩展名的文件。RPM是RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但是理念是通用的。Linux的分发版本都有采用(suse、redhat、centos等等),可以算是公认的行业标准了。

13.2 RPM包的简单查询指令

查询已安装的RPM列表 rpm -qa | grep xx(q表示query,a表示all,grep表示过滤)

例如:查询当前的Linux有没有安装 firefox

rpm -qa|grep firefox

在这里插入图片描述

13.3 RPM包名基本格式

一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

  • 名称:firefox

  • 版本号:45.0.1-1

  • 适用操作系统: el6.centos.x86_64 表示centos6.x的64位系统

  • 如果是i686、i386表示32位系统,noarch表示通用

13.4 RPM包的其它查询指令

rpm -qa:查询所安装的所有rpm软件包

rpm -qa | more :查询所安装的所有rpm软件包 并且分页显示

rpm -qa | grep X [rpm -qa | grep firefox ] :查询是否安装有某个软件(火狐的软件)

rpm -q 软件包名 :查询软件包是否安装 rpm -q firefox

rpm -qi 软件包名 :查询软件包信息

rpm -ql 软件包名 :查询软件包中的文件的安装位置

rpm -qf 文件全路径名:查询文件所属的软件包 ,例如:rpm -qf /etc/passwd

13.5 卸载rpm包:

rpm -e RPM包的名称

应用案例 :删除firefox 软件包

rpm -e firefox

细节讨论:

1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息

如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1

2)如果我们就是要删除 foo这个rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e --nodeps foo

13.6 安装rpm包

rpm -ivh RPM包全路径名称

参数说明:

  • i=install 安装
  • v=verbose 提示
  • h=hash 进度条

应用实例: 安装firefox浏览器

1)先要找到安装包,需要先挂载上我们之前安装CentOS的iso文件,点击虚拟机设置使用ios文件,那么在系统中会多出一个光驱,打开命令行终端进入到/media/CentOS_6.8_final/package/(所有的rpm包都在这里)

点击然后拷贝到/opt目录下

cp firefox( rpm包的文件名) 需要拷贝到的目录 (可以输入rpm包名字的前几个字母然后使用Tab键补全)

② 安装

切换到/opt目录下找到刚才拷贝的文件然后使用: rpm ivh + 火狐rpm软件安装包的名字就可以了

十四、yum

14.1 介绍

Yum 是一个Shell 前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,即一次安装所有依赖的软件包。使用yum的前提是可以联网。

14.2 yum的基本指令

查询服务器是否有需要安装的软件

yum list|grep xx

安装指定的yum包

yum install xxx

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值