Linux(CentOS-7)-全面详解(学习总结---从入门到深化)

童小纯 2024-06-15 14:07:03 阅读 95

目录

Linux概述

Linux特点

Linux应用领域 

 Linux和Windows区别

 Linux下载安装

 安装VMWare虚拟机

 下载CentOS

 安装CentOS

 Linux三种网络配置

 背景

 桥接模式

 NAT

 Host-only

 Linux 远程登录

 配置Nat网络模式

 设置虚拟交换机网关

 管理员授权

 设置子网打开NAT设置

 设置网关

 配置vmware8网卡

 设置IPV4

 配置网络和DNS服务

 登录到Linux编辑网卡文件

设置XShell连接

 连接主机

 Linux系统目录结构

 文件系统组织结构

Linux用户和用户组 

 用户管理概述

 用户账号和用户组

 用户概念

 用户组概念

 Linux用户和组的关系

 Linux用户管理

 添加用户 useradd

 参数

修改用户 usermod

用户账号口令管理

删除用户 userdel

Linux用户组管理

 添加新组groupadd

修改群组groupmod

删除群组groupdel

 Linux超级用户与伪用户

 用户身份切换

Linux文件基本属性

 显示文件属性

 ls命令

 文件与目录操作

 Linux文件类型

 文件权限

​编辑 Linux权限字与权限操作

 ​编辑改变所属群组chgrp

 改变文件属性chmod

 数字设定法

 改变文件拥有者chown

Linux路径

 绝对路径

 相对路径

 Linux处理文件目录的常用命令

 pwd (显示目前所在的目录)

pwd示例: 

 mkdir (创建新目录)

 mkdir示例

rmdir (删除空的目录)

 rmdir示例:

cp (复制文件或目录)

cp示例:

rm (删除文件或者目录)

 rm示例:

mv (移动文件与目录,或修改名称)

 mv示例:

Linux文件编辑工具vi/vim

 vi/vim 的使用

 命令模式

 输入模式

底线命令模式 

 shift+zz 保存退出

vi/vim 使用实例

 常用语法

 命令操作

 Linux文件内容查看命令

 cat(显示文件内容)

 cat示例:

tac(倒着显示文件内容)

nl(显示行号)

 nl示例:

more(一页一页的显示文件内容)

 more示例:

less(往前翻页)

 示例:

head(只看头几行)

 head示例:

tail(只看尾几行)

 tail示例:

Linux打包压缩与搜索命令

 tar 命令

gzip/gunzip压缩

 示例1

搜索命令

grep 命令

 find命令

Linux常用系统工作命令

 reboot 命令

 poweroff 命令

 wget 命令

Linux管道符、重定向与环境变量

 输入输出重定向

 输入重定向作用表

 输出重定向作用表

管道命令符

 命令行的通配符

重要的环境变量

 用户级

Linux磁盘管理

 分区的方式

 Linux分区原理

 df命令

 lsblk命令

 参考实例

 fdisk命令

 参考实例

 Linux挂载硬盘

 虚拟机添加硬盘

 分区

设置分区

 查看分区

格式化

 挂载

 永久挂载

Linux系统状态检测命令

 ip addr 命令

 uname 命令

free 命令

 last 命令

 history 命令

 uptime 命令

 Linux下软件安装的命令

 源码安装

 RPM软件包管理

 YUM

 YUM的配置文件

容器说明

 容器查询

 配置文件修改

 YUM使用手册

Linux下常用软件安装_JDK和Tomcat安装

 Jdk 安装

解压jdk安装包

配置环境变量

生效环境变量

Tomcat 安装

解压Tomcat安装包

配置环境变量

Linux下常用软件安装_Mysql安装

 下载YUM库

安装YUM库

安装数据库

遇到报错

 解决办法

完成安装,重启mysql

修改密码策略

修改密码

开启远程连接

Linux下常用软件安装_MySQL卸载

检查是否安装了MySQL组件。

卸载前关闭MySQL服务

收集MySQL对应的文件夹信息

卸载删除MySQL各类组件

删除MySQL对应的文件夹

删除mysql用户及用户组

Linux进程管理

 ps

top 

htop

htop的介绍

htop的安装 

 kill

 netstat

Linux系统服务

 Service命令

Systemd命令

systemctl 

 systemd-analyze

hostnamectl

timedatectl

 Chkconfig

 经常使用服务介绍

 Linux系统定时任务

 什么是定时任务

为什么要用crond

 crontab配置文件

crontab的时间编写规范

 crontab命令选项

Linux网络防火墙

 防火墙管理工具

 firewalld概述

 firewalld 中常用的区域名称及测了规则

 firewalld防火墙的配置

 终端管理工具

 firewalld-cmd 命令中使用的参数以及作用

 常用示例

区域管理示例

 服务管理示例

端口管理示例 

 SELinux

 SELinux 服务有三种配置模式:

 Linux内核机制


Linux概述

Linux特点

首先Linux作为自由软件有两个特点:一是它免费提供源代码, 二是爱好者可以根据自己的需要自由修改、复制和发布源码

 Linux的各个发行版本

 Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打 包。

1、Red Hat Linux

2、Ubuntu Linux 界面 桌面系统

3、SuSE Linux

4、Gentoo Linux

5、其他 Linux 发行版

Linux应用领域 

1、IT服务器

2、嵌入式

3、个人桌面

 Linux和Windows区别

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。

 主要区别如下

 Linux下载安装

 安装VMWare虚拟机

VMware是一个老牌的虚拟化软件。虚拟机指通过 软件 模拟的具 有完整 硬件 系统功能的、运行在一个完全隔离环境中的完整。

 

 下载CentOS

进入Centos官网找要下载的版本https://vault.centos.org/

 

如需遇到下载慢可以访问阿里镜像地址https://mirrors.aliyun.com/centos-vault/?spm=a2c6h.13651104.0.0.5f6612b2O7Cy9G

 安装CentOS

 

 

 

 

 

 

 

 

 

 

 

 

 ​​​​

 

 Linux三种网络配置

 背景

A是本机,A1,A2是虚拟机,B是外部联网的机器(同事的电脑)

 桥接模式

相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。

 

 注意: 桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话。

 bridge(桥接模式): A可以和A1,A2互通,A1,A2 -> B可以,B -> A1,A2可以

 NAT

