linux第六七天 which find进程等

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': 不允许的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值