1.1 基本shell命令
1. cat ...|tee -a /home/a/conf/test.conf 把屏幕上的数据写到文件中; tee -a 参数a的意思是,在文件后面添加,不是覆盖
scp -p 选项 p:保留文件的修改时间和访
df -h du -h
2. ssh ip/hostname 命令
ssh ecpmv152196.cm3 ping www.baidu.com 先登录ecpmv152196.cm3 然后执行 ping www.baidu.com
3。 echo -e 允许后面字符串中的转义字符有效 \n 换行符
[caoshuming@hostname ~]$ echo -e "i will use \n $HOME" i will use /home/caoshuming.pt [caoshuming@hostname ~]$ echo "i will use \n $HOME" i will use \n /home/caoshuming.pt [caoshuming.pt@hostname ~]$
4. 查看机器的内存mem、swap的使用情况用free 命令
[caoshuming.pt@hostname ~]$ free -m total used free shared buffers cached Mem: 1700 1181 518 0 301 639 -/+ buffers/cache: 239 1460 Swap: 1027 0 1027
[caoshuming.pt@hostname ~]$ echo "100 - 99.2" |bc .8
也就是把字符串 "100 - 99.2" 用bc的数值进行计算得到 0.8
6. 理解/etc/cron.d目录;里面都是此台服务器定时执行的脚本
[]$ cd /etc/cron.d/
cat /etc/cron.d/* |grep rm
crontab -u root -l root用户的定时任务
7. which where is 查询命令的目录
which vm_img 后面要加命令 因为在 path里面查询 后面加目录是无效的
]$ which vm_img
/usr/bin/which: no vm_img in (/usr/kerberos/bin:/home/y/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/zengtai.csm/bin)
etc]$ where is vm_img
-bash: where: command not found
[zengtai.csm@ ~]$ hostname -i 172.24.130.57
hostname -s .....l
~]$ hostname -h
Usage: hostname [-v] {hostname|-F file} set hostname (from file)
domainname [-v] {nisdomain|-F file} set NIS domainname (from file)
hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name
hostname [-v] display hostname
hostname -V|--version|-h|--help print info and exit
dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y
-s, --short short host name
-a, --alias alias names
-i, --ip-address addresses for the hostname
-f, --fqdn, --long long host name (FQDN)
-d, --domain DNS domain name
-y, --yp, --nis NIS/YP domainname
-F, --file read hostname or NIS domainname from given file
10. geconf
http://hi.baidu.com/dekar/blog/item/6c20c1f64b2baf65dcc47423.html
11.stat 是查看文件的文件状态的命令,可以查看文件的 size IO Blocks access (uid) Modify Changetime 等
Modify:文件数据最后的修改时间,Change:文件i节点最后修改时间,i节点包括:文件的Chown chmod 类型 长度 文件块指针 等
$ a=`stat "/home/zengtai.csm/t.sh"` $ echo $a File: `/home/zengtai.csm/t.sh' Size: 134 Blocks: 8 IO Block: 4096 regular file Device: ca05h/51717d Inode: 848664 Links: 1 Access: (0744/-rwxr--r--) Uid: (53549/zengtai.csm) Gid: ( 100/ users) Access: 2012-06-10 09:22:45.000000000 +0800 Modify: 2012-06-10 09:22:26.000000000 +0800 Change: 2012-06-10 09:22:26.000000000 +0800
$ stat "/home/zengtai.csm/tt.sh"|grep Change|cut -d : -f2|cut -f1 2012-06-03 18shell 中用 |tr -s ' ' 去掉字符串中多余的空格;
shell 中命令的输出不能直接用 | 作为下面命令的输入 ,必须用 $(cmd)| 来实现
$ stat "/home/zengtai.csm/tt.sh"|grep Change|cut -d : -f2 2012-07-28 11 $ echo $(stat "/home/zengtai.csm/tt.sh"|grep Change|cut -d : -f2)|tr -s ' ' 2012-07-28 11
my=(`stat "/home/zengtai.csm/tt.sh"`) $ echo ${my[10]} file
把 stat 命令的结果赋值给my数组,按 空格分开元素
用stat 命令获取文件的最后motidy 的时间,也就是文件中数据最后修改的时间
$ a=`stat -c %Y /home/a/test/browser.tdbm` $ echo $a 1343656262 -->换算成s
12. 清空一个文件:
cat /dev/null > /tmp/t.txt
sudo -u shuming sh -c 'true > /tmp/t.tx'
13. 用telnet 检测一下到一个域名和ip 端口的通信,一般用来查看是否打通ACL:
telnet www.taobao.com
telnet ip 5198 判断是否打通ACL
14. netcat 命令详解:
http://linux.chinaunix.net/techdoc/system/2008/10/14/1038114.shtml
15. lsof 命令:可以查看一个进程打开的文件,也可以查看某个文件被那些进程打开
http://blog.csdn.net/lidowx/article/details/6019573
sudo lsof -p 进程号 显示进程打开的所有文件
sudo ls0f /var/...file 显示打开次文件的所有进程
16. >/dev/null 2>&1的语法实现原理
http://ninayang1987.blog.sohu.com/165240471.html