hawcat
文章20
标签28
分类8

文章分类

文章归档

Linux - 一些常用指令备份

Linux - 一些常用指令备份

文件管理

  • ls -a查看所有包括隐藏文件
  • pwd 查看当前目录
  • echo “hello” > test/file.txt 将hello写入到test文件夹中的file.txt中 箭头的流向就是数据的流向 (echo会覆盖原内容)
  • cat 查看文件内容
  • cp -r test(相对路径) /tmp(绝对路径) 将test文件夹拷贝到tmp文件夹中(递归) 对文件夹进行操作
  • rm -r test 删除文件夹(递归)
  • mv test test_tmp 重命名 test为 test_tmp
  • mkdir -p /test/a 递归创建目录 可用于无父目录的情况下创建子目录 *-p, –parents no error if existing, make parent directories as needed

文件查询

  • echo $PATH 输入当前系统的环境变量
  • which * 输出当前环境变量的路径
  • ls -l /usr/bin/rm 查看文件的详细信息
  • touch {1..6}.txt 分别创建1.txt 2.txt 3.txt …….6.txt文件

Find命令操作

  • find /root -mtime(modification time) /-ctime(status time) /-atime(access time)
  • find /root -mtime -1(-1天 1天以内 +1一天之外) -name “*.txt” 查询修改时间一天以内的.txt文件
  • find /root -type f -name “*.log” 查询文档类型的.log文件
  • find /root -type f -name “*.log” | xargs rm -rf 将查询的文件转换为行 再进行删除
  • find /root -type f -name “*.tar.gz” -exec mv {} /tmp ; 将查询到的tar.gz文件 使用-exec执行mv命令 ({}指之前查到的所有文件名) 将其移动到/tmp路径下 ;为标准结束格式

权限 用户与组

1
2
3
[root@localhost ~]# ll -d /test /test/aa
drwxr-xr-x. 3 root root 16 Feb 10 21:27 /test
drwxr-xr-x. 2 root root 6 Feb 10 21:27 /test/aa

共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称
d :第一位表示文件类型
  d 文件夹
  -普通文件
  l 链接
  b 块设备文件
  p 管道文件
  c 字符设备文件
  s 套接口文件
  
rwx :第2-4位表示这个文件的属主拥有的权限。r是读、w是写、x是执行
r-x :第5-7位表示和这个文件属主所在同一个组的用户所具有的权限
r-x :第8-10位表示其他用户所具有的权限

r = 4;w = 2;x = 1;- = 0
用户可读可写可执行 = 4+2+1=7
组可读可执行 = 4+1=5
其他用户不可读不可写不可执行 = 0

  • chmod -R 750 /test 设定当前目录(包括所有子目录的权限为)750

  • umask 默认为022 创建新目录的权限为777-umask=755 创建新文件的权限为666-umask=644 重新设定umask值会将其默认权限改变

  • getfacl 查看目标目录权限

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@localhost ~]# su hawcat
    [hawcat@localhost root]$ getfacl /test/
    getfacl: Removing leading '/' from absolute path names
    #file: test
    #owner: root
    #group: root
    user::rwx
    group::r-x
    other::---
  • setfacl -m u:hawcat:rwx /test 设定用户可读可写可执行在目录/test中

    1
    2
    3
    4
    5
    [root@localhost ~]# ll /usr/bin/vim
    -rwxr-xr-x. 1 root root 2337216 Oct 13 2020 /usr/bin/vim
    [root@localhost ~]# chmod u+s /usr/bin/vim
    [root@localhost ~]# ll /usr/bin/vim
    -rwsr-xr-x. 1 root root 2337216 Oct 13 2020 /usr/bin/vim
  • chmod u+s /usr/bin/vim 为vim命令设置suid权限 默认以其宿主的身份执行,可让其他用户也有权限进行vim操作

  • chown hawcat.root /test/aa 修改test/aa的用户宿主的修改

  • lsattr /1.txt 隐藏权限查询

  • chattr +a /1.txt 增加隐藏权限 a锁 只允许>> 不允许>

  • useradd -u 888 -M -s /sbin/nologin zs123 添加用户zs123 参数分别为指定用户id为888 不允许创建家目录 指定解释器为/sbin/nologin

1
2
3
4
5
6
7
8
9
[root@localhost /]# groupadd -g 1222 aagroup
[root@localhost /]# grep aagroup /etc/group
aagroup:x:1222:
[root@localhost /]# useradd -g aagroup aa123
[root@localhost /]# id aa123
uid=1001(aa123) gid=1222(aagroup) groups=1222(aagroup)
[root@localhost /]# echo 123456|passwd --stdin aa123`
Changing password for user aa123.
passwd: all authentication tokens updated successfully.

