精华内容
下载资源
问答
  • Shell学习笔记

    2018-04-28 11:57:39
    Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记
  • shell学习笔记

    2018-04-04 16:47:25
    shell学习笔记,主要介绍了shell变量、shell字符串、shell数组、shell传递参数、shell基本运算符
  • shell学习记录

    2019-04-18 14:04:18
    一些关于shell编程的基础知识,shell学习手册,介绍一些关于shell的基础知识。 目录:shell简介,数值计算,shell的循环结构,shell技巧。字符串操作,文件操作,进程操作等
  • linux shell学习资料

    2019-01-17 20:17:15
    linux shell学习资料:Linux Shell从入门到精通、Linux Shell编程艺术、Linux Shell脚本攻略
  • shell学习日志总结

    2011-04-20 07:57:20
    shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志总结shell学习日志...
  • shell学习指导

    2014-01-10 10:56:20
    shell学习指导,及基本源代码,shell测试,写shell要注意的地方
  • linux shell学习

    2010-05-12 10:44:39
    linux shell学习 比较完整的SHELL文档
  • shell学习资料01

    2014-07-30 00:05:42
    shell学习01
  • linux脚本shell学习笔记

    2018-09-11 08:56:50
    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
  • UNIX.shell范例精解(第4版) 完整版适合shell学习者UNIX.shell范例精解(第4版) 完整版适合shell学习者UNIX.shell范例精解(第4版) 完整版适合shell学习者UNIX.shell范例精解(第4版) 完整版适合shell学习者UNIX.shell...
  • Shell 学习大全

    2009-07-31 09:09:39
    shell的入门,shell程序编写,很多shell学习文档整理
  • ADB Shell学习

    万次阅读 多人点赞 2016-07-13 15:25:28
    ADB Shell 学习 又是一个周末了,最怕闲来无事的周末,于是给自己找点事情做,ADB shell这一块一直没有系统的学习,正好趁此机会学习。 主要通过学习资料和adb –help文档学习怎么使用ADB shell命令首先找到Andorid...

    ADB Shell 学习

    又是一个周末了,最怕闲来无事的周末,于是给自己找点事情做,ADB shell这一块一直没有系统的学习,正好趁此机会学习。

    主要通过学习资料和adb –help文档学习

    怎么使用ADB shell命令

    首先找到Andorid的SDK安装路径或者单独安装ADB组件,sdk中adb路径在

    cd <adb-path>
    #执行adb命令
    adb shell

    Mac下

    #配置adb环境变量
    vi ~/.bash_profile
    #编辑该文件,添加你的adb路径
    export ADB_PATH= your_adb_path
    export PATH=${PATH}:${ADB_PATH}
    
    #退出保存再执行命令使得环境变量生效
    source .bash_profile

    ADB Debugging命令

    adb devices

    列出连接的设备

    adb devices [-l] ‘-l’

    参数用于指定需要列出的设备

    #打印连接的设备
    adb devices

    返回结果

    #执行命令返回设备的序列数字和状态
    2b70fc6a        device

    adb forward

    重定向连接,需要开启设备的USB debugging模式

    adb forward <local> <remote>
    adb froward –no-rebind <local> <remote>作用同上,但是如果已经连接就会失败

    adb forward –remove <local>删除指定连接的设备

    adb forward –remove-all

    #映射本地的8000端口到设备的端口9000
    adb forward tcp:8000 tcp:9000

    adb kill-server

    终止adb服务进程 如果服务在运行则终止

    adb kill-server

    无线连接命令

    adb connect

    通过WIFI使用ADB

    adb connect <host> [:<port>]

    第一步 通过USB连接设备

    第二步 使用命令查看连接的设备

    adb devices

    注意: 以上步骤不可忽略

    第三步 以TCP模式重启端口:5555

    第四步 查看Android设备的IP地址:设置->关于手机->状态->IP地址,将该IP地址以 #.#.#.# 的格式记录下来

    第五步 执行命令

    #   #.#.#.# 为刚刚记录下来的ip地址
    adb connect #.#.#.#

    第六步 拔掉usb连接线,确认设备是否依然可连接

    adb devices

    返回结果

    #.#.#.#:5555 device

    注意: 确保本地和设备连接的wifi为可访问的同一个局域网

    adb disconnect

    断开通过TCP/IP连接的设备

    adb disconnect [<host> [:<port>]]

    不带参数则断开所有TCP/IP连接的设备

    adb usb

    重启USB模式的 ADB

    adb usb

    App包的管理命令

    adb install

    安装Android应用到设备,需要指定需要安装的 .apk 文件的全路径

    adb install [option]

    adb install test.apk
    # 给apk上锁,发布 apk 到 android market上时,可以设置相关标志位来保护你的 app。
    adb install -l test.apk
    # 重新安装apk
    adb install -r test.apk
    # 允许测试
    adb install -t test.apk
    # 在sdcard上安装
    adb install -s test.apk
    #允许低版本代码
    adb install -d test.apk
    #授予所有运行权限
    adb install -g test.apk

    adb install-multiple

    一次安装多个apk文件

    adb install-multiple [-lrtsdpg]

    adb uninstall

    从设备中卸载app

    adb uninstall [-k]

    adb uninstall com.test.app
    adb uninstall -k com.test.app

    adb shell pm list packages

    打印出设备安装的所有包信息,可选参数用于过滤要显示的包名

    adb shell pm list packages [options]

    adb shell pm list packages
    #查看相关的文件
    adb shell pm list packages -f
    #只显示禁用的packages
    adb shell pm list packages -d
    # 只显示可用的packages
    adb shell pm list packages -e
    #只显示系统级别的packages
    adb shell pm list packages -s
    #只显示第三方的packages(非系统)
    adb shell pm list packages -3
    #查看安装器(比如google play)
    adb shell pm list packages -i
    # 包括卸载的packages
    adb shell pm list packages -u
    #查询用户空间
    adb shell pm list packages --user <USER_ID&gt;

    adb shell pm path

    打印制定APK的路径

    adb shell pm path <PACKAGE>

    adb shell pm path com.android.phone

    返回结果

    package:/system/priv-app/TeleService/TeleService.apk

    adb shell pm clear

    删除所有有关的数据

    adb shell pm clear

    adb shell pm clear com.test.abc

    返回结果

    clearing app data, cache

    文件管理

    adb pull

    从设备下载指定的文件到电脑

    adb pull <remote> [local]

    #下载 /sdcard/demo.mp4文件到 <android-sdk-path>/platform-tools 目录下
    adb pull /sdcard/demo.mp4
    #下载demo.mp4到 /Users/bsty/Desktop/
    adb pull /sdcard/demo.mp4 /Users/bsty/Desktop/

    adb push

    从电脑上传指定文件到设备

    adb push <local> <remote>

    #复制 <android-sdk-path>/platform-tools/test.apk 到设备的 /sdcard目录下
    adb push test.apk /sdcard
    #复制 /Users/bsty/Desktop/test.apk 到 /sdcard 目录下
    adb push /Users/bsty/Desktop/test.apk /sdcard

    adb shell ls

    列出目录类容

    * ls [option] <directory>*

    第一步.

    adb shell

    第二步

    ls
    #显示隐藏的文件
    ls -a 
    #打印每个文件的序号
    ls -i
    #以块的形式打印出每个文件的大小
    ls -s
    #列出详细信息 UIDs和GIDs
    ls -n
    #列出所有子目录(递归)
    ls -R 

    提示: 按 Ctrl+C 终止

    adb shell cd

    切换目录

    cd <directory>

    第一步

    adb shell

    第二步

    cd /system

    adb shell rm

    删除文件或者目录

    rm [option] <files or directory>

    第一步

    adb shell

    第二步

    rm /sdcard/test.txt

    #不需要提示强制删除
    rm -f /sdcard/test.txt 
    #删除所有子文件夹内容
    rm -r /sdcard/tmp
    #删除一个目录,即使不是空目录
    rm -d /sdcard/tmp

    提示: rm -d 和rmdir命令相同

    #在删除前会有提示信息
    rm -i /sdcard/test.txt

    adb shell mkdir

    创建文件夹

    mkdir [options] <directory name>

    mkdir /sdcard/tmp
    #设置权限
    mkdir -m 777 /sdcard/tmp
    #当需要时创建父目录
    mkdir -p /sdcard/tmp/sub1/sub2

    adb shell touch

    创建空文件或者修改文件的时间戳

    touch [options] <file>

    第一步

    adb shell

    第二步

    touch /sdcard/tmp/test.txt

    ls /sdcard/tmp

    adb pwd

    打印当前目录的位置

    adb shell
    
    pwd

    adb shell cp

    复制文件和目录

    cp [options] <source> <dest>

    第一步

    adb shell

    第二步

    cp /sdcard/test.txt /sdcard/demo.txt

    adb shell mv

    移动或者重命名文件

    mv [options] <source> <dest>

    第一步

    adb shell

    第二步

    #移动
    mv /sdcard/tmp /system/tmp
    #重命名
    mv /sdcard/tmp /sdcard/test

    网络

    adb shell netstat

    网络统计

    netstat

    第一步

    adb shell

    第二步

    netstat

    adb shell ping

    测试两个网络之间的连接和延迟

    第一步

    adb shell

    第二步

    ping www.google.com

    adb shell netcfg

    通过配置文件管理和配置网络

    netcfg [<interface> {dhcplupdown}]

    第一步

    adb shell

    第二步

    netcfg

    adb shell ip

    显示,处理路由,设备,策略路由和隧道

    ip [ OPTIONS ] OBJECT

    OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }

    OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}

    第一步

    adb shell

    第二步

    #显示wifi IP地址
    ip -f inet addr show wlan0

    日志

    adb logcat

    在屏幕上打印日志

    adb logcat [option] [filter-specs]

    adb logcat

    提示: 按 Ctrl-C 停止

    #最低优先级,只显示Verbose级别的日志
    adb logcat *:V 
    #只显示 Debug级别的日志
    adb logcat *:D 
    #只显示 info 级别的日志
    adb logcat *:I 
    #只显示Warning级别的日志
    adb logcat *:W
    #只显示Error级别的日志
    adb logcat *:E
    #只显示Fatal级别的日志
    adb logcat *:F
    # 最高优先级,没有打印过的日志
    adb logcat *:S 

    adb logcat -b <Buffer>

    #查看包含radio/telephony相关的消息缓冲区
    adb logcat -b radio
    # 包含事件相关的缓冲区
    adb logcat -b event
    #默认
    adb logcat -b main
    #清除整个日志并退出
    adb logcat -c
    #转储日志到屏幕并退出
    adb logcat -d
    #将日志信息写入test.logs文件
    adb logcat -f test.logs
    #打印指定日志buffer的大小并退出
    adb logcat -g 
    #设置日志的最大数
    adb logcat -n <count>

    提示: 默认的值是4. 需要 -r 参数

    #Rotates the log file every <kbytes> of output
    adb logcat -r <kbytes>

    提示: 默认值为16, 需要-f参数

    #设置默认 过滤器为 silent
    adb logcat -s 

    adb logcat -v <format>

    # 显示优先级/标签并在过程中发出消息(默认格式)的PID。
    adb logcat -v brief
    # 只显示 PID
    adb logcat -v process
    #只显示优先级和标签
    adb logcat -v tag
    #显示原始日志信息,没有其他数据字段
    adb logcat -v raw
    #显示日期,调用时,优先级/标签,进程发出消息的PID。
    adb logcat -v time
    #显示日期,调用时间,优先级,标记,和该线程发出消息的PID和TID
    adb logcat -v threadtime
    #显示所有元数据字段和空行分开的消息
    adb logcat -v long

    adb shell dumpsys

    转储系统数据

    adb shell dumpsys [options]

    adb shell dumpsys
    adb shell dumpsys battery
    #搜集设备的电池信息
    adb shell dumpsys batterystats
    #清除旧信息
    adb shell dumpsys batterystats -reset 

    adb shell dumpstate

    转储状态

    adb shell dumpstate
    #转储信息存到一个文件
    adb shell dumpstate > state.logs

    截屏

    adb shell screencap

    adb shell screencap <filename>

    adb shell screencap /sdcard/screen.png

    从设备下载一个文件

    adb pull /sdcard/screen.png

    adb shell screenrecord

    录制屏幕,android4.4(api 19)以上可用

    adb shell screenrecord [options] <filename>

    adb shell screenrecord /sdcard/demo.mp4

    (按 Ctrl-C停止录屏)

    从设备下载该录像文件

    adb pull /sdcard/demo.mp4

    提示:按Ctrl-C停止录屏,默认3分钟自动停止,也可以添加参数 –time-limit 设置录制时间

    #设置视频大小:1280*720. 默认为设备分辨率,最好使用设备支持的分辨率
    adb shell screenrecord --size <WIDTH*HEIGHT>
    #设置视频的bit比,默认4Mbps,可以增加比例提升视频清晰度,但是也会增大文件大小,
    #例子: bit比为5Mbps, *** adb shell screenrecord --bit-rate 5000000 /sdcard/demo.mp4
    adb shell screenrecord --bit-rate <RATE>
    #设置最长(秒),默认为180秒(3分钟)
    adb shell screenrecord --time-limit <TIME>
    #旋转输出90度。实验性功能
    adb shell screenrecord --rotate
    #控制台显示日志信息,如果没有设置该参数,不会在录屏是显示任何信息
    adb shell screenrecord --verbose

    系统

    adb root

    以root权限重新启动adbd守护进程

    adb root

    注意:在生产环境中adbd不能以root模式执行,只能用于测试

    adb sideload

    恢复Andr​​oid update.zip包。

    adb sideload <upload.zip>

    adb shell ps

    打印进程状态信息

    ps [options]

    第一步

    adb shell

    第二步

    ps

    ps -p

    adb shell top

    显示顶层的cpu进程

    top [options]

    第一步

    adb shell

    第二步

    top

    提示: 按Ctrl-C停止**

    #以线程形式展示
    top -t 

    adb shell getprop

    通过property service获取设备属性

    getprop [options]

    第一步

    adb shell

    第二步

    getprop
    
    getprop ro.build.version.sdk
    
    getprop  ro.chipname
    
    getprop | grep adb 
    

    adb shell setprop

    设置property service

    **setprop <key> <value>

    第一步

    adb shell

    第二步

    setprop service.adb.tcp.prot 5555
    展开全文
  • shell学习心得 下载

    2011-08-22 19:26:04
    shell学习资料 学习心得 容易懂
  • shell学习资料

    2019-05-07 15:50:15
    shell作用和使用技巧,关于shell基础的一些东西,可以看看,希望对大家有帮助
  • Shell学习快速入门篇

    千次阅读 2017-06-29 15:47:21
    Shell学习快速入门篇@([15]shell脚本学习)[toc] 转载请注明原文链接写在最前面 之前都是在用别人写好的shell脚本或者修改一下别人的shell,但最近自己写的时候出现很多问题,于是决定从头开始学习一下。 本文...

    Shell学习快速入门篇

    @([15]shell脚本学习)

    [toc]
    转载请注明原文链接

    写在最前面

    之前都是在用别人写好的shell脚本或者修改一下别人的shell,但最近自己写的时候出现很多问题,于是决定从头开始学习一下。
    本文只是自己的一个学习记录,所以只会简单介绍shell脚本中的基本的语法。

    基本常识

    1. shell脚本第一行要加入#!/bin/bash
    2. shell脚本的量中运行方式
      • 作为可执行程序运行
        chmod +x ./test.sh #使脚本具有执行权限
        ./test.sh#执行脚本
      • 作为解释器参数执行
        /bin/sh test.sh
    3. 以#开头的行就是注释,会被解释器忽略

    shell中的变量

    变量的类型

    1. 局部变量——局部变量在脚本或命令中定义,仅在当前shell实力中有效,其他shell启动的程序不能访问局部变量。
    2. 环境变量——所有的程序,包括shell启动的程序,都可以访问环境变量,有些程序需要环境变量来保证期正常运行。必要的时候shell脚本也可以定义环境变量。
    3. shell变量——shell变量是由Shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证shell的正常运行。

    变量的定义与赋值

    定义变量时变量名不加美元符号($)
    变量命名规范
    - 首个字符必须为字母
    - 中间不能有空格
    - 不能使用标点符号
    - 不能使用bash里的关键字

    赋值
    shell中的变量没有默认值,所以要在定义时赋初始值。
    My_name="EricLee" # 这里要特别注意等号前后不能有空格。
    使用变量

    My_name="Ericlee"
    echo $My_name
    echo ${My_name}

    变量名外的换括号是为了帮助解释器识别变量的边界,加不加都可以(推荐加)。
    删除变量

    unset My_name
    

    字符串

    字符串可以使用单引号或者双引号甚至不用引号。
    单引号
    - 单引号里的任何字符都可以原样输出,单引号字符串中的变量是无效的;
    - 单引号字符串中不能出现单引号,即使对单引号转义也不可以。

    双引号
    - 双引号里可以有变量
    - 双引号可以使用转义字符

    数组

    定义数组
    数组名=(值1,值2 ··· 值n)
    或者单独定义数组的各个分量
    数组名[下标]=值
    读取数组
    ${数组名[下标]}
    获取数组长度

    # 取得数组元素的个数
    length=${#array_name[@]}
    # 或者
    length=${#array_name[*]}
    # 取得数组单个元素的长度
    lengthn=${#array_name[n]}

    获取数组中的所有元素
    使用@或者*可以获取数组中的所有元素

    echo "${数组名[*]}"

    向shell传参

    $数字: 表示第几个参数(0,表示执行的文件名)。

    参数处理说明
    $#传递到脚本的参数个数
    $*以一个单字符传显示所有想脚本传递的参数
    $$脚本运行的当前进程ID号
    $!后台运行的最后一个进程的ID号
    $@与$*相同,但是使用时加引号,并在引号中返回每个参数。
    $-显示Shell使用的当前选项,与set命令功能相同。
    $?显示最后命令的推出状态。0表示没有错误,其他任何值表明有错误。

    $*$@的区别:
    假设脚本运行时写了三个参数1、2、3,则“*”等价于”1 2 3”(传递一个参数),“@”等价于“1” “2” “3”(传递三个参数)

    运算符

    表达式和运算符之间要有空格,例如1+1是不对的,必须写成1 + 1

    关系运算符

    运算符说明
    -eq检测两个数是否相等,相等返回true
    -ne检测两个数是否相等,不相等返回true
    -gt检测左边的数是否大于右边的,如果是,返回true
    -lt检测左边的数是否小于右边的,如果是,返回true
    -ge检测左边的数是否大于等于右边的,如果是,返回true
    -le检测左边的数是否小于等于右边的,如果是,返回true

    布尔运算符

    运算符说明
    &&逻辑的AND
    ||逻辑的OR

    字符串运算符

    假设 a=”aaa” b=”bbb”

    运算符说明举例
    =检测两个字符串是否相等,相等返回true[$a = $b]返回false
    !=检测两个字符串是否相等,不相等返回true[$a != $b] 返回true
    -z检测字符串长度是否为0,为0返回true[ -z $a ] 返回 false
    -n检测字符串长度是否为0,不为0返回true[ -n $a ] 返回 true。
    str检测字符串是否为空,不为空返回true[$a]返回true

    流程控制

    if语句

    和大部分编程语言一样。

    if [ $a == $b ] #注意空格
     then
     # 条件为“真”时进行的操作
     echo "a 等于 b"
    elif [ $a -lt $b ]
    then
      echo "a 小于 b"
    else 
      echo “a 大于 b”
    fi

    for循环

    第一种形式:

    for i in 1 2 3 4 5
    do
        echo "The value is: $i"
    done

    第二种形式:

    for (( i=1; i<=5; i++ ))
       do
           echo $i
       done

    输出结果:

    The value is: 1
    The value is: 2
    The value is: 3
    The value is: 4
    The value is: 5

    无限循环

    for (( ; ; ))

    while循环

    int=1
    while(( $int<=5 ))
    do
            echo $int
            let "int++"
    done

    输出结果:

    The value is: 1
    The value is: 2
    The value is: 3
    The value is: 4
    The value is: 5

    无限循环

    while :
    do
        command
    done
    while true
    do
        command
    done

    break和continue

    break和continue在shell的循环中同样适用,break跳出循环;continue跳过本次循环继续执行下一次循环。

    展开全文
  • shell学习资料(PDF)

    2008-11-21 16:24:49
    shell学习资料(PDF) shell学习资料(PDF) shell学习资料(PDF)
  • shell学习笔记,学习总结,所有必学知识点,包括常用参数表格
  • linux_unix_shell学习

    2010-05-05 20:46:45
    linux_unix_shell学习 讲解详细,例程较多
  • shell学习脚本很好很强大,shell学习脚本很好很强大
  • Linux Shell学习笔记

    2015-08-03 08:40:55
    Linux shell学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习
  • Shell学习——grep命令

    千次阅读 2018-02-27 21:03:01
    Shell学习——grep命令 转载博客Shell之grep命令 一、基本用法 grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。 grep全称是...

    Shell学习——grep命令

    转载博客Shell之grep命令

    一、基本用法

    grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。
    grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep在数据中查找出一个字符串时,是以整行为单位来进行数据选取的。

    1、命令格式
    grep [选项] ‘匹配项’ 文件名

    2、选项
    标红的为常用的选项。
    这里写图片描述

    3、匹配项为关键字或正则表达式。
    这里写图片描述

    展开全文
  • shell学习第一天

    千次阅读 2015-06-07 19:04:18
    shell学习第一天   在开始学习shell以前我觉得应该具备的基础有以下几点: 1.如何登陆linux系统 2.如何在命令行上执行程序 3.如何做一个简单的命令管道,与使用简单的输入/出重定向,例如和> 4.如何以&将程序...

    shell学习第一天

     

    在开始学习shell以前我觉得应该具备的基础有以下几点:

    1.如何登陆linux系统

    2.如何在命令行上执行程序

    3.如何做一个简单的命令管道,与使用简单的输入/出重定向,例如<>

    4.如何以&将程序放在后台执行

    5.使用chmod,将脚本设置为可执行权限

     

    入门

    当我们需要计算机帮我们做点什么的是,最好是选对工具.就像你不会用文本编辑器来做支票簿的核对,不会用计算器来写策划方案一样,所以说程序语言用于不同的需求,本身没有好坏之分.

    shell脚本常用于系统管理工作,或者用于结合现有的程序以完成特定的工作.一旦你写出了一个完成工作的办法,就可以吧用到的命令串在一起,放进一个单独的程序或者脚本里,以后只要执行改程序就能完成工作.如果写的程序很有用,那么别人可以一用该程序当做一个黑盒来使用,他是一个可以完成工作的成虚,但是我们不必知道他是如何完成的(面向对象的封装特性).

    首先来看看脚本语言和编译语言的差异

    大型的程序一般都是由编译语言写成,例如:C++,Java,C.这些程序只要从源代码(socure code)转换为目标代码(object code),便能直接通过计算机来执行.

     

    变异性语言的有点事:效率高,因为他们多半是运作与底层,所处理的是子节,整数,浮点数或者其他的及其层级的对象.例如:C++,很难首先目录的整体移动或者复制.

     

    而脚本编程语言通常是解释型的.这类程序的执行,是由解释器度日程序代码,并将其转换成内部的形式,再执行.注意,解释器本身是一般的编译型程序.

    通俗一点:编译语言需要编译器,脚本语言需要解释器,例如编写C++程序需要使用VS,而编写HTML代码有网页就行,因为网页中有自带的解释器.

     

    为什么要使用shell脚本

    使用脚本编程语言的好处是,脚本语言多半运行在比编译语言还高得层级,能够情已处理文件与目录之类的对象.缺点:一般情况下,效率比较低.不过权衡之下,脚本的执行速度已经很快,快到足以让人感觉不到性能不高了.常用的脚本编程语言有:shelll,Ruby,javascript.

    shell似乎是不同版本的linux系统之间的通用功能.shell脚本只要用心写,就能应用到很多系统上.

    shell脚本的过人之处

    简单性:shell是高级语言

    可移植性:通过POSIX(可移植操作系统接口,是IEEE为要在各种UNIX操作系统上运行的软件,而定义API的一系列互相关联的标准的总称)所定义的功能,可以在不同的系统上执行,无需需改.

    开发容易:短时间即可完成一个功能强大又好用的脚本(字啊以后的学习中就能看到)

     

     

    说了那么多,接下来就是一个简单的脚本.shell交互界面输入who,得到以下信息(这是我的电脑):

    root     pts/0        2015-06-07 18:37 (192.168.199.114)

    这行信息代表系统上有多少人登陆.类似于QQ在线人数

    每个字段的含义分别是登入帐号(root),使用的
    终端机(pts/0 ),登入时间以及从何处登入.

    在大型的,多用户的系统上(服务器的运维上),所列出的列表可能很长(一个页面不够显示),你需要的信息或许可能滚出画面,这是让用户查询的困难.而这正是进行自动化的好时机.使用wc(字数计算)程序,特可以计算出行数(line),字符数(character),字数(word).   使用wc -l:只列出行数.

     

    who | wc -l  计算用户个数   -----> 我的电脑是一个1

    |(管道)符号可以在两个程序之间建立管道(pipeline):who的输出,成了wc的输入.

    将此管道转成一个独立的命令.方法是把这条命令输入一个一般的文件中,然后使用chmod为该文件设置执行的权限.

    #cat > nusers cat是输出文件内容的命令,>nusers表示把内容送到文件nusers里而不是默认的屏幕。但是这里cat后面没有参数,意味着cat将从键盘读取数据输入到nusers中,以CTRL+D结束。

    ^D                        Ctrl+D 表示end-of-file

    #chmod +x nusers           让文件拥有执行的权限

    #./nusers                   输出我们需要的结果.

    易尚展示了一个小型Shell脚本的典型开发周期,首先,直接在命令行上测试.然后,一旦找到能够完成工作的适当语法,再将他们放进一个单独的脚本里,并未该脚本设置执行的权限.之后就能直接使用该脚本了.


    展开全文
  • shell学习经典书籍

    2011-09-28 22:28:13
    这是一本学习shell的经典书籍,一本足以
  • Linux shell 学习

    千次阅读 多人点赞 2013-10-23 13:49:00
    ·详细介绍Linux shell脚本基础学习(一)·详细介绍Linux shell脚本基础学习(二)·详细介绍Linux shell脚本基础学习(三)·详细介绍Linux shell脚本基础学习(四)·详细介绍Linux shell脚本基础学习(五)·...
  • bshell学习指南

    2011-04-06 13:39:23
    bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程bshell编程
  • shell学习笔记二

    千次阅读 2017-03-17 10:58:51
    这是我第二部分的学习笔记,在记录博客的时候出现了一些问题,在这里把文件上传,需要的话可以下载共同学习 地址:http://pan.baidu.com/s/1boWemtT  shell可以识别三种基本的命令:内建命令、shell函数、外部...
  • shell 学习笔记

    千次阅读 2013-07-10 21:55:28
    shell 脚本语言是一种解释型语言; shell脚本的实质是 shell命令的有序集合; 1 shell编程的基本过程  1)建立shell文件  2)赋予可执行的权限 chmod a+x filename  3)执行shell文件 ./filename 2 ...
  • shell 学习手册 pdf版

    2009-07-22 09:55:50
    pdf版shell手册,中文版,学习shell的很好资料
  • 目录: Shell 学习笔记

    千次阅读 2019-08-28 10:58:09
    01. Shell 脚本编程简介 02. Shell 变量-用户自定义变量 03. Shell 变量-内置变量 04. Shell 变量-脚本参数变量 05. Shell 输入与输出 06. Shell 数组 07. Shell 判断表达式 09. Shell 流程控制-循环 10. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 595,155
精华内容 238,062
关键字:

shell学习