Linux_day06

本文介绍了Linux命令行中的关键工具如which、find、grep、cp、chmod、su和systemd等的使用方法,包括路径查找、文件权限管理、自定义命令、进程查找与终止,以及如何利用管道操作和权限赋予临时用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用which可以查询命令所在目录

[root@zbx ~]# which ifconfig
/usr/sbin/ifconfig
[root@zbx ~]# which vim
/usr/bin/vim

linux执行命令的过程需要去下面的目录找寻是否有此命令

[root@zbx ~]# echo $PATH
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/root/bin

定制化自己的命令

[root@zbx ~]# hostname
zbx.tedu.cn
[root@zbx ~]# which hostname       //查找hostname的命令位置
/usr/bin/hostname
[root@zbx ~]# cp -p /usr/bin/hostname /root/bin myhn
cp: 目标'myhn' 不是目录
[root@zbx ~]# cp -p /usr/bin/hostname /root/bin/myhn   //-p是把权限也进行复制
cp: 无法创建普通文件'/root/bin/myhn': 没有那个文件或目录    //因为root目录下没有/bin目录
[root@zbx ~]# mkdir /root/bin
[root@zbx ~]# cp -p /usr/bin/hostname /root/bin/myhn 
[root@zbx ~]# myhn
zbx.tedu.cn

所以如果在别人输入命令特别异常的时候,不要惊讶可能是自己定制的。

==============================================================================

find按条件查找文件

  • -name 文件名:可以使用通配符*

  • -size +|-大小:指定文档大小(带单位K、M、G),+号是超过,-号是低于。

  • -type类型:指定文档类型。(f普通文件、d目录、l链接文件)

  • -perm权限:指定文档权限,比如-o=rwx(其他用户),-u=s(主设置为s标志的文件)

    //-u:user属主的权限

    //-g:group属组的权限

    //-o:other其他用户的权限

    //r:read读

    //w:write写

    //x:execute执行权限

    //s:set UID特殊权限

  • -mtime +|-天数:指定最近修改日期

  • -user用户名:指定文档属主

 “/”:在根目录下去查找,“-name”后面接名称,“-a”是并且的意思,“-type”是查找类型的意思,“f”指的是查找的是普通文件。

[root@zbx ~]# find / -name '*.conf' -a -type f  
/run/NetworkManager/resolv.conf
/run/NetworkManager/no-stub-resolv.conf
/run/tmpfiles.d/static-nodes.conf
/etc/e2scrub.conf
/etc/nfsmount.conf

查找boot目录下大小超过10M的文件
[root@zbx ~]# find /boot/ -size +10M -type f
/boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64.img
/boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64kdump.img

列出run目录下属组权限设置了“s”标记的子目录
[root@zbx ~]# find /run/ -perm -g=s -type d
/run/tpm2-tss/eventlog
/run/log/journal
/run/log/journal/337e08f0259241818629e598de8e7194

命令行的管道操作

命令1|命令2

把命令1的正常显示结果先交给命令2,等命令2处理后再显示结果

命令2必须能接收并处理文本(比如less、grep、wc等),否则没有意义

//使yum list的以分页的情况下进行显示
[root@zbx ~]# yum list | less

//who 可以查看谁登陆了,几个用户登陆了
//wc ==“word count”词数统计 ,-l表示lines(行)
[root@zbx ~]# who
root     tty1         2024-04-20 15:16
root     pts/0        2024-04-20 12:24 (192.168.10.1)
[root@zbx ~]# who | wc -l
2

// 修改zhangsan用户的密码为123456
//echo 输出 ; 
//stdin 标准输入;
[root@zbx ~]# echo "123456" | passwd --stdin  zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。

grep文本过滤

//在/etc/passwd文件中查找带有root单词的行

