shell脚本字符串截取的8种方法

shell脚本字符串截取的8种方法 一只牛_007 于 2021-02-23 16:47:15 发布 3935收藏 51分类专栏: linux/shell运维版权 linux/shell运维专栏收录该内容21 篇文章0 订阅订阅专栏shell脚本字符串截取的8种方法假设有变量 var=http://www.aaa.com/123.htm. # 号截取,删除左边字符,保留右边字符。 1 echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm ## 号截取,删除左边字符,保留右边字符。 1 echo ${var##*/} */ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 http://www.aaa.com/ 结果是 123.htm %号截取,删除右边字符,保留左边字符 1 echo ${var%/*} %/* 表示从右边开始,删除第一个 / 号及右边的字符 结果是:http://www.aaa.com %% Read more…

iptables做TCP/UDP端口转发【转】

阅读目录 开启路由转发功能 1、将本地的端口转发到本机端口 2、将本机的端口转发到其他机器 3、将一台公网 ip 主机的端口转发到另一台公网 ip 主机 iptables转发UDP 需求很简单,把本地81端口映射到8080端口上 Linux开启路由转发功能 回到顶部 开启路由转发功能 [root@test3domian]# echo 1 > /proc/sys/net/ipv4/ip_forward 1、打开包转发功能: echo “1” > /proc/sys/net/ipv4/ip_forward 2、修改/etc/sysctl.conf文件,让包转发功能在系统启动时自动生效: #. Controls IP packet forwarding net.ipv4.ip_forward = 1 3、打开iptables的NAT功能: /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 说明:上面的语句中eth0是连接外网或者连接Internet的网卡. 执行下面的命令,保存iptables的规则: service iptables save 4、查看路由表: netstat Read more…

linux ping域名很慢的其中一个原因

qiaoliang328 2017-01-11 10:02:43  9584  收藏 3分类专栏: LINUX版权 描述: 在linux 下,ping 域名很慢,即使把域名解析出来后ping,也是很慢; 直接ping IP 就很快,可能是如下一个原因造成的: 解决: vi /etc/nsswitch.conf  #hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 hosts:          files dns 描述: 如果还是很慢,那么很有可能是DNS 的反向查询慢了, 解决: 1. 禁止ping 的时候使用反向DNS 查询: ping xxx.xxx.xxx -n  2. 在 /etc/host 里面添加域名和IP 对,例如: 183.232.231.174 www.baidu.com

[Ubuntu] bash: warning: setlocale: LC_ALL: cannot change locale

问题症状 解决方法 本地化是指不同地区用户在键盘上输入不同语言的字符集。例如 en_US 表示美国英语字符集,因此只有正确设置了服务器的字符集,服务器才能理解用户的输入字符。setlocale 命令可以帮助用户来设置本地化字符集。 出现以上问题是因为服务器无法理解 en_US.UTF-8 字符集,因此首先要在服务器上生成 en_US.UTF-8 字符集: 然后使用最新生成的字符集更新本地仓库: 最后更新 /etc/default/locale 文件,例如更新前的文件内容为: 更新后: 环境变量 LC_ALL 会覆写所有的本地化设置(在某些情况下 $LANGUAGE 不会被覆写),例如 LC_NAME, LC_ADDRESS 等等。设置 LC_ALL=en_US.UTF-8 表示所有的本地化设置都使用 en_US.UTF-8。 重新登录服务器,warning 警告不再出现,问题解决。 Ref: bash: warning: setlocale: LC_ALL: cannot change locale (en_US)

Linux下如何杀死终端

1、首先是使用who命令查看当前有多少个终端登陆了Linux系统 [root@:vg_adn_tidbCkhsTest /usr/local/redis/bin]#who mobdev pts/1 2019-01-14 05:37 (ec2-18-136-70-46.ap-southeast-1.compute.amazonaws.com) mobdev pts/2 2019-01-15 03:01 (ec2-18-136-70-46.ap-southeast-1.compute.amazonaws.com) 2、接下来查看自己的当前终端是多少 [root@:vg_adn_tidbCkhsTest /usr/local/redis/bin]#tty /dev/pts/1 3、可以看到自己的终端名称是/dev/pts/1。现在我们要杀死pts/2这个用户终端,先取出这个终端的进程号 [root@:vg_adn_tidbCkhsTest /usr/local/redis/bin]#ps -t /dev/pts/2 PID TTY TIME CMD 9360 pts/2 00:00:00 bash 4、我们看到进程号是9260,现在把它kill掉 [root@:vg_adn_tidbCkhsTest /usr/local/redis/bin]#kill -9 9360 [root@:vg_adn_tidbCkhsTest /usr/local/redis/bin]#ps -t /dev/pts/2 error: TTY could not be found 当我们kill掉的时候,可以看到已经没有这个tty终端了。注意普通用户是没有权限执行此操作的。

