Linux目录介绍
目录 | |
---|---|
/bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 |
/etc | 存放系统管理和配置文件 |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 |
/usr | 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 /usr/x11r6 存放x window的目录 /usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 |
/proc | 不能动,虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 |
/sys | 不能动,linux内核, 硬件设备的驱动程序信息 |
/root | 超级用户(系统管理员)的主目录(特权阶级o) |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/dev | 用于存放设备文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/boot | 存放用于系统引导时使用的各种文件,启动时的核心文件 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/tmp | 用于存放各种临时文件,是公用的临时文件存储点。 |
/var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。 |
/lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里 |
/srv | 不能动,service缩写,存放一些服务启动之后需要提取的数据, |
vim使用
注意区分 一般模式和编辑模式
vim 无法修改只读文件,可以修改后 输入 :w !sudo tee % --强制保存 然后按 Ctrl + z 退出即可
进入一般模式后
yy 拷贝当前行 p粘贴 5yy 拷贝当前行向下的5行
dd 删除当前行 5dd 删除当前行向下的五行
在vim底端命令行输入 /要查找的内容 即可找到第一个 输入n寻找下一个 输入N寻找上一个
命令行输入 set nu --显示行号 set nonu --不显示行号
撤销之前的编辑命令 --在一般模式下输入u
光标定位 --一般模式下 行号 shift+g 注意这里是看不到输入的行号的
关机重启
shutdown -h now --立刻关机
shutdown -h 1 --1分钟后关机
shutdown -r now --立刻重启
halt --关机,作用同上
reboot --重启,作用同上
sync --把内存的数据同步到磁盘
用户管理
useradd -d /home 用户名 --添加用户,目录在home下(不添加默认home),默认建一个与其同名的用户组
passwd 用户名 输入密码即可 --为新用户设置密码
id 用户名 --查看用户所属组
userdel 用户名 --删除用户,但是保留家目录
userdel -r 用户名 --删除用户,同时删除家目录
whoami --查看当前用户信息
groupadd 用户组名 --添加用户组
groupdel 用户组名 --删除用户组
useradd -g 组名 用户名 --添加用户的同时将其加入指定组
用户组相关文件
-
/etc/passwd文件
用户的配置文件,记录用户各种 信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
-
/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group文件
组的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
运行级别
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),没有网络连接。
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 最常用,Linux服务器
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
init 3 --切换运行级别
systemctl get-default --获取当前运行级别
systemctl get-default mlti-user.target --设置为运行级别3
找回root密码
1、首先启动系统,进入开机界面,在界面中按’e’进入编辑界面,注意要快 15s
2、进入编辑页面,使用键盘上下键将光标移动,找到以“Linux16”开头的内容所在的行,在行的最后输入:init=/bin/sh
3、输入Ctrl+x启动,进入单用户模式
4、接着在光标闪烁的位置输入mount -o remount,rw / (各个单词之间有空格),完成后按回车键
5、在新的一行输入passwd ,按回车输入密码,然后再次确认密码即可
6、接着,在鼠标闪烁的位置(最后一行)插入:touch /.autorelabel(注意touch与/间有一个空格),完成后回车
7、继续在光标闪烁的位置,输入:exec /sbin/init(exec与/之间有空格),完成后回车,等待即可,系统会自动重启
帮助指令
man 命令 --获得帮助信息
ls -a --查看所有文件,包括隐藏文件,linux下以.开头的文件为隐藏文件
ls -l --单列显示ls 还可以ls -la/ls -al
help --获得shell内置命令的帮助信息
文件目录
pwd --显示当前工作目录的绝对路径
cd ~ --家目录
cd / --根目录
mkdir --创建目录 md /home/animal
mkdir -p --创建多级目录 md -p /home/animal/dog
rmdir 目录 --删除空目录 rm /home/animal
rmdir -rf 目录 --递归删除整个目录 rm -rf /home/animal
cp 1.txt /test --拷贝文件到指定目录
cp -r /home/svicen /home/test --递归拷贝整个目录到指定目录,将svicen整个给test
\cp -r /home/svicen /home/test --递归拷贝,强制覆盖原来的文件
rm --删除文件或目录 -r递归删除整个文件夹 -f强制删除不提示
mv test0 test01 --移动文件与目录或从重命名 如果两文件在同一目录则为重命名
mv test /root/test01 --移动文件并从重命名
mv /opt/bbb /home --移动整个目录及其下的文件
cat [-n] 文件名 --查看文件内容 -n 显示行号
cat -n test | more --为了浏览方便,一般会加上 管道符|+more more往往是用来展示的
more -- 空格->向下翻一页 回车->向下翻一行 q->离开more Ctrl+F->向下滚动一屏 Ctrl+B->向上一屏 :f->输出文件名和当前行号
less 要查看的文件 --分配查看文件,与more类似,但并不是一次全部加载,根据显示需要加载,效率更高
echo $PATH --输出内容到控制台
head -n 5 --显示文件前5行,默认显示前10行
tail -n 5 --显示后五行
taile -f 文件名 --监视制定文件,如果其内内容发生变化,在此可以展示变化
重定向 > --覆盖内容 >> --追加内容
ls -l /home > /home/info.txt --将home目录下文件以单列显示方式写入到info.txt中
ln -s 源文件或目录 软链接名 --软连接 ln -s /root /home/myroot -> 访问myroot就相当于访问root目录
history --查看历史命令
!历史命令编号 --可以执行历史命令
时间日期指令
date --显示当前时间,年月日时分秒
date '+%Y-%m-%d' --显示年月日,以-分隔 注意大小写
date -s "2022-04-04 14:23:10" --设置系统日期
cal --查看本月日历 cal 2022 显示2022整年的日历
查找指令
find /home -name hello.txt --在指定目录下找着指定名的文件
find /opt -user root | more --查找指定目录下用户名称为root的文件
find / size +200M --查找整个linux系统下大于200M的文件 -200M为小于 默认为等于
ls -lh --按照人更直观的方式显示文件大小
updatedb; locate 搜索文件 --可以快速定位文件路径 注意需要先写 updatedb
cat 1.txt | grep -n "hello" --grep过滤查找,管道符| 表示将前一个命令的结果传递给后面的命令处理
grep -n "hello" /home/1.txt --与上相同
压缩和解压
gzip /home/hello.txt --压缩文件
gunzip /home/hello.txt.gz --解压文件
zip --压缩文件或文件夹,在项目打包发布中很有用
zip -r myhome.zip /home/ --将home及home目录下的所有文件及文件夹都压缩 -r 递归压缩
unzip --解压缩文件/文件夹
unzip -d /opt/tmp /home/myhome.zip --解压到opt/tmp文件夹下
tar --打包命令,最后打包好的是.tar.gz文件
-c 产生.tar打包文件 -V 显示详细信息 -f 指定压缩后文件名 -z 打包同时压缩 -x 解压.tar文件
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt 多个文件压缩为pc.tar.gz
tar -zxvf pc.tar.gz -C opt/tmp --解压缩到指定目录opt/tmp
Linux组
对于linux的文件,有三个概念所有者,所在组,其他组
所有者-谁创建的谁为所有者 查看文件所有者ls -ahl 或者 ll
组的创建 groupadd 当一个用户创建一个文件时,该文件所属的组就是该用户所属的组
chgrp 组名 文件名 --修改文件所在组
其他组 --除了所在组及所有者,系统的其他用户所在组都是其他组
usermod -g 新组名 用户名 --修改用户所在组
usermod -d 目录名 用户名 --改变用户初始目录, 前提用户需要有进入到该目录的权限
权限管理
最左边一列有10位
1.第0位确定文件类型(d是目录,l是链接,b是块设备,硬盘 -是普通文件 c是字符设备文件,鼠标键盘)
2.第1-3为确定所有者(该文件的所有者)拥有该文件的权限 ---User
3.第4-6位确定所属组拥有该文件的权限 --group
4.第7-9位确定其他用户拥有该文件的权限 --other
左数第二列的数字:文件即为1,为目录即其子目录数与子文件总和
左数第三四列:文件所有者 和 文件所在组
左数第五列:文件大小按字节数
左数第六列:最近修改日期
rwx作用详解
- rwx作用到文件
1.[r]代表read,可以读取,查看
2.[w]代表write,可以修改,但是不一定可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限。
3.[x]代表execute,可以执行
r=4,w=2,x=1 因此 rwx=4+2+1=7
- rwx作用到目录
1.[r]代表read,可以读取,ls查看目录内容
2.[w]代表write,可以修改,对目录内创建文件、删除文件,重命名目录
3.[x]代表execute,可以进入该目录,但不可以ls
chmod修改文件或目录的权限 u-所有者 g-所有组 o-其他 a-所有人
第一种方式:+ - = 变更权限
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名 --给文件的其他用户赋予修改权限
chmod a-x 文件/目录名 --对所有人去掉可执行权限
第二种方式:通过数字变更权限 r=4,w=2,x=1
chmod u=rwx,g=rx,o=x abc 相当于 chmod 751 abc
修改文件所有者-chown
chown newowner 文件/目录 --改变文件所有者为王newowner
chown -R newowner /home/test --递归改变文件和其目录下所有文件的所有者为newowner
修改文件/目录所在组chgrp
chgrp newgroup 文件/目录 --改变所在组
chgrp -R newgroup /home/test --递归修改test目录下所有文件的所在组为newgroup
对于目录
1.被赋予x执行权限的用户,该用户可以进入目录,但不能读取目录,不能使用ls,但是对于该目录下的文件该拥有的权限还是有的
可以修改或读取有指定权限的文件 1.txt的内容因此被修改
2.赋予w写权限的用户,可以对该目录下的文件进行创建、修改 --可以把目录看成文件 一切皆文件
3.赋予r读权限的用户,可以在进入该目录后ls,但只赋予读权限是不能进入文件目录的
crond任务调度
- 常用选项
-e 编辑crontab定时任务
-l 列出当前有哪些crontab任务
-r 删除当前用户所有的crontab任务
- 命令介绍
*/1****ls -l /etc/ > /tmp/to.txt
意思是每小时的每分钟执行ls -l /etc/ > /tmp/to.txt目录
- 五个占位符说明
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一小时当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几小时 | 0-23 |
第三个* | 一个月当中的第几天 | 1-31 |
第四个* | 一年当中的第几月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7都代表星期日) |
crontab -e --编辑定时任务
- 特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间 |
, | 代表不连续的时间,比如"0 8,12,16 * * *"命令代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间范围,比如"0 5 * * 1-6"命令代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次,比如"* /10* * * *"命令代表每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令表示每月1号和15号且是周一的凌晨0点0分执行命令,注意星期几和几号最好不要同时写
at任务调度
-
基本介绍
1.at命令是一次性定时任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
2.默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行该作业
3.at命令是一次性定时任务,执行完一个任务后便不再执行
4.在使用at命令时,一定要保证atd进程的启动,可以使用相关指令来查看 ps -ef | grep atd
-
at命令格式
at [选项] [时间] 写完后两次Ctrl + D代表输入结束
at now + 2 minutes
>at date > /home/mydate.log 两分钟后执行该命令,先要将at服务启动sudo /etc/init.d/atd start
at 5pm tomorrow
>at /bin/sh ls /home 明天下午5点用sh执行ls命令
at 5pm + 2 days
>at /root/my.sh 两天后5点执行脚本my.sh,前提脚本存在且有执行权限
atrm 2 删除任务队列号为2的任务
atq 查看当前任务队列
磁盘分区、挂载
-
分区的方式
- mbr分区
- 最多支持四个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- MBR最大只支持2TB,但拥有最好的兼容性
- gpt分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(1EB=1024PB,PB=1024TB)
- windows7 64位以后支持gpt
- mbr分区
-
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硬盘使用"sd"来表示分区所在设备的类型的,其余和IDE硬盘表示方法一样
- lsblk -f:查看当前系统的分区和挂载情况。(list block)
-
挂载的经典案例
- 需求是给我们的Linux系统增加一个新的硬盘,并且挂载到/home/newdisk
-
虚拟机添加硬盘 —设置->硬盘->添加
-
分区:fdsk /dev/sdb – 设置分区号 Ctrl + backspace 删除 回车确认 命令哪里输入w 写入并退出
-
格式化:mkfs -t ext4 /dev/sdb1 格式化后就有了UUID号
-
挂载:新建目录:mkdir /home/newdisk;挂载:mount /dev/sdb1 /home/newdisk
命令行下挂载,重启命令行便无效了
-
设置可以自动挂载(永久挂载):重启系统后,仍然可以挂载。vim etc/fstab 增加挂载信息赋值修改 UUID或者在UUID的位置写设备名/dev/sdb1,之后输入mount -a或reboot生效
- 取消挂载:unmount /dev/sdb1
-
磁盘情况查询:df -h / df -l
-
查询指定目录的磁盘占用情况:du -h /目录,默认为当前目录
- -s:指定目录占用大小汇总
- -h:带计量单位
- -a:含文件
- –max-depth=1:子目录深度为1
- -c:列出明细的同时,增加汇总值
示例:du -hac --max-depth=1 /opt
-
磁盘情况-工作实用指令
-
统计/home文件夹下文件的个数:
ls -l /home | grep "^-" | wc -l
以 - 开头的为文件 -
统计/home文件夹下目录的个数:
ls -l /home | grep "^d" | wc -l
以 d 开头的为文件夹 -
统计/home文件夹下文件的个数,包括子文件夹里的:
ls -lR /home | grep "^-" | wc -l
-
统计文件夹下目录的个数,包括子文件夹里的:
ls -lR /home | grep "^d" | wc -l
-
以树状显示目录结构:首先安装tree指令:yum install tree,tree /home
tree /home -d --仅列出目录 tree -l 不给出指定目录则为当前目录
-
网络配置
-
指定固定IP:直接修改配置文件来指定IP,并可以连接到外网,编辑:vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改:静态分配IP:BOOTPROTO=“static”
IP地址:IPADDR=192.168.1.100
网关:GATEWAY = 192.168.200.2
DNS域名解析器DNS1=192.168.200.2
接着打开虚拟机,编辑->虚拟网络编辑器->Vmnet8 -> 下的子网IP改为 192.168.200.1 与网卡和DNS解析器在同一网段
同时在虚拟网络编辑器下 - > NAT设置 -> 修改网关IP为 192.168.200.2
-
重启网络服务:service network restart
-
设置主机名和hosts映射
在Windows下 C:\Windows\System32\drivers\etc\hosts
在Linux下 在/etc/hosts文件指定 写上 IP地址 和 主机名映射 即可
主机名解析机制
1.浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析,如果没有则检查DNS解析器缓存,如果有直接返回IP完成解析。 这两个缓存可以理解为本地解析器缓存。
2.一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录)
ipconfig /displaydns //DNS域名解析缓存 ipconfig /flushdns //手动清理DNS缓存
3.如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,有则完成解析
4.如果本地DNS解析器缓存和hosts文件中均没有找到对应IP则到DNS服务器进行解析
进程管理
-
在Linux中,每个执行的**程序(代码)**都称为一个进程。每个进程都分配一个ID号
-
每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
-
每个进程都可能以两种方式存在:前台和后台。
- 前台进程:用户目前的屏幕上可以进行操作的。比如说Vim
- 后台进程:实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。比如说数据库
-
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
-
显示系统执行的进程
-
ps:查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。PID:进程识别号;TTY:终端机号;TIME:此进程所消耗的CPU时间;CMD:正在执行的命令或进程名; RSS:占物理内存的情况 VSZ: 占虚拟内存的情况
STAT:进程状态,S-睡眠 R-正在运行 D-短期等待 Z-僵死进程,需要定时清除 T-被跟踪或者被停止
-
ps -a:显示当前终端的所有进程信息。
-
ps -u:以用户的格式显示进程信息。
-
ps -x:显示后台进程运行的参数。
-
ps -axu | grep xxx:过滤得到xxx的信息。 ps -axu | grep sshd
-
ps -ef:以全格式显示当前所有的进程,查看进程的父进程PPID。
-
-e:显示所有进程。
-
-f:全格式。
-
-
终止进程
-
kill [选项] 进程号:通过进程号杀死进程
-
killall 进程名称:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
-
-9:表示强迫进程立刻停止
-
案例1:踢掉非法用户:kill 进程号
-
案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务
kill sshd对应的进程号; /bin/systemctl start sshd.service --重启sshd服务
-
案例3:终止多个gedit编辑器:killall 进程名称
killall gedit
-
案例4:强制杀掉一个终端:kill -9 进程号 对于正在运行的终端直接kill 进程号 系统会认为是误操作
-
-
查看进程树:pstree [选项]
- -p:显示进程的PID
- -u:显示进程的所属用户
-
服务(service)管理
-
service管理指令:service 服务名 [start | stop | restart | reload | status]
-
在CentOS7.0之后,不再使用service,而是systemctl,被service管理的服务主要是/etc/init.d下的服务
service network stop --停止网络服务 service network start --启动网络服务
-
查看防火墙情况:
- service iptables status
- systemctl status firewalld(7.0之后的版本)
-
测试某个端口是否在监听:telnet
-
查看服务名:
-
方式1:使用setup->系统服务就可以看到
前面带*的为自启动的,光标停在上面按空格可以取消自启动 按tab退出
-
方式2:/etc/init.d/服务名称 ls -l /etc/init.d --查看init.d下的服务名称
-
-
服务的运行级别(runlevel):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qb7FjTDX-1649384726270)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220406111908609.png)]
-
查看或修改默认级别:systemctl get-default --查看当前服务级别 systemctl set-default multi-user. target
vim /etc/inittab
-
每个服务对应的每个运行级别都可以设置
-
-
如果不小心将默认的运行级别设置成0或者6,怎么处理?
- 进入单用户模式,修改成正常的即可。
-
chkconfig:可以给每个服务的各个运行级别设置自启动/关闭 —不适用于Ubuntu系统可用 sudo apt-get install sysv-rc-conf
-
查看xxx服务:chkconfig –list | grep xxx
-
查看服务的状态:chkconfig 服务名 --list
-
给服务的运行级别设置自启动:chkconfig –level 5 服务名 on/off
-
要所有运行级别关闭或开启:chkconfig 服务名 on/off
-
-
应用实例查看防火墙状况,关闭和重启防火墙
- systemctl status firewalld ubuntu下 ufw status
wsl2里面没有
systemd
命令,我们需要用sudo /etc/init.d/docker start
代替sudo systemctl start docker
-
systemctl stop firewalld systemctl start firewalld 临时生效
-
systemctl is-enabled firewalld --判断是否是自启动 systemcal disable firewalld --设置为开机不自启动
注:上面两个命令对于Centos 7 以后的系统的3和5运行级别同时生效
-
firewall指令
- firewall-cmd --permanent --add-port=111/tcp --在防火墙中开放端口111打开后需 firewall-cmd --reload
- firewall-cmd --permanent --remove-port=111/tcp --在防火墙中关闭端口111 reload
- firewall-cmd --permanent --query-port=111/tcp —查询端口是否开放
-
-
动态监控进程
-
top [选项]
-
top和ps命令很相似。它们都用来显示正在执行的进程。top和ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程。
-
-d 秒数:指定top命令每隔几秒更新。默认是3秒。
-
-i:使top不显示任何闲置或者僵死进程。
-
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
-
案例1:监控特定用户:top查看进程;u输入用户名。
top ; u ; 输入用户: Tom
-
案例2:终止指定的进程:top查看进程;k输入要结束的进程。
-
案例3:指定系统状态更新的时间(每隔10秒自动更新,默认是3秒):top -d 10
-
交互操作说明:
- P:以CPU使用率排序,默认就是此项
- M:以内存的使用率排序
- N:以PID排序
- q:退出top
-
-
监控网络状态
- netstat [选项]
- -an:按一定顺序排列输出
- -p:显示哪个进程在调用
RPM
-
RPM:RedHat Package Manager,红帽软件包管理工具。
-
RPM查询已安装的rpm列表:rpm -qa | grep xx
示例:查看当前系统是否安装Firefox:rpm -qa | grep firefox
-
rpm包的其它查询指令:
- rpm -qa:查询所安装的所有rpm软件包
- rpm -qa | more
- rpm -qa | grep xx
- rpm -q xx:查询xx软件包是否安装
- rpm -qi xx:查询软件包信息
- rpm -ql xx:查询软件包中的文件
- rpm -qf 文件全路径名:查询文件所属的软件包
-
卸载rpm包:rpm -e 软件包名称 强制删除 rpm -e --nodeps foo
-
删除时可能会发生依赖错误,忽视依赖强制删除的方法:rpm -e --nodeps 软件包名称
-
安装rpm包:rpm -ivh 软件包全路径名称
- i=install:安装
- v=verbose:提示
- h=hash:进度条
YUM
- YUM:是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是联网。
- yum list | grep xx:查询yum服务器是否有需要安装的软件
- Ubuntu下 apt list | grep
- yum install xx:安装指定的yum包
- yum -y remove xx:卸载指定的yum包