Linux开山篇

一, Linux目录结构

Linux的文件系统是采用层式的树状目录结构,再次结构中的最上层是根目录 / ,然后再次目录下在创建其他的目录。

在Linux世界里,一切皆文件。

1./bin:存放着最经常使用的命令。

2./sbin:存放着系统管理员使用的系统管理程序。

3./home:存放普通用户的主目录,在Linux中的每个用户都有一个自己的目录,一般改目录名是以用户的账号命名的。

4./root:该目录为系统管理员,也成为超级权限者的用户主目录。

5./boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

6./proc:这个目录是一个虚拟目录,他是系统内存的映射,访问这个目录来获取系统信息。

7./srv:service的缩写,该目录存放一些服务启动之后需要提取的数据。

8./sys:该目录下安装了2.6内核中新出现的一个文件系统。

9./tmp:这个目录是用来存放一些临时文件的。

10./dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储。

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

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

13./opt:这是给主机额外安装软件所摆放的目录。如安装oracle数据库就可以放到该目录下。

14./user/local:这也是给主机安装软件的目录。一般是通过编译源码方式安装的程序。

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

16./selinux:安全子系统,能控制程序只能访问特定文件。

总结:

linux目录中有且只有一个根目录/
linux各个目录存放好内容是规划好的,不要乱放文件
linux是以文件的形式管理我们的设备,因此linux系统,一切皆文件。

二,远程访问

如果希望安装好的远程软件可以远程访问Linux系统的话,需要一个前提,就是linux启用了sshd服务,该服务会监听22号端口。

三,vi和vim编辑器

文本编辑器

vi和vim的三种常见模式
1.正常模式

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

vim打开一个文档就直接进入一般模式。可以上下左右移动光标,可以删除字符,删除整行处理文档内容,也可以使用复制粘贴来处理你的文件数据。

2.插入模式/编辑模式

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

i , o ,a ,r 按下就可以进入编辑模式。

3.命令行模式

可以提供你的相关指令,完成读取,存盘,替换,离开vim,显示行号都在此模式下完成。
三种模式的转换

在这里插入图片描述

四,常用编辑快捷键

1.拷贝当前行 yy,拷贝当前行像下的5行,5yy,并粘贴。
2.删除当前行 dd,删除当前向下的5行, 5dd。
3.在文件中查找某个单词[命令行下 /关键字 ,回车 查找 , 输入n就是查找下一个]
4.设置文件的行号,取消文件的行号。[命令行下 :set nu 和 :set nonu]
5.编辑 /etc/profile 文件,使用快捷键到文档的最末行G和第一行gg,正常模式下。
6.在一个文件中输入hello,然后又撤销这个动作 ,在正常模式下输入u。
7.编辑  /etc/profile 文件,并将光标移动到 第20行 shift +g
	1)显示行号 :set nu
	2)输入20这个数
	3)shift +g

五,开机,重启,用户登录注销

关机和重启

shutdown

shutdown - h now: 立即关机
 
shutdown -h 1:   一分钟后关机

shutdown -r now:  立即重启

halt 直接使用,等价于关机

reboot 重启

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

当关机或重启时,都应该先执行sync命令,吧内存数据写入硬盘,防止数据丢失。

用户登录和注销

普通用户登录,可以用su -用户名命令来切换成系统管理员身份。

输入logout命令即可注销用户

六,用户管理

linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,

然后以这个账号的身份进入系统。

linux的用户至少要属于一个组。

1.添加用户
添加一个用户aa:  useradd aa
添加用户并指定家目录: useradd -d /home/dog aa
2.给用户指定/修改密码
passwd aa
3.删除用户
删除用户,保存家目录    userdel aa
删除用户aa以及用户主目录   userdel -r aa

删除用户时,一般不会删除家目录

4.查询用户信息
查询root信息   id root
当用户不存在,返回无此用户。
5.切换用户

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

su - root

高权限切换到低权限不需要密码,反之需要。

当需要返回到原来的用户时,使用exit指令。

