Linux实操

目录

一、远程登录到Linux服务器 

1.1为什么要远程登录

1.2 Xshell6

1.2.1介绍

1.2.2下载与使用

1.3 Xftp6

1.3.1介绍

1.3.2下载与使用

二、vi和vim编辑器

2.1介绍

2.2vi和vim常用的三种模式

2.2.1一般模式

2.2.2插入模式

2.2.3命令模式

2.2.4各种模式的相互切换

2.3vi和vim的快捷键

三、关机与重启、用户登录与注销

3.1关机与重启

3.2用户登录与注销

四、用户管理

4.1基本介绍

4.2添加用户

4.3修改密码

4.4删除用户

4.5查询用户信息

4.6切换用户

4.7查看当前(登录)用户

4.8用户组

4.8.1介绍

4.8.2新增组

4.8.3删除组

4.8.4添加用户指定组、修改用户到指定组

4.8.5改变用户登录的初始目录

4.9用户和组的相关文件

4.9.1/etc/passwd文件

4.9.2/etc/group文件

4.9.3/etc/shadow文件

五、实用指令

5.1运行级别

5.1.1基本介绍

5.1.2切换运行级别

5.1.3设置默认运行级别

5.1.4开机流程说明

5.2帮助指令

5.3文件目录类

5.3.1pwd指令

5.3.2ls指令

5.3.3cd指令

5.3.4mkdir指令

5.3.5rmdir指令

5.3.6touch指令

5.3.7cp指令

5.3.8rm指令

5.3.9mv指令

5.3.10cat指令

5.3.11more指令

5.3.12less指令

5.3.13echo指令

5.3.14head指令

5.3.15tail指令 

5.3.16>指令和>>指令

5.3.17ln 指令

5.3.18history指令

5.4时间日期类

5.4.1date指令

5.4.2设置日期

5.4.3cal指令

5.5搜索查找类

5.5.1find指令

5.5.2locate指令

5.5.3which指令

5.5.4管道符“|”和grep指令

5.6压缩和解压类

5.6.1gzip/gunzip指令

5.6.2zip/unzip指令

5.6.3tar指令

六、组管理和权限管理

6.1Linux组基本介绍

6.2文件/目录所有者

6.2.1查看文件/目录的所有者

6.2.2修改文件/目录的所有者

6.3文件/目录所在组

6.3.1查看文件/目录的所在组

6.3.2修改文件/目录的所在组

6.4其它组

6.5权限管理

6.5.1基本介绍

6.5.2rwx作用到文件

6.5.3rwx作用到目录

6.5.4ls -l扩展

6.5.5chmod

七、定时任务调度

7.1crond任务调度

7.1.1概述

7.1.2crontab指令

7.1.3占位符和特殊符号

7.1.4应用实例

7.2at定时任务

7.2.1基本介绍

7.2.2at命令

7.2.3at时间定义

7.2.4atq命令和atrm命令

7.2.5应用实例

八、Linux磁盘分区、挂载

8.1Linux分区

8.1.1基本介绍

8.1.2硬盘说明

8.1.3查看所有设备挂载情况

8.2挂载的经典案例

8.3磁盘查询情况

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

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

8.4磁盘情况

九、网络配置

9.1原理图

9.2Linux网络环境配置

9.2.1通过界面来分配IP

9.2.2通过修改配置文件来分配IP

9.3设置主机名和hosts映射

9.3.1设置主机名

9.3.2设置hosts映射

9.4域名解析

十、进程管理

10.1基本介绍

10.2ps指令

10.2.1查看系统执行的进程(非全格式)

10.2.2查看系统执行的进程(全格式)

10.3kill指令

10.4pstree指令

10.5服务管理

10.5.1查看服务名

10.5.2service指令

10.5.3chkconfig指令

10.5.4systemctl指令

10.5.5打开或者关闭指定端口

10.6动态监控进程

10.7监控网络状态

十一、RPM与YUM

11.1rpm包的管理

11.1.1rpm包的查询指令

11.1.2rpm包名的基本格式

11.1.3卸载与安装rpm包

11.2yum


一、远程登录到Linux服务器 

1.1为什么要远程登录

为什么程序员需要远程登录到Linux进行项目管理或开发?

  • linux服务器是开发小组共享。
  • 正式上线的项目是运行在公网。

远程登录客户端工具:

  • Xshell6
  • Xftp6 

1.2 Xshell6

1.2.1介绍

  • 程序员首选软件,解决了中文乱码的问题。
  • Xshell 是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及 Microsoft Windows平台的TELNET 协议。
  • Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

1.2.2下载与使用

下载地址:https://www.netsarang.com/en/free-for-home-school

使用

 1.新建会话

填完后点击“确定”。

2.建立连接

双击会话,选择“接受并保存”(下次连接就直接双击,不需要输入用户名和密码)

 输入用户名:

 输入密码:

3.连接成功

1.3 Xftp6

1.3.1介绍

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

1.3.2下载与使用

 下载地址:https://www.netsarang.com/en/free-for-home-school

使用

连接步骤与XShell一样,这里只展示连接成功的结果:

左侧是windows主机,右侧是centos虚拟机。

