Centos7 常用操作

1、开放防火墙端口

firewall-cmd --zone=public --add-port=9092/tcp --permanent
firewall-cmd --zone=public --add-port=7000-40000/tcp --permanent
firewall-cmd --reload

2、docker查看每个容器的ip

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

 3、开放当前服务器所有监听的端口

复制代码
#!/bin/bash

# 获取所有TCP或UDP端口
ports=$(netstat -npltu | awk '/^tcp/ || /^udp/ {print $4}' | awk -F':' '{print $NF}' | sort -n | uniq)

# 开放所有TCP或UDP端口
for port in $ports
do
  # 使用firewall-cmd命令开放tcp端口
  firewall-cmd --zone=public --add-port=$port/tcp --permanent
  # 使用firewall-cmd命令开放tcp端口
  firewall-cmd --zone=public --add-port=$port/udp --permanent
done 
# 重新加载防火墙配置
firewall
-cmd --reload
复制代码

 4、if命令语句整成一行

if  [ -e $dist_dir/$dist_name ]; then mv $dist_dir/$dist_name ${dist_dir}/${dist_name}-$(date +'%Y-%m-%d_%H:%M:%S'); fi

5、rsync命令

复制代码
# 从服务端同步数据到本地
rsync -avzP -e "ssh -p 1130" myuser@10.10.10.15:backup ./
# 从服务端同步数据到本地,不保留文件属性如修改时间
rsync -avzP -O -e "ssh -p 1130" myuser@10.10.10.15:backup ./

-a:归档模式,等同于 -rlptgoD,递归地复制文件并保留符号链接、权限、时间戳、组、所有者等信息。

-O 或 --no-times :禁止保留文件的修改时间。

-v, –verbose详细模式输出。–verbose 复杂的输出信息 -a, –archive归档模式,表示以递归方式传输文件,并保持所有文件属性不变。–archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等

-r:–recursive 复制所有下面的资料,递归处理。

-z, –compress对备份的文件在传输时进行压缩处理。

–delete:删除那些DST中存在而在SRC中没有的文件。

-P:-P参数和 --partial --progress 相同,只是为了把参数简单化,表示传进度。

-e: 指定ssh的端口
复制代码

 

 6、只下载rpm包不安装

复制代码
#只下载rpm包不安装
yumdownloader --downloadonly --destdir=/opt/test openssh-clients-7.4p1-22.el7_9.x86_64

#yum命令的参数有很多,其中就有只是下载而不需要安装的命令,并且也会自动解决依赖;通常和 --downloaddir 参数一起使用。
#说明:如果该服务器已经安装了需要下载的软件包,那么使用 install下载就不行,可以使用reinstall下载。 放心(不会真的安装和重新安装,因为后面加了 --downloadonly,表明只是下载。

yum install --downloadonly --downloaddir=/opt openssh-clients
yum reinstall --downloadonly --downloaddir=/opt openssh-clients

最保险的方法:

  要下载 tcpdump 及其所有依赖项的 RPM 包,您可以使用 yumdownloader 命令结合 yum deplist 命令来实现。以下是具体步骤:

  1. 首先,使用 yum deplist 命令查看 tcpdump 的所有依赖项:

    shellCopy Code
    yum deplist tcpdump
    

    这将列出 tcpdump 的所有依赖项及其相关信息。

  2. 然后,使用 yumdownloader 命令结合 grepawk 命令来批量下载这些依赖项的 RPM 包到指定目录。假设您要将这些 RPM 包下载到名为 tcpdump-deps 的目录中,可以使用以下命令:

    shellCopy Code
    mkdir tcpdump-deps
    yum deplist tcpdump | grep provider | awk '{print $2}' | xargs -I {} yumdownloader --destdir=./tcpdump-deps {}
    

    这将下载 tcpdump 及其所有依赖项的 RPM 包到当前目录下的 tcpdump-deps 目录中


复制代码

 7、查看程序有没有用到多线程

1.使用 ps 命令:使用 ps -eLf | grep <程序名> 命令可以列出系统上所有进程的线程信息,并通过 grep 过滤指定程序的线程信息

#-L:显示每个进程的线程信息。
ps -eLf | grep redis

2.使用 pstree 命令:假设 myprogram 的父进程PID为 12345,运行 pstree -p 12345 命令可以显示 myprogram 及其所有子进程的树状结构。通过观察树状结构中的进程数量,可以判断程序是否使用了多进程。

 8、查看某个进程运行了多久

ps -eo pid,comm,etime  | grep mysql

 9、将一个命令所有输出都写入my.log文件

复制代码
在Linux中,如果你想要将一个命令的所有输出(标准输出和标准错误)写入到一个文件中,例如my.log,你可以使用重定向操作符。这里有两种主要的方式来实现:

使用>和2>&1来重定向输出:

这个方法会将标准输出(stdout)重定向到my.log文件,然后将标准错误(stderr)重定向到标准输出(这意味着错误信息也会被写入到my.log中)。

假设你的命令是your_command,那么相应的命令行语句就是:

your_command >my.log 2>&1
这里,>操作符负责将your_command的标准输出重定向到my.log,而2>&1确保标准错误也被重定向到同一个地方。

