现在的位置: 首页 > 综合 > 正文

shell基本命令[getconf/bc/stat/cut/sh -c/telnet ip 80/lsof ]

2013年10月19日 ⁄ 综合 ⁄ 共 3275字 ⁄ 字号 评论关闭

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

5. bc  把字符串看成数值来计算

[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

用cut命令打印出  Change time:

$ stat "/home/zengtai.csm/tt.sh"|grep Change|cut -d : -f2|cut -f1
 2012-06-03 18

shell 中用 |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

shell 中数组的赋值

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

抱歉!评论已关闭.