[root@zbx ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

//-v(invert)反向查找

[root@zbx ~]# grep -v root /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
……

//-i(igonre)不区分大小写

[root@zbx ~]# grep -i ROOT /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

//查找 /etc/selinux/config目录下没有被注释的行,注意#需要加引号

[root@zbx ~]# grep -v "#"  /etc/selinux/config

SELINUX=permissive
SELINUXTYPE=targeted

//^ab代表以ab开头,ab$代表以ab结尾的行,^$代表为空行

[root@zbx ~]# grep "^$" /etc/selinux/config



[root@zbx ~]# grep -v "^$" /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@zbx ~]# grep  -i "^se" /etc/selinux/config
SELINUX=permissive
SELINUXTYPE=targeted

//查询/etc/selinux/config非空行内容且匹配非注释内容不带有#注释行的
注意:用管道符的话,不用写两边目录
[root@zbx ~]# grep -v  ^$ /etc/selinux/config  | grep -v  "#"
SELINUX=permissive
SELINUXTYPE=targeted

查看进程

程序:静态文件----存储在磁盘内-----可以复制/携带

进程:程序运行后的状态-----在内存中------关机后消失(可以在任务管理器查看)

pstree查看进程树
[root@zbx ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─dnsmasq───dnsmasq
        ├─gssproxy───5*[{gssproxy}]
        ├─httpd─┬─httpd
        │       ├─httpd───80*[{httpd}]
        │       └─2*[httpd───64*[{httpd}]]
        ├─irqbalance───{irqbalance}
        ├─login───bash
        ├─lsmd
        ├─mariadbd───43*[{mariadbd}]
        ├─mdadm
        ├─php-fpm───10*[php-fpm]
        ├─polkitd───5*[{polkitd}]
        ├─restorecond
        ├─rngd───{rngd}
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───sshd───bash───pstree
        │      └─sshd───sshd───sftp-server
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-machine
        ├─systemd-udevd
        ├─tuned───3*[{tuned}]
        ├─zabbix_agentd───5*[zabbix_agentd]
        └─zabbix_server───47*[zabbix_server]
 
首先使用student用户在虚拟机上创建一个a.txt文件,不动,使用moba的root用户查看student的状态
//-a 显示命令行参数
[root@zbx ~]# pstree -a student
bash
  └─vim a.txt

//-p 显示进程号
[root@zbx ~]# pstree -ap student
bash,6430
  └─vim,6521 a.txt

//-u 显示用户
//-apu 可以连接使用
top查看进程

类似于windows的任务管理器,查看系统负载及资源占用排名情况

[root@zbx ~]# top
top - 16:58:19 up  4:44,  2 users,  load average: 0.06, 0.03, 0.03
Tasks: 220 total,   2 running, 218 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1431.9 total,    252.5 free,    487.5 used,    691.9 buff/cache
MiB Swap:   2076.0 total,   2075.7 free,      0.3 used.    561.2 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    835 root      20   0   79244   1724   1488 S   0.3   0.1   0:00.65 irqbala+

   2043 zabbix    20   0   99788   4456   1960 S   0.3   0.3   0:01.41 zabbix_+
   2062 zabbix    20   0  100180   7004   4236 S   0.3   0.5   0:02.76 zabbix_+
   6224 root      20   0       0      0      0 I   0.3   0.0   0:00.43 kworker+
      1 root      20   0  103488  14668   9460 S   0.0   1.0   0:05.52 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd

如果内存cpu较高,说明有病毒有安全隐患

  • PID:进程标识号,这是每个进程的唯⼀标识符。
  • USER:该进程的所有者的⽤户名。
  • PR:进程优先级。该值越⼩,进程的优先级越⾼。
  • NI:进程的「nice」值,这是⽤户控制进程优先级的⼀个⽅式。该值越⼩,进程的优先级越⾼。
  • 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:启动进程的命令⾏名称。
pgrep查找某一进程
[root@zbx ~]# pgrep vim
6521

[root@zbx ~]# pgrep -a vim
6521 vim a.txt
pkill杀死进程

-9强制杀死进程 + 进程名

[root@zbx ~]# pkill -9 vim   
[root@zbx ~]# pgrep -a vim
//没有进程号了

sleep 睡眠的意思,暂停程序

[root@zbx ~]# sleep 5
//回车后暂停了5s才回来了

[root@zbx ~]# sleep 300&  // 生成了一个进程:暂停300s,并且&是放在后台进行执行
[1] 6932
[root@zbx ~]# pgrep -l 'sleep'
6932 sleep
[root@zbx ~]# pkill -9 sleep
[1]+  已杀死               sleep 300
kill杀死进程

-9强制杀死进程 + 进程号

[root@zbx ~]# sleep 300&
[1] 7018
[root@zbx ~]# kill -9 7018
[root@zbx ~]# pgrep -l 'sleep'
[1]+  已杀死               sleep 300

认识附加权限

在这里插入图片描述

[root@zbx ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30944 10月 28  2021 /usr/bin/passwd

在这里插入图片描述

zhangsan在使用passwd的文件的时候,就会具有root(属主的特权)的权限。

(类似于一个古装电视剧的小菜鸡拿住了大佬的护身符,得到了大佬的能力)

提权的时候会使用到。

如果不想给zhangsan用户进行su/sudo提权,但是又想他有root的权限,所以就可这样操作。

只是暂时拥有。

以下例子说明:

//首先将vim写的命令进行创建,做成副本vim1
[root@zbx ~]# cp -p /usr/bin/vim /usr/bin/vim1
//查看vim和vim1的各个属主和属组信息
[root@zbx ~]# ls -l /usr/bin/vim /usr/bin/vim1
-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/vim1
//将vim1的属主信息进行提升,变成特权S
[root@zbx ~]# chmod u+s /usr/bin/vim1
[root@zbx ~]# ls -l /usr/bin/vim /usr/bin/vim1
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim
-rwsr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim1

//进入zhangsan账户下,进行演练查看
[root@zbx ~]# su - zhangsan


Welcome to 5.10.0-60.18.0.50.oe2203.x86_64

System information as of time:  2024年 04月 20日 星期六 17:50:36 CST

System load:    0.02
Processes:      226
Memory used:    34.1%
Swap used:      0%
Usage On:       21%
IP address:     192.168.10.223
IP address:     192.168.122.1
Users online:   2
To run a command as administrator(user "root"),use "sudo <command>".
[zhangsan@zbx ~]$ ls -l /usr/bin/vim /usr/bin/vim1
-rwxr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim
-rwsr-xr-x. 1 root root 3222024  3月 21  2022 /usr/bin/vim1
//用vim命令进行文件查看的时候,只能查看不能修改,因为属主信息为root,zhangsan用户为其他用户,所以只有r读的权限
[zhangsan@zbx ~]$ vim /etc/hosts
//使用了S特权后,vim1已经有了root的护身符,所以zhangsan具有了root的属主特权,可读可写,但是在写的时候,保存的时候,需要按照提示操作进行保存。
[zhangsan@zbx ~]$ vim1 /etc/hosts
[zhangsan@zbx ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.223 zbx zbx.tedu.cn
192.168.10.224 svr224 svr224.tedu.cn

#aaaaaa

//说明zhangsan用户可以进行修改了,具有了w可写的特权了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值