6.用户组

系统可以对有共性的多个用户进行统一管理。

增加组  groupadd 组名
删除组  groupdel 组名
增加用户直接加上组   useradd -g 用户组 用户名
修改用户组     usermod -g 用户组 用户名
7.etc下的文件
/etc/passwd 文件

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

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

/etc/shadow 文件

口令的配置文件

每行含义:

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

/etc/group 文件

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

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

七,实用指令

1.制定运行级别

运行级别说明

0:关机

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

常用的运行级别是3和5,要修改默认的运行级别可以改文件/etc/inittab 的id:5:initdefault:这一行中的数字

2.切换到制定运行级别的指令
init 0

面试题:

如何找回root密码,如果我们不小心,忘记root密码,怎么找回。

思路:进入到单用户模式,然后修改root密码。因为进入单用户模式,root用户不需要密码。

3.帮助指令
man获得帮助信息

语法:

man [命令或配置文件]

man ls 
help指令

语法:

help 命令(获得shell内置命令的帮助信息)

help cd
4.文件目录类
1)pwd 指令
基本语法
	pwd (显示当前工作目录的绝对路径)
2)ls指令
基本语法:
	ls 【选项】 【目录或者文件】
常用选项
	-a:显示当前目录所有的文件和目录,包括隐藏的。
    -l:以列表的方式显示信息
    
3)cd 指令
基本语法:
	cd 【参数】(切换到指定目录)
常用参数:
	绝对路径和相对路径
	如何理解绝对路径和相对路径
		当前工作目录是/root,我们希望进入到/home下
		绝对路径:/home 从根目录开始定位
		相对路径:../home 从当前工作目录开始定位到需要的目录去
		
	cd:回到自己的家目录
	cd..回到当前目录的上一级目录
4)mkdir 指令
mkdir指令用于创建目录
	基本语法:
		mkdir:【选项】 要创建的目录
     常用选项:
     	-p:创建多级目录
    emp:创建/home/animal/cat
    mkdir -p /home/animal/cat
5)rmdir 指令
rmdir指令删除空目录
	基本语法:
		rmdir:【选项】要删除的目录
    **rmdir删除的是空目录,如果目录下有内容就无法删除。
    如果要删除非空目录,就要使用rm -rf 要删除的目录
6)touch指令
touch指令创建空文件
基本语法:
	touch 文件名称
实例:创建一个空文件 hello.txt
touch hello.txt
7)cp 指令
cp 拷贝文件到指定目录
基本语法:
	cp 【选项】 source dest
常用选项
	-r 递归复制整个文件夹

案例1:将/home/aaa.txt拷贝到/home/bbb 目录下【拷贝单个文件】

在这里插入图片描述

案例2:将/home/test整个目录拷贝到/home/zwj目录

在这里插入图片描述

细节:强制覆盖不提示的方法 \cp -r …

8)rm 指令
rm 指令移除【删除】 文件或目录
基本语法:
	rm 【选项】 要删除的文件或目录
常用选项
	-r:递归删除整个文件夹
	-f:强制删除不提示
常用:rm -rf
9)mv 指令
mv 移动文件与目录或重命名
基本语法:
	mv oldFileName newFileName  重命名
	mv /temp/movefile  /targetFolder  移动文件

案例1:将/home/aaa.txt 文件重命名为 pig.txt

在这里插入图片描述

案例2:将/home/pig.txt 文件移动到/root目录下

在这里插入图片描述

10)cat 指令
cat 查看文件内容,是以只读的方式打开
基本语法:
	cat 【选项】 要查看的文件
常用选项:
	-n:显示行号
**cat只能浏览文件,不能修改文件,为了浏览方便,一般会带上管道命令 |more
cat 文件名  |more 【分页浏览】

案例:查看/etc/profile 文件内容,并显示行号

在这里插入图片描述

11)more 指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按照页显示文本文件的内容。
基本语法:
	more 要查看的文件