上传文件

1.指定接收方的目录(文件将会上传到此目录下),然后回车

2.双击要上传的文件

3.上传成功 

二、vi和vim编辑器

2.1介绍

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

2.2vi和vim常用的三种模式

2.2.1一般模式

  • 以vim打开一个文档就直接进入一般模式了(正常模式)。
  • 正常模式中:
    • 可以使用『上下左右』按键来移动光标。
    • 可以使用『删除字符』或『删除整行』来处理文档内容。
    • 可以使用『复制、粘贴』来处理文件数据。

2.2.2插入模式

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

2.2.3命令模式

  • 首先输入esc,再输入“:”进入命令模式。
  • 根据相关指令,完成读取、存盘、替换、离开vim、显示行号等操作。

2.2.4各种模式的相互切换

2.3vi和vim的快捷键

一般模式下:

命令说明
yy拷贝当前行
5yy拷贝当前行向下的5行
p粘贴
dd删除当前行
5dd删除当前行向下的5行
shift+g光标移动到文档的最末行
gg光标移动到文档的最首行
u撤销
20+shift+g光标移动到文档的第20行

一般模式下输入":"或"/"进入命名模式:

命令说明
/hello在文档中查找hello(输入n就是查找下一个hello)
:set nu显示文档的行号
:set nonu取消文档的行号

三、关机与重启、用户登录与注销

3.1关机与重启

命令说明
shutdown -h now立即关机
shutdown -h 1/shutdown1分钟后关机
halt立即关机
shutdown -r now重启
reboot重启
sync把内存的数据同步到磁盘

注意

  • 不管重启系统还是关闭系统,首先运行sync命令,把内存的数据同步到磁盘。
  • 目前shutdown/reboot/halt等命令均已经在关机前自动运行了sync命令,但是建议仍手动输入sync命令,以防万一。

3.2用户登录与注销

命令说明
su - /su - root普通用户切换为root用户
logout注销用户
exit注销用户/退出Linux终端窗口

注意

  • 实际工作中,登录时尽量少用root账号登录。因为它是系统管理员,拥有最大权限,避免操作失误。
  • logout注销指令在图形运行级别无效(比如logout不能用来退出图形界面的Linux终端窗口),在运行级别3下有效。

四、用户管理

4.1基本介绍

  • Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  • 普通用户的家目录保存在/home下,root用户的家目录就是/root。

4.2添加用户

命令说明
useradd 用户名创建用户和用户同名的家目录
useradd -d 目录名 用户名创建用户,给用户创建指定的家目录

4.3修改密码

命令说明
passwd 用户名给指定用户修改密码

注意

  • 实际工作中,我们要设置复杂的密码。
  • 若不指定用户名,则默认修改当前用户的密码。

4.4删除用户

命令说明
userdel 用户名删除用户,但是会保留用户的家目录
userdel -r 用户名删除用户和用户的家目录

注意

实际工作中,当一个员工离职后,建议只删除其员工,不删除员工的家目录,因为员工的家目录可能存有他的工作成果和重要信息。

4.5查询用户信息

命令说明
id 用户名查询用户信息

注意

  • 当用户不存在时,返回无此用户。

4.6切换用户

命令说明
su - 切换的用户名从当前用户切换为指定的用户
exit/logout返回原来用户

注意

  • 在Linux操作系统中,如果当前用户权限不够,可以切换到root用户。
  • 权限高的用户切换到权限低的用户不需要密码,反之需要。

4.7查看当前(登录)用户

命令说明
whoami/who am i查看当前(登录)用户

4.8用户组

4.8.1介绍

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

4.8.2新增组

命令说明
groupadd 组名新增组

4.8.3删除组

命令说明
groupdel 组名删除组

4.8.4添加用户指定组、修改用户到指定组

命令说明
useradd -g 用户组 用户名添加用户到指定组
usermod -g 用户组 用户名修改用户到指定组

注意

  • 添加用户时,如若不指定组,则会创建一个与该用户同名的组,并把该用户添加到此组中。
  • 既可以在添加时指定用户的所在组,也可以在添加完成后改变用户的所在组。

4.8.5改变用户登录的初始目录

命令说明
usermod -d 用户登录的初始目录名 用户名

改变用户登录的初始目录名

(用户需要有权限进入此目录)

4.9用户和组的相关文件

4.9.1/etc/passwd文件

  • 用户(user)的配置文件,记录用户的各种信息。
  • 每行的含义:
    • 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序

4.9.2/etc/group文件

  • 组(group)的配置文件,记录组的相关信息。
  • 每行含义:
    • 组名:口令:组标识号:组内用户列表

4.9.3/etc/shadow文件

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

注意

  • jack指定了加密口令,tom没有指定加密口令。

五、实用指令

5.1运行级别

5.1.1基本介绍

  • 0:关机
  • 1:单用户(找回丢失密码)
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务
  • 4:系统未使用保留给用户
  • 5:图形界面
  • 6:系统重启

注意

  • 常用系统级别是3和5,也可以切换运行级别和指定默认运行级别。

5.1.2切换运行级别

命令举例说明
init 运行级别init 3将运行级别切换为3(多用户状态有网络服务)

