25个好用的Shell脚本常用命令分享

1.列出所有目录使用量,并按大小排序。


代码如下:

ls|xargs du -h|sort -rn
#不递归下级目录使用du -sh

2.查看文件排除以#开关和空白行,适合查看配置文件。


代码如下:

egrep -v "^#|^$"  filename
sed '/#.*$/d; /^ *$/d'

3.删除空格和空行。


代码如下:

sed '/^$/d' filename #删除空行
sed 's/ //g' filename
sed 's/[[:space:]]//g' filename

4.删除#后的注释。


代码如下:

sed -i 's/#.*$//g' filename

5.踢出登录的用户,用who查看终端。


代码如下:

pkill -KILL -t pts/0

6.删除空文件。


代码如下:

find / -type f -size 0 -exec rm -rf {} \;

7.查找进程pid并kill。


代码如下:

pgrep nginx|xargs kill
pidof nginx|xargs kill

8.获取当前IP地址,强大的awk,一个命令搞定。


代码如下:

ifconfig |awk -F"[ ]+|[:]" 'NR==2 {print $4}'

9.文本方式查看wtmp日志


代码如下:

utmpdump /var/log/wtmp

10.以内存大小排序列出进程


代码如下:

ps aux --sort=rss |sort -k 6 -rn

11.简单web server列出当前目录文件,端口8000:


代码如下:

python -m SimpleHTTPServer

12.以管道输入方式修改用户密码:


代码如下:

echo "password" |passwd –stdin root

12.生成SSH证书并复制到远端服务器:


代码如下:

ssh-keygen -y -f ~/.ssh/id_rsa && cat ~/.ssh/id_rsa.pub | ssh root@host "cat - >> ~/.ssh/authorized_keys"

13.shell下新建文件夹并进入,以下加入bashrc:


代码如下:

mkcd ( ){
mkdir $1
cd $1
}

14.通过SSH快速备份文件到另一服务器:


代码如下:

tar zcvf - back/ | ssh root@www.jb51.net tar xzf - -C /root/back/

15.用wget下载整站:


代码如下:

wget -r -p -np -k http://www.jb51.net
#r递归 p下载所有文件 np不下载上级 k转换相对链接

16.Kill整个进程树:


代码如下:

pstree -ap 10277|grep -oP '[0-9]{4,6}'|xargs kill -9

17.生成随机字符:


代码如下:

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

18.使用awk导出最后一列非空的数据:


代码如下:

awk -F "|" '{if($NF!="") print $NF}'

19.查找每行大于几位数的数据:


代码如下:

awk -F '' '{if(NF>6) print $0}'

20.获取HTML页面文本内容:


代码如下:

lynx -dump www.jb51.net #包含页面的URL
w3m -no-cookie -dump www.jb51.net
links -dump www.jb51.net #对中文内容支持不好

21.端口重定向:


代码如下:

socat TCP4-LISTEN:1234,reuseaddr,fork, TCP4:www.baidu.com:80

22.行前或行后插入:


代码如下:

sed 'p;s/^.*$/--------/' file
awk '{print $0;print "-------"}' file

23.行首或行尾插入:


代码如下:

sed 's/^/new/g' file
sed 's/$/new/g' file

24.逐字换行:


代码如下:

awk -F "" '{for(i=1;i<=NF;i++) print $i}'

25.目录中大量文件删除:


代码如下:

ls | xargs rm

(0)

相关推荐

  • 在Shell命令行处理JSON数据的方法

    因为最近要处理一些 JSON 数据格式,所以在经过一番搜索后 最终找到了 jq 这个很棒的工具.jq 允许你直接在命令行下对 JSON 进行操作,包括分片.过滤.转换等等. 让我们通过几个例子来说明 jq 的功能: 一.输出格式化,漂亮的打印效果 如果我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,但是通过 jq 的 .(点)过滤器就可以立马让 JSON 的格式规整起来. 1.用文本编辑器打开后的样子 2.用 jq 显示的结果 复制代码 代码如下: % jq . soundtag.js

  • Shell日志分析常用命令和例子

    学会用shell分析日志只要一上午!!! 很多地方分享了日志分析的shell脚本,但是基本没说每个命令符的具体含义,学习成本还是很高,在这里总结下,方便大家快速入门. 1.在Windows下的用户要使用shell命令符的话请先安装cygwin,安装方法自行Google(搜技术问题请使用google,百度搜不到活该) 2.下面粗略介绍下SEO日志分析常用的命令符用法,需要详细了解每个命令符请使用Google. less 文件名 查看文件内容 按"q" 退出 cat 文件名 打开文件,可以

  • 用shell命令读取与输出数据的代码

    shell脚本读取数据有以下几种方式:1.键盘输入,默认2.从文件中读取3.通过管道命令传递 echo的功能:\c :不换行\f :进纸\t :跳格\n :换行\表示转义,例如:"\"/dev/rmt0"\"翻译为,"/dev/rmt0" read:从键盘或文件的某一行文本中读取信息,并将其赋给一个变量. 复制代码 代码如下: [jb51]/>read namehello i am a regular user[jb51]/>echo

  • hbase shell基础和常用命令详解

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase

  • linux shell命令行选项与参数用法详解

    问题描述:在linux shell中如何处理tail -n 10 access.log这样的命令行选项?在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景.1,直接处理,依次对$1,$2,...,$n进行解析,分别手工处理:2,getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项):3,getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等).总结:小脚本手工处理即可,getopt

  • linux shell脚本学习xargs命令使用详解

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子. 1.

  • 提高你工作效率的shell命令总结大全

    前言 大家都知道Shell是一个用C语言编写的程序,它是用户使用 Linux 的桥梁.Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive).下面这篇文章主要给大家分享了一些关于提高工作效率的shell命令,话不多说,来一起看看详细的介绍: 一.切换目录 注意:当前用户是xiaochao,系统为centos6,并且,shell命令是严格区分大小写的. 显示当前目录路径:pwd pwd output:/

  • Shell脚本test命令使用总结和实例

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于则为真 -lt 小于则为真 -le 小于等于则为真 例如: 复制代码 代码如下: num1=100 num2=100 if test $[num1] -eq $[num2] then     echo 'The two numbers are equal!' else     echo 'The t

  • Shell 命令执行顺序分析[图]

    Shell 从标准输入或脚本中读取的每一行称为管道(pipeline);它包含了一个或多个命令(command),这些命令被一个或多个管道字符(|)隔开. 事实上还有很多特殊符号可用来分隔单个的命令:分号(;).管道(|).&.逻辑AND (&&),还有逻辑OR (||).对于每一个读取的管道,Shell都回将命令分割,为管道设置I/O,并且对每一个命令依次执行下面的操作: 整个步骤顺序如上图所示,看起来有些复杂.当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shel

  • Shell脚本中实现切换用户并执行命令操作

    今天公司同事来找到我说要在服务器上用另外一个用户执行python脚本,但设置到crontab里却老是root用户来执行,为了省事我就想了一个偷懒的办法,就是用shell脚本切换到那个用户,然后去执行那个python脚本.好了,这篇文章我只演示怎么用shell脚本切换到其他用户执行命令. 系统:centos 5.x 脚本内容: cat test.sh 复制代码 代码如下: #!/bin/bash su - test <<EOF pwd; exit; EOF 执行结果图: 当然也可以用下面的命令来

随机推荐