shell 语法功能

来源:互联网 发布:淘宝内部优惠券在哪领 编辑:程序博客网 时间:2024/05/20 05:07

 

[zlg@localhost sh_test]$ ls
2.test  a.out  hello.c  result.log  test_re.c
[zlg@localhost sh_test]$ du -bs ./test_re.c
219     ./test_re.c
[zlg@localhost sh_test]$ du -bs test_re.c | awk '{print $1}'     
219

awk 功能

du

 

 

 

 if test ! -z "$output"; then

 

test 命令用法:

 

1)判断表达式

if test 表达式为真

if test !表达式为假

 

2)判断字符串

test -n 字符串的长度非零

test -z 字符串的长度为零

 

 

# check OK/NG. When sample_data_size_2>sample_data_size_1>0, OK. 

    587    if [ "$sample_data_size_1" -lt 0 -o "$sample_data_size_2" -lt "$sample_data_size_1" ];
        then
    588
    589       return 1
    590    fi

if 判断参数:
if语句内判断参数

-b 当file存在并且是块文件时返回真

-c 当file存在并且是字符文件时返回真

 

-d 当pathname存在并且是一个目录时返回真

-e 当pathname指定的文件或目录存在时返回真

-f 当file存在并且是正规文件时返回真

-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

-p 当file存在并且是命令管道时返回为真

-r 当由pathname指定的文件或目录存在并且可读时返回为真

-s 当file存在文件大小大于0时返回真

-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真

 

shell 里面比较字符写法

 

-eq   等于

-ne    不等于

-gt    大于

-lt    小于

-le    小于等于

-ge   大于等于

-z    空串

=    两个字符相等

!=    两个字符不等

-n    非空串

 

  更为详细的说明:

  运算符                     描述                          示例

  文件比较运算符

  -e filename     如果 filename 存在,则为真            [ -e /var/log/syslog ]

  -d filename     如果 filename 为目录,则为真          [ -d /tmp/mydir ]

  -f filename     如果 filename 为常规文件,则为真      [ -f /usr/bin/grep ]

  -L filename     如果 filename 为符号链接,则为真      [ -L /usr/bin/grep ]

  -r filename     如果 filename 可读,则为真            [ -r /var/log/syslog ]

  -w filename     如果 filename 可写,则为真            [ -w /var/mytmp.txt ]

  -x filename     如果 filename 可执行,则为真          [ -L /usr/bin/grep ]

  filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

  filename1 -ot filename2   如果 filename1 比 filename2 旧,则为真  [ /boot/bzImage -ot arch/i386/boot/bzImage ]

  字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

  -z string               如果 string 长度为零,则为真               [ -z $myvar ]

  -n string

 

 

 

 

linux下shell命令及简要说明