注意

  • init 只能用来切换运行级别。下次开机后系统自动回到运行级别5。

5.1.3设置默认运行级别

命令说明
systemctl get-default查看当前默认运行级别
systemctl set-default multi-user.target设置默认运行级别为3
systemctl set-default graphical.target设置默认运行级别为5

注意

  • 此方式永久性的修改了默认运行级别。每次开机后系统都会运行该默认运行级别。

5.1.4开机流程说明

5.2帮助指令

命令说明
man 命令或配置文件获得命令或配置文件的帮助信息
help 命令获得shell内置命令的帮助信息

当然,也可以直接百度搜索指令的用法。

5.3文件目录类

5.3.1pwd指令

命令说明
pwd显示当前工作目录的绝对路径

5.3.2ls指令

命令说明
ls 目录或文件显示当前目录下所有的文件和目录(不包括隐藏的)
ls -a 目录或文件显示当前目录下所有的文件和目录(包括隐藏的)
ls -l 目录或文件 或 ll 目录或文件以列表的方式显示信息
ls -lh 目录或文件以列表的方式人性化地显示信息

注意

  • linux中隐藏文件是以.开头。
  • linux选项可以组合使用。

5.3.3cd指令

相对路径和绝对路径

  • 相对路径:在输入路径时,最前面不是/或者~,表示当前目录所在的目录位置。
  • 绝对路径:在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。
命令含义
cd切换到当前用户的家目录
cd ~切换到当前用户的家目录
cd .保持当前目录不变
cd ..切换到上级目录
cd -可以在最近两次工作目录之间来回切换

5.3.4mkdir指令

mkdir指令用于创建目录。

命令说明
mkdir 要创建的单级目录创建单级目录
mkdir -p 要创建的多级目录创建多级目录

案例

  • 创建单级目录        mkdir /home/dog
  • 创建多级目录        mkdir -p /home/animal/tiger

5.3.5rmdir指令

rmdir指令用于删除空目录。

命令说明
rmdir 要删除的空目录删除空目录
rm -rf 要删除的非空目录删除非空目录

案例

  • 删除空目录        rmdir /home/dog
  • 删除非空目录     rm -rf /home/animal(animal目录下有tiger,所以animal是非空目录)

5.3.6touch指令

touch指令用于创建空文件。

命令说明
touch 文件名称创建一个空文件

5.3.7cp指令

cp指令用于拷贝文件到指定目录。

命令说明备注
cp source dest将source拷贝到destsource表示源目录或源文件,dest表示目的目录或目的文件
cp -r source dest将source递归拷贝到dest
\cp source dest将source拷贝到dest(强制覆盖不提示)

5.3.8rm指令

rm指令用于移除文件或目录。

命令说明
rm 要删除的文件或目录移除文件或目录
rm -r 要删除的目录递归删除目录
rm -f 要删除的文件或目录强制删除目录不提示

注意

  • rmdir指令用于删除空目录,而rm指令用于移除文件或目录。

5.3.9mv指令

mv指令用于移动文件与目录或重命名。

命令说明
mv oldFileName newFileName重命名(两者在同一目录下面)
mv /temp/movefile /targetFolder移动文件

5.3.10cat指令

cat指令用来查看文件的内容。

命令说明
cat 要查看的文件查看文件的内容
cat -n 要查看的文件查看文件的内容并显示行号
cat -n 要查看的文件 | more将cat查看的内容交给more指令来处理(为了浏览方便)

注意

  • cat指令只能浏览文件,而不能修改文件。

5.3.11more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明:

命令说明
more 要查看的文件查看文件的内容(浏览更方便)

5.3.12less指令

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

命令说明
less 要查看的文件查看文件的内容


 

操作说明

5.3.13echo指令

echo指令用来输出内容到控制台。

命令说明
echo $PATH输出当前PATH环境变量
echo $HOSTNAME输出当前HOSTNAME环境变量(主机名)
echo 'hello world'输出hello world

5.3.14head指令

head指令用于查看文件开头的部分内容(默认情况下显示前10行)。

命令说明
head 文件查看文件开头的前10行内容
head -n 5 文件查看文件开头的前5行内容

5.3.15tail指令 

tail指令用于查看文件尾部的部分内容(默认情况下显示后10行)。

命令说明
tail 文件查看文件尾部的后10行内容
tail -n 5 文件查看文件尾部的后5行内容
tail -f 文件

实时追踪该文档的所有更新 

5.3.16>指令和>>指令

>指令用于输出重定向,>>指令用于追加。

命令说明备注
ls -l > 文件列表的内容写入(覆盖)到文件若被覆盖或者被追加的文件不存在,则系统会自动创建这个文件。
ls -l >> 文件列表的内容追加到文件
cat 文件1 > 文件2文件1的内容覆盖到文件2
echo 'hello'  >> 文件hello追加到文件中

5.3.17ln 指令

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

命令说明
ln -s 原文件或目录 软链接名给原文件创建一个软链接(这样软链接就指向了原文件或目录)


 

注意

  • 当工作目录为软链接所在目录,使用pwd查看的目录仍然是软链接所在目录而不是原目录。

5.3.18history指令