한번클릭으로 LNMP/LAMP/LNMPA설치하기

시스템 요구 사항 : CentOS / RHEL / Fedora / 데비안 / 우분투 / Raspbian / Deepin / Aliyun / 아마존 / 민트 리눅스 배포판 하드 디스크에 5GB 이상의 여유 공간이 필요합니다 (MySQL 5.7, MariaDB 10, 여유 공간이 9GB 이상). 128MB 이상의 메모리가 필요합니다 (128MB의 작은 메모리 VPS, Xen은 SWAP가 Read more…

Debian 8 Jessie 升级至 Debian 9 Stretch 教程

Debian 9 Stretch 已经在 2017 年 6 月 17 号发布,而很多商家的步伐并未那么快,比如某千万云,所以我们可以选择自己升级 本教程会指导你如何在 Debian 8 Jessie 的机器上快速升级到 Debian 9 Stretch 以下安装步骤都在 root 用户下完成,请自行使用 su 命令切换到 root 用户 此教程仅适用于 KVM、Xen 等可以更换内核的虚拟环境或独立服务器,OpenVZ 等无法更换内核的环境是不能升级的 1、备份数据 如果你的机器不是新开的,上面跑了一些服务,那么强烈建议备份好数据,我们推荐你备份所有的软件配置和数据库,因为升级以后,大部分软件都会更新版本,一部分软件甚至是无法滚回的,比如 Mariadb 会升级到 10.1,如果你不备份,而你的数据库没法在新的系统上运行,那么损失就大了 以下内容你可以根据自己的需求来备份 服务器上应用的源代码,比如 WordPress 数据库,比如 MySQL, SQLite3, Postgres 配置文件,比如 Nginx, Apache, DNS, PHP 邮件和账号 系统添加的用户和 SSH Key 当然,新开的机器的话,别废话,直接看下面的步骤 2、更新系统 首先检查你当前的系统版本 然后按照以下顺序更新系统 建议重启一次 3、替换 sources.list Read more…

Linux 系统 /var/log/journal/ 垃圾日志清理

阳光岛主 2019-04-26 09:02:49  28860  收藏 24分类专栏: Linux/Shell版权 CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。 该日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。 本文转自米扑博客:Linux 系统 /var/log/journal/ 垃圾日志清理 默认情况下并不会持久化保存日志,只会保留一个月的日志。另外,一些rsyslog无法收集的日志也会被journal记录到。 rsyslog作为传统的系统日志服务,把所有收集到的日志都记录到/var/log/目录下的各个日志文件中。 常见的日志文件如下: /var/log/messages 绝大多数的系统日志都记录到该文件/var/log/secure 所有跟安全和认证授权等日志都会记录到此文件/var/log/maillog 邮件服务的日志/var/log/cron crond计划任务的日志/var/log/boot.log 系统启动的相关日志 曾经有人说:Linux没有垃圾文件,Windows才有垃圾文件,实际上不是这样的,两者都会有垃圾文件。 操作系统,就是操作各种文件的系统,它不可能没有日志文件,更不可能不产生临时文件,就像剪纸一样,临时产生一些废料是再自然不过的事情。 Linux到底有没有占用空间的垃圾文件,这个看如何判定了,例如好几年前、几个月前的日志文件、系统文件,基本没什么用处,算垃圾文件吗? ls -lhm –full-time /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/ | sort -k6 | head -n30 查看垃圾文件的方法 未清理前发现硬盘根分区空间告急,用 du -t 100M /var 或 journalctl –disk-usage 命令查看,发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达8-128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值,用journalctl –vacuum-size=10M命令将其清理之后,腾出了2.7G的空间。用df命令一查,/根分区果然宽敞了很多。 查看某个目录的文件大小并排序(单位为MB) du -hm –max-depth=1 /var/ | sort -n 清空 Read more…