创建一个aagroup组赋值ID为1222 在aagroup组下创建新用户aa123 并将其密码以标准输入流的方式设置为123456

1
2
3
4
5
6
7
8
9
[root@localhost /]# chage -m 7 -M 30 -I 3 -W 7 aa123
[root@localhost /]# chage -l aa123`
Last password change : Feb 11, 2023
Password expires : Mar 13, 2023
Password inactive : Mar 16, 2023
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 30
Number of days of warning before password expires : 7

修改aa123账户的最短修改密码时间和最大修改密码时间以及密码过期警告时间

  • userdel -r zs123删除用户zs123以及其家目录(并未创建)
  • su - aa123 -c pwd 以aa123用户执行pwd命令 可用于特定用户的脚本运行

磁盘

1
2
3
4
5
6
7
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk`
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 27.7G 0 part /
sr0 11:0 1 1024M 0 rom
  • lsblk list block当前磁盘以及所有块设备的信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT`
sda 8:0 0 30G 0 disk`
`├─sda1 8:1 0 300M 0 part /boot`
`├─sda2 8:2 0 2G 0 part [SWAP]`
`└─sda3 8:3 0 27.7G 0 part /`
`sr0 11:0 1 1024M 0 rom
[root@localhost ~]# fdisk /dev/sr0`
`fdisk: cannot open /dev/sr0: No medium found`
`[root@localhost ~]# fdisk /dev/sda3`
`Welcome to fdisk (util-linux 2.23.2).`

`Changes will remain in memory only, until you decide to write them.`
`Be careful before using the write command.`

`Device does not contain a recognized partition table`
`Building a new DOS disklabel with disk identifier 0xa2308ba0.`

`Command (m for help): m`
`Command action`
`a toggle a bootable flag`
`b edit bsd disklabel`
`c toggle the dos compatibility flag`
`d delete a partition`
`g create a new empty GPT partition table`
`G create an IRIX (SGI) partition table`
`l list known partition types`
`m print this menu`
`n add a new partition`
`o create a new empty DOS partition table`
`p print the partition table`
`q quit without saving changes`
`s create a new empty Sun disklabel`
`t change a partition's system id`
`u change display/entry units`
`v verify the partition table`
`w write table to disk and exit`
`x extra functionality (experts only)`

`Command (m for help): n`
`Partition type:`
`p primary (0 primary, 0 extended, 4 free)`
`e extended`
`Select (default p):`
`Using default response p`
`Partition number (1-4, default 1):`
`First sector (2048-58101759, default 2048):`
`Using default value 2048`
`Last sector, +sectors or +size{K,M,G} (2048-58101759, default 58101759): 500M`
`Value out of range.`
`Last sector, +sectors or +size{K,M,G} (2048-58101759, default 58101759): +500M`
`Partition 1 of type Linux and of size 500 MiB is set`

`Command (m for help): p`

`Disk /dev/sda3: 29.7 GB, 29748101120 bytes, 58101760 sectors`
`Units = sectors of 1 * 512 = 512 bytes`
`Sector size (logical/physical): 512 bytes / 512 bytes`
`I/O size (minimum/optimal): 512 bytes / 512 bytes`
`Disk label type: dos`
`Disk identifier: 0xa2308ba0`

Device Boot Start End Blocks Id System
`/dev/sda3p1 2048 1026047 512000 83 Linux`

`Command (m for help): n`
`Partition type:`
`p primary (1 primary, 0 extended, 3 free)`
`e extended`
`Select (default p): e`
`Partition number (2-4, default 2):`
`First sector (1026048-58101759, default 1026048):`
`Using default value 1026048`
`Last sector, +sectors or +size{K,M,G} (1026048-58101759, default 58101759):`
`Using default value 58101759`
`Partition 2 of type Extended and of size 27.2 GiB is set`

`Command (m for help): p`

`Disk /dev/sda3: 29.7 GB, 29748101120 bytes, 58101760 sectors`
`Units = sectors of 1 * 512 = 512 bytes`
`Sector size (logical/physical): 512 bytes / 512 bytes`
`I/O size (minimum/optimal): 512 bytes / 512 bytes`
`Disk label type: dos`
`Disk identifier: 0xa2308ba0`

Device Boot Start End Blocks Id System
`/dev/sda3p1 2048 1026047 512000 83 Linux`
`/dev/sda3p2 1026048 58101759 28537856 5 Extended`

`Command (m for help): n`
`Partition type:`
`p primary (1 primary, 1 extended, 2 free)`
`l logical (numbered from 5)`
`Select (default p): l`
`Adding logical partition 5`
`First sector (1028096-58101759, default 1028096):`
`Using default value 1028096`
`Last sector, +sectors or +size{K,M,G} (1028096-58101759, default 58101759): +500M`
`Partition 5 of type Linux and of size 500 MiB is set`