history指令用于查看已经执行过的历史命令。

命令说明
histrory查看已经执行过的历史命令
histrory n查看最近执行过的n条历史命令
!n执行历史编号为n的历史命令

5.4时间日期类

5.4.1date指令

date指令用于显示当前日期。

命令说明
date显示当前时间
date +%Y显示当前年份
date +%m显示当前月份
date +%d显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"显示年月日时分秒

5.4.2设置日期

命令说明
date -s 字符串时间设置系统当前时间

5.4.3cal指令

cal指令用于显示日历。

命令说明
cal显示本月日历
cal 年份显示本年所有月日历

5.5搜索查找类

5.5.1find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

命名说明备注
find 指定目录 -name 要查找的文件或目录按照指定目录查询文件或目录

文件大小:

+        大于

-        小于

=        等于

find 指定目录 -user 用户名按照指定目录查找指定用户名的所有文件或目录
find 指定目录 -size 文件大小按照指定目录查找满足文件大小的所有文件或目录

注意

  • find指令也可以不指定目录进行查找。

5.5.2locate指令

  • locate指令无需遍历整个文件系统,locate 指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件路径
  • 为了保证查询结果的准确度,管理员必须定期更新locate时刻
命令说明
locate 要查找的文件或目录快速查找文件或目录

注意

  • 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locatc数据库

5.5.3which指令

which指令用于查找指令的存放路径。

命令说明
which 要查找的指令查找指令的存放路径

5.5.4管道符“|”和grep指令

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

grep指令用于过滤查找,可配合管道符“|”使用。

命令说明
grep 查找内容 源文件将源文件中的查找内容输出
grep -n 查找内容 源文件将源文件中的查找内容输出,并显示行号
grep -i 查找内容 源文件将源文件中的查找内容输出(不区分大小写)

案例

请在 hello.txt文件中,查找"yes"所在行,并且显示行号。

  • 法一:cat hello.txt | grep -n "yes"
  • 法二:grep -n "yes" hello.txt

5.6压缩和解压类

5.6.1gzip/gunzip指令

gzip用于压缩文件,gunzip用于解压文件。

命令说明
gzip 文件压缩文件(只能将文件压缩为*.gz文件)
gunzip 文件.gz解压缩文件

5.6.2zip/unzip指令

zip用于压缩文件,unzip用于解压文件。(在项目打包发布中很有用)

命令说明
zip XXX.zip 要压缩的文件压缩文件
zip -r XXX.zip 要压缩的目录压缩目录(递归压缩)
unzip XXX.zip将压缩包解压到当前目录下
unzip -d 目标目录 XXX.zip将压缩包解压到指定目录下

5.6.3tar指令

  • tar指令用于打包、打包压缩、解包、解包解压缩文件。
  • 在tar命令中有一个选项-z可以调用gzip,从而可以方便的实现压缩和解压缩的功能。
选项说明
-z压缩/解压缩
-c产生tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-x解包.tar文件
-C解压缩到指定目录(解压缩的目录必须存在)

命令说明
tar -zcvf 打包文件.tar.gz 被打包的文件打包压缩文件
tar -zxvf 打包文件.tar.gz解包解压缩文件至当前目录下
tar -zxvf 打包文件.tar.gz -C 目标目录解包解压缩文件至当前指定目录下

六、组管理和权限管理

6.1Linux组基本介绍

在linux中的每个用户必须属于一个组,且可以改变每个用户所在的组。

在linux中的每个文件拥有以下概念:

  • 所有者
  • 所在组
  • 其它组

6.2文件/目录所有者

一般为文件/目录的创建者,即谁创建文件/目录,谁就是该文件/目录的所有者。

6.2.1查看文件/目录的所有者

ls -alh

6.2.2修改文件/目录的所有者

命令说明
chown 所有者 文件/目录修改文件/目录的所有者
chown -R 所有者 目录递归修改目录及目录内容的所有者
chown 所有者:所在组 文件/目录修改文件/目录的所有者和所在组

6.3文件/目录所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

6.3.1查看文件/目录的所在组

ls -alh

6.3.2修改文件/目录的所在组

命令说明
chgrp 所在组 文件/目录

修改文件/目录的所在组 

chgrp -R 所在组 目录递归修改目录及目录内容的所在组

6.4其它组

除文件的所有者和所在组的用户外,系统的其它用户都属于文件的其它组。

6.5权限管理

6.5.1基本介绍

0-9位说明

  • 第0位确定文件类型(-、l、d、c、b)
    • -表示普通文件
    • l是链接,相当于windows的快捷方式
    • d是目录,相当于windows的文件夹
    • c是字符设备文件,例如鼠标,键盘
    • b是块设备,例如硬盘
  • 第1-3位确定该文件所有者拥有的权限。
  • 第4-6位确定与该文件所有者同一组的用户拥有的权限。
  • 第7-9位确定不与该文件所有者同一组的其他用户拥有的权限。

6.5.2rwx作用到文件

  • r表示可读(read):可以查看文件中的内容
  • w表示可写(write):可以修改文件中的内容,但是不一定可以删除该文件(因为删除一个文件的前提是对该文件所在目录有写权限,才能删除该文件)
  • x表示可执行(execute):可以执行该文件