使用&>来重定向输出(较新的bash版本中):

在一些较新版本的bash中,你可以使用&>作为一个更简洁的方式来同时重定向标准输出和标准错误。

使用相同的命令your_command,相应的命令行语句就是:

your_command &>my.log
这两种方法都会覆盖my.log文件中原有的内容。如果你希望保留my.log文件中原有的内容,并将新的输出追加到文件末尾,可以使用>>和2>>&1(对于方法1)或者&>>(对于方法2)来代替。例如,使用第一种方法的追加模式:

your_command >>my.log 2>&1
或者,使用第二种方法的追加模式:

your_command &>>my.log
选择哪种方式取决于你的具体需求和你使用的shell环境。
复制代码

 

13、删除一个目录下的旧文件,只保留最新的2个文件。

#删除超过2个的sql
backup_num=$(ls -1 /home/147-wiki-backup/sql_backup/ | wc -l)
if [ ${backup_num} -gt 2 ]
then
        cd /home/147-wiki-backup/sql_backup/ && ls -t | awk 'NR>2' | xargs rm -rf
fi

 14、释放内存

sync && echo 3 > /proc/sys/vm/drop_caches

 15、查某进程的ppid

复制代码
#! /bin/bash
  
pid=$1
ppid=$(cat /proc/${pid}/status | grep "PPid" | awk -F ' '  '{print $2}')
echo $ppid
while [ $ppid != "1" ]
do
    tmp_pid=$ppid
    tmp_ppid=$(cat /proc/${tmp_pid}/status | grep "PPid" | awk -F ' '  '{print $2}')
    ppid=$tmp_ppid
    echo $ppid
done
复制代码

 16、查看当前命令下的所有隐藏目录空间各个大小总和

du -sh .[^.]* */ ./*

 17、iotstat命令,可以查看磁盘io是否达到瓶颈

详解地址:https://blog.csdn.net/2401_86400744/article/details/143246461

常用命令iostat -xmtN 1

-N   显示磁盘阵列(LVM) 信息

-t     打印时间戳

-m   以 MB 为单位显示

-x    显示详细信息

 

18、iotop命令

详解地址:https://blog.csdn.net/zx893404890/article/details/142626527

常用命令

iotop -o -d 1

-o    只显示有 I/O 活动的进程,避免显示那些没有任何 I/O 操作的进程。

-d    指定每次刷新的时间间隔(以秒为单位),默认为 1 秒。

 

19、wget

wget命令的使用
语法格式
wget [options] [url]
  • 使用 -O 选项以其他名称保存下载的文件
wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.8.tar.gz
  • 使用 -P 选项将文件下载到指定目录
wget -P /usr/software https://download.redis.io/releases/redis-6.0.8.tar.gz
  • 使用 -c 选项断点续传

当我们下载一个大文件时,如果中途网络断开导致没有下载完成,我们就可以使用命令的-c选项恢复下载,让下载从断点续传,无需从头下载。

wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz
  • 使用 -b 选项在后台下载

我们可以使用-b选项在后台下载文件:

wget -b https://download.redis.io/releases/redis-6.0.8.tar.gz
  • 使用 -i 选项下载多个文件

如果先要一次下载多个文件,首先需要创建一个文本文件,并将所有的url添加到该文件中,每个url都必须是单独的一行。

vim download_list.txt

然后使用-i选项,后跟该文本文件:

wget -i download_list.txt
  • 使用 --tries 选项增加重试次数

如果网络有问题或下载一个大文件有可能会下载失败,wget默认重试20次,我们可以使用-tries选项来增加重试次数。

wget --tries=40 https://download.redis.io/releases/redis-6.0.8.tar.gz
  • 通过FTP下载如果要从受密码保护的FTP服务器下载文件,需要指定用户名和密码,格式如下:
wget --ftp-user=<username> --ftp-password=<password> url

 

20、curl

  • 下载文件到指定的文件小写-o,大写 -O 保存文件和它的原始文件名
curl https://rumenz.com/1.html -o 2.html
  • 只打印响应头
curl -I https://rumenz.com

HTTP/1.1 200 OK
Server: openresty/1.19.3.1
Date: Wed, 02 Jun 2021 13:37:41 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
  • 显示请求头和网页内容
复制代码
curl -i https://json.im/1.txt

HTTP/1.1 200 OK
Server: openresty
Date: Wed, 02 Jun 2021 14:02:30 GMT
Content-Type: text/plain
Content-Length: 8
Last-Modified: Wed, 02 Jun 2021 14:00:57 GMT
Connection: keep-alive
ETag: "60b78f19-8"
Accept-Ranges: bytes

123
456
复制代码
  • 直接显示网页内容
curl -l https://json.im/1.txt
  • -L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
curl -L -d 'rumenz=123' https://json.im/
  • 使用curl模拟post请求,--data-urlencode 参数等同于-d,发送 POST请求的数据体,区别在于会自动将发送的数据进行 URL 编码.

curl -d 'login=rumenz' -d 'password=123' -X POST  https://json.im/login

 

posted @   苦逼yw  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示