让 VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件 模拟 的主机可以通过物理主机访问外网,在真机中 NAT 虚拟机网 卡对应的物理网卡是 VMnet8。

 

 注意: 实际上VMware Network Adapter VMnet8的作用是为了实现虚 拟机和主机之间相互通信!

Nat(网络地址转换): A可以和A1,A2互通,A1,A2 -> B可以,B - > A1,A2不行

 Host-only

仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅 主机 模式模拟网卡对应的物理网卡是 VMnet1。

 

 注意: NAT和host-only 不会占用一个ip地址,只能和你的本机进行通 讯。NAT和host-only还有一个区别就是,host-only只能和你的 本机进行通讯,不可以访问。

host-only(主机模式): A可以和A1,A2互通,A1,A2 -> B不可以, B -> A1,A2不行

 Linux 远程登录

 配置Nat网络模式

 设置虚拟交换机网关

 管理员授权

 

 设置子网打开NAT设置

 设置网关

 配置vmware8网卡

 设置IPV4

 配置网络和DNS服务

 登录到Linux编辑网卡文件

vim /etc/sysconfig/network-scripts/ifcfgens33#修改为静态ip地址#BOOTPROTO=noneBOOTPROTO=static#修改为开机自启动网卡#ONBOOT=NOONBOOT=yes#配置ipIPADDR=192.168.66.100NETMASK=255.255.255.0GATEWAY=192.168.66.1DNS1=223.5.5.5DNS2=223.6.6.6# 保存退出 :wq# 重启网卡 service network restar

设置XShell连接

 连接主机

 Linux系统目录结构

 文件系统组织结构

1、/lib

系统开机所需要最基本的动态链接共享库,其作用类似于 Windows里的DLL文件。几乎所有的应用程序都需要用到这些 共享库。 

2、/lost+found

一般情况下是空的,当系统非法关机后,这里就存放了一些文 件。

3、/etc

所有系统管理所需要的配置文件和子目录。my.conf

4、/usr

用户的很多应用程序和文件都放在这个目录下。

5、/bin

是Binary的缩写,这个目录存放着经常使用的命令

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

sbin就是per user的意思,这里存放的是系统管理员使用的系统 管理程序

7、/home

存放普通用户的主目录,在Linux中的每个用户都有一个自己的 目录,一般该目录一用户的账号名命名 

8、/root

该目录为系统管理员,超级权限者的用户目录

9、/boot

存放的启动Linux时使用的一些核心文件,包括一些链接文件和 镜像文件

10、/proc

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

11、/srv

service 的缩写,该目录是存放一些服务启动之后需要提取的数 据 

12、/sys

Linux2.6内核的一个很大变化,该目录安装了2.6内核中新出现 的一个文件系统

13、/tmp

存放临时文件

14、/dev

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

15、/media

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

16、/mnt

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可 以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的 内容了。d:/ myshare

17、/opt

这是给主机额外安装软件所摆放的目录。如安装 ORACLE数据 库就可放到该目录下。默认为空。

18、/usr/local

这是另个给主机额外安装软件所安装的目录。一般是通过编译 源码方式安装的程序。

19、/var

这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目 录放在这个目录下。包括各种日志文件。 

20、/selinux [security-enhanced linux] 类似 360

Selinux是一种安全子系统,它能控制程序只能访同特定文件。

 登录系统后,在当前命令窗口下输入命令:

ls /

 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不 要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

Linux用户和用户组 

 用户管理概述

Linux是一个多用户、多任务的操作系统。

 用户账号和用户组

 用户概念

通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户 (user)

 用户组概念

用户组(group)就是具有相同特征的用户(user)的集合体; 比如有时我们要让多个用户具有相同的权限,比如查看、修改 某一文件或执行某个命令,这时我们需要用户组,我们把用户 都定义到同一用户组,我们通过修改文件或目录的权限,让用 户组具有一定的操作权限,这样用户组下的用户对该文件或目 录都具有相同的权限,这是我们通过定义组和修改文件的权限 来实现的;

 Linux用户和组的关系

 Linux用户管理

 Linux 系统的管理员之所以是 root,是因为该用户的身份号码即 UID的数值为 0,UID 就相当于我们的身份证号码一样具有唯一性, 因此可通过用户的 UID 值来判断用户身份。

 添加用户 useradd

语法: useradd (选项)(参数)

 参数

用户名:要创建的用户名。

示例 1

下面我们创建一个普通用户并指定家目录的路径、用户的 UID 以及 Shell 解释器。在下面的命令中,请注意/sbin/nologin,它是终端解释器中的一员,与 Bash 解释器有着天壤之别。 一旦用户的解释器被设置为 nologin,则代表该用户不能登录到系统中:

[root@itbaizhan ~]# useradd -d /home/linux -u8888 -s /sbin/nologin linuxprobe[root@itbaizhan ~]# id linuxprobeuid=8888(linuxprobe) gid=8888(linuxprobe)groups=8888(linuxprobe)

修改用户 usermod

有些时候不小心在useradd的时候加入了错误的设定数据,此时我们当然可以直接到/etc/passwd或/etc/shadow中去修改相对应字段的数据。

 语法:usermod (选项) (参数)

 示例1

来看一下账户 linuxprobe 的默认信息:

id linuxprobeuid=1000(linuxprobe) gid=1000(linuxprobe)groups=1000(linuxprobe)

然后将用户 linuxprobe 加入到 root 用户组中,这样扩展组列表中 则会出现 root 用户组的 字样,而基本组不会受到影响:

[root@itbaizhan ~]# usermod -G rootlinuxprobe[root@itbaizhan ~]# id linuxprobeuid=1000(linuxprobe) gid=1000(linuxprobe)groups=1000(linuxprobe),0(root)

再来试试用-u 参数修改 linuxprobe 用户的 UID 号码值。除此之 外,我们还可以用-g 参数 修改用户的基本组 ID,用-G 参数修改用 户扩展组 ID。

[root@linuxprobe ~]# usermod -u 8888linuxprobe[root@linuxprobe ~]# id linuxprobeuid=8888(linuxprobe) gid=1000(linuxprobe)groups=1000(linuxprobe),0(root)

用户账号口令管理

passwd 命令用于修改用户密码、过期时间、认证信息等。

语法:passwd (选项) (参数)

 示例1

用root帮linuxpro修改密码

passwd linuxpro

示例2

假设您有位同事正在度假,而且假期很长,那么可以使用 passwd 命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该 命令允许用户登录系统,而不是将其删除。 这样既保证了这段时间 内系统的安全,也避免了频繁添加、删除用户带来的麻烦。