快捷键:
space:下翻页
Enter:下一行
q:立刻离开more,不再显示文件内容
ctrl+F:像下滚动一个屏幕
ctrl+B:返回上一瓶
=:输出当前的行号
:f:输出文件名和当前的行号
12)less 指令

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

基本语法:
	less 要查看的文件
快捷键 :
	空白键 下翻页
	pageup 上翻页
	/字符串  n  搜索
	q 离开less这个程序
13)>指令 和 >>指令
> 输出重定向:会将原来的文件的内容覆盖
>> 追加:不会覆盖原来文件的内容,而是追加到文件的尾部

基本语法:
	1)ls -l > 文件  列表的内容写入文件a.txt中。覆盖(如果该文件不存在,就创建该文件)
	2)ls -al >>文件  列表的内容追加到文件aa.txt的末尾
	3)cat 文件1 > 文件2 (将文件1的内容覆盖到文件2)
	4)echo 内容 >>文件
14)echo 指令

echo 输出内容到控制台

基本语法:
	echo 【选项】 【输出内容】

案例:使用echo指令输出环境变量,输出当前的环境路径。

在这里插入图片描述

15)head 指令

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

基本语法:
	head 文件 查看文件前10行内容
	head -n 5 文件 查看文件前5行内容

案例:查看/etc/profile的前面5行代码

ctrl +c 退出编辑模式

在这里插入图片描述

16) tail 指令

tail用于输出文件中末尾部分的内容,默认情况下tail指令显示文件的后10行内容。

基本语法:
	1)tail 文件  查看文件后10行内容
	2)tail -n 5 文件 查看文件后5行内容
	3)tail -f 文件 实时追踪该文档的所有更新

案例1:查看etc/profile 最后5行的代码

在这里插入图片描述

17) ln 指令

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

基本语法:
	ln -s【源文件或者目录】 【软链接名】  给源文件创建一个软链接

案例:在/home下创建一个软链接linktoroot,连接到/root目录

在这里插入图片描述

18)history 指令

查看已经执行过历史命令,也可以执行历史命令

基本语法:
	history 查看已经执行过的历史命令
	history 10 显示最近实用的10条历史命令
	!178           执行编号为178的命令

在这里插入图片描述

5.时间日期类
1)date指令显示当前时间
1)date  显示当前时间
2)date +%Y 显示当前年份
3)date +%m 显示当前月份
4)date + %d 显示当前是哪一天
5)date +"%Y-%m-%d %H:%M:%S" 显示年月日时分秒

在这里插入图片描述

2)date 指令-设置日期
基本语法:
	date -s 字符串时间

案例:设置系统当前时间,比如设置成2018-10-10 11:22:22

在这里插入图片描述

3)cal 指令
查看日历指令
基本语法:
	cal 【选项】 不加选项,显示本月日历	

案例1:显示当前日历

在这里插入图片描述

案例2:显示2020年日历

在这里插入图片描述

6.搜索查找类
1)find 指令

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

基本语法:
	find 【搜索范围】 【选项】
选项说明:
	-name:指定按照文件名查找
	-user:查找指定用户名的所有文件
	-size:按照指定的文件大小查找文件

案例:查找整个linux系统下大于20m的文件 +n大于,-n小于,n等于

在这里插入图片描述

案例:查询linux系统下所有 .txt文件

在这里插入图片描述

2)locate 指令

locate指令不需要遍历整个文件系统,查询速度比较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

基本语法:
	locate 搜索文件
**
	由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
3)grep指令和管道符号 |
grep 过滤查找,管道符 | ,标识将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:
	grep 【选项】 查找内容 源文件
常用选项
	-n:显示匹配行及其行号
	-i:忽略字母大小写

案例:在hello.txt文件中,查找yes 所在行,并显示行号

在这里插入图片描述

7.压缩和解压类
1)gzip /gunzip 指令

gzip用于压缩,gunzip 用于解压

基本语法:
	gzip 文件 将文件压缩为.gz文件
	gunzip 文件.gz 解压文件命令

案例:将/home下的hello.txt压缩,在解压。

