Shell简介

什么是Shell

  • shell是核心程序kernel之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言。
  • shell是命令解析器,用户输入命令,它去解析,然后交给内核执行命令,内核便可以操作硬件。
  • shell类型 ash、bash、ksh、csh、tcsh
    cat /etc/shells 看系统下的shell
    echo $SHELL 看当前用户运行的shell
  • shell中可以运行子shell或者说叫做切换shell
    • /bin/csh –进入子shell
    • 退出子shell–exit
  • linux下默认的shell是bash
    bash特点,快速(上下键);tab键盘自动补齐;自动帮助功能help

文件的默认权限

  • umask命令,用来指定,用户创建文件、目录,默认的权限位

  • 实验:当umask为022,创建文件,权限位默认是:644
    当umask为022,创建目录,权限位默认是755

  • 文件权限位=7-umask-1 目录权限位=7-umask

  • umask的配置/etc/profile($HOME/.profile $HONME/.bash_profile)

shell脚本

  • 使用shell脚本的原因

    • 功能强大
    • 节约时间
  • 基本格式

#!/bin/bash

#shell脚本
mytext="hello world"
echo $mytext;
  • 注意初学者易犯错误:
    1) 第一行#不是注释 其他#都是注释;
    2) echo $mytextA;写错现象–在变量两边加上括号;
    3) 写错现象#!bin/bash–缺少绝对路径
    4) 脚本如果没有执行权限 chmod a+x 01hello.sh

shell特性

  • 别名

    • alias 查看本用户下的alias配置
    • 自定义别名: alias ll = ‘ls -alh’
    • alias ll = ‘ls –I –color=tty’
    • cat $HOME/.bashrc 在这个用户下配置着alias命名的配置
  • 命令替换

    • ls cat myfile –alh 通过单反引号,把’cat myfile’的内容输出 传给ls命名
    • 注意反单引号,在键盘的~符号的下方。也就是在键盘左上角 ESC键的下边
  • 后台处理
    • nohup commond &–有的Linux发行版也可不用nohup
    • 一个终端可以同时运行多个程序
    • nohup tar –cvf 111.tar.gz & 可以同时运行多个大文件压缩
    • jobs –l 可以查看后台正在运行的命令
  • 管道
    • 把一个命令的输出作为另外一个命令的输入
    • ls -l| sort; ls | sort
  • 重定向 < 输入 >输出
    • 与管道相关,可以改变程序运行的输入来源和输出地点
    • sort< myfile.txt
    • sort<myfile.txt >myfile+sort.txt
  • 模式匹配
    • 显示以txt为扩展的文件或者显示以a开头的文件,这种能力叫做模式匹配
    • 正则表达式
  • 特殊字符
    • 双引号(“”):用来使shell无法认出空格、制表符和其他大多数特殊字符,比如:建立一个带空格的文件touch “wang bao ming”。
    • 单引号(‘):用来使shell无法认出所有特殊字符。
    • 反引号(`):用来替换命令
    • 反斜杠():用来使shell无法认出的特殊字符,使其后的字符失去了特殊的含义,转义字符。eg:创建带空格文件名 touch my\ file
    • 分号(;):允许在一行上放多个命令。mv 1.txt 2.txt; mv 2.txt 3.txt;
    • &:命令后台执行
    • 括号():创建成组的命令
    • 大括号{}:创建命令块。
    • 竖杠(|):管道标示符
    • < > &:重定向表示符
    • ?/*/ [ ]/ !:表示模式匹配
    • $:变量名的开头–引用变量
    • #:表示注释(第一行除外)
    • 空格、制表符、换行符:当做空白
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值