关于bash的一些使用之三


#! /bin/bash

# 读《Linux Shell脚本攻略》第四,五,七,九章

# 正则表达式:

email_regex=[a-z0-9_.]+@[a-z0-9.]+\.[a-zA-Z]{2,4}

url_regex=https?://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}

ip_regex=[0-9]{1.3}\.[0-9]{1.3}\.[0-9]{1.3}\.[0-9]{1.3}

# 正则表达式中的特殊元序列:

# [:alnum:] 数字与字母

# [:alpha:]

# [:blank:] 空格与制表符

# [:digit:]

# [:lower:]

# [:upper:]

# [:punct:] 标点符号

# [:space:] 所有空白

cut -f 2,3 filename # get row 2 and 3

# 压缩与解压缩JavaScript

# 移除’\n’和’\t’

tr -d \n\t

# 移除多余空格

tr -s  

# 移除注释

sed s:/\*.*\*/::g

# 移除{, }, (, ), ;, :以及逗号前后的所有空格:

sed s/ \?\([{ }();,:]\) \?/\1/g

#解压缩:

cat abc.txt | sed s/;/;\n/g; s/{/{\n\n/g; s/}/}\n\n/g

# 以逆序打印文本

tac file1 file2 …

seq 5 | tac

# 以格式化下载网页

lynx -dump http://www.google.com > file.txt

# 命令行访问gmail

# curl -u $username:$password “https://mail.google.com/mail/feed/atom

# 查找网站中的无效链接

# use lynx & curl

# 打印网络接口列表

ifconfig | cut -c-10 | tr -d   | tr -s \n

# 提取ip

ifconfig wlan0 | egrep -o inet addr:[^ ]* | grep -o [0-9.]*

# 网络借口设置:

ifconfig wlan0 192.168.0.80

ifconfig wlan0 192.168.0.80 netmask 255.255.252.0

# 硬件地址欺骗

ifconfig eth0 hw ether 00:1c:bf:87:25:d5

# 添加名字服务器:

echo nameserver ip_address >> /etc/resolv.conf

# 网关信息:

route -n

# route add default gw IP_ADDRESS INTERFACE_NAME

route add default gw 192.168.0.1 wlan0

# 文件传输:

# sftp ftp rsync scp

# ssh 无密码自动登录

# client machine

ssh-keygen -t rsa

# add pub auth to the server side

cat id_dsa.pub > ~/.ssh/authorized_keys

ssh username@host cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub

# 远程挂载

sshfs user@remotehost:/home/path /local/path

# 弹GUI框

zenity –info –text hello world

ssh user@remotehost export DISPLAY=:0; zenity –info –text “hello world”

# 开放端口情况:

lsof -i

lsof -i | grep :[0-9]\+-> -o | grep [0-9]\+ -o | sort | uniq

netstat -tnp

# 搜集进程信息:

ps

ps -f

ps -eo comm,pcpu | head

top

ps -eo comm,pcpu –sort -pcpu | head

ps -C $comm

ps -C bash -o pid=

pgrep bash -d : # output: pid1:pid2:pid3

pgrep -u root,slynux $comm

pgrep -c $comm # 返回匹配的进程数量

# 显示进程的环境变量:

ps -eo $comm -e

# 搜集系统信息:

hostname

uname -n

uname -a

uname -m

uname -r

cat /proc/cpuinfo

cat /proc/meminfo

cat /proc/partitions

fdisk -l

lshw

发表评论