6.5.3rwx作用到目录

r表示可读(read):可以查看目录中的内容(ls查看)

w表示可写(write):可以创建、删除目录中的内容,重命名目录

x表示可执行(execute):可以进入该目录(cd进入)

6.5.4ls -l扩展

ls -l可显示目录下文件的详细信息,从左往右依次是:

  • 文件类型
  • 权限
  • 硬链接数(对于文件来说)或子目录数(对于目录来说,包括隐藏目录)
  • 用户
  • 文件/文件夹大小(字节)
  • 最后修改日期
  • 文件名

6.5.5chmod

chmod指令用于修改文件或者目录的权限。

+、-、=变更权限

命令说明备注
chmod u=rwx,g=rx,o=x 文件/目录给文件/目录的所有者读写执行的权限,所在组读执行的权限,其它组执行的权限

u:所有者

g:所在组

o:其它组

a:所有人

=:赋予

+:增加

-:除去

chmod o+x 文件/目录给文件/目录的其它组增加执行的权限
chmod a-x 文件/目录给文件/目录的所有人除去执行的权限

数字变更权限

命令说明备注
chmod 751 文件/目录给文件/目录的所有者读写执行的权限,所在组读执行的权限,其它组执行的权限

r=4

w=2

x=1

七、定时任务调度

7.1crond任务调度

7.1.1概述

  • 任务调度:系统在某个时间执行的特定的命令或程序。
  • 任务调度分类:
    • 系统工作:有些重要的工作必须周而复始的执行(如病毒扫描)。
    • 个别用户工作:个别用户可能希望执行某些程序(如mysql数据库的备份)。

7.1.2crontab指令

crontab指令进行定时任务的设置。

命令说明
crontab -e编辑crontab定时任务
crontab -l查询crontab定时任务
crontab -r删除当前用户所有的crontab任务
service crond restart重启任务调度

注意

  • 设置任务调度的文件crontab存放在/etc目录下。

案例

  1. 输入crontab -e命令,输入i,进入任务调度编辑模式。
  2. 输入个人任务:
  •  如:*/1 * * * * ls -l /etc/ > /tmp/to.txt(意思是每隔1分钟执行ls -l /etc/ > /tmp/to.txt命令)

7.1.3占位符和特殊符号

5个占位符的说明

项目含义范围
第一个 "*"每小时当中的第几分钟0-59
第二个 "*"每天当中的第几个小时0-23
第三个 "*"每月当中的第几1-31
第四个 "*"每年当中的第几1-12
第五个 "*"每周当中的星期0-7(0和7都代表星期日)

口诀:一二三四五,分时天月星。

特殊符号的说明

特殊符号含义
*代表任何时间
,代表不连续的时间
-代表连续的时间范围
*/n代表每隔多久执行一次

特殊时间执行案例

时间含义
45 22 * * *22点45分执行命令
0 17 * * 1每周一的17点0分执行命令
0 5 1,15 * *每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5每周一到周五的凌晨4点40分执行命令
*/10 4 * * *每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1

每月的1号和15号,每周一的0点0分执行命令。

(注意:几号和星期几定义的都是天,最好不要同时出现,容易让管理员混乱。)

7.1.4应用实例

案例1:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中

  • 法一:分别将当前日期和日历追加到/home/mycal文件中(相当于分开写两条定时任务)
  • 法二:
  1. vim /home/my.sh        shell脚本写入date >> /home/mycal和cal >> /home/mycal内容
  2. 给my.sh增加root用户的执行权限        chmod u+x /home/my.sh
  3. 在任务调度中增加执行脚本的命令        crontab -e        增加*/1 * * * * /home/my.sh内容

案例2:每天凌晨2:00将mysql数据库testdb ,备份到文件中。

  • 在任务调度中增加备份数据库的命令  :       
  1. crontab -e         
  2. 增加mysqldump -u root -p123456 testdb > /home/db.bak内容   

bak是一个备份文件,为文件格式扩展名。这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成。

7.2at定时任务

7.2.1基本介绍

  • at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
  • at的守护进程 atd会以后台模式运行,检查是否有作业队列运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  • 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看:
    • ps -ef l grep atd //可以检测atd是否在运行

7.2.2at命令

语法选项说明

at [选项] [时间]

Ctrl + D 结束at指令的输入(需输入两次)

-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-Iatq的别名
-datrm的别名
-v显示任务被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q <队列>使用指定的队列
-f <文件>从指定文件读入任务而不是从标准输入读入
-t <时间参数>

以时间参数的形式提交要运行的任务

7.2.3at时间定义

at指定时间的方法说明备注举例
hh:mm当天的某时某分如果该时间已经过去,那么就放到第二天执行04:00

midnight

noon

teatime

深夜

中午

饮茶时间(一般是下午4点)

模糊词语指定时间

AM

PM

上午

下午

采用12小时计时制,AM或PM不区分大小写12 pm

month day

mm/dd/yy

dd.mm.yy

月 日

月/日/年

日.月.年

指定的日期必须放在时间的后面04:00 2022-07-21
now + count time-units当前时间+时间的数量 时间单位

