linux第六七天 which find进程等

news2025/3/1 13:26:13

ctrl+F5   //强制刷新

which ifconfig  //找到ifconfig的路径   发现在/usr/sbin/ifconfig 目录下

然后 cp /usr/sbin/ifconfig /root/bin/ipconfig    就相当于自己设置了ifconfig的另外一种命令

多个条件可以使用-a(-o)连接,表示而且(或者)

 [root@zbx ~]# find / -name "*.conf" -a -type f // 在根目录下查找以.conf结尾的文件

[root@zbx ~]# find  /var/log/  -mtime +30  // 查找超过30天未修改的文档
[root@zbx ~]# find  /var/log/  -mtime +30 -type f // 查找超过30天未修改的普通文件
/var/log/README
 

[root@zbx ~]# find  /usr/bin/  -perm -u=s  //查找属主设置s标志的文件(SUID)
/usr/bin/chfn
/usr/bin/mount
/usr/bin/gpasswd

管道符操作    

管道符作用:将命令1的正常显示结果先交给命令2,等命令2处理后再显示

                用法:命令1|命令2

[root@zbx ~]# echo 123 | passwd --stdin student
                                                //通过管道符把student的密码修改为123

[root@zbx ~]# yum list | less  // 使yum list的显示以分页显示

[root@zbx ~]# who | wc -l
2
// who:列出所有登录用户的信息
// wc -l : wc 表示 "word count"(词数统计),而 -l 表示 "lines"(行)

[root@zbx ~]# wc -l /etc/passwd   // 统计passwd文件中的行数
40 /etc/passwd

[root@zbx ~]# wc -l /etc/shadow
40 /etc/shadow

[root@zbx ~]# yum list | wc -l  // 统计所有软件包的数量
7318
[root@zbx ~]# echo "123456" | passwd --stdin student  // 无交互修改密码

        

grep文本过滤

[root@zbx ~]# grep root /etc/passwd  // 在passwd文件中查找带有root单词的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

[root@zbx ~]# grep -v root /etc/passwd  // 不包含root的行

// -v:invert 选中不匹配的行(反向匹配)
// -i:ignore 忽略大小写

[root@zbx ~]# grep -v "#" /etc/selinux/config  // 输出不带#的行

SELINUX=permissive
SELINUXTYPE=targeted

[root@zbx ~]# grep "^$" /etc/selinux/config   //输出空行
[root@zbx ~]# grep -v "^$" /etc/selinux/config  // 输出非空行

[root@zbx ~]# grep -v "^$" /etc/selinux/config | grep -v "#"  // 去掉空行和带#号的行
SELINUX=permissive
SELINUXTYPE=targeted
 

[root@zbx ~]# ifconfig | grep "inet "
        inet 192.168.10.223  netmask 255.255.255.0  broadcast 192.168.10.255
        inet 127.0.0.1  netmask 255.0.0.0
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
 

查看进程

    [root@zbx ~]# pstree  // 查看进程树
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─chronyd
        ├─crond
        ├─dbus-daemon
    

为了验证选项:执行以下操作

        在虚拟机运行
        su - student
        vim a.txt  (不要退出)

[root@zbx ~]# pstree student  //查看student用户运行的进程
bash───vim
[root@zbx ~]# pstree -a student  // 带参数
bash
  └─vim a.txt
[root@zbx ~]# pstree -ap student  // 显示进程号
bash,4063
  └─vim,4127 a.txt
  
[root@zbx ~]# pstree -apu   // 显示用户的uid变化

[root@zbx ~]# top  // 查看进程占用的资源(动态)
 

 

