您的位置:首页 > 运维架构 > Shell

shell编程基础(一)

2016-06-08 15:37 573 查看
一、命令行
命令行结构:命令名、命令选项和命令参数三部分内容组成,中间以空格或制表符等空白字符分隔。如下:
命令名 命令选项 命令参数
command [option] [parameter]
命令选项通常以减号“-”开始的单个字符,主要用于限定命令的具体功能,同时也决定命令的最终运行结果
选项可以单独给出,也可以组合使用。如果选项后面有参数,选项与参数必须单独列出。
命令选项可以省略,命令参数也可以省略,命令名必须提供。
命令行只包含命令名时,命令选项和参数采用默认值。
命令行一次输入多个命令时,命令之间使用分号;分隔
[root@mrhcatxq01 ~]# date #命令行只有命令名,选项和参数默认值
Thu Mar 24 16:14:38 CST 2016
[root@mrhcatxq01 install_cacti]# date "+%Y%m%d"
20160324
[root@mrhcatxq01 ~]# uname -a #命令行有命令名、命令选项
Linux mrhcatxq01 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@mrhcatxq01 ~]# ls /etc/passwd #命令行有命令名、命令参数
/etc/passwd
[root@mrhcatxq01 ~]# ls -l /etc/passwd #命令行有命令名、命令选项、命令参数
-rw-r--r--. 1 root root 1800 Feb 22 02:18 /etc/passwd
[root@mrhcatxq01 ~]# cd /install_cacti/
[root@mrhcatxq01 install_cacti]# ls -la #命令选项组合使用
total 8464
drwxrwxrwx. 3 root root 4096 Mar 24 01:00 .
dr-xr-xr-x. 29 root root 4096 Mar 10 03:39 ..
-rw-r--r--. 1 root root 2594409 Feb 22 01:43 cacti-0.8.8f.tar.gz
-rw-r--r-- 1 root root 401737 Mar 24 01:00 cacti_backup_20160324.sql
-rwxr-xr-x 1 root root 326 Mar 21 13:58 cacti_backup.sh
[root@mrhcatxq01 install_cacti]#
[root@mrhcatxq01 install_cacti]# sort -t : -k 4 -n -r /etc/passwd #选项后有参数,必须单独列出
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
cacti:x:501:501::/home/cacti:/bin/bash
tomcat:x:500:500::/home/tomcat:/bin/bash
rtkit:x:499:496:RealtimeKit:/proc:/sbin/nologin
pulse:x:497:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin

二、重定向
> 输出重定向(覆盖) command > outputfile 文件存在,则覆盖原来的内容,否则创建文件
>> 输出重定向(追加) command >> outputfile 文件存在,则追加新内容至文件末尾,否则创建文件
< 输入重定向 command < inputfile 读取文件内容作为输入数据
标准输出和标准错误输出重定向到不同文件:(1表示标准输出描述符;2表示标准错误输出描述符)
command > standard.output 2> standard.error 或 command 1> standard.output 2> standard.error
标准错误输出重定向到标准输出:
command &> output 或 command > output 2>&1 (2>&表示 标准错误输出2重定向>到后面指定的文件描述符,这里文件描述符是1,即标准输出)
i>&j 把文件描述符i表示的输出重定向到文件描述符j表示的重定向文件。
常用:command > /dev/null 2>&1

三、管道
管道:前一命令的输出作为后一命令的输入 command1 | command2
[root@u1acatap01 configs]# ls -lrt
total 88
-rw-rw-r-- 1 apache cacti 59 May 24 17:33 index.php
-rw-rw-r-- 1 apache cacti 1267 May 30 01:52 simple.conf
-rw-rw-r-- 1 apache cacti 15269 Jun 3 16:57 global_prod.confbak
-rw-rw-r-- 1 apache cacti 16660 Jun 7 11:34 global_prod.conf
-rw-rw-r-- 1 apache cacti 10342 Jun 7 15:07 final_prod.conf
-rw-r--r-- 1 root root 10342 Jun 7 15:11 final_prod.confbak22
-rw-r--r-- 1 root root 16660 Jun 7 15:12 global_prod.confbak22
[root@u1acatap01 configs]# ls -lrt|grep final_prod.conf
-rw-rw-r-- 1 apache cacti 10342 Jun 7 15:07 final_prod.conf
-rw-r--r-- 1 root root 10342 Jun 7 15:11 final_prod.confbak22
[root@u1acatap01 configs]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  基础 shell 命令行