LINUX下shell命令及简要说明
shell简介:shell的原意是外壳,对OS来说,shell负责用户和操作系统之间的沟通,把用户下达的命令解释给系统去执行,并将系统返回的信息解释给用户。所以shell又可看作一用户环境,命令解释器
每个系统都有特定的shell
MS-DOS的shell是command.com
windows的shell是explorer.exe
UNIX类系统的shell常有ash bash/bash2 bsh csh ksh tcsh zsh 等等
大多数linux发行版本的默认shell为bash
接下来我们来看看常用shell命令,无特殊说明,一个命令说明由 命令名称 格式 命令示例组成
1 & 后台执行命令
格式 shel命令 &
# shutdown -h 04:30 将定于4:30关机命令放到后台执行
2 > 将结果输出到指定的文件
格式 shel命令 > 指定文件
# rpm -qi freetype > ls.txt 将查询freetype的命令结果输出到 ls.txt文件
3 >> 将结果附加到指定文件中
格式 shell命令 >> 指定文件
# rpm -qi freetype >> ls.txt 将查询freetype的命令结果附加到 ls.txt文件
4 | 管道命令 将命令的结果输给另一命令
格式 shell命令 | shell命令
# ls -al | more 将ls详细列表命令输给more命令在屏幕上显示出来
5 adduser 创建新的用户账号
格式 adduser 所要创建的用户名
# adduser duze 创建一个名为duze的用户
5 alias 显示及设置命令的别名
格式 alias 需要设置别名的命令='别名'
# alias cp='copy' 将cp命令定义成新的copy命令
# alias 显示所有已定义的别名
6 bg 将中断的工作放到后台运行
这个命令不作特别的讲述,当一个在前台运行的工作,当你按下ctrl+z中断后,此时在shell下执行bg,这个被中断的工作将放到后台继续运行
7 bzip2压缩与解压缩.bz2命令
格式 bzip2 -命令参数 压缩(解压缩文件)
# bzip2 -d xine.bz2 解压缩xine.bz2
bunzip2 的参数很多,具体的自己去执行bzip2 -h 查看具体的使用方法
8 cal 显示日历或是月历
该命令直接执行cal即可,由于很简单,这里就不在多说
9 cat 显示或连接文件
格式 cat 文件名 其他参数
# cat rpoxo.txt | more 逐页显示rpoxo.txt 文件的内容
# cat rpoxo.txt >>lso.txt 将rpoxt.txt 附加到lso.txt 文件之后
10 cd 目录切换命令
格式 cd 所要切换至的目录
# cd ~ 切换到当前用户目录
11 cdrecord 光盘烧录程序
格式 cdrecord 参数
# cdrecord -scanbus 建立烧录设备的位置
# cdrecord -v -eject speed=40 dev=0,3,0 myiso.iso 以40X速度将myiso.iso刻录在光盘上(dev的位置由上面一个命令获得,并在烧录过程中显示详细过程,完毕自动弹出光盘)
12 cfdisk 磁盘分区和维护程序
格式 cfdisk 参数 所要分区和维护的磁盘
# cfdisk -l /dev/hda 显示/dev/hda的磁盘信息
13 chmod 改变文件或是目录的权限
格式 chmod 参数 所要更改权限的文件或是目录
# chmod -R 755 /usr/LumaQQ 将/usr/LumaQQ目录及其下全部文件和子目录的权限改为755
注:文件权限的描述不在本文的范围之内,请自己查阅相关文档。更新了LumaQQ之后没改文件权限无法登录的不妨复制一下这个命令,犯这种低级错误的人多了^_^
14 chown 更改文件或目录的拥有者
格式 chown 参数 拥有者 所要更改的文件或目录
# chown -R pingfan.pangfan /home/ftp 将/home/ftp目录及子目录下的全部内容的拥有者更改为pingfan组的pingfan用户
15 clock 显示及调整时间
格式 单独使用该命令或是加上参数
# clock -w 将当前时间写入BIOS中
16 cp 复制文件或目录
格式 cp 所要复制的文件 目标位置
# cp /home/pingfan/.xinitrc /home/duze/.xinitrc 将pingfan用户目录下的.xinitrc 复制一份到duze目录下
17 crond 任务调度守护进程
格式 看下面这个例子就足够了,三种状态 启动 停止 重启
# /sbin/service crond start 启动crond 守护进程
18 crontab 设置任务调度工作
格式 crontab 参数
# crontab -r 删除所有任务调度工作 加上参数-e则为编辑 -l 为显示调度计划 -u加上用户名则指定管理该用户的任务调度工作
19 date 显示当前的日期与时间
格式 单独执行该命令
20 dd 转换或复制文件 一般搭配if 和of使用,有点编程的感觉,哈!
# dd if=/dev/hda of=/dev/hdb bs=512k 将/dev/hda上的文件拷贝到/dev/hdb上面
# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1 著名的转换命令,用WINDOWS的引导管理器引导LINUX必须用它
21 df 查阅分区大小和信息
这个命令很单,自己试一下df -h看看有几个参数,再每个参数用一下

22 dmesg 显示开机信息
偶觉得没多大用处,喜欢究底的自己dmesg -h 看一下,很简单
23 du 查阅每个目录占用的磁盘空间
格式 du 目录 如果不加任何参数则查阅当前目录所占磁盘空间
# du /usr/mp3 我查询自己下载的MP3有多大了
24 edquota 编辑磁盘空间限制
格式 edquota -u 所要限制磁盘空间的用户名
# edquota -u pingfan 编辑pingfan账号的磁盘空间限制
25 exit 退出当前shell
格式 直接在shell下执行exit 即可,现在在shell下键入exit试试?^_^
26 export 输出环境变量
格式 export $PATH
直接执行上行命令则显示当前的路径设置
27 fdisk 磁盘分区程序
格式 fdisk -参数 需要操作的磁盘
# fdisk -l /dev/hda 显示/dev/hda的磁盘分区详细列表
28 fg 激活某个被挂起的进程并使它在前台运行
格式 fg 需要激活的进程 其他参数
# fg vim 将挂起的vim进程切换到前台继续执行
29 file 显示文件类型
格式 file [-bcfile [-bciknsvzL] [-f namefile] [-m magicfiles] file...
# file /etc/fstab 查看/etc/fstab文件类型 执行这个命令的输出结果为 ASCII text
30 find 查询文件或目录
这个命令的格式说起来就长了,具体的请自己去man find,这里我仅一例,简要的显示一下这个命令
find -name 'm*' 显示当前目录及子目录下所有以m开头的文件

 

 shell du命令

        linux命令:显示磁盘空间的使用情况。统计目录(或文件)所占磁盘的大小。

     格式:du [选项] [Names…]
  说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统

数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。
  

命令中各个选项的含义:
  -s:对每个Names参数只给出占用的数据块总数。
  -a:递归的显示指定目录中各文件及子孙目录中个文件占用的数据块数。若

           既不指定-s,也不指定-a,则显示Names中的每一个目录及其中的各子目录所

           占的磁盘块数。
  -b:以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
  -k:以1024字节为单位列出磁盘空间的使用情况。
  -c:最后再加上一个总计(系统缺省设置)。
  -l:计算所有的文件大小,对硬链接文件,则计算多次。
  -x:跳过在不同文件系统上的目录不予统计

 

 

 

原创粉丝点击