Linux_day06

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

用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可写的特权了
  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web应用程序的后台数据存储和管理。首次使用MySQL时,可以进行以下几个步骤: 1. 安装MySQL:首先需要下载并安装MySQL数据库服务器。可以从MySQL官方网站下载适合自己操作系统的安装包,并按照安装向导进行安装。 2. 启动MySQL服务:安装完成后,需要启动MySQL服务。在Windows系统中,可以在服务列表中找到MySQL服务并启动;在Linux系统中,可以使用命令行启动MySQL服务。 3. 连接到MySQL服务器:使用MySQL提供的客户端工具(如MySQL Shell、MySQL Workbench等)或命令行工具(如mysql命令)连接到MySQL服务器。需要提供正确的主机名、端口号、用户名和密码。 4. 创建数据库:连接到MySQL服务器后,可以使用SQL语句创建新的数据库。例如,可以使用以下语句创建一个名为"first_Day"的数据库: ``` CREATE DATABASE first_Day; ``` 5. 使用数据库:创建数据库后,可以使用以下语句选择要使用的数据库: ``` USE first_Day; ``` 6. 创建表:在选定的数据库中,可以使用SQL语句创建表格来存储数据。例如,可以使用以下语句创建一个名为"users"的表格: ``` CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT ); ``` 7. 插入数据:在创建表格后,可以使用INSERT语句向表格中插入数据。例如,可以使用以下语句向"users"表格中插入一条记录: ``` INSERT INTO users (name, age) VALUES ('John', 25); ``` 8. 查询数据:可以使用SELECT语句从表格中查询数据。例如,可以使用以下语句查询"users"表格中的所有记录: ``` SELECT * FROM users; ``` 9. 更新数据:使用UPDATE语句可以更新表格中的数据。例如,可以使用以下语句将"users"表格中id为1的记录的age字段更新为30: ``` UPDATE users SET age = 30 WHERE id = 1; ``` 10. 删除数据:使用DELETE语句可以删除表格中的数据。例如,可以使用以下语句删除"users"表格中id为1的记录: ``` DELETE FROM users WHERE id = 1; ``` 以上是MySQL的一些基本操作,希望对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值