时间单位:

minutes

hours

days

weeks

now + 5 minutes

today

tomorrow

今天

明天

7.2.4atq命令和atrm命令

命令说明
atq查看系统中没有执行的工作任务
atrm 编号n删除job队列中,编号为n的job

7.2.5应用实例

案例1:2天后的下午5点执行/bin/ls  /home

案例2: atq命令来查看系统中没有执行的工作任务

案例3:明天17点钟,输出时间到指定文件内比如/root/date100.log

 

案例4:2分钟后,输出时间到指定文件内比如/root/date200.log

案例5:删除已经设置的任务, atrm编号

八、Linux磁盘分区、挂载

8.1Linux分区

8.1.1基本介绍

  • Linux中每个分区都是用来组成整个文件系统的一部分。
  • Linux的文件结构是独立且唯一的,无论有几个分区,分给哪一目录使用,归根结底就只有一个根目录。
  • Linux采用了一种“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。访问目录就相当于访问与之对应的分区。

8.1.2硬盘说明

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

硬盘名称驱动器标识符标识符前两位含义标识符后两位含义
IDE硬盘hdx~

标识符前两位表示分区所在设备的类型

hd是指分区在IDE硬盘中,

sd是指分区在SCSI硬盘中

x表示盘号:

  • a为基本盘
  • b为基本从属盘
  • c为辅助盘
  • d为辅助从属盘

~表示分区:

  • 前四个分区是主分区或扩展分区,用数字1到4表示
  • 从5开始就是逻辑分区
SCSI硬盘sdx~

举例说明

  • hda3表示为第一个IDE硬盘的第三个主分区或者扩展分区
  • hdb2表示为第二个IDE硬盘的第二个主分区或者扩展分区
  • sdc1表示为第三个SCSI硬盘的第一个主分区或者扩展分区
  • sdd5表示为第四个SCSI硬盘的第五个逻辑分区

8.1.3查看所有设备挂载情况

lsblk -f:

 

8.2挂载的经典案例

1.虚拟机添加硬盘

  • 虚拟机菜单->设置->硬盘->添加->下一步...->磁盘大小1GB
  • 重启虚拟机系统

2.分区

  • 开始对/sdb分区

  • 常用命令
命令说明
m       显示命令列表
p显示磁盘分区(同fdisk -l)
n新增分区
d删除分区
w写入并退出

 3.格式化

 4.挂载

命令说明
mount 设备名称 挂载目录将一个分区和一个目录联系起来

附:卸载       

命令说明
umount 设备名称 挂载目录 将一个分区和一个目录断开联系

注意

  • 用命令行挂载,重启后挂载自动失效。

5.也可以设置永久挂载

  • vim /etc/fstab,添加挂载项目

 注意

        最后两个0分别表示:不做dump备份,不检查硬盘扇区

  • 添加完成后,执行mount -a即可生效

8.3磁盘查询情况

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

命令说明
df -h查询系统整体磁盘使用情况

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

语法选项说明
du [选项] [要查询的目录]-s指定目录占用大小汇总
-h带计量单位
-a含文件
--max-depth子目录深度
-c列出明细的同时,增加汇总值

案例

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

注意

  • 若查询时不指定目录,则默认为当前目录。
  • 若查询时使用-s选项,则不能同时使用-a,--max-depth选项。

8.4磁盘情况

命令说明备注
ls -l /opt | grep "^-" | wc -l统计/opt文件夹下文件的个数

"^-"、"^d"为正则表达式,筛选第一个字符为'-'、'd'的行。

wc -l用来统计行数。

centos系统默认没有tree命令,使用

yum install tree安装。

ls -l /opt | grep "^d" | wc -l统计/opt文件夹下目录的个数
ls -lR /opt | grep "^-" | wc -l

统计/opt文件夹下文件的个数

(包括子文件夹里的)

ls -lR /opt | grep "^d" | wc -l

统计/opt文件夹下目录的个数

(包括子文件夹里的)

tree以树状形式显示目录结构

九、网络配置

9.1原理图

 NAT模式(VMnet8)可以实现虚拟机之间、虚拟机和主机之间以及虚拟机和外部的网络通信。

9.2Linux网络环境配置

9.2.1通过界面来分配IP

通过界面既可以分配静态IP,也可分配动态IP。这里以分配动态IP为例:

分配动态IP优缺点:

  • 优点:Linux系统启动后会自动获取IP,而且可以防止IP冲突。
  • 缺点:每次自动获取的IP可能不一样。

9.2.2通过修改配置文件来分配IP

1.linux终端输入:vim /etc/sysconfig/network-scripts/ifcfg-ens33

2.编辑内容,并保存退出:

3.重启网络服务或者重启系统即可生效:

service network restart  或  reboot

4.打开虚拟网络编辑器,修改子网、子网掩码、网关(根据之前的配置文件来修改):

 

 5.点击“应用”、然后点击“确定”

 分配静态IP优缺点与分配动态IP优缺点相反。

9.3设置主机名和hosts映射

9.3.1设置主机名

为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名。

命令说明
hostname查看主机名

