Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42409
  • 博文数量: 13
  • 博客积分: 6
  • 博客等级: 民兵
  • 技术积分: 77
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-03 09:45
文章分类

全部博文(13)

文章存档

2013年(2)

2012年(7)

2011年(4)

我的朋友

分类:

2012-05-28 09:06:41

1.显示消耗内存/CPU最多的10个进程
ps aux | sort -nk 4 | tail
ps aux | sort -nk 3 | tail
——————————————————————————————————————————
2.找出自己最常用的10条命令及使用次数(或求访问最多的ip数)
sed -e ‘s/| /\n/g’ ~/.bash_history |cut -d ‘ ‘ -f 1 | sort | uniq -c | sort -nr | head
——————————————————————————————————————————
3.lsof命令
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -p 12  看进程号为12的进程打开了哪些文件
——————————————————————————————————————————
4.杀掉一个程序的所有进程
pkill -9 httpd
killall -9 httpd
注意尽量不用-9,数据库服务器上更不能轻易用kill,否则造成重要数据丢失后果将不堪设想。
——————————————————————————————————————————
5.把目录下*.sh文件改名为*.SH
find .  -name “*.sh” | sed  ’s/\(.*\)\.sh/mv \0 \1.SH/’ |sh
find .  -name “*.sh” | sed  ’s/\(.*\)\.sh/mv & \1.SH/’|sh  (跟上面那个效果一样)
——————————————————————————————————————————
6.ssh执行远程的程序,并在本地显示
ssh -n -l zouyunhao 192.168.2.14 “ls -al /home/zouyunhao”
——————————————————————————————————————————
7.以http方式共享当前文件夹的文件
$ python -m SimpleHTTPServer
在浏览器访问即可下载当前目录的文件。
——————————————————————————————————————————
8.关于cpu个数
查看逻辑cpu个数:cat /proc/cpuinfo | grep “processor” | wc -l
查看物理cpu个数:cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
查看每个物理cpu的核数cores:cat /proc/cpuinfo | grep “cpu cores”
如果所有物理cpu的cores个数加起来小于逻辑cpu的个数,则该cpu使用了超线程技术。查看每个物理cpu中逻辑cpu的个数:cat /proc/cpuinfo | grep “siblings”
——————————————————————————————————————————
9
因为各种原因,你可能不想让某个用户登陆在系统上,下面的脚本可以帮助你实现这个愿望:

[root@foo/]#whiletrue
>do
>kill-9$(ps-aux|grepusername|awk'{print$2}')
>sleep2
>done
10.通配符
*匹配任何长度的任何串
?匹配单个字符
[...]匹配单个括号内的字符,[]中的-,!具有特殊含义,如:
$echo[a-z]*
显示首字母在a-z范围内的文件或目录名
$echo[a,b]*
显示首字母为a或b的文件或目录名
$echo[!a]*
显示首字母不为a的文件或目录名(使用!时,!必须是[后的第一个字符)
!还可与-和,一起使用
在Bash2.0以后的版本中,若用shopt打开了extglob选项(shopt-***tglob),
那么还可以扩展的模式表达式(模式表达式是指那些包含了一个或多个shell通配
符的字):
*(pattern[|pattern]...)匹配模式的零次或多次出现
(pattern[|pattern]...)匹配模式的一次或多次出现
@(pattern[|pattern]...)匹配模式的一次出现
?(pattern[|pattern]...)匹配任何一个模式.与*不同的是它不匹配
多个模式或模式的重复出现
!(pattern[|pattern]...)与?类似,不过是不包括指定模式的串
应该注意到,模式表达式的定义是递归的,每个表达式都可以包含一个或多个
模式,而且模式表达式也是可以嵌套的.
11.用于引用和逃逸的特殊字符:
逃逸符\表示以后的字符不具有特殊的含义或不是Shell的函数,
除此之外,Bash还可以识别一些C语言中的转义序列,如:
\a响伶
\b回退
\eEscape
\n换行
\r回车
\t制表
\v制表
\\反斜线
\nnn八进制的ASCII编码
\xnnn十六进制的ASCII编码
但必须以如下方式进行引用:
$'string'
引用符'和"将特殊字符或由空白分隔的字引用起来组成一个简单字符串
两者区别在与,双引号内的内容可以进行参数和变量替换

12.将文件时间改成与别的文件相同
  1. [root@jfht ~]# ls -l new.txt
  2. -rw-r--r-- 1 root root 0 2009-10-11 new.txt
  3. [root@jfht ~]#
  4. [root@jfht ~]#
  5. [root@jfht ~]# ls -l /etc/passwd
  6. -rw-r--r-- 1 root root 1606 07-05 15:46 /etc/passwd
  7. [root@jfht ~]# touch -r /etc/passwd new.txt
  8. [root@jfht ~]# ls -l new.txt
  9. -rw-r--r-- 1 root root 0 07-05 15:46 new.txt

13.关于命令类型划分
[root@jfht ~]# type -a type
type is a shell builtin     <== builtin就是指内建命令
[root@jfht ~]# type -a pwd
pwd is a shell builtin
pwd is /bin/pwd           <== 此乃外部命令
[root@jfht ~]# type -a ls
ls is aliased to `ls --color=tty'     <== 此乃别名
ls is /bin/ls
[root@jfht ~]# type -a for
for is a shell keyword           <== 此乃Shell关键字
[root@jfht ~]#

Date用法:

$ date '+%T/%x'

19:47:34/2012-08-18

  1. data命令详解
  2. 使用方式 :
  3.   date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
  4.   说明 :
  5.   date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
  6.   时间方面 :
  7.   % : 印出 %
  8.   %n : 下一行
  9.   %t : 跳格
  10.   %H : 小时(00..23)
  11.   %I : 小时(01..12)
  12.   %k : 小时(0..23)
  13.   %l : 小时(1..12)
  14.   %M : 分钟(00..59)
  15.   %p : 显示本地 AM 或 PM
  16.   %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  17.   %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  18.   %S : 秒(00..61)
  19.   %T : 直接显示时间 (24 小时制)
  20.   %X : 相当于 %H:%M:%S
  21.   %Z : 显示时区
  22.   日期方面 :
  23.   %a : 星期几 (Sun..Sat)
  24.   %A : 星期几 (Sunday..Saturday)
  25.   %b : 月份 (Jan..Dec)
  26.   %B : 月份 (January..December)
  27.   %c : 直接显示日期与时间
  28.   %d : 日 (01..31)
  29.   %D : 直接显示日期 (mm/dd/yy)
  30.   %h : 同 %b
  31.   %j : 一年中的第几天 (001..366)
  32.   %m : 月份 (01..12)
  33.   %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
  34.   %w : 一周中的第几天 (0..6)
  35.   %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
  36.   %x : 直接显示日期 (mm/dd/yy)
  37.   %y : 年份的最后两位数字 (00.99)
  38.   %Y : 完整年份 (0000..9999)
  39.   若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
  40.   参数 :
  41.   -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
  42.   --help : 显示辅助讯息
  43.   -s datestr : 将系统时间设为 datestr 中所设定的时间
  44.   -u : 显示目前的格林威治时间
  45.   --version : 显示版本编号
  46.   例子 :
  47.   显示时间后跳行,再显示目前日期 :
  48.   date '+%T%n%D'
  49.   显示月份与日数 :
  50.   date '+%B %d'
  51.   显示日期与设定时间(12:34:56) :
  52.   date --date '12:34:56'
  53.   注意 :
  54.   当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
  55.   当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
看你的描述应该是要用到 -mtime
找出半年没有修改过的文件列表。
  1. find /PATH -type f -mtime +180


 

 

 

 
阅读(786) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~