一, 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 显示后台进程运行的参数
user | PID | %CPU | %MEN | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
用户名 | 进程 | 占用的CPU | 占用内存 | 使用的虚拟内存 | 使用物理内存情况 | 使用的终端 | 进程的状态 | 进程的启动时间 | 占用cpu总时间 | 进程执行时的命令行 |
进程的状态 | s | r |
---|---|---|
休眠 | 运行 |
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 | /boot | init进程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;(刷新权限)