修改主机名三步走:

  1. vim /etc/hostname打开修改主机名的文件
  2. 在该文件修改主机名,并保存退出。
  3. 重启系统即可生效。

9.3.2设置hosts映射

hosts是什么(类似于DNS)

  • 一个文本文件,用来记录ip和hostname的映射关系。

在windows系统中设置linux的hosts映射

  1. 打开hosts文件(C:Windows\System32\drivers\etc\hosts)
  2. 添加users对hosts文件的修改权限:

        

     3.添加映射记录(例如:192.168.166.27 hjh123)

     4.在windows ping hjh123测试一下

在linux系统中设置windows的hosts映射

  1. root用户登录linux系统
  2. vim  /etc/hosts打开文件
  3. 添加映射记录(例如:192.168.123.45 sdx123)
  4. 在linux ping sdx123测试一下

9.4域名解析

浏览器访问百度,需要进行域名解析:

  • 浏览器先检查缓存中是否域名解析记录。
  • 若没有,则域名解析请求会发给到本地域名服务器。本地域名服务器收到解析请求后,会查询本地的缓存。
  • 若没有,主机会检查hosts文件中是否有映射记录。

  • 若没有,本地域名服务器会向根域名服务器发起域名请求

    ......

命令说明
ipconfig /displaydns查看DNS域名解析缓存
ipconfig /flushdns手动清理DNS域名解析缓存

注意

  • 此两条命令只能在windows cmd窗口中输入。

十、进程管理

10.1基本介绍

  • 在linux中,每个执行的程序(加载到内存中执行)都称为一个进程。每一个进程都分配一个ID号(或PID或进程号)。
  • 每个进程都可能以两种方式存在,即前台与后台
    • 前台进程就是用户目前的屏幕上可以进行操作的。
    • 后台进程则是实际在操作,但是由于屏幕上无法看到的进程,通常使用后台方式执行。
  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

查看进程(以我的电脑为例)

  • 任务管理器->详细信息

10.2ps指令

ps指令用来查看目前系统中,有哪些进程正在执行以及它们执行的状况。

10.2.1查看系统执行的进程(非全格式)

命令说明备注
ps显示系统执行的进程

实际运用中,常三个选项组合使用:

ps -aux

还可以添加管道符号查看:

ps -aux | more

ps -aux | grep xxx

ps -a显示当前终端的所有进程信息
ps -u以用户的格式显示进程信息
ps -x显示后台进程运行的参数

案例1:查看目前系统中sshd进程

ps -aux | grep sshd

列名说明
USER用户名称
PID进程号
%CPU进程占用CPU的百分比
%MEM进程占用物理内存的百分比
VSZ进程占用的虚拟内存大小(单位:KB)
RSS进程占用的物理内存大小(单位:KB)
TTY终端名称(缩写)
STAT

进程状态,其中:

S表示睡眠,s表示该进程是会话的先导进程,

N表示进程拥有比普通优先级更低的优先级,

R表示正在运行,D表示短期等待,

Z表示僵死进程,T表示被跟踪或被停止

STARTED进程的启动时间
TIMECPU时间(即进程使用CPU的总时间)
COMMAND启动进程所用的命令和参数,如果时间过长会被截断显示

10.2.2查看系统执行的进程(全格式)

命令说明备注
ps -e显示所有进程

实际运用中,常两个选项组合使用:

ps -ef

还可以添加管道符号查看:

ps -ef | more

ps -ef | grep xxx

ps -f全格式显示进程

案例2:以全格式查看目前系统中sshd进程

ps -ef | grep sshd

列名说明
UID用户ID
PID进程号
PPID父进程ID
C

CPU用于计算执行优先级的因子。

数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

STIME进程启动的时间
TTY完整的进程名称
TIMECPU时间
CMD启动进程所用的命令和参数

10.3kill指令

若是某个进程执行一半需要停止或已经消耗很大的系统资源时,可以考虑用kill指令终止该进程。

命令说明
kill 进程号通过进程号终止进程
kill -9 进程号通过进程号强制终止进程
killall 进程名称

通过进程名杀死进程及其子进程

(支持通配符,这在系统因负载过大而变得很慢时很有用)

案例1:终止某个非法用户的远程登录

  • ps -aux | grep sshd
  • kill 用户远程登录的进程号

案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务

  • ps -aux | grep sshd
  • kill sshd服务的进程号
  • /bin/systemctl start sshd.service 或systemctl start sshd

案例3:终止多个gedit

  • killall gedit

案例4:强制终止一个终端

  • ps -aux | grep bash
  • kill -9 bash的进程号

10.4pstree指令

pstree指令用于以树状的形式查看进程信息。

命令说明备注
pstree以树状的形式查看进程信息

实际运用中,常两个选项组合使用:

pstree -up

pstree -u以树状的形式查看进程信息(包括进程的所属用户)
pstree -p以树状的形式查看进程信息(包括进程号PID)

10.5服务管理

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

10.5.1查看服务名

方式一 

  • setup

 方式二

  • service指令管理的服务在/etc/init.d中查看
    • ls -l /etc/init.d
  • systemctl指令管理的服务在/usr/lib/systemd/system中查看
    • ls -l /usr/lib/systemd/system

