标题文件系统目录结构

总结:
(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

Linux_Study相关推荐

  1. 《LINUX设备驱动程序》学习之与硬件通信(并行接口)实例

    在学习这一节内容时,我根据书本写了一个并口驱动程序,然后用一个LED发光二极管.一个电阻以及一些导线和电脑主机的并口连接了一条回路,最后通过测试程序控制LED灯的开启.关闭,验证了并口驱动程序的正确性 ...

  2. L1D1:嵌入式Linux C语言开发工具及基础命令

    嵌入式Linux C语言开发工具及基础命令 一.ubuntu环境搭建 请自行准备VMware workstation15安装包 及 ubuntu18.04.iso镜像文件.可参考链接:VMware W ...

  3. 【进程、线程和进程间通信】(三)进程间通信

    进程间通信 一.进程间通信 1.进程间通信方式 2.无名管道 (1)管道创建:pipe (2)特点 (3)读写特性 (4)示例代码 pipe.c pipe2.c 3.有名管道 (1)管道创建:mkfi ...

  4. I/O多路转换之select与select服务器

    select高效的原因 首先要知道一个概念,一次I/O分两个部分(①等待数据就绪 ②进行I/O),减少等的比重,增加I/O的比重就可以达到高效服务器的目的.select工作原理就是这个,同时监控多个文 ...

  5. 【项目】简易http服务器流程图分析

    看这篇博客前先看-http协议基础知识总结:http://blog.csdn.net/llzk_/article/details/70513739 http服务器是基于C/S模式(客户端/服务器),应 ...

  6. UVC摄像头嵌入式Linux应用

        由于是第一次接触UVC,所以内容会比较杂.文章内容多为参考整合. 参考链接: [1]添加内核支持部分:https://blog.csdn.net/u010034969/article/deta ...

最新文章

  1. 用 tap/tun 做虚拟机的网卡
  2. idea 引入oracle驱动并打包_IDEA下从零开始搭建SpringBoot工程
  3. iphone xh5打开ppt预览_教你如何用iPhone拍全景照片
  4. 这又何止呢的openeim002
  5. linux系统进程类型不包括,linux期末考试练习题
  6. java数组转对象_java将对象数组列表转换为POJO
  7. redux相关学习资源
  8. android 灰色向白色渐变,iPhone-iOS的白色到透明渐变层为灰色
  9. Java学习笔记(三):数组
  10. python相机拍照显示_Python无法从Raspberry Pi相机以最高分辨率拍照
  11. 各种格式ANSI,UTF8,Unicode,Unicode BigEndian的解释
  12. 读书笔记:《浪潮之巅》
  13. c语言写uart协议实时读写,串口Xmodem协议的发送数据 程序
  14. vscode 初始化HTML结构
  15. 爬虫,第十次实战之线程池(梨视频下载)
  16. 谷歌浏览器查找页面内容快捷键
  17. 我的世界(18)-精英怪物(InfernalMobs插件)
  18. 算法导论------递归算法的时间复杂度求解
  19. 开源协议 - 几张开源协议比较
  20. 【计算机网络】思科实验(4):综合实验作业之办公室的跨VLAN通信

热门文章

  1. SQL总结之动态SQL(MSSQL)
  2. 数据权限设计的思考(1)
  3. linux变量inode,Linux inode cache分析
  4. 【报告分享】2021抖音电商商家经营手册-抖音电商(附下载)
  5. 怎样让 pdf 文件直接下载而非在浏览器里打开
  6. 2023-03-31 monetdb-编译-初始化和启动
  7. 对于应用系统服务器宕机的思考
  8. mysql smallint int_mysql中tinyint、smallint、int、bigint的区别
  9. Excel催化剂开源第12波-VSTO开发遍历功能区所有菜单按钮及自定义函数清单
  10. CH1 经济学十大原理