[root@itbaizhan ~]# passwd -l linuxprobeLocking password for user linuxprobe.passwd: Success[root@itbaizhan ~]# passwd -S linuxprobelinuxprobe LK 2017-12-26 0 99999 7 -1(Password locked.)[root@itbaizhan ~]# passwd -u linuxprobeUnlocking password for user linuxprobe.passwd: Success[root@itbaizhan ~]# passwd -S linuxprobelinuxprobe PS 2017-12-26 0 99999 7 -1(Password set, SHA512 crypt.)

删除用户 userdel

userdel 命令用于删除用户

语法:userdel [选项] 用户名

 语法:[root@localhost~]#userdel [-r] username

 参数:-r : 连同用户的家目录也一起删除。

 示例1

下面使用 userdel 命令将 linuxprobe 用户删除,其操作如下:

[root@itbaizhan ~]# id linuxprobeuid=8888(linuxprobe) gid=1000(linuxprobe)groups=1000(linuxprobe),0(root)[root@itbaizhan ~]# userdel -r linuxprobe[root@itbaizhan ~]# id linuxprobeid: linuxprobe: no such user

Linux用户组管理

 添加新组groupadd

语法:groupadd (选项) (参数)

 示例1

建立一个新组,并设置组ID加入系统:

groupadd -g 334 bigdata

修改群组groupmod

语法:groupmod(选项)(参数)

 ​​​​

 示例1

把建立bigdata组改为bigdata2并设置GID改为506

groupmod -g 506 -n bigdata2 bigdata

删除群组groupdel

语法:groupdel groupname

 Linux超级用户与伪用户

 

 用户身份切换

由于超级权限在系统管理中的不可缺少的重要作用,为了完成系统 管理任务,必须用到超级权限。

su   

su命令就是切换用户的工具。

 语法:su [-fmp] [-c command] [-s shell] [--help] [- -version] [-] [USER [ARG]]

 示例1

[root@itbaizhan ~]# iduid=0(root) gid=0(root) groups=0(root)[root@itbaizhan ~]# su - linuxprobeLast login: Wed Jan 4 01:17:25 EST 2017 onpts/0[linuxprobe@linuxprobe ~]$ iduid=1000(linuxprobe) gid=1000(linuxprobe)groups=1000(linuxprobe) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

注意: 上面的 su 命令与用户名之间有一个减号(-),这意味着完全 切 换到新的用户,即把环境变量信息也变更为新用户的相应信 息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)。

 sudo

Sudo 的全称为: super user do 。 顾名思义:干超级用户才能干的事! 所以Sudo最常用的功能就是提升一个命名的执行权限。

语法:sudo [参数] 命令名称

 ​​​​​​

 编辑配置文件命令: visudo 来配置用户权限。

 示例1

配置baizhan拥有root的权限

visudobaizhan ALL=(ALL) ALL

示例2

在每次执行 sudo 命令后都会要求验证一下密码。

[root@location opt]$ touch a.info#切换用户[baizhan@location ~]# su baizhan#删除a.info文件[baizhan@location ~]# rm -rf a.inform: cannot remove ‘a.info/’: Permissiondenied[baizhan@location ~]# sudo rm -rf a.info

这样,当切换到普通用户后再执行命令时,就不用再频繁地验证密 码了,我们在日常工 作中也就痛快至极了。

visudobaizhan ALL=NOPASSWD: ALL

Linux文件基本属性

 显示文件属性

 ls命令

Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内 容(列出目前工作目录所含之文件及子目录)。

语法:ls [参数]

 ​​​​​

 文件与目录操作

Linux可以支持长达256个字符的文件名称,且文件名是区分大小写 的,“abc” 与 "ABC"所代表的是不同文件。

 Linux文件类型

 文件权限

所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删 除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此Linux将一个文件或者目录与一个用户和组联系起来。

 

 

 例如,我们以 root 的身份登陆 Linux,并执行如下指令:

[root@localhost ~]# ls -altotal 156drwxr-x---. 4 root root 4096 Sep8 14:06 .drwxr-xr-x. 23 root root 4096 Sep8 14:21 ..

解析:文件设定不同用户的读、写和执行权限,仅涉及到 9 位字符

 Linux权限字与权限操作

 

改变所属群组chgrp

改变一个文件的群组很简单,直接用chgrp命令,这个命令是 change group的缩写。

 语法:chgrp [-R] 属组名 文件名

 ​​​​​

 改变文件属性chmod

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

文字设定法 

基本上就九个权限分别是:

 那么我们就可以使用 u, g, o 来代表三种身份的权限。 此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

 

 语法: chmod [who] [+ | – | =] [mode]

 

 数字设定法

 我们必须首先了解用数字表示的属性的含义:

0表示没有权限,

1表示可执行权限,

2表示可写权限,

4表示可读权限,然后将其相加。

所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u) (g)(o)。 例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可 读)+2(可写)=6(读/写)。 先复习一下刚刚上面提到的数据:文件的权限字符为: - rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使 用数字来代表各个权限,各权限的分数对照表如下:

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要 累加的,例如当权限为:

- rwx r-- r-x

分数则是:

 所以等一下我们设定权限的变更时,该文件的权限数字就是 770。 变更权限的指令 chmod 的语法是这样的:

 chmod [-R] xyz 文件或目录

 ​​​​​

 示例1

如果我们需要将文件权限设置为 - rwx r-x r-- 。

chomd 754 a.info

 示例2

将 .bashrc 这个文件所有的权限都设定启用。

chmod 777 .bashrc

 改变文件拥有者chown

更改文件属主,也可以同时更改文件属组

语法: chown [–R] 属主名 文件名

            chown [-R] 属主名:属组名 文件名

 示例:

进入 /root 目录(~)将install.log的拥有者改为bin这个账号:[root@itbaizhan ~] cd ~[root@itbaizhan ~]# chown bin install.log[root@itbaizhan ~]# ls -l-rw-r--r-- 1 bin users 68495 Jun 25 08:53install.log将install.log的拥有者与群组改回为root:[root@itbaizhan ~]# chown root:rootinstall.log[root@itbaizhan ~]# ls -l-rw-r--r-- 1 root root 68495 Jun 25 08:53install.log