在这里插入图片描述

用gzip命令压缩的文件,原来的文件会消失

2)zip/unzip 指令

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

基本语法:
	zip 【选项】 xxx 将要压缩的内容  
		-r:递归压缩,压缩目录
	unzip 【选项】xxx.zip 解压文件
		-d:指定解压后文件存放的目录

案例:将home下的所有文件进行压缩成 1.zip,并将1.zip解压到/root目录下

在这里插入图片描述

3)tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。

基本语法:
	tar:【选项】 xxx.tar.gz 打包的内容 打包目录,压缩后的文件格式.tar.gz
选项说明:
	-c:产生.tar打包文件
	-v:显示详细信息
	-f:指定压缩后的文件名
	-z:打包同时压缩
	-x:解包.tar文件

案例1:压缩多个文件,将/home目录下的 hello.txt和mydate.txt压缩成a.tar.gz

在这里插入图片描述

案例2:将/home的文件夹压缩成 home.tar.gz

在这里插入图片描述

案例3:将a.tar.gz解压到/root/下

在这里插入图片描述

指定解压到的那个目录,事先要存在,否则报错。

八,组管理和权限管理

1.Linux 组基本介绍

在linux中每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所在组,其他组的概念。

用户家目录的概念
/home/
目录下有各个创建的用户对应的家目录,当用户登录时,会自动的进入到自己的家目录。
2.文件/目录所有者

一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者。

1)查看文件的所有者
指令:ls -ahl
应用:创建一个组police,在创建一个用户tom,将tom放在police组,然后使用tom来创建一个文件ok.txt,看看情况如何。

在这里插入图片描述

在这里插入图片描述

2)修改文件所有者
指令:chown 用户名 文件名
应用案例:使用root创建一个文件 apple.txt,然后将其所有者修改成tom

在这里插入图片描述

3)组的创建
基本指令:
	groupadd 组名
应用:创建一个组mm
创建一个用户 jack,并放入mm

在这里插入图片描述

4)文件/目录 所在组

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

查看文件或目录所在组

ls -ahl

修改文件所在组

chgrp 组名 文件名

实例:使用root 用户创建文件 orange.txt 看看当前这个文件属于哪个组,然后将这个文件所在组修改到police组。

在这里插入图片描述

5)其他组

除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。

6)改变用户所在的组

在添加用户时,可以指定该用户的组,同样的用root的管理权限可以改变某个用户所在的组。

改变用户所在组

usermod -g 组名 用户名
usermod -d 目录名 用户名        改变该用户登录的初始目录

实例:创建一个组a将tom这个用户从原来的police组,修改到a组。

在这里插入图片描述

7)权限的基本介绍

ls -l中显示的内容:

在这里插入图片描述

0-9位说明
1)第0位确定文件类型(d,-,1,c,b)
2)第一到三位确定所有者(该文件的所有者)拥有该文件的权限。
3)第4-6位确定所属组拥有该文件的权限 
4)第7-9位确定其他用户拥有该文件的权限
5) 1代表的:如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录个数
6)第一个root代表所属用户
7)第二个root代表所属的组
8)4479 代表文件大小,如果是目录4096
9)Nov 6 2016 文件最后修改时间  
10)wqetrc 文件或目录名
8)rwx权限详解

rwx作用到文件

r 可以读取查看
w 可以修改但是不能删除,删除一个文件的前提是对该文件的目录有写的权限,才能删除该文件。
x 可以被执行

rwx作用到目录

r 可以读取查看目录内容
w 可以修改,目录内创建+删除+重命名目录
x 可以进入该目录
9)文件及目录权限实际案例

ls -l 中显示的内容如下:

-rw-r-----   1 root root     1786 Jun 23  2017 sudo.conf

在这里插入图片描述

10)修改权限 -chmod
①符号变更权限
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w  文件目录名
chmod a-x 文件目录名
u:所有者 g:所有组 o:其他人  a:所有人

案例1:

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

在这里插入图片描述

