shell 语法功能

    技术2022-05-19  27

     

    [zlg@localhost sh_test]$ ls2.test  a.out  hello.c  result.log  test_re.c[zlg@localhost sh_test]$ du -bs ./test_re.c219     ./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又可看作一用户环境,命令解释器每个系统都有特定的shellMS-DOS的shell是command.comwindows的shell是explorer.exeUNIX类系统的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 text30 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:跳过在不同文件系统上的目录不予统计

     

     

     


    最新回复(0)