zoukankan      html  css  js  c++  java
  • 嵌入式成长轨迹4【嵌入式环境及基础】【嵌入式Linux软件开发入门】【Shell简介】

    【Shell程序命令】
    一、概念
    Shell是核心程序(kernel)之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言
    Shell的类型ash、bash、ksh、csh、tcsh
    -/etc/shells  显示当前系统所拥有的shell
    -echo $SHELL  显示当前系统所装载的shell
    -/bin/csh     转换系统当前为csh
    -exit       退出当前Shell
    程序在Shell中运行,Shell中也可运行子Shell
    linux一般默认使用bash,可以使用箭头来切换历史命令、以命令开头查找命令、自动帮助

    二、存取权限与安全
    之前已经学习过chmod这个命令,不再对它详叙
    另外,权限除了rwt之外,还有s(s用户执行此程序时被赋予root的身份)、t(只有拥有者可以删除)

    chown (-R递归) owner myfile 可以改变文件拥有者
    chown group.owner myfile 可以改变文件拥有者,所属用户组
    chgrp + group 可以改变文件所属用户组

    umask xxx 可以改变默认创建权限为xxx
    在/etc/profiel(SHOME/.profile/SHOME/.bash_profile)中也可直接进行修改
    022模式 文件权限644 文件夹权限755
    0代表前三位,2代表中间三位,最后一个代表最后三位
    umask 文件       目录
              7-umask-1 7-umask
    0        6      7
    1        5      6
    2        4      5
    3      3      4
    4        2      3
    5        1      2
    6        0      1
    7        0               0

    三、符号链接
    硬链接、软链接之前已经提及过,不再详叙
    ln [-s] source_path target_path
    加上-s是软链接

    【Shell脚本】
    一、使用Shell脚本的原因
    1、功能强大
    2、节约时间

    二、shell脚本基本元素
    #!/bin/bash -第一行
    #           -表示注释
    变量
    流程控制结构

    三、脚本运行方式
    要拥有执行权限才能运行
    chmod u+x helloworld.sh
    ./helloworld.sh

    【Shell特性】
    一、别名
    可以实现命令的等效实现

    # alias ll=`ls -alh`
    将ll变为ls -alh这个命令

    可以在文件中修改
    #cat /$HOME/.bashrc

    二、命令替换
    ls `cat myfile` -al
    执行cat myfile 将结果传递给ls -al

    三、后台处理
    一个终端可以同时运行多个程序
    nohup 命令 &
    从jobs -l可以看到正在运行的后台程序

    四、变量
    变量用来存储信息

    outputchar=“helloworld”

    五、命令
    把一个命令的输出连接为另一个命令的输入
    如 ls|sort

    六、重定向
    与管道相关,可以改变程序运行的输入来源和输出地点

    sort  <myfile.txt
    sort  <myfile.txt>myfile_sort.txt

    七、模式匹配
    显示以txt为扩展名的文件或显示以a开头的文件,这种能力就称为模式匹配
    ls *.txt
    后面会详细说明——正则表达式

    八、特殊字符
    双引号:用来使Shell无法认出空格、制表符和其他大多数特殊字符,这样“hi, boy。”表示一个值

    单引号:用来使Shell无法认出所有特殊字符

    反引号:用来替换命令

    反斜杠:用来使Shell无法认出其后的特殊字符,使之失去特殊含义;进行转义

    [root@com /root]#touch a\ aa
    [root@com /root]#ls a\ aa
    a aa

    分号:可执行多个命令

    &:命令后台执行

    括号:创建成组的命令

    大括号:创建命令块

    竖杆:管道表示符

    <>&:表示重定向

    *?[]!:表示模式匹配

    $:变量名的开头

    #:表示注释(第一行除外)

    空格、制表符、换行符:当做空白

  • 相关阅读:
    设备树(Device Tree)
    深度Linux Deepin系统安装教程使用体验
    Qt Creator的安装与Qt交叉编译的配置
    移植tslib和Qt5.6到三星s5pv210开发板
    Linux下读取RFID卡号(C串口编程)
    如何移植openwrt系统
    如何在Qt Creator中添加库文件和头文件目录
    Qt Creator中如何选择某个子项目为启动项目
    QT中子目录调用另一个子目录
    在Qt项目中如何添加一个已有的项目作为子项目
  • 原文地址:https://www.cnblogs.com/zeedmood/p/2376145.html
Copyright © 2011-2022 走看看