常用shell整理
2016-03-28 10:31
591 查看
1、关闭对应应用进程
kill -3 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'`我们在shell下经常使用 'ps -e | grep name' 或者 ps -e | awk '/name/ {print $1}'' 寻找一个进程的pid,然后通过 ' sudo kill -8 xxxx' 来删除这个进程(发现,'sudo killall name' 不能有效的删除进程)。但是有时候需要删除多个进程,要反复执行以上命令。bash可以很好地完成批量删除进程的任务。
2、shell中的${},##和%%的使用
假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt
可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个 /及其左边的字符串:dir1/dir2/dir3/my.file.txt
记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的 5个字节:/dir1
${file:5:5}:提取第 5个字节右边的连续5个字节:/dir2
也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个dir替换为path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部dir替换为
path:/path1/path2/path3/my.file.txt
利用 ${ }还可针对不同的变数状态赋值(沒设定、空值、非空值):
${file-my.file.txt} :假如 $file沒有设定,則使用
my.file.txt作传回值。(空值及非空值時不作处理)
${file:-my.file.txt} :假如 $file沒有設定或為空值,則使用
my.file.txt作傳回值。 (非空值時不作处理)
转自:http://blog.csdn.net/shmilyringpull/article/details/7631106
3、部分shell命令基本演示
http://blog.itpub.net/22664653/cid-85156-list-1/4、高亮显示
echo -e "\E[1;31m red \E[0m"http://blog.itpub.net/22664653/viewspace-689430/
5、算数运算
Bash shell 的算术运算有四种方式:1:使用 expr 外部程式
加法 r=`expr 4 + 5`
echo $r
注意! '4' '+' '5' 这三者之间要有空白
r=`expr 4 * 5` #错误
乘法 r=`expr 4 \* 5`
2:使用 $[ ]
r=$[ 4 + 5 ]
echo $r
http://www.cppblog.com/fwxjj/archive/2009/09/04/95342.html
6、shell脚本的一些特殊符号
http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2218846.html7、 使用getopts处理shell中的输入参数
OPTIND:getopts使用OPTIND作为索引,来处理下一个需要处理的参数,记录当前的状态。OPTARG:在上面的循环中,a,b两个参数后面各有一个冒号,冒号表示该输入的参数后面还有一个参数值,当getopts发现冒号后,会处理用户输入的参数值,这个 参数值被保存在OPTARG中。
OPTSTRING:也就是上例中的 :a:b:cdefg,getopts需要处理的参数。注意,最前面的冒号“:”用于指定getopts工作于silent mode,在silent模式下,当用户输入的参数不满足OPTSTRING时,不会讲illegal option这样的错误信息打印出来,使代码看起来更加专业。如果想要工作在verbose模式下,可以去掉最前面的冒号
#! /bin/bash function c1() { cmd="rhc app create -p redhat" while getopts :a:t:sn opt; do case $opt in a) cmd=$cmd" -a $OPTARG" ;; t) cmd=$cmd" -t $OPTARG" ;; s) cmd=$cmd" -s" ;; n) cmd=$cmd" -n --no-dns" ;; \?) echo "Invalid param" ;; esac done echo $cmd } c1 -a app1 -t perl-5.10 -s -n refer: http://blog.csdn.net/henriezhang/article/details/8548206 Linux 内存查看相关命令
(1)top
(2) pmap -d 14596
(3) ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
其中rsz为实际内存,上例实现按内存排序,由大到小)
http://www.cnblogs.com/gaojun/p/3406096.html
分析进程CPU占用情况
http://my.oschina.net/xianggao/blog/394800top
top -H -p pid命令查看进程内各个线程占用的CPU百分比
strace -T -r -c -p pid
pstack pid
trace -p tid
ssh相关
使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录http://blog.chinaunix.net/uid-26284395-id-2949145.html
shell脚本输入y(yes/no)
用yum装/卸载软件时出现Is this ok [y/N]: 让你选择,怎样写一个脚本使其自动选择Y输入重定向 yum -y update kernel yes | yum update kernel
参考
获取本地ip地址(以下方法会获取到其他网络的地址,比如自定义的网络)
/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'
使用sync命令清理内存缓存
除了在配置文件中设置缓存增长方式外,还可以通过设置参数来零时性清理缓存,强制缓存写入硬盘,
sync; echo 3 > /proc/sys/vm/drop_caches
http://www.linuxidc.com/Linux/2010-03/24939.htm
使用pssh批量操作
ubuntu安装pssh :apt-get install -y pssh
pssh相关操作detail
大部分常用命令整理
归纳整理(包含了需要用到的大部分常用命令):link如何让命令在后台运行的一些方法
nohup,disown,setid等等命令来完成,detail
相关文章推荐
- HBASE启动/Shell解析
- hbase shell
- SHELL执行的三种模式
- Delphi WinExec ShellExec 用法介绍
- 自动创建或删除
- 利用Linux查找重复文件(shell脚本)
- Linux基础06_Shell变量与vim
- bash 函数使用,实现模块化编程
- SparkShell实战
- 十、Shell基础
- 用shell批量创建用户
- shell脚本编程简介
- shell命令二
- HBase HA高可用集群搭建及HBase Shell简单使用
- [shell]Shell经常使用特殊符号
- Shell编程——统计特定目录下文件个数
- Ubuntu上的android sdk提示 bash: ......sdk/platform-tools/adb或者emulator: 没有那个文件或目录 解决笔记
- bash有空格的文件名
- percona xtrabackupd定期做全备,增量备份shell脚本
- Linux系统免密码登录Shell