Linux路径

 路径,顾名思议,是指从树形目录中的某个目录层次到某个文件的 一条道路。 Linux系统中是从" / "开始的。

 注意事项: 引入路径的概念的最终目的就是找到需要的目录或者文件。路径是由目录或者文件名构成。

 绝对路径

绝对路径是指从“根”开始的路径。例如/usr/local,/etc/hosts,如果一 个路径是从“/”开始它一定是绝对路径。

 注意: 绝对路径必须以 “/” 开头,它表示根目录。

 相对路径

相对路径是以 “ . ” 或者 " .. "开始的。. 表示用户操作所处的位置 .. 表示上级目录。

  在路径一些特殊符号的说明

 Linux处理文件目录的常用命令

 pwd (显示目前所在的目录)

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

[root@www ~]# pwd [-P]

选项与参数:

       -P :显示出确实的路径,而非使用连结 (link) 路径。

pwd示例: 

[root@itbaizhan ~]# pwd/root <== 显示出目录啦~

注意: pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

 mkdir (创建新目录)

如果想要创建新的目录的话,那么就使用mkdir (make directory) 吧。

语法:mkdir [-mp] 目录名称

 选项与参数:

       -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

 mkdir示例

[root@itbaizhan ~]# cd /tmp[root@itbaizhan tmp]# mkdir test <==创建一名为 test 的新目录[root@itbaizhan tmp]# mkdirtest1/test2/test3/test4[root@itbaizhan ~]# mkdir -m 711 test2

rmdir (删除空的目录)

语法:rmdir [-p] 目录名称

 选项与参数:

      -p :从该目录起,一次删除多级空目录

删除 runoob 目录

 rmdir示例:

[root@itbaizhan tmp]# rmdir itbaizhan/

cp (复制文件或目录)

cp 即拷贝文件和目录。copy的意思。

语法:

[root@itbaizhan ~]# cp [-adfilprsu] 来源档 目标档

选项与参数: -r:递归持续复制,用於目录的复制行为

cp示例:

[root@itbaizhan ~]# cp ~/.bashrc /tmp/bashrc[root@itbaizhan ~]# cp -i ~/.bashrc/tmp/bashrccp: overwrite `/tmp/bashrc'? n <==n不覆盖,y为覆盖

rm (删除文件或者目录)

语法:

rm [-fir] 文件或目录

 选项与参数:

    -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

    -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

 rm示例:

[root@www tmp]# rm -i bashrcrm: remove regular file `bashrc'? y如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!

mv (移动文件与目录,或修改名称)

语法:

[root@itbaizhan ~]# mv [-fiu] sourcedestination[root@itbaizhan ~]# mv [options] source1source2 source3 .... directory

选项与参数:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

 mv示例:

[root@itbaizhan ~]# cd /tmp[root@itbaizhan tmp]# cp ~/.bashrc bashrc[root@itbaizhan tmp]# mkdir mvtest[root@itbaizhan tmp]# mv bashrc mvtest

Linux文件编辑工具vi/vim

 vi/vim 的使用

vi或vim是Linux最常用的文本编辑器工具,vi或vim没有图形界面编辑器那样单机鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远是图形界面的编辑器所不能比的。

 ​​​​​

 基本上 vi/vim 共分为三种模式 :

1、命令模式(Command mode)

2、输入模式(Insert mode)

3、底线命令模式(Last line mode)

 命令模式

用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

 

 输入模式

在命令模式下按下i、o、a就进入了输入模式。

在输入模式中,可以使用以下按键:

1、字符按键以及Shift组合,输入字符

2、ENTER,回车键,换行

3、BACK SPACE,退格键,删除光标前一个字符

4、DEL,删除键,删除光标后一个字符

5、方向键,在文本中移动光标

6、HOME/END,移动光标到行首/行尾

7、Page Up/Page Down,上/下翻页

8、Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

9、ESC,退出输入模式,切换到命令模式

底线命令模式 

主要保存或者退出文件,以及设置Vim编辑器的工作环境,还可以 让用户执行外部的Linux命令或跳转所编写文档的特定行数。

 shift+zz 保存退出

vi/vim 使用实例

编辑模式

在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法 编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入 编辑模式。

 

 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

常用语法

1)进入编辑模式 (1)i 当前光标前 (2)a 当前光标后 (3)o 当前光标行的下一行

2)退出编辑模式 按『Esc』键

 指令模式

在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

 常用语法

1 基本语法 : 选项 w 保存 q 退出 ! 感叹号强制执行 / 查找,/被查找词,n是查找下一个,shift+n是往上查找 ? 查找,?被查找词,n是查找上一个,shift+n是往下查找

示例:

:w 保存

:q 退出

:q! 强制退出(放弃对文档的修改内容)

:wq! 强制保存退出

:set nu 显示行号

:set nonu 不显示行号

:命令 执行该命令

:整数 跳转到该行

 命令操作

 Linux文件内容查看命令

 cat(显示文件内容)

由第一行开始显示文件内容

语法:cat [-AbEnTv]

 cat示例:

[root@itbaizhan ~]# cat /etc/issueCentOS release 6.4 (Final)Kernel \r on an \m

tac(倒着显示文件内容)

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

[root@itbaizhan ~]# tac /etc/issueKernel \r on an \mCentOS release 6.4 (Final)

nl(显示行号)

语法:nl [-bnw] 文件

 nl示例:

[root@itbaizhan ~]# nl /etc/issue 1 CentOS release 6.4 (Final) 2 Kernel \r on an \m

more(一页一页的显示文件内容)

一页一页翻动

 more示例:

[root@itbaizhan ~]# more /etc/man_db.config## Generated automatically from man.conf.in bythe# configure script.## man.conf from man-1.6d....(中间省略)....--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令

less(往前翻页)

一页一页翻动,以下实例输出/etc/man.config文件的内容:

 示例:

[root@itbaizhan ~]# less /etc/man.config## Generated automatically from man.conf.in bythe# configure script.## man.conf from man-1.6d....(中间省略)....: <== 这里可以等待你输入命令!

head(只看头几行)

取出文件前面几行

语法:head [-n number] 文件

 选项与参数:

1、-n :后面接数字,代表显示几行的意思

 head示例:

head -n 20 /etc/man.config

tail(只看尾几行)

取出文件后面几行

语法:tail [-n number] 文件

 tail示例:

[root@itbaizhan ~]# tail /etc/man.config# 默认的情况中,显示最后的十行!若要显示最后的 20行,就得要这样:[root@itbaizhan ~]# tail -n 20/etc/man.config