10.5.2service指令

  • service指令用于管理服务。
  • 在centos7.0后,很多服务不再使用service指令管理,而是systemctl。
  • service指令管理的服务在/etc/init.d中查看。
命令说明案例
service 服务名 start启动服务

service network status

service network stop

service network start

service 服务名 stop关闭服务
service 服务名 restart重启服务
service 服务名 reload重载服务
service 服务名 status显示服务状态

10.5.3chkconfig指令

  • 服务的启动/关闭是针对每个运行级别而言的。
  • chkconfig指令用于给服务的各个运行级别设置自启动/关闭。
  • chkconfig指令管理的服务和service指令管理的服务相同,在/etc/init.d中查看。

命令说明
chkconfig --list [| grep 服务名] 查看服务
chkconfig 服务名 --list查看服务
chkconfig --level 5 服务名 on/off把某个服务在5运行级别上自启动/关闭

注意

  • chkconfig指令给服务的各个运行级别设置自启动/关闭后,需要重启系统才能生效。

10.5.4systemctl指令

  • systemctl指令用于管理服务。
  • 在centos7.0后,很多服务不再使用service指令管理,而是systemctl。
  • systemctl指令管理的服务在/usr/lib/systemd/system中查看。
命令说明
systemctl start 服务名启动服务
systemctl stop 服务名关闭服务
systemctl restart 服务名重启服务
systemctl status 服务名显示服务状态
systemctl list-unit-files [| grep 服务名]查看服务开机启动状态
systemctl enable 服务名设置服务开机启动(针对3、5运行级别)
systemctl disable 服务名关闭服务开机启动(针对3、5运行级别)
systemctl is-enabled 服务名查询某个服务是否是自启动的

注意

如果希望设置某个服务自启动或关闭永久生效,使用systemctl enable/disable 服务名,否则当重启系统后,还是会回到以前对服务的设置。

10.5.5打开或者关闭指定端口

在真正的生产环境,往往需要将防火墙(firewall,其服务名称为firewalld)打开。但是如果把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通信。这时,需要打开指定的端口(如80、22、8080等)。

命令说明备注
firewall-cmd --permanent --add-port=端口号/协议打开端口netstat -anp查看结果中可以看到端口号对应的协议
firewall-cmd --permanent --remove-port=端口号/协议关闭端口
firewall-cmd --reload重新载入,才能生效
firewall-cmd --query-port=端口号/协议查询端口是否开放

案例

1.测试111端口是否能telnet。

2.防火墙中打开111端口。

3.再次测试111端口是否能telnet。

成功! 

4.防火墙中关闭111端口。

10.6动态监控进程

top与ps命令相似。它们都用来显示正在执行的进程。top与ps最大的不同之处在于,top在执行一段时间后可以更新正在运行的进程。

命令说明备注
top动态显示进程信息(默认更新时间为3秒)僵死进程就是指已停止运行但还占用内存的进程
top -d 秒数s动态显示进程信息(更新时间为s秒)
top -i动态显示进程信息(不显示任何闲置或者僵死进程)
top -p 进程号通过指定监控进程ID来仅仅监控某个进程的状态

交互操作

操作说明
P以CPU使用率排序(默认就是此项)
M以内存占用率排序
N以PID排序
u监视指定用户的进程信息
k根据进程号终止指定的进程(signal指定为9)
q退出top

10.7监控网络状态

netstat指令用于查看系统网络状况,检验各端口的网络连接情况。

命令说明
netstat -an按一定顺序显示系统网络状况
netstat -p显示系统网络状况(包括进程号和进程名)

案例:请查看服务名为sshd的服务信息

十一、RPM与YUM

11.1rpm包的管理

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

11.1.1rpm包的查询指令

命令说明
rpm -qa | more查询当前系统中安装的所有rpm软件包
rpm -qa | grep xxx查询当前系统中是否安装了xxx软件包
rpm -q xxx查询当前系统中是否安装了xxx软件包

rpm -qi xxx

查询xxx软件包信息
rpm -ql xxx查询xxx软件包中的文件
rpm -qf 文件全路径名查询文件所属的软件包

11.1.2rpm包名的基本格式

11.1.3卸载与安装rpm包

命令说明备注
rpm -e rpm包名删除rpm包

-e表示erase(卸载)

-i表示install(安装)

-v表示verbose(提示)

-h表示hash(进度条)

rpm -ivh rpm包的全路径名称安装rpm包

案例:卸载和安装firefox浏览器

  1. rpm -e firefox
  2. rpm -ivh /opt/firefox-60.2.2-1.el7.centos.x86_64.rpm

注意

  • 如果其它软件包依赖于要卸载的软件包,则卸载时会产生错误信息。如果想要强制卸载被依赖的软件包,可以加上参数--nodeps,但是可能导致其它软件包无法运行。

11.2yum

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

命令说明
yum list | grep xxx

查询yum服务器中是否有需要安装的xxx软件包

(若有,则返回软件包名)

yum install xxx下载安装xxx软件包

案例:使用yum的方式安装firefox

  1. rpm -e firefox
  2. yum list | grep firefox
  3. yum install firefox
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值