案例2:给a.txt的文件所有者除去执行的权限,增加组写的权限

在这里插入图片描述

案例三:给a.txt的所有用户添加读的权限

在这里插入图片描述

②数字变更权限
r=4 
w=2 
x=1
chmod u=rwx,g=rx,o=x 文件目录名
等同于:chmod 751 文件目录名

案例:将b.txt文件的权限修改成rwxr-xr-x,使用数字的方式实现

在这里插入图片描述

11)修改文件所有者
chown newowner file  改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组

-R 如果是目录,则让其下面的所有子文件或目录都递归生效

案例1:将/home/a.txt 文件的所有者修改为tom

在这里插入图片描述

案例2:将/home/kkk目录下的所有文件和目录的所有者都修改成tom

在这里插入图片描述

12)修改文件所在组-chgrp
chgrp newgroup file  改变文件的所有组

案例1:将/home/a.txt文件所在组修改成mm

在这里插入图片描述

案例2:将/home/kkk 目录下的所有文件和睦路的所在组都修改成kkk

在这里插入图片描述

九,crond任务调度

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

分类:

​ 1.系统工作:有些重要的工作必须周而复始的执行。如病毒扫描。

​ 2.个别用户工作:例如对mysql数据库的备份。

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

案例:

设置任务调度文件:/etc/crontab
设置个人任务调度: 执行crontab -e 命令
接着输入任务到调度文件
如:*/1 * * * * ls -l /etc/>/tmp/to.txt
意思是说,每小时的每分钟执行ls -l /etc/>/temp/to.txt

参数说明:

项目含义范围
第一个*一小时当中的第几分钟0-59
第二个*一天当中的第几个小时0-23
第三个*一个月当中的第几天1-31
第四个*一年当中的第几个月1-12
第五个*一周当中的星期几0-7
特殊符号含义
*代表任何时间
代表不连续的时间
-代表连续的时间范围
*/n代表没隔多久执行一次 */10每隔十分钟执行一次

特定时间执行任务案例

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

案例:每隔一分钟就将当前的日期信息,追加到/tmp/mydate文件中

步骤:

1 编写一个文件 /home/mytask.sh
date>> /tmp/mydate
2 给 mytask.sh一个可以执行的权限
chmod 744 /home/mytask.sh
3 crontab -e
4 */1 * * * /home/mytask.sh
5 success

在这里插入图片描述

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

1 先编写一个文件 /home/
mytask2.sh
date>> /tmp/mycal
cal>> /tmp/mycal
2 给 mytask2.sh一个可以执行的权限
chmod 744 /home/mytask2.sh
3 crontab -e
4 */1 * * * * /home/mytask2.sh
5 success

在这里插入图片描述

案例3:每天凌晨2:00将mysql数据库testdb,被分到文件mydb.bak中。

1 先编写脚本文件 /home/task.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
2.给task.sh一个可执行权限
chmod 744 task.sh
3.crontab -e
4 0 2 * * * /home/task.sh
5 success

十,Linux磁盘分区,挂载

1.分区方式
1)mbr分区
1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要站一个主分区
4.最大只支持2TB,但拥有最好的兼容性
2)gtp分区
1.支持无限多个主分区
2.最大支持18EB的大容量
3.windows7 64位以后支持gtp
2.windows下的磁盘分区
1.主分区
2.扩展分区
    逻辑分区
    逻辑分区
3.Linux分区

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

2)linux 采用了一种叫做载入的处理方法,他的整个文件系统中包含了一整套文件和目录,且将一个分区和一个目录联系起来。这是要载入的一个分区将使它的存储空间在一个目录下获得。

lsblk -f  查看系统的分区和挂载的情况

在这里插入图片描述

vda vda1 代表分区情况
ext4     分区类型
 59d9ca7b-4f39-4c0c-9334-c56c182076b5 唯一标识分区的40位不重复字符串
 / 挂载点 表示该硬盘挂载在哪个目录上

在这里插入图片描述