Linux打包压缩与搜索命令

 tar 命令

语法:tar [选项] [文件]

 选项:

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩 Gzip

-x 解包.tar文件

 示例1

压缩多个文件

tar -zcvf XXX.tar.gz n1.txt n2.txt

示例2

压缩目录

tar -zcvf test.java.tar.gz test1

示例3

解压:tar -zxvf XXX.tar.gz

解压到当前目录[root@itbaizhan opt]# tar -zxvf test.tar.gz解压到/opt目录[root@itbaizhan opt]# tar -zxvf test.tar.gz –C /opt

gzip/gunzip压缩

语法:

gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)gunzip+文件.gz (功能描述:解压缩文件命令)

 示例1

gzip压缩

[root@itbaizhan opt]# lstest.java[root@itbaizhan opt]# gzip test.java[root@itbaizhan opt]# ls

示例2

gunzip解压缩文件

[root@itbaizhan opt]# gunzip test.java.gz[root@itbaizhan opt]# lstest.java

搜索命令

grep 命令

grep 命令用于在文本中执行关键词搜索,并显示匹配的结果。

语法:grep [参数 查找内容 源文件]

 示例1

[root@itbaizhan ~]# grep /sbin/nologin/etc/passwd

 find命令

find 命令用于按照指定条件来查找文件

语法:find [查找路径] 寻找条件 操作

 

 示例1

文件名:根据名称查找/目录下的filename.txt文件。

find /opt/ -name *.txt

示例2

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

find /opt/ -user atguigu

Linux常用系统工作命令

 reboot 命令

reboot 命令用于重启系统,其格式为 reboot。

由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用 root 管理员来重启,其命令如下:

[root@linuxprobe ~]# reboot

 poweroff 命令

poweroff 命令用于关闭系统,其格式为 poweroff。

该命令与 reboot 命令相同,都会涉及硬件资源的管理权限,因此默认只有 root 管理员才可以关闭电脑,其命令如下:

[root@linuxprobe ~]# poweroff

 wget 命令

wget 命令用于在终端中下载网络文件

语法:wget [参数] 下载地址

 示例1

尝试使用 wget 命令下载tomcat。

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz1

报错:

ERROR: cannot verify dlcdn.apache.org'scertificate, issued by ‘/C=US/O=Let'sEncrypt/CN=R3’:解决:yum install -y ca-certificates

Linux管道符、重定向与环境变量

 输入输出重定向

把多个 Linux 命令适当地组合到一起,使其协同工作,以便我们更加高效地处理数据。

 示例1

比如我们分别查看两个文件的属性信息,其中第二个文件是不存在的,虽然针对这两个文件的操作都分别会在屏幕上输出一些数据信 息,但这两个操作的差异其实很大:

[root@itbaizhan ~]# touch itbaizhan[root@itbaizhan ~]# ls -l itbaizhan-rw-r--r--. 1 root root 0 Aug 5 05:35itbaizhan[root@itbaizhan ~]# ls -l xxxxxxls: cannot access xxxxxx: No such file ordirectory

 输入重定向作用表

 输出重定向作用表

 示例2

如果想把命令的报错信息写入到文件,该怎么操作呢?

[root@itbaizhan ~]# ls -l xxxxxxcannot access xxxxxx: No such file ordirectory[root@itbaizhan ~]# ls -l xxxxxx >/root/stderr.txtcannot access xxxxxx: No such file ordirectory[root@itbaizhan ~]# ls -l xxxxxx 2>/root/stderr.txt[root@itbaizhan ~]# cat /root/stderr.txtls: cannot access xxxxxx: No such file ordirectory

管道命令符

 管道命令符其执行格式为“命令 A | 命令 B”。命令符的作用也可以 用一句话来概括“把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入”。

 示例1

找出被限制登录用户的命令是 grep "/sbin/nologin"/etc/passwd统计文本行数的命令则是 wc -l

现在要做的就是把搜索命令的输出值传递给统计命令,即把原本要 输出到屏幕的用户信息列表再交给 wc 命令作进一步的加工,因此只需要把管道符放到两条命令之间即可,具体如 下。这简直是太方便了!

grep "/sbin/nologin" /etc/passwd | wc -l

这个管道符就像一个法宝,我们可以将它套用到其他不同的命令上,比如用翻页的形式查看/etc 目录中的文件列表及属性信息(这 些内容默认会一股脑儿地显示到屏幕上,根本看不清楚):

ls -l /etc/ | more

在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和 passwd 命令的--stdin 参数相结合,我们可以用一条命令来完成密码重置操作:

echo "linuxprobe" | passwd --stdin root

 命令行的通配符

 通配符就是通用的匹配信息的符号,比如星号(*)代 表匹配零个 或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9] 代表匹配 0~9 之间的单个数字的字符,而中括号内加上字母[abc] 则是代表匹配 a、b、c 三个字符中的任意一个字符。

 示例1

[root@itbaizhan ~]# ls -l /dev/sda*brw-rw----. 1 root disk 8, 0 May 4 15:55/dev/sdabrw-rw----. 1 root disk 8, 1 May 4 15:55/dev/sda1brw-rw----. 1 root disk 8, 2 May 4 15:55/dev/sda2

如果只想查看文件名为 sda 开头,但是后面还紧跟其他某一个字符的文件的相关信息, 该怎么操作呢?这时就需要用到问号来进行通配了。

[root@itbaizhan ~]# ls -l /dev/sda?brw-rw----. 1 root disk 8, 1 May 4 15:55/dev/sda1brw-rw----. 1 root disk 8, 2 May 4 15:55/dev/sda2

除了使用[0-9]来匹配 0~9 之间的单个数字,也可以用[135]这样的方式仅匹配这三个指定数字中的一个,若没有匹配到,则不会显示出来:

[root@itbaizhan ~]# ls -l /dev/sda[0-9]brw-rw----. 1 root disk 8, 1 May 4 15:55/dev/sda1brw-rw----. 1 root disk 8, 2 May 4 15:55/dev/sda2[root@itbaizhan ~]# ls -l /dev/sda[135]brw-rw----. 1 root disk 8, 1 May 4 15:55/dev/sda1

重要的环境变量

Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。

 自然而然地,环境变量的配置文件也相应的被分成了系统级和用户级两种。

 系统级

/etc/profile

