shell使用
I am 006!
code in China make for World
展开
-
去除doc换行符
tr -d “\r” < 11 > 22 #将文件11的doc换行符转为linux换行符并写入新文件22原创 2022-04-02 14:04:29 · 447 阅读 · 0 评论 -
使用sed替换文件某行以\结尾
如果文件内容如下:替换preprocessor dnp3: ports{ 30000 } \为preprocessor dnp3: ports{ 40000 } \为sed -i "/^preprocessor dnp3: ports {/c\preprocessor dnp3: ports { 40000 } \\\\" ./11 #11是文件名原创 2021-12-01 14:52:41 · 672 阅读 · 0 评论 -
aes cbc128模式加密出现“hex string is too long, ignoring excess”或者“hex string is too short, padding with ze
使用如下命令:openssl enc -aes-128-cbc -in test.cpp -out test11.cpp -iv f123 -K 1223 #aes-128-cbc为填充模式 -iv指定盐 -K指定秘钥出现“hex string is too short, padding with zero bytes to length”这样错误解决:使用命令:openssl enc -aes-128-cbc -in test.cpp -out test11.cpp -iv f12a原创 2021-10-12 13:55:16 · 3273 阅读 · 0 评论 -
查看mysql安装路径与mysql实际使用连接数与最大连接数设置
ps -ef | grep mysql #basedir是mysql安装目录 datadir是mysql数据文件目录#或者进入mysql后台 执行show variables like '%basedir%';和show variables like '%datadir%';set GLOBAL max_connections=10; #设置最大连接数show variables like '%max_connections%'; #查询最大连接数show global status l.原创 2021-10-11 16:19:25 · 146 阅读 · 0 评论 -
shell命令行参数操作
#输入./test.sh 1 2 3 4#获取命令行参数echo "$0" #输出./test.shecho "`basename $0`" #输出test.shecho "$1" #输出1echo "$2" #输出2echo $* #输出所有参数echo $@ #输出所有参数 参数可迭代echo $# #输出参数个数4...原创 2021-10-08 09:54:27 · 682 阅读 · 0 评论 -
获取文件大小shell命令
ls -l test.cpp | awk '{print $5}'stat -c "%s" test.cppwc -c < test.cpp原创 2021-10-08 09:52:46 · 1678 阅读 · 0 评论 -
netsnmp编译出现“Can‘t locate ExtUtils/MakeMaker.pm in @INC“错误解决
执行下面命令即可:yum install perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker原创 2021-08-21 15:07:24 · 369 阅读 · 0 评论 -
sed替换以某某开头并以某某结尾的文本行 sed删除包含某某的文本行
sed -i "/^ *$start/,/^ *$end/c$replacement" yourFile #通用模式 start是某某开头 end是某某结尾 yourFile为指定文件#例如:sed -i " /^ *int main/,/^ *)/cplugin0123 1111}" test.cpp #将以int main开头,义)结尾的行替换为plugin0123 1111}sed -i '/^plugin0.*/d' test.cpp #从test.cpp删除包含plugin0的行.原创 2021-08-21 15:06:35 · 7120 阅读 · 0 评论 -
使用free -m查看系统内存使用情况
1.查看系统内存使用情况:free -m #m参数表示显示的单位为MB2.free:系统真正的剩余内存3.available:系统可以提供给程序使用的剩余内存,available粗略为free + buff + cache4.cache:页面缓存,比如执行"ls -l"命令第一次后,操作系统会将结果进行缓存,再次执行"ls -l",操作系统直接从页面缓存获取5.buff:磁盘缓冲区,用于暂缓内存数据,以便稍后一次性刷入磁盘。...原创 2021-05-16 15:13:38 · 3506 阅读 · 2 评论 -
代码绑核后调用system占用CPU分析
一 system函数分析1.函数原型:int system(const char *command)参数command一般是一条可被/bin/sh -c执行的字符串,可以是"ls -l"这样的shell命令,也可以是"./Test"这样的二进制路径。如上图所示:(1)某个进程调用system时,就是fork一个子进程,让子进程调用execl执行命令;(2)父进程一直会等子进程执行结束,这个与popen不同;(3)子进程会继续父进程一些属性,如果父进程使用绑核操作,那么sys原创 2021-05-15 15:20:16 · 413 阅读 · 0 评论 -
查看进程在哪个CPU上运行
ps -eo pid,args,psr | grep exh #exh为进程名前缀psr(process serial)为CPU编号,如上图所示,exhaust_cpu在1号CPU运行。原创 2021-05-15 10:43:25 · 655 阅读 · 0 评论 -
统计网卡信息
https://github.com/wangzhicheng2013/stat_nic_flow原创 2021-05-14 16:57:23 · 94 阅读 · 0 评论 -
设置linux启动加载网卡驱动
chmod 777 /etc/rc.d/rc.localvim /etc/rc.d/rc.local#增加加载网卡驱动命令modprobe ptpinsmod /root/diver/e1000e.komodprobe e1000esleep 1service network restart#编辑完毕保存文件reboot #以后linux每次启动都会加载网卡驱动...原创 2021-06-21 09:17:13 · 1981 阅读 · 0 评论 -
tcmalloc性能测试
一 tcmalloc简介1.tcmalloc(thread-caching malloc),即线程缓存malloc,为每个线程分配本地的cache;2.线程所需的小对象(几十个字节,128KB以下)都从本地cache取;3.同时tcmalloc维护进程级别的cache,大对象从这里取,但会加自旋锁(spinlock),这时会耗费性能;4.如果应用程序需要频繁分配与释放小对象,则可以考虑使用tcmalloc。二 tcmalloc使用应用程序无需修改new或者malloc,只需要在安装t原创 2021-04-17 17:20:25 · 742 阅读 · 0 评论 -
查看进程打开文件情况
lsof -p 11211 #11211为进程pid原创 2021-04-10 17:11:39 · 113 阅读 · 0 评论 -
unzip替换源文件
unzip -o python3.8.3.zip #替换源已存在的python3.8.3原创 2021-04-10 16:24:46 · 1046 阅读 · 0 评论 -
查看网络端口启动哪些服务
lsof -i:8080原创 2021-04-10 16:24:08 · 144 阅读 · 0 评论 -
随机生成字符串
cat /dev/urandom | strings -n 8 | head -n 100 #随机生成100个长度至少8位的字符串cat /dev/urandom | sed 's/[^a-Z0-9]//g' | strings -n 7 | head -n 10 #随机生成10个长度至少7位的字母和数字混合字符串原创 2021-04-02 15:27:55 · 866 阅读 · 0 评论 -
docker常用操作0
docker查看已运行和已停止的容器docker ps -a -f "status=running" #查看已运行容器docker ps -a -f "status=exited" #查看已停止容器docker查看容器ip和MACdocker inspect --format '{{ .NetworkSettings.IPAddress }}' ebaf0e599702 #ebaf0e599702是容器IPdocker inspect -f '{{range .NetworkSetti原创 2021-04-01 14:25:15 · 132 阅读 · 0 评论 -
一行脚本获取进程数
ps -fe | grep XXX|grep -v grep|grep -v gdb|grep -v vi|wc -l #XXX为某个进程名原创 2021-03-10 10:44:40 · 138 阅读 · 0 评论 -
使用docker部署redis镜像
docker pull redis:latest #拉取最新redis镜像docker images #查看镜像,应该有名称是redis的镜像docker run -itd --name redis-test -p 6379:6379 redis #运行容器 容器名是redis-test 镜像名是redis 映射容器服务的 6379 端口到宿主机的 6379 端口#上述步骤可能出错#错误1:“docker: Error response from daemon: Conflict. The con.原创 2021-03-05 17:27:10 · 296 阅读 · 0 评论 -
使用touch命令修改文件时间
touch -t 201902122222 aa1 #2019-0201 12:22:22touch --date "tomorrow" aa1 #将aa1文件日期改为明天原创 2021-03-05 10:37:22 · 1702 阅读 · 1 评论 -
使用docker inspect查看容器是否运行
docker inspect --format '{{/*读取容器状态*/}}{{.State.Status}}' d5f1da0223fb #输出running则为运行 d5f1da0223fb为容器id原创 2021-03-01 10:35:04 · 1365 阅读 · 0 评论 -
使用ss命令统计socket流量信息
#ss命令是利用linux内核的tcp_diag,比netstat更高效ss -antl #统计tcpss -anul #统计udpss -antul #统计tcp和udp原创 2021-03-01 10:07:58 · 1748 阅读 · 0 评论 -
只执行一次at命令
#开启atdservice atd startservice atd status#检查atd进程ps aux | grep atd#在某个时间执行任务at 09:16#输入命令touch /home/11.txt#按ctl加D键退出 在09:16命令会被执行at -l #显示at的任务原创 2021-01-25 09:28:21 · 162 阅读 · 0 评论 -
测试服务器某个端口是否开放
1.telnet:#安装yum install telnet#使用telnet 10.50.21.115 443 #若返回下图 说明该端口开放2.python脚本:import osimport socketdef is_tcp_connection_open(target_ip, target_port): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) success = True try原创 2021-01-23 15:38:45 · 669 阅读 · 0 评论 -
centos7.5在线安装mysql5.7及修改密码
rpm -qa | grep mariadb #一般centos都安装此MariaDB,如果查询到,需要卸载yum -y remove mariadb*cd /homemkdir mysqlwget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpmrpm -ivh mysql57-community-release-el7-8.noarch.rpmyum install mysql-server #安装提交一直.原创 2021-01-04 09:32:21 · 164 阅读 · 0 评论 -
将脚本运行于后台
nohup ./send.sh 2>&1 & #将send.sh不挂起在后台运行原创 2020-12-24 17:00:51 · 131 阅读 · 1 评论 -
p0f抓取设备信息
./p0f -i ens192 -p #从指定网卡抓取信息并输出到控制台./p0f -i ens192 -p -s /home/wangbin/test/xyz.socket #将p0f启动成服务端./p0f-client /home/wangbin/test/xyz.socket 10.50.21.129 #启动客户端 并和服务端以IPC方式通信,获取host ip是10.50.21.129的主机信息...原创 2020-12-24 16:32:59 · 267 阅读 · 1 评论 -
mysql创建分区失败错误日志“Out of resource, can not open file...“
vim /etc/my.cnf #mysql配置文件#增加配置项open_files_limit=4500 #此配置项默认是1024#保存退出service mysql restart #重启mysql原创 2020-12-24 15:51:13 · 344 阅读 · 1 评论 -
aclocal-1.15 command not found解决
执行命令:sudo autoreconf -ivf原创 2020-12-23 14:53:35 · 2721 阅读 · 0 评论 -
rsync实现两台机器文件同步
需求:编写脚本,定期在本机指定目录里最新修改文件远程拷贝到服务器实现:1.设置免密码scp2.在两台机器都开启sync服务systemctl start rsyncd #rsync是centos7自带 一般无需安装systemctl status rsyncd3.编写脚本:while truedo rsync -avz /home/tmp/test/ 192.168.66.234:/home/wangbin/test #将本机目录同步到远程机器目录 #rs原创 2020-12-23 13:47:07 · 1370 阅读 · 0 评论 -
端口扫描masscan在线安装
#安装依赖yum install git gcc make libpcap-devel#下载源码cd /homegit clone https://github.com/robertdavidgraham/masscancd masscanmake && make install#查看程序ls /usr/bin/masscan#查看版本masscan -V#对网段进行端口扫描masscan --range 10.50.21.1/24 -p80#将扫描结果保存到文件.原创 2020-12-22 10:33:14 · 339 阅读 · 0 评论 -
定期拷贝最新文件到远程服务器
1.设置免密码scp2.编写脚本:#scp the lastest file to the dest path of server#!/bin/bashTIME_INTERVAL=60 #default 60sfunction scp_the_latest_file_to_server(){ #get parameters server_ip=$1 server_dest_path=$2 local_file_path=$3 #get the las原创 2020-12-21 14:41:03 · 294 阅读 · 0 评论 -
ls列出最新文件
#列出最新被修改的文件ls -t /home/ | head -n 1#列出最新被修改的2个文件ls -t /home/ | head -n 2#对目录安装最新修改时间进行排序ls -lt /home/原创 2020-12-21 09:14:15 · 3047 阅读 · 0 评论 -
scp免密码远程拷贝
需求:将远程机器192.168.66.234:/home/wangbin/1.txt远程scp(免密码)拷贝到本机192.168.66.122:/home/tmp/#step 1:登录到192.168.66.122,执行ssh-keygen命令生成公钥ssh-keygen -t rsa #在/root/.ssh/目录下有id_rsa.pub这样公钥文件cd /root/.ssh/cp -f id_rsa.pub authorized_keys#step 2:将authorized_keys远程原创 2020-12-19 19:06:57 · 306 阅读 · 1 评论 -
获取路由表及网关MAC地址
#获取路由表route -n#获取网关MACarp 10.50.21.1原创 2020-12-17 16:30:34 · 722 阅读 · 0 评论 -
按指定年份删除mysql分区表
#delete table partitions in terms with table name and date#!/bin/bash#define config file and get passwordCONFIG_FILE=/home/xx/conf/yy.cfgDBPWD=`grep "dbpwd" $CONFIG_FILE|awk -F "= " '{printf $2}'|awk -F'#' '{print $1}'`#define tables which contain p.原创 2020-12-10 17:11:29 · 328 阅读 · 0 评论 -
删除用户及移除它所属组
#用户admin绑定组wheelgroupdel admin #先移除组userdel -f admin #再删除用户原创 2020-11-18 18:25:47 · 763 阅读 · 0 评论 -
一条指令设置用户名和密码
#设置一个带密码的用户useradd -p 'XXXXXXX' lili #设置一个用户名lili 'XXXXXXX'是一串密文usermode -g wheel lili #将lili加入wheel组,wheel组是特权组 因此lili成为管理员groups lili #查看lili所在的组#找到'XXXXXXX'这样的串#创建一个用户abcuseradd abc#创建密码passwd abc#输入两遍相同密码cat /etc/shadow | grep abc #查看abc的密码加.原创 2020-11-18 15:40:51 · 504 阅读 · 0 评论