首页
恋爱日记
数据统计
留言板
更多
友情链接
Search
1
CentOS7安装部署weblogic12.1.1
3,130 阅读
2
Docker真的被Kubernetes放弃了吗?
2,824 阅读
3
一款可以自定义VScode背景的插件
2,682 阅读
4
Nginx搭建本地YUM仓库
2,352 阅读
5
CentOS 7安装fail2ban+Firewalld防止SSH爆破与CC攻击
2,157 阅读
Prometheus网站监控面板
Vscode
Typecho优化
Ops工具
Linux
Shell
Nginx
Weblogic
云原生
Kubernetes
Docker
Ceph
监控
Promethues
Zabbix
Grafana
数据库
MySQL
登录
Search
废柴阿尤
累计撰写
25
篇文章
累计收到
14
条评论
首页
栏目
Prometheus网站监控面板
Vscode
Typecho优化
Ops工具
Linux
Shell
Nginx
Weblogic
云原生
Kubernetes
Docker
Ceph
监控
Promethues
Zabbix
Grafana
数据库
MySQL
页面
恋爱日记
数据统计
留言板
友情链接
搜索到
5
篇与
的结果
2023-07-12
Linux常用命令、配置文件及作用
常用命令及作用pwd # 打印路径 ls # 查看目录 常用参数: -l 查看文件或目录的详细信息 cd # 切换路径 touch # 新建文件 mkdir # 新建目录 常用参数: -p 递归创建目录 mv # 移动文件或目录 cp # 拷贝文件或目录 常用参数: - cat # 查看文件中的内容 rm # 删除 常用参数: -r 将目录及以下之档案亦逐一删除; -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认 blkid # 查看硬件设备 mount # 挂载硬件设备 umount # 卸载硬件设备 df # 显示目前在 Linux 系统上的文件系统磁盘使用情况统计 常用参数:-h free # 查看内存使用情况 常用参数: -h 使用人类可读的格式 lscpu # 查看cpu信息 uptime # 查看系统负载 which # 在环境变量$PATH设置的目录里查找符合条件的文件 netstat -nltp # 以数字的形式显示地址和端口号列出以tcp协议有关的服务状态以及建立相关链接的程序名 chmod # 给文件权限 常用参数:-R 递归给目标目录下所有文件及目录相同的权限; r 读权限; w 写权限; x 可执行; + 增加权限; - 取消权限; = 唯一设定权限 firewall-cmd # 管理防火墙的命令 firewall-cmd --zone=public --add-port=80/tcp --permanent # 添加(80)端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent # 删除(80)端口 firewall-cmd --list-all # 列出防火墙所有规则 firewall-cmd --reload # 重新加载防火墙规则 ip addr add 10.0.0.200/24 dev eth0 # 增加一个临时ip ip addr delete 10.0.0.200/24 dev eth0 # 删除一个临时ip head # 默认显示文件的前10行 -n -3显示前三行 tail # 默认显示文件的后10行 # -n -3显示最后三行 # -f 实时查看最新的日志 # -F 实时显示文件的内容 不存在则跟踪 wc # 统计 # -l 统计行数 hostnamectl # 查看系统版本号 uname -r # 查看内核版本 uname -a # 查看内核版本 getenforce # 查看Selinux状态 setenforce # 打开或关闭Selinux 0关闭 1开启 date # 查看系统时间 # +%F-%H-%M-%S 年月时分秒 # -s 更改系统时间 clock # 查看硬件时间 # -w 将系统时间和硬件时间同步 ntpdate ntp1.aliyun.com # 与时间服务器同步 yum repolist # 查看默认仓库 yum clean all # 清除yum缓存 yum list # 查看仓库中所有的包 yum install -y 包名称 # 安装包 yum romove -y 包名称 # 卸载包 rpm -ivh name.rpm # 安装rpm包 ps -axuf # 以树状静态显示进程 top # 以动态来显示进程 kill # 杀死进程 1 重新加载配置文件 9 强制杀死进程 15 终止进程,默认kill使用该信号 nohup 脚本 & # 将进程放到后台持续运行不退出 nice # 指定程序的优先级,语法格式 nice -n 优先级数字 进程名称 last # 目前登录过系统的用户信息 jobs # 查看后台运行任务 ping ip add # 查看IP route -n # 查看网关 ifconfig # 查看IP nslookup # 查看DNS traceroute -n -I # 路由跟踪 tcpdump # 抓包工具 nmap # 扫描端口 iftop # 流量监控 iotop # I/O监控 netstat -tnulp # 查看端口 ss -an|grep tcp # 与netstat几乎相同 telnet # 检查某个主机是否开启某个端口 默认端口23常用系统配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 # 系统网卡配置文件 /etc/hosts # 配置主机和IP的对应关系 /etc/hostname # 掌握配置临时+永久的主机名称 /etc/resolv.conf # DNS配置文件 配置方法 /etc/rc.local # 开机自动执行的命令所在地 /etc/fstab # 开机自动挂载硬件 /etc/inittab # 运行级别配置文件 /etc/profile # 永久存放系统变量的文件 /etc/issue /etc/issue.net # 开机时显示在登录界面上的两行信息 /etc/motd # 开机自动显示的字符串 /etc/redhat-release # 查看系统版本号 /etc/selinux/config # Selinux配置文件
2023年07月12日
1,397 阅读
0 评论
267 点赞
2023-07-07
Linux必会基础命令
1. pwd 显示当前所在的路径 print working directory语法结构: [root@luckly ~]# pwd # 回车 /root2. cd 切换目录 change directorycd 回到家目录 cd ~ 回到家目录 cd /root 回到家目录 cd - 返回到上一次所在的路径 cd .. 回到上一级目录 cd . 表示当前的目录 语法结构: 相对路径进入目录: [root@luckly ~]# cd / [root@luckly /]# cd etc [root@luckly etc]# cd sysconfig/ [root@luckly sysconfig]# cd network-scripts/ [root@luckly network-scripts]# pwd /etc/sysconfig/network-scripts [root@luckly network-scripts]# 使用绝对路径进入目录: [root@luckly network-scripts]# cd # cd直接回到皇宫 [root@luckly ~]# [root@luckly ~]# cd /etc/sysconfig/network-scripts/ [root@luckly network-scripts]# pwd /etc/sysconfig/network-scripts [root@luckly ~]# cd - # 回到上一次所在的路径 /etc/sysconfig/network-scripts [root@luckly network-scripts]# pwd /etc/sysconfig/network-scripts # cd ~ 回到家目录 [root@luckly network-scripts]# cd ~ [root@luckly ~]# # cd /root 回到家目录 [root@luckly network-scripts]# cd /root/ [root@luckly ~]# pwd /root # 回到上一级目录 [root@luckly network-scripts]# cd .. [root@luckly sysconfig]# pwd /etc/sysconfig # 回到上二级目录 [root@luckly sysconfig]# cd ../.. [root@luckly /]# pwd / # 点表示当前所在的目录 [root@luckly ~]# cd . [root@luckly ~]#3.ls 查看文件或目录参数选项: -l 显示文件或目录的详细信息 -d 只查看目录本身的详细信息 语法结构: # 查看1.txt是否存在 [root@luckly ~]# ls 1.txt 1.txt [root@luckly ~]# ls 2.txt ls: cannot access 2.txt: No such file or directory # 显示当前目录的所有的文件 [root@luckly ~]# ls 1.txt hosts luckly # 指定查看/tmp目录下有哪些文件 [root@luckly ~]# ls /tmp/ ks-script-zVRXqX vmware-root_848-2697663887 vmware-root_800-2999657415 yum.log # 查看/目录和/tmp目录下有哪些文件 [root@luckly ~]# ls / /tmp/ /: bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr /tmp/: ks-script-zVRXqX vmware-root_848-2697663887 vmware-root_800-2999657415 yum.log # ls -l 查看详细信息 [root@luckly ~]# ls -l total 4 -rw-r--r--. 1 root root 0 Jul 3 11:50 1.txt -rw-r--r--. 1 root root 158 Jul 3 16:33 hosts drwxr-xr-x. 2 root root 6 Jul 3 16:41 luckly # 执行ll命令相当于执行 ls -l命令 [root@luckly ~]# ll total 4 -rw-r--r--. 1 root root 0 Jul 3 11:50 1.txt -rw-r--r--. 1 root root 158 Jul 3 16:33 hosts drwxr-xr-x. 2 root root 6 Jul 3 16:41 luckly [root@luckly ~]# ll /tmp/ total 8 -rwx------. 1 root root 836 Jun 29 17:51 ks-script-zVRXqX drwx------. 2 root root 6 Jul 3 10:45 vmware-root_800-2999657415 drwx------. 2 root root 6 Jul 3 10:44 vmware-root_846-2697139606 drwx------. 2 root root 6 Jun 30 09:12 vmware-root_848-2697663887 -rw-------. 1 root root 0 Jun 29 17:44 yum.log [root@luckly ~]# ll 1.txt -rw-r--r--. 1 root root 0 Jul 3 11:50 1.txt [root@luckly ~]# ll 1.txt hosts -rw-r--r--. 1 root root 0 Jul 3 11:50 1.txt -rw-r--r--. 1 root root 158 Jul 3 16:33 hosts4.touch 创建普通文件 摸(如果文件存在则修改文件的时间)时间和时间戳的区别 语法结构: 相对路径 touch file1 touch file1 file2 绝对路径 touch /tmp/file1 touch /tmp/file2 /tmp/file3 [root@luckly ~]# ll total 0案例1:创建一个文件[root@luckly ~]# touch 1.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:06 1.txt案例2: 创建多个文件[root@luckly ~]# touch 2.txt 3.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:06 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:06 2.txt -rw-r--r--. 1 root root 0 Jul 3 17:06 3.txt案例3: 在/opt目录下创建test.txt相对路径: [root@luckly ~]# cd /opt/ [root@luckly opt]# ll total 0 [root@luckly opt]# touch test.txt [root@luckly opt]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:08 test.txt 绝对路径: [root@luckly ~]# touch /opt/1.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:09 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:08 test.txt案例4:在/opt目录下创建a.txt和b.txt相对路径: [root@luckly ~]# cd /opt/ [root@luckly opt]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:09 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:08 test.txt [root@luckly opt]# touch a.txt b.txt [root@luckly opt]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:09 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:10 a.txt -rw-r--r--. 1 root root 0 Jul 3 17:10 b.txt 绝对路径: 错误的创建方式: [root@luckly ~]# ll /opt/ total 0 [root@luckly ~]# touch /opt/a.txt b.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 3 17:06 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:06 2.txt -rw-r--r--. 1 root root 0 Jul 3 17:06 3.txt -rw-r--r--. 1 root root 0 Jul 3 17:11 b.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:11 a.txt --------------------我是一条快乐的分割线-------------------- 正确的创建方式: [root@luckly ~]# touch /opt/a.txt /opt/b.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:12 a.txt -rw-r--r--. 1 root root 0 Jul 3 17:12 b.txt --------------------我是一条快乐的分割线-------------------- 扩展: 序列 /opt下创建1.txt 2.txt 3.txt [root@luckly ~]# touch /opt/{1..3}.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:13 1.txt -rw-r--r--. 1 root root 0 Jul 3 17:13 2.txt -rw-r--r--. 1 root root 0 Jul 3 17:13 3.txt案例5: 在/opt下和/tmp下同时创建luckly.txt[root@luckly ~]# touch /opt/luckly.txt /tmp/luckly.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:15 luckly.txt [root@luckly ~]# ll /tmp/ total 0 -rw-r--r--. 1 root root 0 Jul 3 17:15 luckly.txt案例6: 在上一级创建一个test.txt[root@luckly tmp]# pwd /tmp [root@luckly tmp]# touch /test.txt [root@luckly tmp]# cd / [root@luckly /]# touch test.txt 使用..上一级方式 [root@luckly tmp]# touch ../test.txt5.mkdir 创建目录语法格式: mkdir 目录名称 # 创建单个目录 mkdir test1 test2 # 创建多个目录 mkdir /opt/test # 指定目录下创建目录 mkdir /opt/test1 /opt/test2 # 在相同目录下创建多个文件 mkdir /opt/test1 /tmp/test2 # 在不同目录下创建目录 #在/opt/test/hehe下创建hehe目录 mkdir /opt/test/hehe # test目录必须存在案例1:在当前目录下创建luckly目录[root@luckly ~]# mkdir luckly [root@luckly ~]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:03 luckly [root@luckly ~]# mkdir luckly mkdir: cannot create directory ‘luckly’: File exists案例2:在当前创建多个目录[root@luckly ~]# mkdir test1 test2 test3 [root@luckly ~]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:03 luckly drwxr-xr-x. 2 root root 6 Jul 4 10:04 test1 drwxr-xr-x. 2 root root 6 Jul 4 10:04 test2 drwxr-xr-x. 2 root root 6 Jul 4 10:04 test3案例3:在指定目录下创建多个目录# 在/opt目录下创建luckly和test目录 [root@luckly ~]# mkdir /opt/luckly /opt/test [root@luckly ~]# ll /opt/ total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:13 luckly drwxr-xr-x. 2 root root 6 Jul 4 10:13 test案例4:在不同目录下创建不同目录# 在/opt目录和/tmp目录下创建luckly2 [root@luckly ~]# mkdir /opt/luckly2 /tmp/luckly2 [root@luckly ~]# ll /opt/ total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:15 luckly2 [root@luckly ~]# ll /tmp/ total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:15 luckly2案例5:递归创建多级目录# 在当前目录下创建test1/test2/test3/luckly -p #递归创建目录,如果目录存在则不提示文件已存在,如果目录不存在则创建 [root@luckly ~]# mkdir -p test1/test2/test3/luckly [root@luckly ~]# ll total 0 drwxr-xr-x. 3 root root 19 Jul 4 10:16 test1 [root@luckly ~]# ll test1/ total 0 drwxr-xr-x. 3 root root 19 Jul 4 10:16 test2 [root@luckly ~]# ll test1/test2/ total 0 drwxr-xr-x. 3 root root 20 Jul 4 10:16 test3 [root@luckly ~]# ll test1/test2/test3/ total 0 drwxr-xr-x. 2 root root 6 Jul 4 10:16 luckly6.cat 查看文件内容语法结构: 命令参数: -n # 显示行号 cat 文件名 # 相对路径 cat /etc/hosts # 绝对路径 cat file1 file2 # 查看多个文件的内容案例1:查看/etc/hosts文件内容[root@luckly ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6案例2:查看多个文件内容echo 11 > test.txt # 将11字符串输入到test.txt中 echo 22 > luckly.txt # 将22字符串输入到oluckly.txt中 [root@luckly ~]# cat test.txt 11 [root@luckly ~]# cat luckly.txt 22 [root@luckly ~]# cat test.txt luckly.txt 11 22案例3:-n 显示行号[root@luckly ~]# cat -n /etc/hosts 1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6案例4: cat 将内容写道文件中(扩展)# 将内容写入到文件中 [root@luckly ~]# cat>1.txt<<EOF > 1 > 2 > hehe > EOF [root@luckly ~]# cat 1.txt 1 2 hehe [root@luckly ~]# ll total 12 -rw-r--r--. 1 root root 9 Jul 4 11:48 1.txt # 扩展: 文件合并 [root@luckly ~]# echo 11 > 1.txt [root@luckly ~]# echo 22 > 2.txt [root@luckly ~]# cat 1.txt 11 [root@luckly ~]# cat 2.txt 22 [root@luckly ~]# cat 1.txt 2.txt > all.txt [root@luckly ~]# cat all.txt 11 22 [root@luckly ~]# ll total 12 -rw-r--r--. 1 root root 3 Jul 4 11:52 1.txt -rw-r--r--. 1 root root 3 Jul 4 11:52 2.txt -rw-r--r--. 1 root root 6 Jul 4 11:52 all.txt7.cp 复制文件语法格式: cp 源文件 目标位置 cp /etc/hosts 当前 cp /etc/hosts /opt/ 复制到指定位置 cp /etc/hosts host.bak 改名 cp /etc/hosts /opt/hosts.txt 改名案例1:将当前位置的1.txt复制到/opt目录下[root@luckly ~]# touch 1.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:01 1.txt # 清空/opt目录下所有的文件 [root@luckly ~]# rm -rf /opt/* [root@luckly ~]# ll /opt/ total 0 [root@luckly ~]# cp 1.txt /opt/ [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:01 1.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 12:02 1.txt # 如果目标文件存在则提示是否覆盖? [root@luckly ~]# cp 1.txt /opt/ cp: overwrite ‘/opt/1.txt’? 输入y或者n y为覆盖 n为不拷贝案例2:拷贝多个文件到/opt目录[root@luckly ~]# touch test.txt luckly.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:01 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:03 luckly.txt -rw-r--r--. 1 root root 0 Jul 4 12:03 test.txt # 注意: 拷贝多个文件最后的必须为目录 [root@luckly ~]# cp luckly.txt test.txt /opt/1.txt cp: target ‘/opt/1.txt’ is not a directory 目标1.txt不是一个目录 [root@luckly ~]# cp luckly.txt test.txt /opt/ [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 12:05 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:06 luckly.txt -rw-r--r--. 1 root root 0 Jul 4 12:06 test.txt # 如果想覆盖目标文件且不提示则加\ [root@luckly ~]# cp 1.txt luckly.txt test.txt /opt/ cp: overwrite ‘/opt/1.txt’? cp: overwrite ‘/opt/luckly.txt’? cp: overwrite ‘/opt/test.txt’? [root@luckly ~]# \cp 1.txt luckly.txt test.txt /opt/ # 在LInux系统中系统为了保证数据安全在危险的命令执行的时候增加了-i的参数 rm -i mv -i cp -i案例3:拷贝不同目录下的文件到/opt目录# 复制/etc/hsots luckly.txt /opt/1.txt 到/tmp目录下 清空tmp目录 [root@luckly ~]# rm -rf /tmp/* [root@luckly ~]# [root@luckly ~]# cp /etc/hosts luckly.txt /opt/1.txt /tmp/ [root@luckly ~]# ll /tmp/ total 4 -rw-r--r--. 1 root root 0 Jul 4 12:15 1.txt -rw-r--r--. 1 root root 158 Jul 4 12:15 hosts -rw-r--r--. 1 root root 0 Jul 4 12:15 luckly.txt案例4:改名# 将当前的luckly.txt 改名为 2.txt [root@luckly ~]# cp 1.txt 2.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:01 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:16 2.txt # 将当前目录的1.txt拷贝到/tmp目录改名为1.txt.bak [root@luckly ~]# cp 1.txt /tmp/1.txt.bak [root@luckly ~]# ll /tmp/ total 4 -rw-r--r--. 1 root root 0 Jul 4 12:15 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:18 1.txt.bak # 复制/opt目录下的luckly.txt 到/opt目录改名为luckly.bak 相对路径: [root@luckly ~]# cd /opt/ [root@luckly opt]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:13 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:07 luckly.txt -rw-r--r--. 1 root root 0 Jul 4 12:07 test.txt [root@luckly opt]# cp luckly.txt luckly.bak [root@luckly opt]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 12:13 1.txt -rw-r--r--. 1 root root 0 Jul 4 12:19 luckly.bak -rw-r--r--. 1 root root 0 Jul 4 12:07 luckly.txt 绝对路径: [root@luckly ~]# cp /opt/1.txt /opt/1.bak案例5:将/etc/hosts拷贝到当前目录[root@luckly ~]# rm -rf * [root@luckly ~]# cp /etc/hosts . [root@luckly ~]# ll total 4 -rw-r--r--. 1 root root 158 Jul 4 12:21 hosts [root@luckly ~]# cp /etc/passwd /opt/luckly.txt . [root@luckly ~]# ll total 8 -rw-r--r--. 1 root root 158 Jul 4 12:21 hosts -rw-r--r--. 1 root root 0 Jul 4 12:22 luckly.txt -rw-r--r--. 1 root root 981 Jul 4 12:22 passwd # 拷贝源文件必须存在 [root@luckly ~]# cp /tmp/1111.txt . cp: cannot stat ‘/tmp/1111.txt’: No such file or directory案例6:拷贝目录命令参数: -r # 递归 # 拷贝目录及目录下所有的文件到当前 [root@luckly ~]# rm -rf * [root@luckly ~]# rm -rf /opt/* [root@luckly ~]# ll /opt/ total 0 # cp无法直接操作目录 必须使用参数 [root@luckly ~]# cp /etc . cp: omitting directory ‘/etc’ [root@luckly ~]# cp -r /etc . [root@luckly ~]# ll total 12 drwxr-xr-x. 79 root root 8192 Jul 4 12:25 etc # 拷贝多个目录 [root@luckly ~]# cp -r /etc /opt/luckly . [root@luckly ~]# ll total 12 drwxr-xr-x. 79 root root 8192 Jul 4 12:28 etc drwxr-xr-x. 2 root root 6 Jul 4 12:28 luckly8.mv 移动文件语法结构: mv 源文件 目标位置 # 移动单个文件 mv file1 file2 目标位置 # 移动多个文件 mv luckly.txt luckly.bak # 改名 mv dir 目标位置 案例1.将当前1.txt移动到/opt目录下[root@luckly ~]# touch 1.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt # 将当前的1.txt移动到/opt目录下 [root@luckly ~]# mv 1.txt /opt/ [root@luckly ~]# ll total 0 [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt drwxr-xr-x. 2 root root 6 Jul 4 12:28 luckly [root@luckly ~]# # 将/opt/1.txt移动到当前目录 [root@luckly ~]# mv /opt/1.txt ./ [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt案例2:移动多个文件[root@luckly ~]# touch 2.txt 3.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt [root@luckly ~]# rm -rf /tmp/* [root@luckly ~]# mv 1.txt 2.txt 3.txt /tmp/ [root@luckly ~]# ll /tmp/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt [root@luckly ~]# ll /tmp/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt # 将/tmp目录下所有的文件移动到当前目录 [root@luckly ~]# mv /tmp/* . [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt案例3:修改文件名称# 将1.txt修改为1.bak [root@luckly ~]# mv 1.txt 1.bak [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.bak -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt # 将1.bak 移动到/opt/改名称为1.log [root@luckly ~]# mv 1.bak /opt/1.log [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.log案例4:移动目录[root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.log drwxr-xr-x. 2 root root 6 Jul 4 12:28 luckly [root@luckly ~]# ll /opt/luckly/ total 0 [root@luckly ~]# touch /opt/luckly/2.txt [root@luckly ~]# ll /opt/luckly/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:30 2.txt # 移动目录luckly到当前目录下 [root@luckly ~]# mv /opt/luckly/ . [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.log drwxr-xr-x. 2 root root 24 Jul 4 15:32 test # 将test目录移动到当前目录命名为test1 [root@luckly ~]# mv /opt/test/ ./test1 [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly drwxr-xr-x. 2 root root 24 Jul 4 15:32 test19.rm 删除文件语法结构: 命令参数: -f参数 强制删除不提示 force强制的意思 rm file # 删除文件 rm dir # 删除目录 rm file1 file2 .. # 删除多个文件 rm dir1 dir2 .. # 删除多个目录案例1:删除1.txt[root@luckly ~]# touch 1.txt 会提示用户是否删除 y删除 n不删除 [root@luckly ~]# rm 1.txt rm: remove regular empty file ‘1.txt’? # 在命令前加\ eg.(\rm)取消别名还原本意 [root@luckly ~]# \rm 1.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:22 2.txt -rw-r--r--. 1 root root 0 Jul 4 15:22 3.txt drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly drwxr-xr-x. 2 root root 24 Jul 4 15:32 test1案例2:删除多个文件# 强制删除2.txt 3.txt [root@luckly ~]# rm -f 2.txt 3.txt [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:47 1.txt drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly drwxr-xr-x. 2 root root 24 Jul 4 15:32 test1 [root@luckly ~]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 15:47 1.txt drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly drwxr-xr-x. 2 root root 24 Jul 4 15:32 test1 # 删除/opt下的1.log和当前路径的1.txt [root@luckly ~]# ll /opt/ total 0 -rw-r--r--. 1 root root 0 Jul 4 15:18 1.log [root@luckly ~]# rm -f 1.txt /opt/1.log [root@luckly ~]# ll total 0 drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly drwxr-xr-x. 2 root root 24 Jul 4 15:32 test1 [root@luckly ~]# ll /opt/ total 0案例3:删除目录(在工作中尽量使用mv替代rm)# rm默认无法直接操作目录 需要参数配合 [root@luckly ~]# rm test1 rm: cannot remove ‘test1’: Is a directory [root@luckly ~]# rm -rf test1 [root@luckly ~]# ll total 0 drwxr-xr-x. 2 root root 19 Jul 4 15:30 luckly案例4:删除多个文件[root@luckly ~]# mkdir luckly test luckly1 [root@luckly ~]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 4 16:06 luckly drwxr-xr-x. 2 root root 6 Jul 4 16:06 luckly1 drwxr-xr-x. 2 root root 6 Jul 4 16:06 test [root@luckly ~]# rm -rf luckly luckly1 test [root@luckly ~]# ll total 0
2023年07月07日
730 阅读
0 评论
168 点赞
2021-12-16
Duplicity:企业级的增量备份与数据恢复工具
在日常运维中,数据备份和恢复是一项至关重要的任务。使用 Duplicity 进行数据备份和恢复是一个非常高效的方式。它的增量备份能节省大量的存储空间和带宽,同时还能为恢复过程带来便利。在备份策略中加入定期的全量备份和删除过期备份,可以更有效地管理你的备份文件。在这篇文章中,我们将简单介绍如何使用 Duplicity 进行网站数据的备份和恢复。以下是在 Debian 或 Ubuntu 系统上使用 Duplicity 进行网站数据备份和恢复的详细步骤:安装Duplicity和配置GPG密钥首先,我们需要在源服务器(即你希望备份数据的服务器)上安装 Duplicity。以下命令适用于 Debian 或 Ubuntu 系统:apt-get update apt-get install duplicity接下来,在源服务器上,为了增加数据的安全性,我们需要创建 GPG 密钥:gpg --gen-key gpg --list-keys最后,我们需要在源服务器上导出 GPG 密钥,并将其安全地传输到任何可能需要恢复数据的服务器(例如备份服务器或其他服务器):gpg --export-secret-keys YOUR-KEY-ID > private.key gpg --export YOUR-KEY-ID > public.key scp private.key user@recovery.server:/path/to/keydir scp public.key user@recovery.server:/path/to/keydir这里,YOUR-KEY-ID是你的GPG 密钥 ID。user 是恢复服务器的用户名,recovery.server 是恢复服务器的地址,/path/to/keydir 是存放密钥文件的目录。数据备份增量备份 Duplicity 默认进行增量备份。这意味着在首次备份全部数据后,之后的备份只会备份自上次备份以来更改过的文件,大幅节省存储空间和网络带宽:duplicity /var/www/html scp://user@backup.server//backup这里,user和 backup.server 需替换为实际的用户名和备份服务器地址。{alert type="error"}需要注意:命令使用双斜杠是因为SCP路径的特殊性。//表示这是一个绝对路径,//backup指的是根目录下的"backup"文件夹,即/backup目录,如果这里用单斜杆/那么/home指的则是用户的home目录下的"backup"文件夹。这个规则在SCP和RSYNC中都适用。{/alert}定期全量备份 尽管增量备份很有用,但定期进行全量备份可以降低数据恢复的复杂性。以下命令会在距离上次全量备份超过 30 天时,自动执行全量备份:duplicity --full-if-older-than 30D /var/www/html scp://user@backup.server//backup定期删除过期备份 为有效管理存储空间,我们需要定期删除过期的备份。以下命令将删除 60 天前的所有备份:duplicity remove-older-than 60D scp://user@backup.server//backup --force数据恢复要从备份中恢复数据,首先你需要在源服务器(或者任何你打算恢复数据的服务器)上导入之前用于加密备份的 GPG 密钥对,包括公钥和私钥:gpg --import /path/to/keydir/private.key gpg --import /path/to/keydir/public.key接着,使用 Duplicity 进行数据恢复:duplicity scp://user@backup.server//backup /var/www/html这将从备份服务器的 /backup目录恢复数据到本地的 /var/www/html目录。写在最后为什么是 Duplicity 而不是 rsync ?我们知道 rsync 在文件同步方面优秀,但其在备份中缺乏版本控制和错误检查,不能有效防止数据丢失。因此,我们建议备份关键数据时,考虑使用具备增量备份和数据加密功能的 Duplicity、BorgBackup 或类似工具,实现更安全、更有效的数据保护。
2021年12月16日
1,521 阅读
0 评论
538 点赞
2021-10-02
CentOS 7安装fail2ban+Firewalld防止SSH爆破与CC攻击
说明:很多站长会遇到网站被CC攻击和SSH爆破的情况,这个时候就需要做下防御措施了,这里针对CentOS 7再分享个简单防CC攻击和SSH爆破的方法。前言fail2ban可以监视你的系统日志,然后匹配日志的错误信息执行相应的屏蔽动作。网上大部分教程都是关于fail2ban+iptables组合,考虑到CentOS 7已经自带Firewalld,所以这里我们也可以利用fail2ban+Firewalld来防CC攻击和SSH爆破。本教程编辑文件使用vim命令,如果不会用的,可以使用比较简单的nano,或者编辑好使用 FTP工具,如Xshell登录VPS操作。准备工作1、检查 Firewalld 是否启用#如果您已经安装iptables建议先关闭 service iptables stop #查看Firewalld状态 firewall-cmd --state #启动firewalld systemctl start firewalld #设置开机启动 systemctl enable firewalld.service启用Firewalld后会禁止所有端口连接,因此请务必放行常用的端口,以免被阻挡在外,以下是放行SSH端口(22)示例,供参考:#放行22端口 firewall-cmd --zone=public --add-port=80/tcp --permanent #重载配置 firewall-cmd --reload #查看已放行端口 firewall-cmd --zone=public --list-ports2、安装 fail2ban fail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描等非常有效。#CentOS内置源并未包含fail2ban,需要先安装epel源 yum -y install epel-release #安装fial2ban yum -y install fail2ban安装成功后fail2ban配置文件位于/etc/fail2ban,其中jail.conf为主配置文件,相关的匹配规则位于filter.d目录,其它目录/文件一般很少用到,如果需要详细了解可自行搜索。3、配置规则{tabs}{tabs-pane label="新建jail.local来覆盖fail2ban的一些默认规则:"}#新建配置 vi /etc/fail2ban/jail.local #默认配置 [DEFAULT] ignoreip = 127.0.0.1/8 bantime = 86400 findtime = 600 maxretry = 5 #这里banaction必须用firewallcmd-ipset,这是firewall支持的关键,如果是用Iptables请不要这样填写 banaction = firewallcmd-ipset action = %(action_mwl)s{/tabs-pane}{tabs-pane label="参数说明"}ignoreip:IP白名单,白名单中的IP不会屏蔽,可填写多个以(,)分隔 bantime:屏蔽时间,单位为秒(s) findtime:时间范围 maxretry:最大次数 banaction:屏蔽IP所使用的方法,上面使用firewalld屏蔽端口{/tabs-pane}{/tabs}防止SSH爆破如果您还在使用默认SSH端口(22),可能每天都会被扫描,我们可以修改端口尽量避免被扫。直接输入命令:vi /etc/ssh/sshd_config编辑配置文件,然找到#Port22这一行,将#号去掉,并将22修改为您想设置的其它端口号,最后保存退出,CentOS7最后再输入命令systemctl restart sshd.service重启sshd即可。当然你也可以使用fail2ban将恶意IP屏蔽。{tabs}{tabs-pane label="继续修改 jail.local 这个配置文件,在后面追加如下内容"}[sshd] enabled = true filter = sshd port = 22 action = %(action_mwl)s logpath = /var/log/secure{/tabs-pane}{tabs-pane label="参数说明"}[sshd]:名称,可以随便填写 filter:规则名称,必须填写位于filter.d目录里面的规则,sshd是fail2ban内置规则 port:对应的端口 action:采取的行动 logpath:需要监视的日志路径{/tabs-pane}{/tabs}到这一步,我们 jail.local 的规则看起来可能像下面这样子:[DEFAULT] ignoreip = 127.0.0.1/8 bantime = 86400 findtime = 600 maxretry = 5 banaction = firewallcmd-ipset action = %(action_mwl)s [sshd] enabled = true filter = sshd port = 22 action = %(action_mwl)s logpath = /var/log/secure上面的配置意思是如果同一个IP,在10分钟内,如果连续超过5次错误,则使用Firewalld将他IP ban了。输入systemctl start fail2ban启动fail2ban来试试效果。使用另一台服务器不断尝试连接SSH,并且不断的将密码输入错误,你会发现连续超过5次后直接连不上,说明IP被ban了,可以输入:fail2ban-client status sshd查看被ban的IP,如下截图。防止CC攻击这里仅以Nginx为例,使用fail2ban来监视nginx日志,匹配短时间内频繁请求的IP,并使用firewalld将其IP屏蔽,达到CC防护的作用。{tabs}{tabs-pane label="新建一个nginx日志匹配规则"}vi /etc/fail2ban/filter.d/nginx-cc.conf #填写如下内容 [Definition] failregex = <HOST> -.*- .*HTTP/1.* .* .*$ ignoreregex ={/tabs-pane}{tabs-pane label="继续修改 jail.local 追加如下内容"}[nginx-cc] enabled = true port = http,https filter = nginx-cc action = %(action_mwl)s maxretry = 20 findtime = 60 bantime = 3600 logpath = /usr/local/nginx/logs/access.log{/tabs-pane}{/tabs}上面的配置意思是如果在60s内,同一IP达到20次请求,则将其IP ban 1小时,上面只是为了测试,请根据自己的实际情况修改。logpath为nginx日志路径。防止Wordpress爆破如果您经常分析日志会发现有大量机器人在扫描wordpress登录页面wp-login.php,虽然对方可能没成功,但是为了避免万一还是将他IP干掉为好。{tabs}{tabs-pane label="新建一个nginx日志匹配规则"}vi /etc/fail2ban/filter.d/wordpress.conf #填写如下内容 [Definition] failregex = ^ -.* /wp-login.php.* HTTP/1\.." ignoreregex ={/tabs-pane}{tabs-pane label="继续修改 jail.local 追加如下内容"}[wordpress] enabled = true port = http,https filter = wordpress action = %(action_mwl)s maxretry = 20 findtime = 60 bantime = 3600 logpath = /usr/local/nginx/logs/access.log{/tabs-pane}{/tabs}当然,别忘记输入systemctl restart fail2ban重启fail2ban使其生效。常用命令#启动 systemctl start fail2ban #停止 systemctl stop fail2ban #开机启动 systemctl enable fail2ban #查看被ban IP,其中sshd为名称,比如上面的[wordpress] fail2ban-client status sshd #手动封锁banip,例如封锁8.8.8.8,sshd为监狱名 fail2ban-client set sshd banip 8.8.8.8 #删除被ban IP,例如解封8.8.8.8,sshd为监狱名 fail2ban-client set sshd unbanip 8.8.8.8 #查看日志 tail /var/log/fail2ban.log总结fail2ban已经内置很多匹配规则,位于filter.d目录下,包含了常见的SSH/FTP/Nginx/Apache等日志匹配,如果都还无法满足您的需求,您也可以自行新建规则来匹配异常IP。使用fail2ban+Firewalld来阻止恶意IP是行之有效的办法,可极大提高服务器安全。
2021年10月02日
2,157 阅读
0 评论
1,268 点赞
2020-10-09
Linux运维最常用命令汇总
文件和目录操作命令描述重要参数ls列出目录内容-l(详细列表)、-a(显示隐藏文件)cd切换目录无pwd显示当前工作目录无touch创建空文件无mkdir创建目录-p(递归创建)cp复制文件或目录-r(递归复制)、-i(交互式复制)表格表格表格表格表格表格表格表格表格表格表格表格
2020年10月09日
6 阅读
0 评论
0 点赞
首页
复制
搜索
前进
后退
重载网页
和我当邻居