第5章 Linux 实操篇-远程登录到 Linux 服务器
- 远程登录 Linux-Xshell6
- Xshell6:https://www.netsarang.com/en/free-for-home-school/
- 在 Linux 服务器上,使用 ipconfig 命令查看 IP 地址。
- 远程上传下载文件-Xftp6
- Xftp:https://www.netsarang.com/en/free-for-home-school/
- 在 Linux 服务器上,使用 ipconfig 命令查看 IP 地址。
第6章 Linux 实操篇-Vi 和 Vim 编辑器
- Vi 和 Vim 常用的三种模式
- 正常模式/一般模式:用 Vim 打开一个文件就直接进入正常模式(默认模式)。在这个模式中,可以上下左右移动光标、删除整行、复制、粘贴等等。
- 插入模式/编辑模式:在正常模式下,键入 i,I,o,O,a,A,r,R 任何一个字母之后才会进入插入模式。
- 命令行模式/末行模式:在插入模式下,键入 Esc 进入正常模式,再输入 : 进入命令行模式。在此模式下,可以查询、替换、保存、退出、显示行号等等。
- Vi 和 Vim 的快捷键
- 拷贝当前行:yy,拷贝当前行向下的5行:5yy,粘贴:p。
- 删除当前行:dd,删除当前行向下的6行:5dd。
- 在文件中查找某个单词:命令行模式下输入 /关键词,回车查找,再键入 n 查找下一个。
- 设置文件的行号:set nu;取消文件的行号:set nonu。
- 一般模式下,使用快捷键 G 到该文件的最末行,使用 gg 到文件的最首行。
- 一般模式下,使用快捷键 u 撤销上次执行的操作。
- 一般模式下,将光标移动到指定行,键入行号 G,如20G。、
第7章 Linux 实操篇-开机、重启和用户登录注销
- 开机、重启命令
不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
- shutdown -h now:立即进行关机
- shutdown -h 1:1分钟后自动关机(和 shutdown 命令效果一样)
- shutdown -r now:现在重新启动计算机
- halt:关机(上面的 -h 就是指 halt)
- reboot:现在重新启动计算机
- sync:把内存的数据同步到磁盘
- 用户登录和注销
- 登录时尽量少用 root 账号登录。为避免操作失误,可以先用普通用户登录,登录后用“su - 用户名”命令来切换成系统管理员身份。
- 在提示符下输入 logout 即可注销用户。
- logout 注销指令在图形运行级别无效,在运行级别3(非图形界面终端)下有效。
第8章 Linux 实操篇-用户管理
- 基本介绍
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
- 添加用户
- 使用命令“useradd 用户名”创建用户成功后,会自动创建和用户同名的家目录。
- 使用命令“useradd -d 指定目录 用户名”,给新创建的用户指定家目录。
- 指定/修改密码
- passwd 用户名
- 删除用户
- 删除用户,但保留家目录:userdel 用户名
- 删除用户以及用户家目录:userdel -r 用户名
- 查询用户信息指令
- id 用户名
- 当用户不存在时,返回无此用户。
- 切换用户
- su - 切换后的用户名
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来的用户时,使用 exit/logout 指令。
- 查看当前登录用户
whoami/who am i
- 用户组
系统可以对有共性/权限的多个用户进行统一的管理。
- 新增组:groupadd 组名
- 删除组:groupdel 组名
- 增加用户时直接加上用户组:useradd -g 用户组 用户名
- 修改已有用户的用户组:usermod -g 用户组 用户名
- 用户和组相关文件
- /etc/passwd 文件:用户的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户标识号:用户组标识号:注释性描述:主目录:登录 Shell
Shell 就是 Linux 命令的解释器。Linux 命令经过 Shell 解释翻译后传到 Linux 内核执行。
在 /etc/passwd 当中,除了标准 Shell 是 /bin/bash 之外,还可以写如 /sbin/nologin,/usr/bin/passwd 等。- 查看本机账号个数:cat /etc/passwd | wc -l
- 查找 root 用户个数:cat /etc/passwd | grep :0
- /etc/shadow 文件:口令的配置文件。
每行的含义:登录名:加密口令:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志- /etc/group 文件:用户组的配置文件,负责记录 Linux 包含的组的信息。
每一行的含义:组名:口令:组标识号:组内用户列表
第9章 Linux 实操篇-实用指令
- 指定运行级别
常用运行级别是3和5,也可以指定默认运行级别。如命令 init 3。
运行级别 描述 0 关机 1 单用户【找回丢失密码】 2 多用户状态没有网络服务 3 多用户状态有网络服务 4 系统未使用保留给用户 5 图形界面 6 系统重启
- CentOS 7系统运行级别
CentOS 6及之前的版本中,系统运行级别通过 /etc/inittab 文件进行设置和控制,但在 CentOS 7中,对这个文件的设置将不会对系统运行级别产生影响,这也是 CentOS 7中变化比较大的一部分特性。
- 运行级别对应关系
init level systemctl target 0 shutdown.target 1 emergency.target 2 rescure.target 3 multi-user.target 4 无 5 graphical.target 6 reboot.target 常用运行级别相关命令
- systemctl get-default:获取当前的运行级别;
- systemctl set-default multi-user.target:将默认运行级别设置为 mulit-user;
- systemctl isolate multi-user.target:不重启系统的情况下,将运行级别切换至 mulit-user;
- init 3
- 找回 root 密码
开机引导时,操作进入单用户模式修改 root 密码。
- ls 指令
- ls -alh :显示包括隐藏的全部文件、列表形式、人性化形式。
- ls -alh 目录或文件
- cd 指令
- cd ~ :回到家目录
- cd ..:回到上一级目录
- mkdir 指令
- mkdir 要创建的目录:创建一个目录
- mkdir -p 要创建的多级目录:创建多级目录
- rmdir 指令
- rmdir 要删除的空目录:只能删除空目录
- rm -rf 要删除的目录:递归、强制删除非空的目录
- cp 指令
- cp 源文件 复制后的文件
- cp -r 源文件目录 复制后的文件目录:递归复制整个文件夹
- mv 指令
- mv 原文件名 修改后的文件名:重命名文件
- mv 原文件或文件目录 移动后的文件目录:移动文件或整个文件夹
- cat 指令
- cat:只能浏览文件,而不能修改文件。
- 为了浏览方便,一般会带上管道命令“| more”。如cat -n 文件名 | more ,实现分页浏览(-n 显示行号)。
- less 指令
less 用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
- 命令:less 要查看的文件。
- echo 指令
- echo 内容:echo 输出内容到控制台。
- 使用 echo指令输出环境变量,例如输出当前的环境路径:echo $PATH。
- head 指令
- head 文件名:查看文件前10行内容。
- head -n 5 文件名:查看文件前5行内容,5可以是任意行数。
- tail 指令
- tail 文件名:查看文件后10行内容。
- tail -n 5 文件名:查看文件后5行内容,5可以是任意行数。
- tail -f 文件名:实时追踪该文档的所有更新,工作经常使用。
- ln 指令
软链接也叫符号链接,类似于 Windows 里的快捷方式,主要存放了链接其他文件的路径。
- ln -s 原文件或目录 软链接名:给原文件创建一个软链接。
- history 指令
查看已经执行过历史命令,也可以执行历史指令。
- history:查看已经执行过历史命令。
- !历史命令行数:执行历史命令行数所对应的命令。
- date 指令
- date:显示当前时间.
- data+%Y:显示当前年份。
- data+%m:显示当前月份。
- data+%d:显示当前是哪一天。
- date "+%Y-%m-%d %H:%M:%S":显示年月日时分秒。
- date -s 字符串时间:设置系统时间。
- cal 指令
- cal:显示本月日历。
- find 指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- find 搜索范围路径 -name 文件名:在搜索范围内按文件名搜索。
- find 搜索范围路径 -user 用户名:在搜索范围内按用户名搜索。
- find 搜索范围路径 -size +n:在搜索范围内按文件大小搜索,+n 表示大于 n,-n 表示小于 n,n 表示等于 n,n 的单位可以有 k、M、G。
- locate 指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。
- 由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
- locate 搜索文件名
- grep 指令和 管道符号 |
grep 过滤查找,管道符号|,表示将前一个命令的处理结果输出传递给后面的命令处理。
- grep 查找的内容 源文件。
- cat 文件名 | grep -ni 查找的内容:-n 表示显示行号,-i 表示不区分大小写。
- gzip/gunzip 指令
- gzip 要压缩的文件:压缩文件,只能将文件压缩为*.gz 类型的文件。
- gunzip *.gz:解压缩文件命令。
- 当使用gzip对文件进行压缩后,不会保留原来的文件。
- zip/unzip 指令
- zip *.zip 要压缩的文件:压缩文件。
- zip -r *.zip 要压缩的目录:压缩目录。
- unzip *.zip:解压缩文件。
- unzip -d 解压后文件的存放路径 *.zip:指定解压后文件的存放目录。
- tar 指令
tar指令是打包指令,最后打包后的文件是 *.tar.gz 格式的文件。
- tar -zcvf *.tar.gz 打包的文件或者目录:打包压缩文件或者目录。
- tar -zxvf *.tar.gz:解压 *.tar.gz 文件到当前目录。
- tar -zxvf *.tar.gz -C 解压后文件的存放路径:解压 *.tar.gz 文件到指定目录。
第10章 Linux 实操篇-组管理和权限管理
- 用户组的创建
- groupadd 组名
- 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
- 创建新用户的同时,指定用户所在的组:useradd -g 用户所在组 用户名。
- 修改文件/目录所在组
- chgrp 修改后的组名 文件名:改变文件所在组。
- chgrp -R 修改后的组名 目录:改变目录所在组,-R 表示使其目录下所有子文件或目录递归生效。
- 修改文件/目录所有者
- chown 修改后的所有者名 文件名:改变文件所有者
- chown -R 修改后的所有者名 目录:改变目录所有者,-R 表示使其目录下所有子文件或目录递归生效。
- 修改用户所在组
- usermod -g 修改后的组名 用户名:修改用户所在组。
- usermod -d 修改后的目录 用户名:修改用户登录的初始目录。
- 权限的基本介绍
例如 ls -alh 显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
- 0位:表示文件类型。d:目录,-:普通文件,l:链接,c:字符设备文件(鼠标、键盘),b:块设备(硬盘)。
- 1-3位:确定所有者(所有者,User)拥有的权限。-
- 4-6位:确定所属组(同用户组,Group)拥有的权限。
- 7-9位:确定其他用户(Other)拥有的权限。
- 1 文件:硬连接数或目录:子目录数
- root:所有者名
- root:在的组名
- 1213:文件大小(字节),如果是文件夹,显示4096字节
- Feb 2 09:39:最后修改日期
- abc:文件名或目录
- rwx 详解
rwx 作用于文件
- r(可读,read):可以读取,查看。
- w(可写,write): 可以修改,但是不可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限。
- x(可执行,execute):可以被执行。
rwx 作用于目录
- r(可读,read):可以读取,使用ls查看目录内容。
- w(可写,write): 可以在目录内创建、删除、重命名文件。
- x(可执行,execute):可以进入该目录,使用 cd 进入。
- 修改文件/目录的权限
第一种方式:+ 、-、= 变更权限
- 规则:u(所有者)、g(所有组)、o(其它人)、a(所有人,u、g、o 的总和)
- chmod u=rwx,g=rx,o=x 文件名或者目录:所有者读写执行的权限,所在组读执行权限,其它组执行权限。
- chmod o+w 文件名或者目录:其它组增加写权限。
- chmod a-x 文件名或者目录:所有人去除执行权限。
第二种方式:通过数字变更权限
- 规则:r=4、w=2、x=1,rwx=4+2+1=7
- chmod u=rwx,g=rx,o=x 文件名或者目录 相当于 chmod 751 文件名或者目录
写在前面
从这章开始,之后的内容大多是笔者没接触过的,特作详细说明,为之记。
第11章 Linux 实操篇-定时任务调度
- 任务调度
任务调度:系统在某个时间执行的特定的命令或程序。
分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;
- 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
- crond 任务调度
基本语法
- crontab [选项]
- 常用选项
选项 描述 -e 编辑 crontab 定时任务 -l 查询 crontab 任务 -r 删除当前用户所有 crontab 任务
快速入门
- 任务要求
每一分钟自动调用 ls -l /etc >> /tmp/to.txt- 操作步骤
- 执行 crontab -e 命令
- 接着输入自动调度命令到调度文件(/etc/crontab),即 */1 * * * * ls –l /etc/ >> /tmp/to.txt
- 保存退出调度文件
5个占位符说明
占位符 含义 范围 第一个* 一小时中的第几分钟 0-59 第二个* 一天中的第几小时 0-23 第三个* 一月中的第几天 1-31 第四个* 一年中的第几月 1-12 第五个* 一周中的星期几 0-7(0和7都代表星期日)
特殊符号说明
特殊符号 含义
- | 代表任何时间。比如第一个*就代表一小时中每分钟都执行一次的意思。
, | 代表不连续的时间。比如“0 8,12,16 * * *”命令代表每天的8点0分,12点0分,16点0分都执行一次命令。
- | 代表连续的时间范围。比如“0 5 * * 1-6”命令代表在周一到周六的凌晨5点0分执行命令。
/n | 代表每隔多久执行一次。比如“/10 * * * *”命令代表每隔10分钟就执行一次命令。
特定时间执行任务案例
特定时间 含义 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分都会执行命令。注意:星期几和几号最好不要同时出现,因为定义的都是天,容易让管理员混乱。
- crond 任务调度实例
- 每隔1分钟,将当前日期和日历都追加到 /home/mycal 文件中。
- vim /home/my.sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal
- 给 my.sh 增加执行权限,chmod u+x /home/my.sh
- 执行 crontab -e 命令,增加 */1 * * * * /home/my.sh
- 保存退出调度文件
- 每天凌晨2:00,将 mysql 数据库 testdb,备份到文件 mydb.bak 中。提示指令:mysqldump -u root -p密码 数据库 > /home/mydb.bak
- 执行 crontab -e 命令
- 增加 0 2 * * * mysqldump -u root -proot testdb > /home/mydb.bak
- 保存退出调度文件
- crond 相关指令
- crontab -r: 终止任务调度。
- crontab –l:列出当前所有任务调度。
- service crond restart:重启任务调度。
- 定时任务 at
基本介绍
- at命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式检查作业队列来运行。
- 默认情况下,atd 守护进程每60秒检查作业队列。有作业时,会检查作业运行时间。如果时间与当前时间匹配,则运行此作业。
- at命令是一次性定时计划任务,执行完一个任务后就不会再执行此任务了。
- 在使用at命令的时候,一定要保证 atd 进程已启动,可以使用 ps -ef | grep atd 命令来查看 atd 是否在运行。
基本语法
- at [选项] [时间]
- 两次键入 Ctrl + D 结束 at 命令的输入。
- 基本语法中,选项使用次数极少,此处不再赘述。
at 时间定义
- 使用 hh:mm(小时:分钟)格式对当天的的时间指定。假如该时间已过去,那么就放在第二天执行。比如04:00
- 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
- 使用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。比如12pm
- 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。比如04:00 2021-03-11
- 对于安排不久就要执行的命令,可以使用相对计时法。。指定格式为:now + count time-units,now就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时等等。比如 now + 5 minutes
- 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
- at 定时任务实例
- 2天后的下午5点执行 /bin/ls /home
- 执行 at 5pm + 2 days 命令回车
- 输入 /bin/ls /home
- 两次键入 Ctrl + D 结束at命令的输入
- atq 命令来查看系统中没有执行的定时任务
- 直接执行 atq 命令查看即可
- 明天17点钟,输出时间到指定文件 /root/date100.log
- 执行 at 5pm tomorrow 命令回车
- 输入 date > /root/date100.log
- 两次键入 Ctrl + D 结束 at 命令的输入
- 2分钟后,输出时间到指定文件 /root/date200.log
- 执行 at now + 2 minutes 命令回车
- 输入 date > /root/date200.log
- 两次键入 Ctrl + D 结束 at 命令的输入
- 删除已经设置的定时任务
- 先使用 atq 命令查看系统中没有执行的定时任务,获取要删除的任务编号
- 执行 atrm 任务编号 命令
第12章 Linux 实操篇-Linux 磁盘分区、挂载
- Linux 分区
原理介绍
- Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。
- Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。
- 对于 IDE 硬盘,驱动器标识符为“sdx~”,“hd”表明分区所在设备的类型,这里是指IDE硬盘。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。比如 hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。
- 对于 SCSI 硬盘,驱动器标识符为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型,其余则和 IDE 硬盘的表示方法一样。
查看所有设备挂载情况
- lsblk:英文是“list block”,即用于列出所有可用块设备的信息
- lsblk -f:查看系统分区和挂载点情况
- 挂载的经典案例
说明
- 给 Linux 系统增加一块新的硬盘,并且挂载到 /newdisk
- 主要有以下5个步骤:虚拟机添加硬盘、分区、格式化、挂载、设置可以自动挂载。具体步骤如下。
具体步骤
- 虚拟机添加硬盘
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,直到完成。然后重启系统(才能识别)!- 磁盘分区
- 分区命令 fdisk /dev/sdb
- 开始分区后输入 n,新增分区,然后选择 p,分区类型为主分区,分区号1-4可选,默认为1,1代表为只为磁盘划分一块分区,2代表为磁盘划分两块分区,依次类推。此次案例选择1。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q。
命令 含义 m 显示命令列表 n 新增分区 d 删除分区 w 写入并退出
- 格式化磁盘
- 命令:mkfs -t ext4 /dev/sdb1 其中 ext4 是分区类型
- 挂载
- 挂载: 将一个分区与一个目录联系起来。
- mount 设备名称 挂载目录 此次案例为 mount /dev/sdb1 /newdisk
- 相反地,去除挂载命令为 umount 设备名称或者挂载目录
- 此次案例用不到,但给出举例(umount /dev/sdb1 或者 umount /newdisk),特此说明。
- 设置可以自动挂载
以上四步,只能实现临时挂载,重启系统后,挂载就会失效。设置自动挂载,即永久挂载,当重启系统,仍然可以挂载到指定目录。
- 通过修改 /etc/fstab 文件实现永久挂载
- 此次案例在文件中增加 /dev/sdb1 /newdisk ext4 defaults 0 0
- 保存并退出文件后,执行 mount –a 即刻生效
- 磁盘情况查询
- 查询系统整体磁盘使用情况:df -h
- 查询指定目录的磁盘占用情况:du -h /指定目录
选项 含义 -s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 --max-depth=1 子目录深度为1 -c 列出明细的同时,增加汇总值
- 磁盘情况-工作实用指令
- 统计 /opt 文件夹下文件的个数
- ls -l /opt | grep "^-" | wc -l
- 统计 /opt 文件夹下目录的个数
- ls -l /opt | grep "^d" | wc -l
- 统计 /opt 文件夹下文件的个数,包括子文件夹下的
- ls -lR /opt | grep "^-" | wc -l
- 统计 /opt 文件夹下目录的个数,包括子文件夹下的
- ls -lR /opt | grep "^d" | wc -l
- 以树状显示目录结构
- yum install tree
- tree 指定目录
- wc 命令
- Linux 系统中的 wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
- wc [选项] [文件]
命令 含义 -c 统计字节数 -l 统计行数 -m 统计字符数,这个选项不能与 -c 一起使用 -w 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串 -L 统计最长行的长度
第13章 Linux 实操篇-网络配置
- 查看网络配置
- Windows 系统:ipconfig
- Linux 系统:ifconfig
- Linux 网络环境配置
- 第一种方式:自动获取 IP
- 用户登录后,通过界面来设置自动获取 IP。
- 缺点: Linux 启动后,每次自动获取的 IP 地址可能不一样。这个不适用于服务器,因为服务器 IP 是需要固定的。
- 第二种方式:固定 IP
- 通过修改配置文件来指定 IP
- 配置文件根据网卡不同名字有所区别,但文件路径一致:/etc/sysconfig/network-scripts/,常见的配置文件名有 ifcfg-eth0 或者 ifcfg-ens33,可以通过 ifconfig 查看后缀。
- 以 ifcfg-ens33 为例,配置文件需要修改的内容如后面的代码块所示。
- 修改后,重启网络服务或者重启系统生效:service network restart 或者 reboot
BOOTPROTO=static # 静态 IP IPADDR=192.168.59.134 # 本机 IP 地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.59.2 # 默认网关 DNS1=8.8.8.8 # 域名解析器 DNS2=8.8.4.4
- 设置主机名和 hosts 映射
- 设置主机名
- 为了方便记忆,可以给 Linux 系统主机设置主机名,也可以根据需要修改主机名(大数据用到)。
- 使用 hostname 查看当前主机名
- 如需修改在文件 /etc/hostname 编辑即可
- 修改后,重启系统生效
- 设置 hosts 映射
hosts 映射可以使主机名和系统 IP 地址建立映射联系,即通过主机名就可以连接到某个主机系统,省去了 IP 地址的麻烦。
hosts 是一个文本文件,用来记录 IP 和 Hostname(主机名)的映射关系。
除去 hosts 文件,DNS 是互联网上作为域名和 IP 地址相互映射的一个分布式数据库。Domain Name System 的缩写,翻译过来就是域名系统。
- Windows:在 C:\Windows\System32\drivers\etc\hosts 文件中指定即可。如192.168.130.23 CentOS-PC
- Linux:在 /etc/hosts 文件中指定即可。如192.168.100.13 Windows-PC
第14章 Linux 实操篇-进程管理(重点)
- 基本介绍
- 在 Linux 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号,即进程号,PID。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束。
- 显示系统执行的进程
- ps -aux:显示当前终端所有进程。
- ps -aux | more:配合 more 命令,分屏显示进程信息,便于查看。
- ps -aux | grep 特定服务:配合 grep 命令,查看特定的进程信息。比如 ps -aux | grep sshd。
- ps -ef:以全格式显示当前所有的进程,也可以查看进程的父进程,父进程符号为 PPID。
- ps -ef | grep 特定服务:配合 grep 命令,查看特定进程的父进程。比如 ps -ef | grep sshd。
- 终止进程 kill 和 killall
- kill [选项] 进程号:通过进程号杀死进程。
- killall 进程名称:通过进程名称杀死进程,也支持通配符。杀死该进程的同时,该进程下的子进程也会被杀死。
- 常用选项:-9表示强制进程立即停止。
- 常用实例
- 踢掉某个非法登录用户:ps -aux | grep sshd 查看登录用户的进程号,后 kill 登录用户的进程号。
- 终止远程登录服务 sshd,在适当时候再次重启 sshd 服务:kill sshd对应的进程号,再运行 /bin/systemctl start sshd.service
- 终止多个 gedit 编辑器:killall gedit。
- 强制杀掉一个终端:kill -9 bash对应的进程号
- 查看进程树 pstree
- pstree [选项]:可以更加直观的来看进程信息。
- 常用选项:-p 显示进程的 PID,-u 显示进程的所属用户。
- pstree -p:树状的形式显示进程的 PID。
- pstree -u:树状的形式显示进程的用户。
- 服务(service)管理
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql、sshd、防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
- service 管理指令
- service 服务名 [start | stop | restart | reload | status]
- 在 CentOS 7.0 后 不再使用 service ,而是 systemctl(后面专门介绍)。
- service 指令管理的服务在 /etc/init.d 查看,即 ls -l /etc/init.d 命令。
- service 管理指令案例
使用 service 指令,查看、关闭、启动 network。
- service network status
- service network stop
- service network start
- 查看服务名
- 方式一:使用 setup -> 系统服务 就可以查看(包括 service 和 systemctl),带星号的是开机自启动的服务。
- 方式二:运行 ls -l /etc/init.d 只能查看 service 管理的服务。
- 服务的运行级别
Linux 系统有7种运行级别(runlevel):常用的是级别3和5。
- 运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
- 运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆。
- 运行级别 2:多用户状态(没有 NFS),不支持网络。
- 运行级别 3:完全的多用户状态(有 NFS),登陆后进入控制台命令行模式。
- 运行级别 4:系统未使用,保留。
- 运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
- 运行级别 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
- CentOS 7后运行级别说明
- 在 /etc/initab 进行了简化,multi-user.target 等同于运行级别3,graphical.target 等同于运行级别5。
- systemctl get-default:获取当前的运行级别;
- systemctl set-default multi-user.target:将默认运行级别设置为 mulit-user。
- chkconfig 指令
通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭,此处的服务是指 service 指令管理的服务,在 /etc/init.d 查看,即 ls -l /etc/init.d 命令。
chkconfig 重新设置服务自启动或关闭后,需要重启机器才能生效。
注意:CentOS 7.0之后,很多服务使用 systemctl 管理。
- 基本语法
- chkconfig --list | grep 服务名
- chkconfig 服务名 --list
- chkconfig --level 5 服务名 on/off
- 应用实例
- 将 sshd 服务在运行级别5下设置为不自动启动:chkconfig --level 5 sshd off
- 显示当前系统所有服务的各个运行级别的运行状态:chkconfig --list
- 将 network 服务在运行级别3下设置为不自动启动:chkconfig --level 3 network off
- systemctl 管理指令
- 基本语法
- systemctl [start | stop | restart | status] 服务名
- service 指令管理的服务在 /usr/lib/systemd/system 查看,即 ls -l /usr/lib/systemd/system 命令。
- systemctl 设置服务自启动状态
- systemctl list-unit-files| grep 服务名:查看服务开机启动状态,使用 grep 进行过滤。
- systemctl enable 服务名:设置服务开机自启动。
- systemctl disenable 服务名:关闭服务开机自启动。
- systemctl is-enable 服务名:查询某个服务是否开机自启动。
- 查看服务名
- 使用 ls -l /usr/lib/systemd/system 命令查看需要的服务名。
- 服务运行级别
- systemctl [start | stop] 服务名 一般在运行级别3和5执行,没有再作具体区分。
- 应用案例
查看当前防火墙的状况,关闭防火墙和重启防火墙。
- 使用 ls -l /usr/lib/systemd/system 命令查看防火墙服务名为 firewalld.service。
- systemctl status firewalld
- systemctl stop firewalld
- systemctl start firewalld
- 细节讨论
- 关闭或启用防火墙后,立即生效。
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
- 如果设置某个服务自启动或关闭永久生效,要使用 systemctl [enable/disable] 服务名。
- 打开或关闭指定端口
在真正的生产环境,往往需要将防火墙打开。但如果把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。
- firewall 指令
- 打开端口:firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
- 重新载入,才能生效:firewall-cmd --reload
- 查询端口是否开放:firewall-cmd --query-port=端口号/协议
- 端口号和协议可以通过 netstat 进行监听
- 应用案例
- 启用防火墙,测试111端口能否 telnet,不能
- 开放111端口:firewall-cmd --permanent --add-port=111/tcp;firewall-cmd --reload
- 再次关闭111端口:firewall-cmd --permanent --remove-port=111/tcp;firewall-cmd --reload
- 动态监控进程
top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。
- 基本语法
top [选项]
- 选项说明
选项 含义 -d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用 s 交互命令来改变。 -i 使 top 不显示任何闲置或者僵死进程。 -p 通过指定监控进程 ID 来仅仅监控某个进程的状态。
- 应用实例
- 监视特定用户:输入 top 命令,查看执行的进程,然后输入 u 回车,再输入用户名。
- 终止指定的进程:输入 top 命令,查看执行的进程,然后输入 k 回车,再输入要结束的进程 PID 号。
- 监控网络状态
- 查看系统网络情况 netstat
- netstat [选项]
- netstat -anp:按一定顺序排列显示哪个进程在调用网络端口
- 应用案例
- 查看服务名为 sshd 服务的信息:netstat -anp | grep sshd
第15章 Linux 实操篇-RPM 和 YUM
- RPM 包的管理
一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 发行版中。它生成具有.RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 Windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。Linux 的发行版本都有采用(RedHat,CentOS等等),可以算是公认的行业标准了。
- RPM 包名基本格式
RPM 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
- 名称:firefox
- 版本号:45.0.1-1
- 适用操作系统:el6.centos.x86_64表示64位系统
- 如果是 i686、i386表示32位系统,noarch 表示通用
- RPM 包的其它查询指令
- rpm -qa:查询所安装的所有 rpm 软件包
- rpm -qa | more:分页显示
- rpm -qa | grep 软件包名:查询所安装的是否有该软件包
- rpm -qi 软件包名:查询软件包信息
- rpm -ql 软件包名:查询软件包中的文件
- rpm -qf 文件全路径:查询文件所属的软件包,如rpm -qf /etc/passwd
- 卸载 RPM 包
- rpm -e RPM 软件包名:-e 代表 earse
- 细节问题
- 如果其它软件包依赖于要卸载的软件包,卸载时则会产生错误信息。
- 如果就是要删除这个 rpm 包,可以增加参数 --nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行。如:rpm -e --nodeps foo,带上 --nodeps 就是强制删除。
- 安装 RPM 包
- rpm -ivh RPM 软件包路径:软件包必须已下载到磁盘
- 参数说明:i=install 安装、v=verbose 提示、h=hash 进度条
- YUM
YUM 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 YUM 的前提是可以联网。
- YUM 的基本指令
- 查询 YUM 服务器是否有需要安装的软件:yum list | grep 软件名
- 安装指定的 YUM 包:yum install 软件名