在系统启动后第一个用户登录时运行,并从/etc/profile.d目录的配 置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登录到系统的每一个用户。

 用户级

~/.profile(推荐首选)

当用户登录时执行,每个用户都可以使用该文件来配置专属于自己使用的shell信息。

 示例1

配置tomcat环境变量

vim /etc/profileexport TOMCAT_HOME=export PATH=$PATH:$TOMCAT_HOME/bin

Linux磁盘管理

 分区的方式

 Linux分区原理

Linux的文件系统是树形的,安装的系统必须是在 / 目录下,因为/ 目录下挂载了一个主分区。/目录是树形的根,其他所有目录都是他的子节点。

 

 df命令

用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

 语法:df [选项] [目录或文件名]

 示例1:

 

 lsblk命令

lsblk命令来自于英文词组”list block“的缩写,其功能是用于查看系统的磁盘使用情况。

 

 参考实例

显示系统中所有磁盘设备的使用情况信息:

 fdisk命令

Linux fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。

 参考实例

显示当前分区情况:

[root@localhost ~]# fdisk -l

 Linux挂载硬盘

 需求是给我们Linux系统增加一个新的硬盘, 并且挂载 到/home/itbaizhan。

 虚拟机添加硬盘

 分区

设置分区

fdisk /dev/sdb

 查看分区

lsblk -f

格式化

mkfs -t ext4 /dev/sdb1

 挂载

先创建目录 /home/itbaizhan

mount /dev/sdb1 /home/itbaizhan

 

 永久挂载

vim /etc/fstab

mount -a

Linux系统状态检测命令

 ip addr 命令

命令用于获取网卡配置与网络状态等信息。

 uname 命令

uname 命令用于查看系统内核与系统版本等信息。

uname -aLinux zk3 3.10.0-1160.el7.x86_64 #1 SMP MonOct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64GNU/Linux

注意:在使用 uname 命令时,一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主 机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。

 顺带一提,如果要查看当前系统版本的详细信息,则需要查看 redhat-release 文件,其命令以及相应的结果如下:

cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)

free 命令

free 用于显示当前系统中内存的使用量信息。

free -h

 last 命令

last 命令用于查看所有系统的登录记录。

语法:last [参数]

[root@zk3 opt]# last

 history 命令

history 命令用于显示历史执行过的命令。

语法:history [-c]

 uptime 命令

uptime 用于查看系统的负载信息,格式为 uptime。

[root@zk3 opt]# uptime 17:56:03 up 7:14, 2 users, load average:0.02, 0.02, 0.05

 注意:uptime 命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以 及平均负载值等信息。平均负载值指的 是系统在最近 1 分钟、5 分钟、15 分钟内的压力情 况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。

 Linux下软件安装的命令

 源码安装

以源代码安装软件,每次都需要配置操作系统、配置编译参数、实际编译,最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。

 RPM软件包管理

 RPM安装软件的默认路径:

 常用的 RPM 软件包命令

 软件安装

如你需要安装一个jdk,首先要到网上下载一个jdk的rpm包,如jdk-8u171-linux-x64.rpm。最简单的安装命令如下:

rpm -i jdk-8u171-linux-x64.rpm

不过,这样的参数其实无法显示安装的进度,所以通常我们执行的命令是这样:

rpm -ivh package-name

 卸载软件

使用rpm的卸载过程一定要由最上层往下卸载,以rp-pppoe为例, 这个软件主要是依据ppp这个软件来安装的,所以当你要卸载ppp 的时候,就必须先卸载rp-pppoe才行! 删除的命令非常简单,通过-e参数就可以完成。不过,很常发生软件属性依赖导致无法山洼某些软件的问题。

rpm -e gcc

 YUM

YUM可以看作是CS架构的软件,YUM的存在很好的解决了RPM的属性依赖问题。

YUM通过依赖rpm软件包管理器, 实现了rpm软件包管理器在功能上的扩展, 因此YUM是不能脱离rpm而独立运行的。

 

 YUM的配置文件

容器说明

虽然yum是你在联网后就能直接使用,不过,由于你系统的站点镜像没选择好,会导致连接速度非常慢!所以,这时候就需要我们去手动修改yum的设置文档了。

 容器查询

首先,可以先查询一下目录yum server所使用的容器有哪些。 使用命令:yum repolist all,查询结果如下:

 

 配置文件修改

打开配置文件:vi /etc/yum.repos.d/CenOS-Base.repo,内容如下

 

 示例1

配置阿里yum源

1:安装wget yum install -y wget (如果已经安装了则省略)2:备份 /etc/yum.repos.d/CentOS-Base.repo文件 cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOSBase.repo.back3:下载阿里云的Centos-7.repo文件 wget -O CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo4:重新加载yum yum clean all yum makecache5:检查配置的源是否是阿里的 cat /etc/yum.repos.d/CentOS-Base.repo

 YUM使用手册

 小技巧:

使用参数-y,当遇到需要等待用户输入时,这个选项会提供yes的响应,如上面的例子可以写成:

yum install -y emacs

Linux下常用软件安装_JDK和Tomcat安装

 Jdk 安装

解压jdk安装包

tar -zxvf jdk-8u201-linux-x64.tar.gz -C/usr/local

配置环境变量

vim /etc/profile底部加入如下配置export JAVA_HOME=/usr/local/jdkexport PATH=$PATH:$JAVA_HOME/bin

生效环境变量

source /etc/profile

Tomcat 安装

解压Tomcat安装包

tar -zxvf apache-tomcat-9.0.54.tar.gz -C/usr/local

配置环境变量

export TOMCAT_HOME=/usr/local/tomcatexportPATH=$PATH:$TOMCAT_HOME/bin:$JAVA_HOME/bin

Linux下常用软件安装_Mysql安装

 下载YUM库

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装YUM库

rpm -ivh mysql57-community-release-el7-10.noarch.rpm

安装数据库

yum -y install mysql-community-server

遇到报错

Failing package is: mysql-community-libscompat-5.7.37-1.el7.x86_64 GPG Keys are configured as:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

失败原因: GPG对于包的源key的验证没有通过。

 解决办法

在yum install 版本后面加上 --nogpgcheck

yum -y install mysql-community-server --nogpgcheck

完成安装,重启mysql

systemctl restart mysqld

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此 时root用户的密码,通过如下命令可以在日志文件中找出密码:

