Linux 基础知识(三)搜索替换、用户管理及Mysql数据库相关配置

艺帆风顺 发布于 2025-04-03 27 次阅读


搜索替换

grep 搜索文件内容

# 搜索/home/sqlsec/Desktop/BBS/中的所有 ph p后缀中的 password 关键词
grep -r "password" --include="*.php" /home/sqlsec/Desktop/BBS/

# 可以添加多个后缀
grep -r "关键词" --include="*.后缀1" --include="*.后缀2" 目标路径

# 搜索/home/sqlsec/Desktop/BBS/中的所有php后缀中的password关键词
# 不搜索js后缀
grep -r "password" --include="*.php" --exclude="*.js" /home/sqlsec/Desktop/BBS/

find 查找文件名

# 查找当前目录下所有 .php 的文件
find . -name "*.php"

# 查找所有文件中的 log 文件
find / -name "*.log"

# 目前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -ctime -20

# 查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {}

查找内容并替换

# 将 file_name文件中的 old 全部替换为 new
sed -i 's/old/new/g' file_name

# 修改 MySQL 的默认端口为 3307
sed -i 's/3306/3307/g' my.cnf

# 批量替换文件夹内容
sed -i "s/old/new/g" `grep "old" -rl floder_path`

用户

修改用户密码

# 修改当前用户密码
passwd

# 修改指定用户密码
passwd 用户名

# 修改root密码
sudo passwd

adduser 新建用户

adduser test 

useradd 新建用户

# 创建test用户并自动生成主目录且指定shell为bash
useradd -d /home/test -m test -s /bin/bash

# 设置test用户密码
passwd test

删除用户

# 只删除用户
sudo userdel 用户名

# 连同用户主目录一块删除
sudo userdel -r 用户名

MySQL

Ubuntu

# 安装MySQL客户端
apt install mysql-client

# 安装MySQL服务端
apt install mysql-server

# 启动MySQL
/etc/init.d/mysql start

# 初始化MySQL
sudo mysql_secure_installation

Debian/Kali

# 安装MySQL客户端
apt install mariadb-client

# 安装MySQL服务端
apt install mariadb-server

# 启动MySQL
/etc/init.d/mysql start

# 初始化MySQL
sudo mysql_secure_installation

CentOS

# 安装客户端和服务端 默认root密码为空
yum install mariadb-server

# 启动 mariadb
sudo systemctl start mariadb

# 设置开机自启
sudo systemctl enable mariadb

# 查看mariadb状态
sudo systemctl status mariadb

# 初始化MySQL
sudo mysql_secure_installation

允许 root 远程登陆

# 允许root外部访问连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里是root密码' WITH GRANT OPTION;

# 刷新权限
FLUSH PRIVILEGES;

查看此时的用户状态:

mysql> select user, host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+

关闭 root 远程登录

# 删除 host 为 % 的用户
DELETE FROM mysql.user WHERE User= "root" and Host="%";

# 刷新权限
FLUSH PRIVILEGES;

查看此时的用户状态:

mysql> select user, host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+

修改密码

# 修改 root 密码的 SQL语句
use mysql;
set password for 'root'@'localhost' = password('你设置的密码');

# 刷新权限 并退出
flush privileges;
quit;

或者直接命令行下修改:

mysqladmin -uroot -poldpassword password newpassword

连接非 3306 默认端口

mysql -h目标IP地址 -u用户名 -p密码 -P端口
mysql -h10.211.55.9 -uroot -ppassword -P 33060

导出 SQL 文件

# 导出所有数据库
mysqldump -uroot -proot --all-databases >/tmp/all.sql

# 导出 db1、db2 两个数据库的所有数据
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

# 导出 db1 中的 a1、a2 表
mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql

# 导出 db1 表 a1 中 id=1 的数据
mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1' >/tmp/a1.sql

# 只导出表结构不导出数据
mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

导入 SQL 文件

mysql -uroot -proot databases.sql

创建用户

CREATE USER 'test'@'%' IDENTIFIED BY 'test用户的密码';
GRANT ALL PRIVILEGES ON `test`.* TO 'test'@'%';
版权声明:本文内容始发于个人博客>作者 : 国光,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。始发链接:https://www.sqlsec.com/2019/10/linux.html#在此特别鸣谢:个人博主>国光的创作。本文已获原作者国光授权发布在本公众号;原作者已在本公众号关联运营账号(安全小姿势),故在此声明本文原创为国光(安全小姿势)。此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处。