`Command (m for help): p`

`Disk /dev/sda3: 29.7 GB, 29748101120 bytes, 58101760 sectors`
`Units = sectors of 1 * 512 = 512 bytes`
`Sector size (logical/physical): 512 bytes / 512 bytes`
`I/O size (minimum/optimal): 512 bytes / 512 bytes`
`Disk label type: dos`
`Disk identifier: 0xa2308ba0`

Device Boot Start End Blocks Id System
`/dev/sda3p1 2048 1026047 512000 83 Linux`
`/dev/sda3p2 1026048 58101759 28537856 5 Extended`
`/dev/sda3p5 1028096 2052095 512000 83 Linux`

`Command (m for help): w`
`The partition table has been altered!`

`Calling ioctl() to re-read partition table.`

`WARNING: Re-reading the partition table failed with error 22: Invalid argument.`
`The kernel still uses the old table. The new table will be used at`
`the next reboot or after you run partprobe(8) or kpartx(8)`
`Syncing disks.`

使用fdisk工具给sda3进行分区 第一步是分配500M的主分区,第二部创建剩余空间为扩展分区,第三步分配500M给逻辑分区,拓展分区类似于Windows下的未分配空间,是不可用的,只有经过格式化的分区才能够被linux正常使用

但此步骤并无作用 相反还可能有危险,仅仅作为指令练手,因为当前块设备以及经过分区,并且已经挂载在/目录。所以在lsblk中并不能查看到块设备sda下sda3的分区

  • mkfs -t ext4 /dev/块设备 格式化对应分区为ext4格式
  • df -Th 显示当前所有分区以及使用情况
  • mount 挂载

网络

  • hostname test.hawcat.cn 修改当前hostname为test.hawcat.cn bash后会将其改为当前hostname的记录值
  • hostnamectl set-hostname test.hawcat.cn 修改配置文件使其永久生效
  • ip addr 查看网络配置信息
  • ip addr show eth0 查看eth0网卡下的配置信息
  • ifconfig ens33:1 192.168.24.128/24 up 在ens33网卡下新建一个虚拟 IP为192.168.24.128
  • ifconfig ens33:1 down 将其关闭
1
2
3
4
[root@test ~]# ip route
default via 192.168.26.2 dev ens33 proto dhcp metric 100
192.168.26.0/24 dev ens33 proto kernel scope link src 192.168.26.129 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
  • 查看当前网卡的路由信息
  • ss -lntup 查看所有端口对应的服务参数分别表示为处于监听状态 不转化为数字 tdp udp 进程
  • ss -lntup|grep 22 / netstat -lntup|grep 22 过滤掉非22端口的服务

系统监控

  • ps -ef 显示所有进程

  • ps -ef | grep vim 显示包含vim的进程

  • top 动态监控当前进程信息

  • free -m 查看内存情况 参数m为单位 表示多少兆

  • df -Th 磁盘使用情况 –human-readable print sizes in human readable format (e.g., 1K 234M 2G) –print-type print file system type

一点Dockerfile知识

常用指令 FROM,WORKDIR,COPY,RUN,CMD

FROM archlinux:latest #基于什么镜像
WORKDIR /app #Shell语句运行在哪个目录
COPY src/ /app 将宿主机中文件拷贝到/app下
RUN echo 321 >> 1.txt #创建时运行的Shell脚本
CMD tail -f 1.txt #阻塞式
cat 1.txt #非阻塞式

docker build -t test:latest

守护进程

Daemon

systemd:

systemctl 命令管理各种systemd各种对象

systemd [command] [unit]

image-20230512001005815

Redis

Redis 键值存储

Mysql缓存

随即删除 惰性删除

缓存击穿:(热点数据过了有效期)查询不存在的记录,不添加Redis只需要在Mysql中查询一次,但如果添加Redis查询不存在1的记录则需要查询3次 一次查询 一次读缓存,一次请求缓存

缓存雪崩:(大批数据同时过了有效期)

持久化方式:快照 追加日志

文本操作三大神器

Linux 文本操作的三大神器:grep、sed、awk,各自的最佳应用场景:

  • grep:使用正则表达式搜索文本,并把匹配的行打印出来,是强大的文本搜索工具;
  • sed:用于编辑匹配到的文本,是一种流编辑器;
  • awk:能够对文本进行复杂的格式处理,是一种处理文本的语言。

:D 获取中...

本文作者:hawcat
本文链接:https://hawcat.cn/2023/02/19/Linux/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×