有用的linux脚本,[总结] 一些有用的shell脚本

查看linux系统版本

// 系统内核版本

[root@bfc8accfa814 /]# uname -r

3.10.0-327.13.1.el7.x86_64

// redhat系统版本

[root@bfc8accfa814 /]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

// 内核版本和redhat版本

[root@bfc8accfa814 /]# cat /proc/version

Linux version 3.10.0-327.13.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Mar 31 16:04:38 UTC 2016

获取当前主机的ip地址:

//centos下:

PUBLIC_IP="$(ifconfig eth0 | awk -F ' *|:' '/inet/{print $3}')"

//ubuntu下:

PUBLIC_IP="$(ifconfig eth0 | awk -F ' *|:' '/inet addr/{print $4}')"

编写Dockerfile时,经常要用到apt-get update(ubuntu系统),但会超时或网络出错,可以将源修改成国内镜像:

sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.163.com\/ubuntu\//g' /etc/apt/sources.list

分隔文件名和扩展名

$fullname=test/demo.png

$filename=`basename "$fullname"`

$extension=${filename##*.}

$filename=${filename%.*}

${var#pattern},${var%pattern}

#(##)的含义是从左向右搜索,匹配到后去掉匹配到的部分,返回右边的剩余部分。(掐头,键盘上在$左边)

%(%%)的含义是从右向左搜索,匹配到后去掉匹配部分,返回左边剩余部分。(去尾,键盘上在$右边)

#和%是最短匹配;##和%%是最大匹配。

systemd相关命令

查看开启自启动程序

ls /etc/systemd/system/multi-user.target.wants/

实际上,开机自启动命令systemctl enable demo.service其实是增加了由/usr/lib/systemd/system/到/etc/systemd/system/multi-user.target.wants/下的软链接。相当于执行:

ln -s '/usr/lib/systemd/system/demo.service' '/etc/systemd/system/multi-user.target.wants/demo.service'

tar压缩解压命令

tar zcvf file.tar.gz dir #压缩指定目录

tar zxvf file.tar.gz -C dir #解压到指定目录

利用python工具格式化json字符串

比如,查看docker image列表

cat /var/lib/docker/image/devicemapper/repositories.json | python -mjson.tool

使用一行命令创建目录并进入到新目录

这个功能非常使用。

平时如果创建目录并且进入到这个新目录,一般都这么写:

mkdir my-dir; cd my-dir

其实可以通过写一个小脚本定义个命令来实现。将下面代码加到~/.bashrc 或~/.bash_profile中

# mkdir, cd into it

mkcd () {

mkdir -p "$*"

cd "$*"

}

之后就可以用mkcd实现新建并进入新目录了。

mkcd my-dir

使用type命令可以查看某个命令是否被当前系统所支持

[~]$ type awk

awk is /usr/local/bin/awk

将top命令的结果输出到文件

top -b -n 5 -d 10 > /top.txt

-b:batch模式,可重定向到文件

-n:表示top命令执行几次

-d:执行top命令的时间间隔

统计代码行数

find . "(" -name "*.java" -or -name "*.mm" ")" -print | xargs wc -l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值