Linux学习笔记1:虚拟机的安装
1、安装vm workspace pro12(傻瓜式安装即可)
2、创建虚拟机
- 配置选典型
- 安装客户机操作系统,选择稍后安装
- 选择系统:这里是安装的Linux的centOS
- 默认20g就好,选择拆分为多个文件好管理
- 完成(如果不能打开配置文件,就以管理员身份运行vmware)
3、还没有设置完成,还需要继续
- 点击编辑虚拟机
- 内存2g
- 处理器:2处理器2核
- 网络适配器:选择NAT模式
- 面试题:连接模式的区别(图片)
4、安装centOS
说明:安装过程中,可以通过control+alt在虚拟机和本机之间来切换鼠标
- 点击左上角的虚拟机,点击设置,点击CD,选择镜像就ok
- 选择好镜像,点击开启此虚拟机
- 进入欢迎界面,默认选择第一个回车(Tab选择,enter确认)
- Disc Found要跳过,花费时间太久
- 开发中,要生成复杂密码:网上搜索密码生成工具(我的root账号用的密码是xian123451)
- 硬盘分区:自定义分区
- 先分/boot200M,然后再分swap,2g,剩余的都分配根分区/
- 之后格式化,将修改写入磁盘
- 制定系统软件、选择自定义(只需要选择基本系统里面的“兼容程序库”、和“基本”,应用程序里面的”互联网浏览器“,桌面里面除了第一个都选,语言选中文)剩余的根据自己需求自己安装
- 完成配置,安装CentOS(20min)
- 登录后,不必创建用户名和密码,后续会学习用户管理,现在先用root用户登录
- 现在是关闭kdump(减少内存占用),在开发中要开启
5、终端和联网
- 打开终端:右键桌面,在终端中打开
- 联网:右上角计算机图标,system eth0
6、安装vmtools
- 点击vm的虚拟机,安装vm
- 安装后重启centos
- 终端:reboot
- 这时就可以实现两个系统的复制粘贴操作了
- 添加共享文件夹
- vm的虚拟机,设置,选项,共享文件夹
- 在centos里面的mnt/hgfs/
Linux学习笔记2:Linux目录总结
1、有且只有一个根目录
2、目录存放什么是规划好的,按规定来(一些重要的目录文件)
目录名称 | 解释说明 | 存放内容 |
---|---|---|
/bin | 即Binary,(/usr/bin、/usr/local/bin) | 常用的命令 |
/boot | 存放启用Linux使用的核心文件,包括链接文件和镜像文件 | |
/home | 存放普通用户的主目录 | |
/root | 管理员用户的主目录 | |
/media | linux把识别的设备挂载到这个目录 | |
/mnt | 挂载别的文件系统,如d:/myshare | |
/var | 存放不断扩充的东西,经常修改的放在这里,如各种日志文件 |
3、Linux中,一切皆文件
4、Linux目录树
Linux学习笔记3:vi和vim
1、介绍
- 所有Linux系统,都会内建vi文本编辑器
- Vim编辑器,vi的增强版本。
2、三种模式和相互转换
-
正常模式(用Vim打开文档时,直接进入正常模式),可以进行的操作如下:
- 快捷键
- 方向键移动光标
- 复制粘贴
- 删除字符、删除整行
-
编辑模式。可以进行的操作如下
- 可以输入内容
-
命令行模式。可以进行的操作如下
- 顾名思义,可以输入各种命令
-
相互转换
3、常用快捷键
-
首先在终端中输入
vim 文件名
,如果文件存在就打开,不存在就创建。 -
拷贝粘贴:
yy
---拷贝当前行;nyy
---拷贝当前向下n行;p
---粘贴 -
删除:
dd
---删除当前行;ndd---删除当前向下n行 -
查找:
/关键字+回车
---查找,继续回车
查找下一个关键字 -
行号:
:set nu
---添加行号;:set nonu
---取消行号 -
撤销:编辑模式下的输入了文字,
esc
到正常模式后,u
---撤销 -
编辑/etc/profile文件
- [G]---到文档末行;[gg]---到首行
- 将光标移动到第n行---
先设置行号,输入n后,shift+g
Linux学习笔记4:关机、重启、用户登录注销
1、关机
shutdown -h now
---->立即关机halt
--->立即关机shutdown -h 1
--->一分钟后关机
2、重启
reboot
--->立即重启shutdown -r now
--->立即重启
3、注意:
关机和重启前一半都需要执行sync
--->将内存数据写入磁盘,放置数据丢失
4、用户的登录与注销
- 正常情况下,尽量少用root用户登录,避免操作失误。
- 普通用户登录时,用
su -用户名
命令来切换成管理员身份 logout
--->注销用户
Linux学习笔记5:用户管理
1、Linux用户管理示意图
- 说明:
- Linux是一个多用户、多任务的操作系统
- 先想管理员申请账号,才可以进入系统
- 用户至少属于一个组
2、添加用户
-
useradd [选项] 用户名
- 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:
useradd lzx
,在/home
目录中就会出现名为lzx的文件夹
。 - 也可以通过
useradd -d 指定目录 新用户名
的方式,给新建用户指定家目录 - 当用户登录后,所在的目录就是
/home/和用户名同名的目录或指定目录
- 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:
-
给用户设置密码:
- 我
passwd 用户名
+回车
- 工作中,密码尽量复杂,可以选择工具来生成
- 我
2、删除用户
userdel 用户名
----删除用户userdel -r 用户名
----删除用户,并删除家目录- 一般保留家目录
3、查询用户
id 用户名
- 用户存在就返回:
uid=500(lzx) gid=500(lzx) 组=500(lzx)
- uid:用户id
- gid:组id
- 组:组名
- 用户不存在返回:
无此用户
- 用户存在就返回:
4、切换用户
- 当前用户权限不够时,可以通过
su - 用户名
来切换用户 - 例如
- 从root用户切换到lzx--->
su - lzx
(因为是高权限用户到低权限用户,所以不需要输入密码) - 这是我想cd到/root是没有权限的
- 要想退回到root用户,只需
exit
- 从root用户切换到lzx--->
- 看到前是哪个用户:
who am i
或whoami
5、用户组
groupadd 组名
----增加一个组groupdel 组名
----删除一个组useradd -g 用户组 用户名
----增加用户时,直接指定一个组usermod -g 用户组 用户名
----修改用户组
6、用户和组的相关文件
①、/etc/passwd
文件
- 用户的配置文件,记录用户的信息
- 打开以后找到的内容:
lzx:x:500:500::/home/lzx:/bin/bas
- 含义:用户名:口令:用户id:组id:注释性描述:主目录:登录shell
②、/etc/group
文件
- 组配置文件,记录组的信息
- 打开以后找到的内容:
lzx:x:500:
- 含义:组名:口令:组id:组内用户列表
③、/etc/shadow
文件
Linux学习笔记6:实用指令
一、指定运行级别
运行级别 | 说明 |
---|---|
0 | 关机 |
1 | 单用户(可以用来找回密码) |
2 | 多用户状态,没有网络服务 |
3 | 多用户状态、有网络,命令行形式 |
4 | 系统未使用,保留给用户 |
5 | 图形界面 |
6 | 重启系统 |
- 要修改运行级别可以修改
/etc/inittab
文件中的id:5:initdefault
中的数字 - 操作题
- 设置运行级别,使得Linux运行后进入命令行界面
vim /etc/inittab
- 把
id:5:initdefault
中的5改成3
- 找回root密码
- Linux开启后就关机,就重启,改怎么办?
- 设置运行级别,使得Linux运行后进入命令行界面
二、帮助指令
1、man
- 用法:
man 命令或配置文件
- 例如:查看ls命令的说明----
man ls
2、help
- 用法:
help 命令
- 例如,查看cd命令的说明---
help cd
3、面向百度更直接
三、文件目录类
1、pwd
- 含义:print working directory(打印当前工作目录的绝对路径)
- 用法:直接输入
pwd
2、ls
- 含义:list files
- 用法:
ls [选项]
:显示当前目录的文件和文件夹ls [选项] 路径1
:显示路径1的文件和文件夹
- 常用的选项有:
- -l,显示所有,包括隐藏的
- -a,以列表的形式显示
3、cd
- 含义:change directory
- 用法:
cd 绝对路径或相对路径
- 其他常用
cd
或cd~
:回到家目录cd..
回到上一级目录
4、mkdir
- 含义:make directory(创建目录)
- 用法:
mkdir[选项] 要创建的目录
- 常用选项:-p 创建多及目录
- 实例:
- 创建一级目录:
mkdir /home/hello1
- 创建多级目录:
mkdir -p /home/hello2/aaa1
- 创建一级目录:
5、rmdir
- 含义:remove directory
- 用法:
rmdir 要删除的空目录
- 注意:如果是删除非空目录:
rm -rf 要删除的目录
6、touch
- 含义:创建 空文件
- 语法:
touch 文件名称
,创建一个touch 文件名称1 文件名称2
创建多个
7、copy
- 含义:copy
- 用法:
cp [选项] source dest
(cp 文件source到文件夹dest下,经常使用相对路径) - 常用选项:
-r
:递归复制整个文件夹- 强制覆盖不提示的方法:
cp
- 强制覆盖不提示的方法:
- 这里发现了一个细节:对于文件夹,直接用名字是可以的,但是老师习惯在文件夹后面加/,这样可以很好的和文件区分开。
8、rm
- 含义:remove,删除文件或目录
- 语法:
rm [选项] 要删除的文件或目录
- 常用选项
-r
,递归删除整个文件夹-f
,强制删除不提示- 可以组合式用,
rm -rf 文件夹
9、mv
- 含义:move,移动文件或目录,引申功能为:重命名
- 语法:
mv 要移动的文件 目标路径
,移动mv 旧文件名 新文件名
,重命名,实质也是移动
10、cat(只能浏览)
- 含义
- 用法:
cat [选项] 要查看的文件
- 常用选项
-n
:显示行号
- 实例
- 打开
/etc/profile
文件,并显示行号
- 打开
- 细节:为方便浏览,一般会带上管道命令:
| more
11、more
-
全屏的方式显示文本文件的内容。(加载整个文件)
-
用法:
more 要查看的文件
-
快捷键
快捷键 说明 space 向下翻页 enter 向下一行 q 退出 control+f 向下滚动一屏 control+b 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号
12、less
-
分屏的方式显示文本文件的内容(加载文件的一部分,随时加载)
-
语法:
less 要查看的文件
-
快捷键
快捷键 说明 space 向下翻页 pageUp 向上翻页 pageDown 向下翻页 /字符串 向下搜索,n是向下查找,N是向上查找 ?字符串 向上搜索,n是向上查找,N是向下查找 q 退出 -
适合显示大文件,效率高
13、echo
- 含义:echo(回声,反射)
- 语法:
echo 输出内容
- 应用
- 输出环境变量:
echo $PATH
- 输出文本:
echo hello
- 输出环境变量:
14、head
- 显示文件的开头部分
- 语法
head 文件
:默认显示前10行head -n5 文件
:显示头5行
15、tail
- 含义:显示文件的结尾部分
- 语法:
tail 文件名
,默认显示后10行tail -n5 文件名
,显示后5行tail -f 文件名
,实时追踪该文件的所有更新
16、>和>>
- >:输出重定向,把内容直接覆盖写入文件
- >>:追加,把内容追加到文件的尾部
- 语法
ls -l > 文件1
:列表的内容覆盖写入到文件1(要加上隐藏的内容,就用-al
)ls -l >> 文件1
:列表的内容追加写入到文件1尾部cat 文件1 >或>> 文件2
:将文件1的内容覆盖或追加到文件2echo "内容" >或>> 文件1
:将自己写的内容覆盖或追加到文件1
17、ln
- 含义:links(软连接)
- 语法:
- 创建:
ln -s 源文件或目录 软连接名
- 删除:
rm -rf 连接名
(连接名后别带/,否则资源忙---相当于windows中的应用程序已经打开,无法删除)
- 创建:
18、history
- 含义:执行过的指令
- 语法:
history,
显示所有历史指令history 5
,最近的5条记录!10
,执行历史编号为10 的指令
四、时间日期类
1、显示当前日期时间
- 语法
date
date "+%Y-%m-%d %H:%M:%S"
,当然也可以拆开使用单独的一些
2、设置日期时间
- 语法:
date -s "2020-02-02 11:11:11"
3、日历
- 语法:
cal
显示本月cal 2020
显示2020年的日历
五、搜索查找类
1、find
- 含义:从指定目录向下递归的遍历其各个子目录,并显示满足条件的文件或目录
- 语法:
find 搜索范围 [选项]
- 常用选项
-name
,按照文件名方式查找(*.txt代表查找所以的txt文件)(暂时不知道有什么鬼用,感觉多此一举)-user
,按照用户名查找-size
,按照文件大小查找(+代表大于,-小于,不加是等于)
2、locate
- 含义:快速定位文件路径。
- 语法:
locate 要搜索的文件名
- 说明:
- 因为
locate
指令是基于数据库进行查询,第一次使用前必须用updatedb
指令创建locate数据库 - 实际使用了一下,发现locate查找的是包含输入的字符的所有文件
- 因为
3、grep和管道符号“|”
- 含义:过滤查找,“|”将前一个命令的处理结果传递给下一个命令
- 语法:
grep [选项] 查找内容 源文件
- 常用选项
-n
,显示所在的行号-i
,忽略大小写
- 示例:
cat hello.txt | grep -ni java
六、解压缩类
1、gzip和gunzip
- 语法
gzip 文件
(①只能压缩为.gz文件;②源文件会消失)gunzip .gz文件
2、zip和unzip
- 用途:常用于项目打包发布
- 语法:
zip -r 新的压缩文件名.zip 要压缩的内容
,(-r是递归压缩目录)unzip -d 压缩文件名.zip
(-d是存放目录)
3、tar★★★
- 含义:是打包指令,打包压缩后的文件名是
.tar.gz
文件 - 语法:
tar [选项] 自己起名.tar.gz 打包的内容
- 打包压缩:
tar -zcvf 自己起名.tar.gz 打包的内容
- 解压到当前目录:
tar -zxvf a.tar.gz
- 解压到指定目录:
tar -zxvf a.tar.gz -C /opt/
(目录必须存在)
- 打包压缩:
Linux学习笔记7:组管理和权限管理
Linux中,每个用户都属于一个组,用户不能独立于组外。在Linux中没个文件夹有:所有者、所在组、其他组的概念
第一部分 组管理
1、文件的所有者
- 查看文件的所有者:
ls -ahl
- 修改文件的所有者:
chown 用户名 文件名
2、组的创建
- 语法:
groupadd 组名
- 案例
- 创建一个组monster,创建一个用户js,并放入到monster组
- 先创建组,
- 然后再
useradd -g monster js
- 然后用
id js
来查看
- 创建一个组monster,创建一个用户js,并放入到monster组
3、文件的所在组
- 查看:
ls -ahl
- 修改:
chgrp 组名 文件名
4、用户的所在组
- 改变用户的所在组:
usermod -g 组名 用户名
- 改变用户登录的初始化目录:
usermod -g 目录名 用户名
第二部分 权限管理
1、文件、目录的信息含义
- 第0位,表示文件类型(-代表文件,d代表目录,l代表软连接,c代表字符设备如键鼠,b块文件如硬盘)
- 第1~3位,表示所有者对文件的权限
- 第4~6位,表示所属组对文件的权限
- 第7~9位,表示其他用户对文件的权限
- 第一个数字
- 如果是文件,表示硬连接数,一般是1
- 如果是目录,表示子目录数
- 后面两个是所属用户、所属组
- 文件大小(字节),如果是文件夹,都显示为4096
- 时间,表示最后修改日期
- 最后的,文件名
2、权限修改
说明:chmod命令中,u:所有者,g:所有组,o:其他人,a:所有人
1、第一种方式(用=+-)
chmod u=rwx g=rx o=x 文件名或目录名
chmod o+w 文件名或目录名
chmod a-x 文件名或目录名
2、第二种方式(用数字)
- 规则:r=4, w=2, x=1(其实就是二进制)
chmod u=rwx g=rx o=x 文件名或目录名
就相当于chmod 751
3、修改文件所有者
- 语法
chown 新所有者 文件名
chown 新所有者:新组 文件名
4、修改文件所在组
- 语法
chgrp 新组 文件名
chgrp -R 新组 目录名
Linux学习笔记8:任务调度
1、概述
- 任务调度:系统在某个时间执行的特定的命令或程序
- 任务调度的分类
- 系统工作:有些重要的工作必须周而复始的执行,如扫描病毒
- 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份
2、语法
crontab[选项]
- 常用选项
-e
,编辑crontab定时任务-l
,查询crontab任务-r
,删除当前用户所以crontab任务
- 重启任务调度:
service crond restart
3、示例
-
创建任务:
- 执行
crontab -e
- 输入:
*/1 * * * * ls -l /etc/ >> tmp/to.txt
- 含义:每分钟执行
ls -l /etc/ >> tmp/to.txt
- 执行
-
5个占位符说明(分时天月周)
占位符 含义 范围 第1个* 分:每小时中的第几分钟 0~59 第2个* 时:每天中的第几小时 0~23 第3个* 天:每个月中的第几天 1~31 第4个* 月:一年中的第几个月 1~12 第5个* 周:一周的的星期几 0~7(07都是周天) -
特殊符号的说明
特殊符号 含义 * 代表所有的时间单位:没分钟,每小时 , 不连续的时间:“0 2,4 * * *”表示每天2点和4点的0分执行 - 连续的范围:“0 2-4 * * *”每天的2点到4点的0分执行 */n 每隔多久执行一次 Linux学习笔记9:磁盘分区、挂载
一、分区的基础知识(了解)
1、mbr分区
- 最多只支持四个主分区
- 系统只能安装在主分区
- 拓展分区要占一个主分区
- mbr最大只支持2TB,但有最好的兼容性
2、gtp分区
- 支持无限多个主分区
- 最大支持18EB(1EB=1024PB,1PB=1024TB)
- Windows 7 64位以后支持gtp
二、Linux分区
1、原理
- Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且 唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
- Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
2、硬盘说明
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
- 对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬 盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区, 前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为 第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展 分区。
- 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则 和 IDE 硬盘的表示方法一样。
3、查看当前系统的分区情况的指令
-
lsblk
或lsblk -f
-
图示
三、案例:自己为Linux增加一块硬盘
我用的是macOS上面的secureRCT,Windows系统在第一部略有不同
- 虚拟机添加硬盘
- 关闭虚拟机才可以操作
- 点击菜单栏的虚拟机--->硬盘--->硬盘设置--->添加设备--->新硬盘(这里以2G为例)
- 重启虚拟机
- 终端用
lsblk
查看分区情况,只是有了sdb,而没有分区和挂载点的信息。
- 分区
fdisk /dev/sdb
开始进行分区- 输入
m
查看命令,发现n
是新增分区命令,输入n
,然后选择p
表示设置为主分区,分区编号选择1就ok,下面两步都可以默认,直接两次回车。 - 输入
w
退出 - 此时再用
lsblk
命令查看分区情况,发现已经分好了区,但是还没有挂载点
- 格式化
- 输入命令
mkfs -t ext4 /dev/sdb1
- 此时再用
lsblk -f
命令查看分区情况,发现已经有了40位的UUID
- 输入命令
- 挂载
- 先创建目一个录/home/newdisk,用于挂载
- 用命令
mount /dev/sdb1 /home/newdisk
挂载 - 此时再用
lsblk -f
命令查看分区情况,发现已经有了挂载点 - 到此为止,挂载成功。但是这只是临时挂载,重启就会失效
- 设置永久挂载
- 用
vim /etc/fstab
打开文件 - 在UUID上面一行加上
/dev/sdb1 /home/newdisk ext4 defaults 0 0
- 保存退出:esc后输入
:wq
- 立即生效:
mount -a
- 此时再重启也还是没问题的
- 用
- 如果想取消挂载,可以用
umount /home/newdisk
(如果现实设备忙,要退出要newdisk目录再重试)
四、磁盘查询情况
-
语法
- 查询整体磁盘:
df -h
- 查询指定目录的磁盘占用情况:
du -h /目录
(默认是当前目录)-s
,指定目录占用大小汇总-h
,(human)带计量单位,方便人看-a
,含文件-c
,列出明细的同时,增加汇总值--max-depth=1
,子目录深度
- 查询整体磁盘:
-
案例和工作实用指令
-
查询 /opt 目录的磁盘占用情况,深度为 1
du -ach --max-depth=1 /opt
-
统计/home 文件夹下文件的个数
ls -l /home | grep "^-" |wc -l
-
统计/home 文件夹下目录的个数
ls -l /home | grep "^d" |wc -l
-
统计/home 文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep "^-" |wc -l
-
统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" |wc -l
-
以树状显示目录结构
- 如果没有安装tree命令,用
yum install tree
,来安装 - 然后
cd /home
,在tree
- 如果没有安装tree命令,用
-
Linux学习笔记10:网络配置
1、Linux网络配置原理图
2、查看网络IP和网关
3、Linux网络环境配置
说明:这块MacOS比较麻烦。后续再搞。
Linux学习笔记11:进程管理★★★
1、基本介绍
- 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进 行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
2、显示进程
-
命令:
ps
-
选项:
-a
,显示当前终端所有信息进程-u
,以用户的格式显示进程信息-x
,显示后台进程运行的参数
-
语法总结
-
显示所有进程:
ps -aux
- USER:用户名
- PID:进程id
- %CPU:CPU占用百分比
- %MEM:物理内存占用百分比
- VSZ:占用虚拟内存大小(KB)
- RSS:占用物理内存大小(KB)
- TTY:终端名称
- STAT:进程状态
- S:睡眠
- s:该进程是会话的先导进程
- N:该进程拥有比普通进程更低的优先级
- R:正在运行
- D:短期等待
- Z:僵死进程
- T:被跟踪或者被停止
- TIME:进程使用CPU的总时间
- COMMAND:启动进程所用的命令和参数
-
查看某一个进程:
ps -aux | grep xxx
。 -
查看父进程:
ps -ef | more
-
3、终止进程
- 语法
- 通过进程号杀死进程:
kill [选项] 进程号
(适合杀死单个进程) - 通过进程名杀死进程:
kill all 进程名
(适合杀死多个进程)- 说明:支持通配符,一次杀死很多进程时很方便
- 常用选项
-9
:强制杀死进程
- 通过进程号杀死进程:
- 实例
- 剔除某个用户:先通过
ps -aux | grep sshd
来查看有哪些用户在登录状态,并得到进程号。然后kill 进程号
- 系统要维护,暂时中止远程登录sshd:用
ps - aux |grep sshd
来查看sshd服务的进程号(命令为/usr/sbin/sshd
的是sshd服务),然后kill 进程号
- 终止多个 gedit 编辑器 【killall , 通过进程名称来终止进程】
- 强制杀掉一个终端:
ps -aux | grep bash
来查看哪些终端开着(命令为/bin/bash的是),然后kill 进程号
,发现没反应,强制杀死即可kill -9 进程号
- 剔除某个用户:先通过
4、查看进程树
- 语法:
pstree [选项]
- 常用选项
-p
:显示进程的PID-u
:显示进程所属用户
5、服务管理
1、简介
- 介绍:服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请 求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
- service管理命令
service 服务名 xxx
(xxx处可以是:start、stop、restart、reload、status)- CentOS 7 以后,不再使用service,而是systemctl
- 实例:查看当前防火墙的状况,关闭防火墙和重启防火墙
service iptables status
查看防火墙状态service iptables stop
停止防火墙service iptables stop
查看状态service iptables start
重启
- 细节说明:
- 关闭或者启用防火墙后,立即生效。可以用:
telnet IP地址 端口号
来测试 - 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。 如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令
- 关闭或者启用防火墙后,立即生效。可以用:
2、查看服务
- 方式一:终端输入
setup
后,进入系统服务,就可以看到所以服务,其中带*的是开机自启的服务。可以按空格改变。 - 方式二:用
/etc/init.d/服务名称
来查看- 如,列出所以服务名称:
ls -l /etc/init.d/
- 如,列出所以服务名称:
3、服务的运行级别
- Linux系统本身有7中运行级别,每种运行级别对应的不同的服务开启和关闭。
4、chkconfig命令
- 含义:给每个服务的各个运行级别设置自启动/关闭。重启后生效
- 语法
- 查看所以服务:
chkconfig --list
- 查看某个服务:
chkconfig --list | grep xxx
- 设置在运行级别下服务的启动与否:
chkconfig --level 系统运行级别 服务名 on或off
- 在所以运行级别下服务的开启和关闭:
chkconfig 服务名 on或off
- 查看所以服务:
5、动态监控进程
-
含义:top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在 执行一段时间可以更新正在运行的的进程。(类似于任务管理器)
-
语法:
top [选项]
-
常用选项
-d 秒数
,指定top命令每隔几秒更新,默认是3秒-i
,不显示任何闲置或僵死进程-p
,通过指定进程id来监控这个进程
-
交互指令
操作 功能 P 以CPU使用率排序,默认是这样排序的 M 以内存使用率排序 N 以PID排序 q 退出top u 输入u再回车输入用户名--->查看该用户的 k 杀死进程
6、查看系统网络情况★★★
- 语法
netstat [选项]
- 查看所有的:
netstat -anp | more
(-an
按照一定顺序排列输出,-p
显示那个进程在调用) - 查看摸个:
netstat -anp | grep xxx
Linux学习笔记12:RPM和YUM
一、RMP
1、RPM简介
- 一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。 Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。
2、查询语法
- 查询所以已安装的rpm包:
rpm -qa
(q=query,a=all) - 查询某一个安装的rpm包:
rpm -qa | grep xxx
- 查询软件包是否安装:
rpm -q 软件包名
- 查询软件包信息:
rpm -qi 软件包名
- 查询软件包中的文件:
rpm -ql 软件包名
(就是查看安装在了哪里) - 查询文件所属的软件包:
rpm -qf 文件全路径名
3、卸载语法
epm -e 软件包名
- 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。 如: $ rpm -e foo时,会出现removing these packages would break dependencies:foo is needed by bar-1.0-
- 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e --nodeps foo 带上 --nodeps 就是强制删除。
4、安装语法
rpm -ivh 软件包的全路径名称
(i=install,v=verbose提示,h=hash进度条)
二、YUM
1、简介
- Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包 并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。
2、基本指令
- 查询 yum 服务器是否有需要安装的软件:
yum list | grep xxx
- 安装指定的yum包:
yum install xxx
3、安装软件
- 一般就是先查看有没有,然后下载就可以了。