/*

PID:进程标识号,这是每个进程的唯一标识符。
USER:该进程的所有者的用户名。
PR:进程优先级。该值越小,进程的优先级越高。
NI:进程的「nice」值,这是用户控制进程优先级的一个方式。该值越高,进程优先级越低。                    (NI+20就是PR的值)
VIRT:进程使用的虚拟内存总量,单位是千字节 (KB)。
RES:进程使用的、未被换出的物理内存大小,单位是千字节 (KB)。
SHR:进程使用的共享内存大小,单位是千字节 (KB)。
S:进程的状态。可能的值有:
S 表示休眠 (sleeping)
R 表示运行中 (running)
T 表示停止 (traced)
Z 表示僵尸状态 (zombie)
%CPU:该进程使用的 CPU 时间百分比。
%MEM:该进程使用的物理内存百分比。

TIME+:该进程使用的总 CPU 时间,格式为 [dd-]hh:mm:ss。
COMMAND:启动进程的命令行名称。

在Linux中,一个进程的优先级与其PR(优先级)和NI(nice值)有关。PR和NI的关系如下:

PR(Priority):在Linux中,进程的优先级在内核级别是由PR值决定的。
PR值的范围是0-139,其中0-99是实时进程,100-139是用户进程。
PR值越小,优先级越高。也就是说,PR值为0的进程具有最高优先级,而PR值为139的进程具有最低优先级。

NI(Nice):Nice值是用户空间级别用于调整进程优先级的一个值,它的范围是-20(最高优先级)
到19(最低优先级)。默认情况下,进程的nice值为0。

Nice值的修改会影响到PR值,即内核级别的优先级。
具体来说,PR值是通过将nice值添加到一个基准值(通常为20)来计算的。
换句话说,PR值实际上是20 + NI(对于用户进程)。这意味着nice值越大(也就是越"nice"),
实际的PR值也就越大,进程优先级也就越低。

例如,如果一个进程的nice值为10,那么其PR值就是30(20 + 10)。
如果另一个进程的nice值为-5,那么其PR值就是15(20 - 5),所以它的优先级更高。

总的来说,一个进程的优先级是由PR值决定的,而PR值是由nice值决定的。
用户可以通过改变进程的nice值来影响其优先级
 

查找进程

        pgrep 关键词

[root@zbx ~]# pgrep vim
4127

[root@zbx ~]# pgrep -l ssh
976 sshd
2034 sshd
2039 sshd

杀死进程

        pkill -9 关键词(注意:这里是数字9)

[root@zbx ~]# pkill -9 vim

killpkill都是Linux系统命令,用于终止(kill)进程。但它们之间存在以下区别:

  1. 命令形式不同:kill需要指定进程ID(PID)来终止进程,pkill则是通过进程名或其他特定的进程标识符来终止进程。

  2. 批量终止进程:pkill可以一次性终止多个进程,kill只能终止单个进程。

  3. 快捷使用:pkill可以快捷地使用一些常见的选项来终止进程(例如-pkill -f "processname"终止包含指定进程名的所有进程),而kill需要使用指定的选项。

总体来说,如果你知道要终止的进程PID,则应使用kill,如果你知道要终止的进程名或其他特定标识符,则使用pkill可以更加方便。

 [root@zbx ~]# sleep 5   // 暂停程序
[root@zbx ~]# sleep 5 &  // 将程序放到后台执行
[1] 4199
[root@zbx ~]# ls
anaconda-ks.cfg  bin  zbx62+lamp80_pkgs
[1]+  已完成               sleep 5

[root@zbx ~]# sleep 300&
[1] 4202
[root@zbx ~]# pgrep "slee"
4202
[root@zbx ~]# pgrep -l "slee"
4202 sleep
[root@zbx ~]# pkill -9 sleep
[1]+  已杀死               sleep 300
[root@zbx ~]# pgrep -l "slee"
[root@zbx ~]#
 

SUID/SGID

 SUID测试

[root@zbx ~]# cp -p /usr/bin/vim /usr/bin/.vim
[root@zbx ~]# ls -l /usr/bin/vim /usr/bin/.vim
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/.vim
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim
[root@zbx ~]#
[root@zbx ~]# chmod u+s /usr/bin/.vim  // 给.vim 程序添加SUID权限
[root@zbx ~]#
[root@zbx ~]# ls -l /usr/bin/vim /usr/bin/.vim
-rwsr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/.vim
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim

[root@zbx ~]# su - student

[student@zbx ~]$ ls -l /usr/bin/vim /usr/bin/.vim
-rwsr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/.vim
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim
[student@zbx ~]$ .vim /etc/hosts
[student@zbx ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
aaaaaaaaaaaaa
[student@zbx ~]$ ls -l /etc/hosts
-rw-r--r--. 1 root root 172  4月 23 15:51 /etc/hosts
[student@zbx ~]$
 

suid是一种特殊的uid,也可以简写成s

SGID测试

[root@zbx ~]# mkdir -m ug=rwx,o=rx /public
[root@zbx ~]# ls -ld /public/
drwxrwxr-x. 2 root root 4096  4月 23 16:00 /public/
[root@zbx ~]#
[root@zbx ~]# chown :users /public/
[root@zbx ~]# ls -ld /public/
drwxrwxr-x. 2 root users 4096  4月 23 16:00 /public/
[root@zbx ~]#
[root@zbx ~]# touch /public/root1.txt
[root@zbx ~]#
[root@zbx ~]# chmod g+s /public/
[root@zbx ~]#
[root@zbx ~]# ls -ld /public/
drwxrwsr-x. 2 root users 4096  4月 23 16:03 /public/
[root@zbx ~]#
[root@zbx ~]# touch /public/root2.txt
[root@zbx ~]#
[root@zbx ~]# ls -l /public/*.txt
-rw-------. 1 root root  0  4月 23 16:03 /public/root1.txt
-rw-------. 1 root users 0  4月 23 16:05 /public/root2.txt

粘滞位测试

       在一个其他人有w权限的目录中,如果该目录有粘滞位的特殊权限,自己只能删自己创建的,不能删除其他人的文件。

[root@zbx ~]# touch ~student/root.txt
[root@zbx ~]# su - student
[student@zbx ~]$ ls -ld ~student
drwx------ 2 student student 4096  6月  1 22:44 /home/student/

[student@zbx ~]$ rm -rf ~student/root.txt
[student@zbx ~]
// 可以删除,因为student用户对/home/student目录具有w权限,所以可以对目录下的文件进行删除

[root@zbx ~]# ls -ld /tmp/
drwxrwxrwt. 12 root root 240  4月 23 15:50 /tmp/

[root@zbx ~]# touch /tmp/root.txt

[root@zbx ~]# su - student

[student@zbx ~]$
[student@zbx ~]$ rm -rf /tmp/root.txt
rm: 无法删除 '/tmp/root.txt': 不允许的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django中使用celery实现定时任务和异步任务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、准备二、配置1.引入库2.代码编写a、在settings.py文件下添加如下代码b、在项目主目录下创建celery.py文件c、在项目的__init__.py里面添加如下代码![在这里…

【期望】Kuangbin 危险的派对 牛客期望专题班 increment of coins

4849. 危险的迷宫 - AcWing题库 题意: 思路: 本来对期望怎么想都想不通,后来看了大佬的题解,自己动手画了画,以及队友说的“拆分”,忽然间就有点懂了.... 这个说的很对,把期望问题看作是DAG上…

Unity中对预制体烘焙光照贴图,在其他Scene中使用或者动态生成带光照贴图的预制体

记录个人开发笔记,如果有大佬有更好的方法或者觉得我这个方法哪里有问题欢迎指正! 首先说下为什么会弄预制体烘焙光照贴图,因为项目需求需要动态生成一个房间的,因此是将房间弄成预制体,动态生成就好了,这…

【Datagear】如何给Datagear追加Admin

【背景】 Datagear默认是只设置了一个Admin,这个Admin可以完成用户的各种管理操作,并且对所有数据源,数据集,图表,面板拥有全部编辑权限。 【问题】 只有一个Admin很多场景下不够用。但是应用设置本身没有提供追加A…

【测试人生】测试工程如何去学习接口自动化技术

一、为什么要学习自动化 提高生产力:自动化可以帮助您在短时间内完成重复性工作,从而大大提高生产力。自动化不仅减少了手动执行任务所需的时间和精力,还减少了出错的风险。 质量保证:自动化测试可以确保软件在修改后仍然按预期运…

2023 光亚展|乐鑫将携 AI、Wi-Fi 6、私有云和 Matter 方案精彩亮相

2023 广州国际照明展览会(光亚展)将于 6 月 9 至 12 日在广州琶洲展馆启幕。本届展会以“光未来”为主题,畅想未来生活方式的无限可能。乐鑫科技 (688018.SH) 将在 B 区 9.2 号厅 D55 展位,带来具有前瞻性的智能照明解决方案和实体…

龙芯2K1000实战开发-以太网/串口设计

文章目录 概要整体架构流程技术名词解释技术细节小结概要 本文主要针对2k1000的以太网及串口的国产化设计 整体架构流程 提示:这里可以添加技术整体架构 整体架构,以太网,使用2k1000自带的以太网mac控制器,外选用国产化PHY,国产化变压器。 整体框架,如下图,主要是器…

2023安卓逆向 -- JNI学习(从开发到反编译)

一、新建native C项目,填写好项目信息,一路下一步即可 二、创建好项目,直接点击运行,出现下面界面,说明我们的环境都没有问题 三、Java层调用java层函数 1、新建一个Java Class,命名为JavaFun 2、编写java…

维宏系统修改端口位置操作说明

1.关闭软件后找到Ncconfig.exe工具并打开 具体操作步骤 (1)桌面上鼠标点到 NcStudio鼠标右键-打开文件所在的位置如下图 (2) 在目录中找到NcConfig.exe的快捷方式(黄色图标) (3)打开并输入密码(密码和软件密码一样默认初始密码ncstudio …

欧科云链:2023年5月链上安全事件盘点

一、基本信息 2023年5月安全事件约造成1800万美元损失,相比上月有显著下降,但安全事件发生频率并未减少。其中针对Jimbos Protocol的攻击造成了约750万美元损失。Arbitrum链的Swaprum项目Rug Pull造成了约300万美元的损失。此外,社交媒体钓鱼…

工业RFID解决方案怎么选?主要看这几项内容

如何选择适合您需求的RFID解决方案?通过深入了解需求、环境适应性、成本效益和供应商选择,您将能够更加全面地评估和选择适合自身需求的RFID解决方案。同时,不断与供应商和专业人员进行沟通和合作,可以获取更多关于特定解决方案的…

FineReport自定义排序

FineReport是帆软的报表开发工具,报表开发者可以用低代码的形式,配置出报表。主要适用于较简单的填报场景(比如填写销售目标,维护项目映射关系等),用户可以在报表上填报数据,存储于数据库&#…

【TES605】基于Virtex-7 FPGA的高性能实时信号处理板

板卡概述 TES605是一款基于Virtex-7 FPGA的高性能实时信号处理平台,该平台采用1片TI的KeyStone系列多核DSP TMS320C6678作为主处理单元,采用1片Xilinx的Virtex-7系列FPGA XC7VX690T作为协处理单元,具有2个FMC子卡接口,各个处理节点…

PIC 使能485/422_Part2.2_激活485半双工(修订中...)

1.485底层协议辨识 黄色是PIC发出的,打头的字符是"\r\n\r\n"。绿色的是上位机485接口设备发送字符串“App1"的波形。波特率均为115200。上位机绿色的波形自发自收没有问题。 示波器设置为下降沿触发——485平时空闲状态,线路维持高电平&…

linux0.12-12-1-总体功能

[606页] 12-1 总体功能 本章所注释的程序量较大,但是通过第5章中对Linux源代码目录结构的分析(参见图5-27), 可以把它们从功能上分为4个部分进行讨论。 第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块设备…

隔离驱动芯片SLMi332兼容光耦隔离驱动器时的注意事项

数明深力科SLMi33x系列SLMi332是一款兼容光耦带DESAT保护功能的IGBT/SiC隔离驱动器。内置快速去饱和(DESAT) 故障检测功能、米勒钳位功能、漏极开路故障反馈、软关断功能以及可选择的自恢复模式,兼容光耦隔离驱动器。 SLMi33x系列SLMi332的DESAT阈值为6.5V&#xf…

Hive学习---4、函数

1、函数 1.1 函数简介 Hive会将常用的逻辑封装成函数给用户进行使用,类似java中的函数。 好处:避免用户反复写逻辑,可以直接拿来使用 重点:用户需要知道函数叫什么,能做什么 Hive提供了大量的内置函数,按…

ATTCK v13版本战术介绍——凭证访问(一)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权、防御规避战术,本期我们为大家介绍ATT&CK 14项战术中凭证访问战术第1-6种子技术,后续会介绍凭证访问其他子技术,敬请关注。 二、ATT&C…

深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

基于Faster rcnn pytorch的遥感图像检测 代码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 数据集 使用RSOD遥感数据集,VOC的数据格式如下: RSOD是一个开放的目标检测数据集,用于遥感图像中的目标检测。…

01_pytorch中的DataSet

在pytorch 中, Dataset: 用于数据集的创建; DataLoader: 用于在训练过程中,传递获取一个batch的数据; 这里先介绍 pytorch 中的 Dataset 这个类, torch.utils.data. dataset.py 是一个表示数据集的抽象类。任何自定义…