4.磁盘情况查询
1) 查询系统磁盘整体使用情况
基本语法:
	df -h

在这里插入图片描述

2)查询指定目录的磁盘占用情况
基本语法:
	du -h  /目录
	查询指定目录的磁盘占用情况,默认为当前目录
	-s 指定目录占用大小汇总
	-h 带计量单位
	-a 含文件
	--max-deph=1 子目录深度
	-c 列出明细的同时,增加汇总值

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

在这里插入图片描述

3)磁盘情况-工作实用指令

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

在这里插入图片描述

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

在这里插入图片描述

3)统计/home文件夹下文件的个数,包括自文件夹里面的

在这里插入图片描述

4)统计文件夹下目录的个数,包括子文件夹里面的

在这里插入图片描述

5)以树状显示目录结构

在这里插入图片描述

在这里插入图片描述

十一,网络配置

目前我们的网络配置采用的NAT。

1.查看windows环境的vmnet8网络配置

在这里插入图片描述

2.ping 测试主机之间网络连通
基本语法:
	ping 目的主机  测试当前服务器是否可以连接目的主机

实例: 测试当前服务器是否可以连接百度

在这里插入图片描述

3.linux网络环境配置

直接修改配置文件来指定IP,并可以连接到外网,

vim /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

修改后,一定要 重启服务

service newwork restart
reboot 重启

十二,进程管理

1.进程的基本介绍

1)在linux中,每个执行的程序都成为一个进程,每个进程都分配一个ID号。

2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。

3)每个进程都可能以两种方式存在,前台与后台,所谓前台进程就是用户目前屏幕上可以进行操作的。

后台进程就是实际在操作,但由于屏幕上无法看到进程,通常使用后台方式执行。

4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

2.显示系统执行的进程
ps 查看进程使用的指令
常用  ps -aux
ps -a 显示当前终端的所有进程
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数	

在这里插入图片描述

userPID%CPU%MENVSZRSSTTYSTATSTARTTIMECOMMAND
用户名进程占用的CPU占用内存使用的虚拟内存使用物理内存情况使用的终端进程的状态进程的启动时间占用cpu总时间进程执行时的命令行
进程的状态sr
休眠运行
3.实例

要求:以全格式显示所有的进程,查看进程的父进程。

在这里插入图片描述

ps -ef 全格式显示当前所有进程
-e 显示所有进程
ps -ef | grep xxx
4.终止进程

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

使用kill命令来完成此项任务。

kill 【选项】 进程号  通过进程号杀死进程
killall    进程名称   通过进程名称杀死进程,也支持通配符,这在系统因负载过大二变的很慢时很有用。
-9 :表示强迫进程立即停止

案例1:踢掉某个非法登录用户

在这里插入图片描述

kill 9729

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

kill 2049

案例3:终止多个gedit编辑器 killall,通过进程名称来终止进程

killall getdit

案例4:强制杀掉一个终端

kill -9 4090
5.查看进程树
基本语法:
	pstree [选项] 可以更加直观的来看进程信息
常用选项:
	-p:显示进程的PID
	-u:显示进程的所属用户

在这里插入图片描述

6.服务管理

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如mysql,

sshd,防火墙,因此我们又称为守护进程,是linux中非常重要的知识点。

1)service 管理指令
service 服务名 [start | stop | restart | reload | status]
在centos7.0以后,不再使用service,而是systemctl
2)查看服务名
/etc/init.d 

在这里插入图片描述

3)服务运行级别
查看或修改默认级别    vim  /etc/inittab
linux 系统有7种运行级别:常用的级别是3和5
运行级别0 系统停机状态
运行级别1 单用户工作状态   root权限,用于系统维护,禁止远程登录
运行级别2 多用户状态无网络
运行级别3 多用户有网络
运行级别4 保留
运行级别5 图形化界面
运行级别6 重启
4)开机流程说明
开机bios/bootinit进程1运行级别运行级对应的服务
5)chkconfig 指令

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

基本语法
	1)查看服务 chkconfig   --list | grep xxx
	2)chkconfig 服务名  --list

