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
kill和pkill都是Linux系统命令,用于终止(kill)进程。但它们之间存在以下区别:
-
命令形式不同:kill需要指定进程ID(PID)来终止进程,pkill则是通过进程名或其他特定的进程标识符来终止进程。
-
批量终止进程:pkill可以一次性终止多个进程,kill只能终止单个进程。
-
快捷使用: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': 不允许的操作