grep "password" /var/log/mysqld.log[root@hadoop8 ~]# grep "password"/var/log/mysqld.log2018-10-13T08:33:27.994868Z 1 [Note] Atemporary password is generated forroot@localhost: yj0v.0w*ywPk

复制粘贴上边的密码进入数据库

mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密 码之后才能操作数据库修改密码命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY'123456';Your password does not satisfy the currentpolicy requirements

解决报错

修改密码策略

因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:

mysql> set global validate_password_policy=0;Query OK, 0 rows affected (0.00 sec)mysql> set globalvalidate_password_policy=LOW;Query OK, 0 rows affected (0.00 sec)mysql> SET GLOBAL validate_password_length=6;Query OK, 0 rows affected (0.00 sec)注:执行完初始化命令后需要输入数据库root用户密码注:密码策略分四种1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY'123456';

开启远程连接

select User,Host,Password from user;update user set host ="%" where user = “root”刷新信息mysql> flush privileges;

Linux下常用软件安装_MySQL卸载

检查是否安装了MySQL组件。

[root@localhost ~]# rpm -qa | grep -i mysqlmysql57-community-release-el7-10.noarchmysql-community-libs-5.7.36-1.el7.x86_64mysql-community-server-5.7.36-1.el7.x86_64mysql-community-common-5.7.36-1.el7.x86_64mysql-community-client-5.7.36-1.el7.x86_64mysql-community-libs-compat-5.7.36-1.el7.x86_64

卸载前关闭MySQL服务

systemctl stop mysqldsystemctl status mysqld

收集MySQL对应的文件夹信息

whereis mysqlmysql: /usr/bin/mysql /usr/lib64/mysql/usr/share/mysql/usr/share/man/man1/mysql.1.gz

卸载删除MySQL各类组件

rpm -ev --nodeps mysql57-community-release-el7-10.noarchrpm -ev --nodeps mysql-community-libs-5.7.36-1.el7.x86_64rpm -ev --nodeps mysql-community-server-5.7.36-1.el7.x86_64rpm -ev --nodeps mysql-community-common-5.7.36-1.el7.x86_64rpm -ev --nodeps mysql-community-client-5.7.36-1.el7.x86_64rpm -ev --nodeps mysql-community-libs-compat-5.7.36-1.el7.x86_64

删除MySQL对应的文件夹

[root@DB-Server init.d]# whereis mysqlmysql:[root@DB-Server init.d]# find / -name mysql/var/lib/mysql/var/lib/mysql/mysql/usr/lib64/mysql[root@DB-Server init.d]# rm -rf/var/lib/mysql[root@DB-Server init.d]# rm -rf/var/lib/mysql/mysql[root@DB-Server init.d]# rm -rf/usr/lib64/mysql

删除mysql用户及用户组

[root@DB-Server init.d]# rpm -qa | grep -imysql

Linux进程管理

 ps

查看系统中所有进程

语法:ps [options] [--help]

 参数:

-a 显示所有进程(包括其他用户的进程)

-u 用户以及其他详细信息

-x 显示没有控制终端的进程

USER PID %CPU %MEM VSZ RSS TTY STAT STARTTIME COMMAND

 示例1

列出目前所有的正在内存当中的进程。

​​​​​​​

 

 示例2

找出和cron 与 syslog 这两个服务有关的PID号码。

[root@zk3 home]# ps -aux|egrep'(cron|syslog)'root 714 0.0 0.1 126388 1680 ? Ss Oct17 0:01 /usr/sbin/crond -nroot 1069 0.0 0.4 222780 4552 ? Ssl Oct17 0:49 /usr/sbin/rsyslogd -nroot 15844 0.0 0.0 112808 988 pts/0 R+ 10:39 0:00 grep -E --color=auto(cron|syslog)

温馨提示:

top 

查看系统健康状态 ,windows 加强版任务管理器

语法:top [-d] | top [-bnp]

 示例1

每2s更新一次top,观察整体信息。

top -d 2

top是一个不错的进程观察工具,但不同于ps是静态的结果输出。

top这个进程可以持续地监测整个系统的进程的工作状态。

 

 

 

 

 

 示例2

假设10 604是一个已经存在的PID,观察该进程。

top -d 2 -p 10604

htop

htop的介绍

htop 是Linux系统中的一个互动的进程查看器,与Linux传统的top比 较的话, htop 更 人性化 并且还 支持鼠标 操作!

htop的安装 

#安装epel源yum install epel-release -y#安装htopyum install -y htop#安装完毕后命令行输入htop

 kill

终止进程,kill的应用是和ps或者pgrep命名结合在一起使用的。

语法:kill [信号量] 进程ID

 注: 信号代码可以省略,常用的信号代码是 - 9,表示强制终止

示例1

终止所有的httpd进程。

[root@zk3 home]# ps auxf|grep httpdroot 15968 0.0 0.0 112808 968 pts/0 S+ 11:35 0:00 | \_ grep --color=auto httpd

看上面输出中的第二列,就是进程PID.

kill 15968ps -auxf|grep httpd

 netstat

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

语法:netstat [选项]

 参数:

 示例1

列出所有端口

 示例2

 显示每个协议的统计信息

 示例3

显示核心路由信息

 示例4

查看端口号

Linux系统服务

 Service命令

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

语法:

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

注意: service命令其实是去/etc/init.d目录下,去执行相关程序

 示例1

查看当前防火墙的状况,关闭防火墙和重启防火墙。

[root@zk3 ~]# service iptables status

Systemd命令

Linux的启动一直采用init进程。

$ sudo /etc/init.d/apache2 start# 或者$ service apache2 start

 Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

systemctl 

systemctl 是 Systemd 的主命令,用于管理系统。

System V init命令 systemctl命令 作用
service foo start systemctl start foo.service 启动服务
service foo restart systemctl restart foo.service 重启服务
service foo stop systemctl stop foo.service 停止服务
service foo reload systemctl reload foo.service

重新加载配置文件

(不终止服务)

service foo status systemctl status foo.service 查看服务状态

 systemd-analyze

systemd-analyze 命令用于查看启动耗时。

# 查看启动耗时$ systemd-analyze # 查看每个服务的启动耗时$ systemd-analyze blame# 显示瀑布状的启动过程流$ systemd-analyze critical-chain# 显示指定服务的启动流$ systemd-analyze critical-chain atd.service

hostnamectl

hostnamectl 命令用于查看当前主机的信息。

