用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可写的特权了