在这里插入图片描述

chkconfig 重新设置服务后自启动或关闭,需要重启机器reboot才能生效

6)动态监控进程

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

基本语法:
	top 选项
	-d 秒数  指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的
	-i    使top不显示任何闲置或者僵死进程
	-p		通过指定监控进程ID来仅仅监控某个进程的状态
7)查看系统网络情况
基本语法:
	netstat [选项]
	netstat -anp
选项说明:
	-an 按一定顺序排列输出
	-p 显示哪个进程在调用

在这里插入图片描述

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

在这里插入图片描述

十三,RPM和YUM

1.rpm

一种用于互联网下载包的打包和安装工具,他包含在某些Linux分发版中。他生成具有.rpm拓展名的文件。rpm类似于windows的setup.exe,这一文件格式名成虽然打上了RedHat的标志,但是理念是想通的。

2.rpm包的简单查询指令

查询已经安装的rpm列表

rpm -qa | grep firefox 查看当前linux有没有安装firefox

在这里插入图片描述

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标识通用
4.rpm包的其他查询指令
rpm -qa  查询所安装的所有rpm软件包
rpm -qa | more [分页显示]
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名    查询软件是否安装
rpm -q firefox
rpm -qi 软件包名   查询软件包信息
rpm -ql 软件包名    查询软件包中的文件
rpm -ql firefox   查询rpm包的文件安装到哪里去了
rpm -qf 文件全路径名   查询文件所属的软件包
rpm -qf /etc/passwd
5.卸载rpm包
基本语法:
	rpm -e RPM包的名称
	rpm -e firefox
	rpm -e -nodeps firefox 连带依赖一起删除,否则有其他软件包依赖于该软件,该软件会删除失败
6.安装rpm包
基本语法:
	rpm -ivh rpm包全路径名称
参数说明:
	i 安装
	v 提示
	h 进度条
7.yum

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

查询yum服务器是否有需要安装的软件
yum list | grep xx         软件列表
安装指定的yum包
yum install xxx            下载安装

实例:安装firefox

1.先查看yum服务器是否有firefox

2.安装

在这里插入图片描述

在这里插入图片描述

十四,搭建java环境

如果要在linux上进行javaee开发,我们需要安装如下软件

mysql

jdk

eclipse

tomcat

1.安装jdk
1)查看是否已经安装过jdk

在这里插入图片描述

2)查看jdk软件包列表

在这里插入图片描述

3)安装jdk

在这里插入图片描述

4)查看是否安装成功

在这里插入图片描述

5)配置环境变量

jdk默认安装路径:/usr/lib/jvm

在这里插入图片描述

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
6)执行如下命令,让文件生效
source /etc/profile
在catalina.sh的第一行增加 JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom 即可。

在这里插入图片描述

7)如果提示没有javac命令

在这里插入图片描述

8)成功

在这里插入图片描述

2.安装Tomcat
1)将tomcat压缩包拖动到/opt/目录下

在这里插入图片描述

2)解压到/opt/

在这里插入图片描述

3)启动tomcat ./startup.sh

在这里插入图片描述

4)开放端口8080 ,这样外网才能访问到tomcat
3.安装mysql
安装
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum -y install mysql57-community-release-el7-10.noarch.rpm

yum -y install mysql-community-server

systemctl start  mysqld.service

systemctl status mysqld.service

grep "password" /var/log/mysqld.log
此时就获取到了数据库的初始密码

mysql -uroot -p

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

yum -y remove mysql57-community-release-el7-10.noarch
修改mysql默认编码
查看数据库默认编码
show variables like 'character%';

修改编码
vim /etc/my.cnf

加入代码块:
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

重启mysql服务
service mysqld restart
云服务器mysql连接到本地MySQL可视化工具
mysql
	 set global validate_password_policy=LOW;
	 grant all privileges  on *.* to root@'%' identified by "password"; (root是用户,password登录密码)
	 flush privileges;(刷新权限)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值