# 显示当前主机的信息$ hostnamectl# 设置主机名。$ sudo hostnamectl set-hostname rhel7

timedatectl

timedatectl 命令用于查看当前时区设置。

# 查看当前时区设置$ timedatectl# 显示所有可用的时区$ timedatectl list-timezones # 设置当前时区$ sudo timedatectl set-timezoneAmerica/New_York$ sudo timedatectl set-time YYYY-MM-DD$ sudo timedatectl set-time HH:MM:SS

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

 Chkconfig

chkconfig命令用来更新、查询、改动不同执行级上的系统服务。比 方安装了httpd服务,而且把启动的脚本放在了/etc/rc.d/init.d文件 夹下,有时候须要开机自己主动启动它,而有时候则不须要,因 此,就能够使chkconfig命令来进行控制。

 选项:

 示例1

列出chkconfig 所知道的所有命令。

# chkconfig --list

开启服务。

# chkconfig telnet on //开启Telnet 服务# chkconfig --list //列出chkconfig 所知道的所有的服务的情况

关闭服务

# chkconfig telnet off // 关闭 Telnet 服务# chkconfig --list // 列出chkconfig所知道的所有的服务的情况

systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

 经常使用服务介绍

 Linux系统定时任务

 什么是定时任务

定时任务命令是cond,crond就是计划任务,类似于我们平时生活 中的闹钟,定点执行。

为什么要用crond

计划任务主要是做一些周期性的任务,比如凌晨3点定时备份数据、 晚上23点开启网站抢购接口、凌晨0点关闭抢占接口等。

 crontab配置文件

[root@centos7 ~]# vim /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) ORjan,feb,mar,apr ...# | | | | .---- day of week (0 - 6)(Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to beexecuted备注:1) * 表示任意的(分、时、日、月、周)时间都执行2) - 表示一个时间范围段, 如5-7点3) , 表示分隔时段, 如6,0,4表示周六、日、四4) /1 表示每隔n单位时间, 如*/10 每10分钟

crontab的时间编写规范

00 02 * * * ls #每天的凌晨2点整执行00 02 1 * * ls #每月的1日的凌晨2点整执行00 02 14 2 * ls #每年的2月14日凌晨2点执行00 02 * * 7 ls #每周天的凌晨2点整执行00 02 * 6 5 ls #每年的6月周五凌晨2点执行00 02 14 * 7 ls #每月14日或每周日的凌晨2点都执行00 02 14 2 7 ls #每年2月14日或每年2月的周天的凌晨2点执行*/10 02 * * * ls #每天凌晨2点,每隔10分钟执行一次* * * * * ls #每分钟都执行00 00 14 2 * ls #每年2月14日的凌晨执行命令*/5 * * * * ls #每隔5分钟执行一次00 02 * 1,5,8 * ls #每年的1月5月8月凌晨2点执行00 02 1-8 * * ls #每月1号到8号凌晨2点执行0 21 * * * ls #每天晚上21:00执行45 4 1,10,22 * * ls #每月的1,10,22号的4:45执行45 4 1-10 * * ls #每月的1到10号的4:45执行3,15 8-11 */2 * * ls #每隔两天上午8点到11点的第3和第15分钟执行0 23-7/1 * * * ls #晚上11点到早上7点之间,每隔一个小时执行15 21 * * 1-5 ls #周一到周五每天晚上21:15执行

 crontab命令选项

 示例1

假设在每周一、三、五的凌晨 3 点 25 分,都需要使用 tar 命令把某 个网站的数据目录进行打包处理,使其作为一个备份文件

25 3 * * 1,3,5 /usr/bin/tar -zcvfbackup.tar.gz /opt/wwwroot

Linux网络防火墙

 防火墙管理工具

 firewalld概述

Centos 系统中集成了多款防火墙管理工具,其中 firewalld服务是 默认的防火墙配置管理工具,它拥有基于 CLI(命 令行界面)和基 于 GUI(图形用户界面)的两种管理方式。

 firewalld 中常用的区域名称及测了规则

 firewalld防火墙的配置

 终端管理工具

Linux 命令时曾经听到,命令行终端是一种极富效率的工作方式, firewalld-cmd 是 firewalld 防火墙配置管理工具的 CLI(命令行界 面)版本。

 firewalld-cmd 命令中使用的参数以及作用

 常用示例

区域管理示例

1、显示当前系统中的默认区域

firewall-cmd --get-default-zone

2、显示默认区域的所有规则

firewall-cmd --list-all

3、显示当前正在使用的区域及其对应的网卡接口

firewall-cmd --get-active-zones

4、设置默认区域

firewall-cmd --set-default-zone=homefirewall-cmd --get-default-zone

 服务管理示例

1、查看默认区域内允许访问的所有服务

firewall-cmd --list-service

2、添加httpd 服务到public 区域

firewall-cmd --add-service=http --zone=public

3、查看public 区域已配置规则

firewall-cmd --list-all --zone=public

4、删除public 区域的httpd 服务

firewall-cmd --remove-service=http --zone=public

5、同时添加httpd、https 服务到默认区域,设置成永久生效

firewall-cmd --add-service=http --addservice=https --permanentfirewall-cmd --reload firewall-cmd --list-all

端口管理示例 

1、查看开启的端口列表

[root@localhost local]# firewall-cmd --zone=public --list-ports

2、开启某端口

[root@localhost local]# firewall-cmd --zone=public --add-port=8080/tcpsuccess

3、关闭某端口

[root@localhost local]# firewall-cmd --zone=public --remove-port=8080/tcpsuccess

 SELinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它 是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核 都已经集成了 SELinux 模块。

 SELinux 服务有三种配置模式:

[root@linuxprobe ~]# getenforceEnforcing

 Linux内核机制

 今天为大家解读一副来自极客漫画网站作者Daniel Stori关于Linux 有趣的作品。

 

 地基

 解释:

地基(底层)由一排排的文件柜组成,然有序,文件柜里放置 着“文件”—电脑中的文件。左上角,有一只胸前挂着421号牌的 小企鹅,它表示着PID (进程ID(Process ID) )为421的进程、它正在查看文件柜中的文件,这代表系统中正有一个进程在访问 文件系统。在右下角有一只小狗,它是看门狗(watchdog) 、这代表对文件系统的监控。

 地面层

 看完了地基,接下来我们来看地基上面的一层,都有哪些东西。

 

 大门

 

 

 

 

 

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。