标题文件系统目录结构
总结:
(1)Linux的目录中有且只有一个根目录 /
(2)Linux的各个目录存放的内容是规划好的,不用乱放文件
(3)Linux是以文件的形式管理我们的设备,因此Linux系统中,一切皆为文件
(4)Linux的各个文件目录下存放什么内容,必须要有一个详细认识!
尚硅谷P12讲中的内容!
Linux系统连接远程服务器
Linux系统中查看IP地址
终端机中输入ifconfig指令
Linux系统开启远程ssh服务
xshell中新建一个会话
第一次连接,密钥,默认接授,输入Linux系统的用户名跟密码即可连接到远程服务器!
连接后,便可看到对应的账户了:
远程上传下载文件-XFTP7
vi和vim的使用
vi和vim模式的相互切换图:
vi和vim模式中常用的快捷键命令
复制粘贴命令
新建一个vim文件,点a/i进去插入模式,编写五行代码,点ESC回到正常模式(一般模式)下,将光标(上下键可移动)定到所要复制的行上,点击两下yy即可复制当前行,找到要粘贴的地方,点击p即可完成粘贴!复制多行原理也一样,只是在双击yy前,输入要复制的行数即可。
删除当前行命令或多行命令
用法跟复制命令差不多,将光标定到所要删除的行前,输入dd即可,删除多行道理也一样!
查找文件中的某个关键字的命令 / 和 n
在打开的文件中,进入命令模式,冒号输入 / 查找的关键字 回车即可定位到第一个关键字的位置上,如果想查找下一个,可按一下n
设置文件的行号和取消文件的行号的命令
命令模式下 :set nu 和 :set nonu
快速到达文件的最末行和最首行命令
正常模式下,输入G可到达文件的最末行,输入gg可到达文件的最首行!
在一个文件中快速撤销某个命令
在插入模式下,切回正常模式,冒号 u 回车即可撤销!
编辑 /etc/profile文件,并将光标移到 第20行 shift+g
第一步:显示行号:set nu
第二步:输入20这个数(正常模式下)
第三步:输入shift+g
开机、重启和用户注销
开机、重启:
shutdown -h now 立刻进行关机
shutdown -h 1 “hello,1分钟后会关机”
shutdown -r now 现在重新启动计算机
halt 关机,作用和上面一样
reboot 现在重新启动计算机
sync 把内存中的数据同步到磁盘
用户注销:
远程控制上输入:
logout命令
用户管理
介绍:
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
Linux的用户需要至少要属于一个组。
创建用户指定密码
创建用户命令:useradd 用户名
说明:当创建用户成功后,会自动的创建和用户同名的家目录;
也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
给新用户修改密码:
passwd 新用户名
删除用户
命令:userdel 用户名 (保留家目录,对应用户的文件夹会依然存在)
命令:userdel -r 用户名 (家目录跟用户名会被全部删除,工作中一般不会连家目录也删除,家目录下会保留有很多该员工在工作中的源代码)
查询和切换用户
查询用户指令:id 用户名
切换用户
在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root
指令:su - 切换的用户名
使用说明:
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要;
当需要返回到原来用户时,使用exit指令
查看当前用户名
whoami
用户组的管理
类似于角色,系统可以对有共性的多个用户进行统一的管理。
增加组的指令:groupadd 组名
删除组的指令:groupdel 组名
指定用户在哪一个组的用法:
useradd -g 组名 用户名
示例:
修改用户组的指令:
usermod -g 用户组 用户名
示例:
用户和组的相关文件
1、/etc/passwd文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名 :口令 :用户标识号:注释性描述:主目录:登录shell
2、/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3、/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组织标号:组内用户列表
实用指令
指定运行级别
以下是CentOS6版本以前的运行级别:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别分别是3和5,要修改默认的运行级别可修改文件:/etc/inittab 的id:5:initdefault:这一行中的数字
命令:init[012356]
图解如下:
CentOS 7后默认只有3和5这两个级别而已了!
直接命令:init 3或5可切换到对应的运行级别下!
获取开机默认运行级别
命令:systemctl get-default
设置开机默认运行级别
命令:systemctl set-default multi-user.target 或 graphical.target
multi-user.target 相当于3
graphical.target 相当于5
root密码找回
由于版本不同,老师使用的是CentOS6,而我则是7,所以这里没有进行演示,但我百度了一下,发现网上关于CnetOS7的root密码找回的教程还是挺多,所以,等哪一时我脑抽了不记得了,再去研究吧!(远程无法找回root密码,必须机房,服务器所在的地方)
帮助指令
man
命令:man 指令名 如:man ls
ls -a 表示显示所有文件包括隐藏文件!
help
命令:help 指令名 如:help cd (p是退出)
实在看不懂文档,可以直接百度相关指令的用法!
目录类指令
pwd 指令
显示当前工作目录的绝对路径。如:usr/lib
ls指令
常用选项:
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l:以列表的方式显示息
cd指令
cd 参数
功能:切换到指定目录
常用参数有:
~ 回到自己的家目录(或者直接cd也可以回到家目录) 如:cd ~
… 回到当前目录的上一级目录 如:cd …
绝对路径跟相对路径的解释:
绝对路径:/home 即从根目录开始定位
相对路径:…/home 从当前工作目录开始定位到需要的目录去
示例:此时用户在usr/lib目录,用相对路径的表示方法,快速回到/root目录下
cd …/…/root
mkdir指令
用于创建目录。
mkdir [参数] 要创建的目录名
常用参数:
-p :创建多级目录
rmdir指令
删除空目录
rmdir 空目录名
非空删除指令:rm -rf 要删除的目录
touch指令
创建空文件
touch 文件名称
一次性创建多个文件:
touch 文件1 文件2 …
cp指令
拷贝文件到指定目录
cp [参数] source[所要复制的源文件] dest[目标文件夹]
常用参数:
-r :递归复制整个文件夹
强制覆盖指令:
\cp
快捷键使用小技巧:
上下箭头的使用,可以快速定位到原来使用过的指令!
rm指令
移除文件或目录。
基本语法:
rm [参数] 要删除的文件或目录
常用参数:
-r:递归删除整个文件夹
-f:强制删除不提示
mv指令
移动文件、目录或者重命名
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv 文件或目录 目标文件夹(功能描述:移动文件或目录)
cat指令
查看文件内容,只能以只读的方式打开
基本语法:
cat [参数] 要查看的文件名
常用参数:
-n :显示行号
注意:cat 指令只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more(more表示分页显示)
空格往下翻页,鼠标滚轮往上可以向上阅读!
more指令
more指令是一个基于vi编辑器的文本过滤器,它可以全屏幕的方式按页显示文本文件的内容。more中的一些常用快捷键说明:
空格键:表示向下翻一页
enter:表示向下翻一行
q:表示立刻离开more,不在显示该文件内容
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f 输出文件名和当前行的行号
基本语法:
more [参数] 文件名
less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要而加载内容,对于显示大型文件具有较高的效率。
基本语法:
less 要查看的文件
查看大型日志文件可使用less指令来操作!
常用快捷键跟more中的差不多!
>指令和>>指令
输出重定向 :会将原来的文件的内容覆盖
追加 : 不会覆盖原来的文件内容
基本语法:
(1)ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
如果home目录下没有a.txt文件则新建一个,有则进行列表内容覆盖写入a.txt文件中!
(2)ls -l >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2中去)
(4)echo “内容” >> 追加的文件名(不覆盖)
覆盖写入则将>> 改为 >
显示当前日历指令:cal
示例:将当前日历信息写入某个文件中。
覆盖写入:
echo指令
输出内容到控制台
基本语法
echo [参数] [输出内容]
示例:输出系统变量
head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
基本语法:
head 文件名 (功能描述:查看文件头10行内容)
head -n 5 文件名 (功能描述:查看文件头5行内容,5可以是任意行数)
图片: https://uploader.shimo.im/f/DcLEgGYTnNGOyICG.jpg
tail指令
tail用户输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
基本语法:
tail 文件名 (功能描述:查看文件后10行内容)
tail -n 5 文件名 (描述:查看文件后5行内容,5可以是任意行数)
tail -f 文件名 (描述:实时追踪该文档的所有更新)
Ctrl + c退出文件追踪
ln指令
软链接也叫符号链接,类似于Windows里的快捷方式,主要放了链接其他文件的路径。
基本语法:
ln -s [原文件或目录] [软链接名] (描述:给原文件创建一个软链接)
示例:
(1)在/home目录下创建一个软链接 linkToRoot,连接到/root目录
(2)删除软链接linkToRoot
细节说明:
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
history指令
查看已经执行过的历史命令,也可以执行历史命令。
基本语法:
history (描述:查看已经执行过的历史命令)
示例:
(1)显示最近执行过的十个指令。
(2)执行历史编号为5的指令。
时间日期类指令
date指令-显示当前日期
基本语法
date (描述:显示当前时间)
date+%Y (描述:显示当前年份)
date + %m (描述:显示当月份)
示例:
显示当前年月日。
显示当前年月日时分秒。
date指令-设置日期
基本语法:
date -s 字符串时间
示例:
设置系统当前时间,比如设置成2050年4月7日 15:19:45
cal指令
查看日历指令。
基本语法
cal [选项] (描述:不加选项,显示本月日历)
示例:
显示2050年日历。
搜索查找类指令
find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
基本语法:
find [搜索范围] [选项]
选项说明:
-name<查询的方式> (描述:按照指定的文件名查找)
-user<用户名> (描述:查找属于指定用户名所有文件)
-size<文件大小> (描述:按照指定的文件大小查找文件)
注:+ 表示所要查找的文件是大于参数的文件,- 表示所要查找的文件是小于参数的文件,= 表示所要查找的文件等于设定的参数。这里是将大于20M的文件全部显示出来!
locate指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
基本语法:
locate 搜索文件
特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
示例:
使用locate指令快速定位a.txt文件所在的目录。
grep指令和 管道符号
grep 过滤查找,管道符:“|” 表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:
grep [选项] 查找内容 源文件
常用选项:
-n : 显示匹配行及行号
-i :忽略字母大小写
示例:
压缩和解压类
gzip/gunzip指令
gzip用于压缩文件,gunzip用于解压文件的。
基本语法:
gzip 文件 (描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (描述:解压文件命令)
压缩后,源文件不复存在!
zip/unzip指令
zip用于压缩文件,unzip用户解压文件。这两个在项目打包发布中很常用。
基本语法:
zip [选项] 压缩后的文件名.zip 将要压缩的内容 (描述:压缩文件和目录的命令)
unzip [选项] 文件名.zip (描述:解压缩文件)
常用选项:
-r :递归压缩,即压缩目录
-d <目录> 指定解压后的文件的存放目录
示例:
(1)将/home 下的所有文件进行压缩成mypackage.zip文件
(2)将mypackage.zip文件解压到/opt/tmp目录下
tar指令
tar 指令是打包指令,最后打包后的文件是.tar.gz的文件。
基本语法:
tar [选项] 打包后的文件名.tar.gz 打包内容 (描述:打包目录,压缩后的文件格式.tar.gz)
选项说明:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
示例:
(1)压缩多个文件,将/home/a.txt和b.txt压缩成 a.tar.gz
注:压缩参数必须是:-zcvf
(2) 将/home的文件夹 压缩成 myhome.tar.gz
(3)将a.tar.gz 解压到当前目录
(4)将myhome.tar.gz 解压到 /opt/目录下
注:解压到的目录原先必须存在!否则解压失败.
组管理和权限管理(重点、难点)
组管理
Linux组的基本认识
在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中的每个文件有所有者、所在组、其他组的概念。
文件/目录所有者
一般是文件的创建者,谁创建了该文件,谁自然的就是该文件的所有者。
查看文件的所有者指令
ls -ahl
示例:
(1)创建一个组police ,再创建一个用户tom,将tom放在police组,然后使用 tom 来创建一个文件 ok.java
修改文件所有者指令
chown 新用户名 文件名
示例:使用root创建一个文件apple.txt,然后将其所有者修改成 tom
组的创建
groupadd 组名
实例:
创建一个组,组名:monster
创建一个用fox,并放入到monster组中
文件/目录所在组
当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
ls -ahl指令
修改文件所在组
基本指令:
chgrp 组名(新组名) 文件名
其他组
除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
改变用户所在组(root用户有该权限)
在添加用户时,可以指定该用户添加到哪个组中,同样的用root的管理权限也可以改变某个用户所在的组。
指令:
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录
实例:
创建一个bandit组,将用户tom从police组改到bandit组中。
权限管理
权限的基本了解
文件类型:- 普通文件 d: 目录 l :软链接 c:字符设备【键盘、鼠标】 b:块文件,硬盘
各部分图解:
rw- 表示文件所有者权限,读或写权限、不可被执行。
rwx权限详细学习
rwx作用到文件
(1)[r] 代表可读(read):可以读取、查看
(2)[w] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
(3)[x]代表可执行(execute):可以被执行
rwx作用到目录
(1)[r]代表可读(read):可以读取,ls查看目录内容
(2)[w]代表可写(write):可以修改,目录内创建+删除+重命名目录
(3)[x]代表可执行(execute):可以进入该目录。
修改权限-chmod(所有者、root账号可修改)
基本说明:
通过chmod指令,可以修改文件或者目录的权限。
第一种方式:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
(1)chmod u =rwx ,g=rx,o=x 文件目录名
(2)chmod o+w 文件目录名
(3)chmod a-x 文件目录名
实例:
(1)给apple.txt文件 的所有者读写执行的权限,给所有组读执行权限,给其它组读执行权限。
(2)给apple.txt文件的所有者除去执行的权限,增加组写的权限。
(3)给apple.txt文件的所有用户添加读的权限。
第二种方式:通过数字变更权限
规则:r=4 w=2 x=1 ,rwx=4+2+1=7
基本语法:
chmod 权限数字 文件路径
实例:
将/home/a.txt文件的权限修改成 rwxr-xr-x ,使用数字的方式实现。
修改文件所有者-chown
chmod newowner file 改变文件的所有者
chmod newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录,则使其下所有子文件或目录递归生效。
实例:
(1)将/tom/abc.txt文件的所有者修改成tom
(2)将/home/mulu1/下的ab文件的所有者修改为tom
修改文件所在组-chgrp
chgrp newgroup file 改变文件的所有组名
递归修改所有组命令:
chgrp -R newgroup 所在组的目录
课堂练习1:
建立两个组(神仙、妖怪)
建立四个用户(唐僧、悟空、八戒、沙僧)
设置密码
把悟空、八戒放入妖怪 唐僧、沙僧放在神仙
用悟空建立一个文件(monkey.java 该文件要输出 i am monkey)
给八戒一个可以rw 的权限 (组修改)
八戒修改monkey.java 加入一句话(i am pig)
唐僧 沙僧 对该文件没有权限
把 沙僧 放入妖怪组
让 沙僧 修改 该文件monkey.java 加入一句话(“我是沙僧,现在是你们的三师弟了!”)
课堂练习2
用root登录,建立用户mycentos,设置一个密码
用mycentos登录,在主目录下建立目录test/t11/t1
在t1中建立一个文本文件aa,用vim编辑其内容为 ls -al
改变aa的权限为可执行文件【可以将当前日期追加到该文件中】,运行该文件
删除新建里的目录test/t11/t1
删除用户mycentos及其主目录中的内容
将Linux设置成进入到图形界面的
重新启动Linux系统
定时任务调度
crond任务调度
crond 进行定时任务的设置。
概述:
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分:1、系统工作:有些重要的工作必须周而复始的执行。譬如病毒扫描等。
2、个别用户工作:个别用户可能希望执行某些程序,比如对MySQL数据库的备份。
基本语法:
crontab [选项]
常用选项:
-e :编辑crontab 定时任务
-l :查询crontab任务
-r :删除当前用户所有的crontab任务
创建一个定时任务
指令 crontab -e
编写定时任务规则:
创建成功标识:
查看执行后的定时任务:
具体创建定时任务规则,可到如下网址进行查看:
https://www.bejson.com/othertools/cron/
实例:
1、每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
(1)先编写一个文件 /home/mytask1.sh
将下面的语句写入mytask1.sh文件中:
date >> /tmp/mydate
(2)给mytask1.sh文件一个可执行权限
chmod 744 /home/mytask1.sh
(3)crontab -e
(4)*/1 * * * * /home/mytask1.sh
(5)结果
图解:
实例2:
每天凌晨2:00将MySQL数据库 testdb,备份到文件中 mydb.bak中。
(1)先编写一个文件 /home/mytask2.sh
/usr/local/mysql/bindump -u root -p 密码 testdb > /tmp/mydb.bak
(2)给mytask2.sh一个可执行权限。
chmod 744 /home/mytask2.sh
(3)crontab -e
(4) 0 2 * * * * /home/mytask2.sh
crond相关命令
crontab -r :终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart 重启任务调度
Linux磁盘分区、挂载
原理:Linux无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。
示意图:
硬盘说明:
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘;
对于IDE硬盘,驱动器标识符为 “hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。譬如,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区;hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
对于SCSI硬盘则表示为“sdx~”,SCSI硬盘是用“sb”来表示分区所在设备的类型,其余则和IDE硬盘的表示方法一样!
老师示意图:
挂载经典案例
磁盘与文件系统的示意图:
虚拟机增加硬盘步骤
1、在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间有选择磁盘大小的地方需要修改,这个可以根据自己的需要来设置,直至完成,然后重启系统(才能识别)。
2、分区命令 fdisk /dev/sdb
m 显示命令列表
p 显示磁盘分区
n 增加分区
d 删除分区
w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
3、格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中ext4表示分区类型。
4、挂载
将一个分区与一个目录联系起来,
指令:mount 设备名称 挂载目录
例如:mount /dev/sdb1 /newdisk
断掉挂载目录指令:
umount 设备名称或者挂载目录
例如:umount /dev/sdb1 或者 umount /newdisk
注:用命令挂载,虚拟机重启后,会失效!
5、永久挂载
通过修改/etc/fstab实现挂载:
打开命令:vim /etc/fstab
输入如下指令进行保存:
wq退出后,执行如下命令:
mount -a 即刻生效!
这会可以在输入查看磁盘命令:
lsblk -f
磁盘情况查询
df -h指令
查询系统整体磁盘使用情况
基本语法:
df -h
du -h指令
查询指定目录的磁盘占用情况。
基本语法:
du -h /目录
选项:
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
-max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
磁盘情况-实用指令
实例:
1、查询/opt 目录的磁盘占用情况,深度为1
2、统计/home文件夹下文件的个数
过滤条件中,-代表 文件
3、统计/home文件夹下目录的个数
d代表目录。
4、统计/home文件夹下文件的个数,包括子文件夹里的
5、统计/home文件夹下目录的个数,包括子文件夹里的
6、以树状显示目录结构
先安装tree指令:
安装完毕后,输入tree指令,即可看到如下效果:
网络配置
Linux网络配置原理图(含虚拟机)
现在网络配置采用的是NAT模式
ping指令的使用
网络互通的前提下是可以相互访问的!
Linux网络环境配置
第一种方式(自动获取):
登陆账后,默认或自动获取ip来进行网络连接。
特点:Linux启动后会自动获取ip。缺点就是每次获取的ip地址可能不一样!这个不适用于做服务器,因为服务器的ip需要随时固定的。
第二种方法(指定固定的ip)
使用说明:直接修改配置文件来指定ip,并可以连接到外网(程序员必备的),编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
要求:将ip地址配置为静态的,ip地址为192.168.220.132
P47没通过!!!
进程管理
进程的基本介绍
(1)在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
(2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
(3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕挂上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
(4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
显示系统执行的进程
ps指令
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。
ps显示的信息选项:
PID 进程识别号
TTY 终端机号
TIME 此进程所耗CPU时间
CMD 正在执行的命令或进程名
ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
实例:
(1)查看有没有sshd服务
(2)以全格式显示当前所有的进程,查看进程的父进程。
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程,-f 全格式。
ps -ef | grep XXX
实例:显示sshd的父进程
终止进程kill和killall
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
基本语法:
kill [选项] 进程号 (描述:通过进程号杀死进程)
killall 进程名称 (描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时使用很有用)
常用选项:
-9:表示强迫进程立即停止。
最佳实践:
1、踢掉某个非法登陆用户
2、终止远程登录服务sshd,在适当时候再次重启sshd服务
开启远程服务指令:service sshd restart
3、终止多个gedit编辑器【killall 通过进程名称来终止进程】
4、强制杀掉一个终端
查看进程树pstree
基本语法:
pstree [选项] 可以更加直观的来看进程信息
常用选项:
-p :显示进程的PID
-u 显示进程的所属用户
实例:
1、树状图的形式显示进程的pid
2、树状图的形式显示进程的用户id
服务(service)管理
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如MySQL、sshd、防火墙等,因此我们又称为守护进程,是Linux中非常重要的知识。
原理图:
service管理治理
service 服务名 [start | stop | restart | reload | status]
CentOS 7后的指令是:systemctl
实例:
查看当前防火墙的状况,关闭防火墙和重启防火墙。
关闭防火墙:
重启防火墙:
重启远程服务:
注意细节:
(1)关闭或者启用防火墙后,立即生效。[teInet 测试 某个端口即可]
(2)这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
(3)如果希望设置某个服务自启动或关闭永久生效,要使用setup指令。
查看服务名
setup指令
这里可以设置哪些服务永久生效!
注:tab是切换键,空格是是否选择,Enter是确定,箭头表示上下
或者使用systemctl list-unit-files指令也可以查看
服务的运行级别
跟运行级别差不多,CentOS6中有7个服务级别,而CentOS7中只有两个而已了(3和5)
查看当前运行级别指令:
N表示当前运行的级别
vim /etc/inittab指令可以查看系统的全部级别数!
动态监控进程
top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
基本语法:
top [选项]
选项说明:
-d 秒数 :指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令
-i 使top不显示任何闲置或僵死进程
-p 通过指定监控进程ID来仅仅监控某个进程的状态。
实例:
1、监视特定用户
top:输入此命令,按回车键,查看执行的进程。
u :查看指定用户的进程
2、终止指定的进程。
top:输入此命令,按回车键,查看执行的进程。
k : 然输入k 回车,再输入要结束的进程ID
3、指定系统状态更新时间(每十秒自动更新一次,默认是三秒)
监控网络状态
查看系统网络情况netstat
基本语法:
netstat [选项]
选项说明:
-an 按一定顺序排列输出
-p 显示哪个进程在调用
实例:
查看所有的网络服务。
查看服务名为sshd的服务信息。
RPM与YUM
RPM包的管理
简介:
一种用户互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似Windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用suse、Redhat、CentOS 等等。
rpm包的简单查询指令
查询已安装的rpm 列表
rpm -qa | grep XXX
查找所有已安装rpm
查找火狐浏览器安装包
查看安装时间
查看软件位于哪个文件中
根据文件目录,查看该目录下安装有哪些软件:
rpm -qf 文件全路径名
卸载rpm包
基本语法:
rpm -e RPM包名称
强制删除指令:
rpm -e nodes 软件名
实例:
删除Firefox软件包。
注:已卸载成功!!!
安装rpm包
基本语法
rpm -ivh rpm包全路径名称
参数说明:
i=install 安装
v=verbose 提示
h =hash 进度条
实例:
安装火狐浏览器。
博客实例:
https://blog.csdn.net/ligaofeng/article/details/39079749
YUM包管理
简介:
Yum是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是Linux系统上可以连上网络。
yum的基本指令
查询yum服务器是否有需要安装的软件
yum list | grep XXX (描述:软件列表)
安装指定的yum包
yum install XXX (描述:下载安装)
实例:安装Firefox浏览器
默认点击y!
JavaEE定制篇
搭建JavaEE开发环境
jdk安装
直接用yum指令来安装(相关依赖、变量啥的,一般解决好了!)
实例:
编写一个简单的hello.java程序。输出HelloWord!语句。
新建一个hello.java文件,vim hello.java打开该文件,编写如下语句:
MySQL安装
Tomcat安装
实例:
运行Tomcat服务器。
博客:https://blog.csdn.net/qq_33621542/article/details/88417969