1 shell 基础

一、shell:命令解释器

shell编程可以不考虑效率,只要简单可以实现功能就可以,这也是与其他编程语言最大区别之一

查看Linux支持的shell cat /etc/shell
可以切换到其他支持的shell exit退出

二、shell脚本

1、echo命令

  -e支持反斜线控制的字符转换
  \a 输出警告音 在/etc/inputrc中可以取消系统警告音
  \t 输出制表符tab
  \n 换行符
  \r 回车
  -n取消输出后的换行符
  echo支持输出颜色 echo -e ‘\e[1;31m abc \e[0m‘

2、执行脚本:

  1)可以赋予执行权限,通过绝对路径的方式执行
  2)通过 bash命令执行,可以不赋予执行权限

  *bash -x 可以查看脚本执行过程可以用来排错

三、bash的基本功能

1、历史命令history

  history -w 把缓存中的历史命令写入历史命令保存文件家目录下.bash_history中
  历史命令条数在/etc/profile中 HISTSIZE=1000
  !$上一条命令的参数

2、补全 tab
3、别名 alias 家目录下的.bashrc中 . .bashrc
4、快捷键
5、输入输出重定向

  键盘     /dev/stdin     0   标准输入
  显示器      /dev/stdout   1   标准输出
  显示器     /dev/stderr     2   标准错误
  输出重定向
    >   >>   &>    命令 >> ok 2>>erro #把正确输出和错误输出分别保存在两个文件中
  输入重定向
    <   << EOF(可以用来输出多行)

6、多命令顺序执行

  命令1;命令2         命令之间没有任何联系,前一条命令报错后面也会执行
  命令1&&命令2        命令1执行成功才会执行命令2(用$?判断)
  命令1||命令2           命令1错误才会执行命令2
  命令1&&命令2||命令3       命令1成功执行命令2,命令1错误执行命令3

7、管道符

  grep 参数
    -A数字 列出符合条件的行并列出后续的n行
    -B数字 列出符合条件的行并列出前面的n行
    -c统计次数
    -i忽略大小写
    -n输出行号
    -v反向查找

   |
   -regex

8、通配符

  用来匹配文件名,完全匹配

9、bash中其他的特殊符号

  ‘ ‘ 单引号在单引号中所有的特殊符号都没有特殊含义
  " " 双引号在特殊符号都没有特殊含义 除了$ ` \
  ` ` $( ) 把命令的值赋给变量
  () 在()中执行的命令需要打开一个子shell执行
  { } 在当前shell执行 #左括号必须要有空格 最后加;
  [] 变量测试
  $ 调用变量

四、bash的变量和运算符

1、什么是变量

  在bash中,变量的默认类型都是字符串类型,如果要进行数值运算,则必须指定变量类型为字符型
  变量用=赋值,且两边不能有空格
  变量可以叠加   a=123 a="$a"abc echo $a 123abc
  环境变量建议大写

2、变量的分类

  用户自定义变量        名称:自定义 作用:自定义 内容:自定义
  环境变量
    用户自定义变量     名称:自定义 作用:自定义 内容:自定义
    系统自带环境变量       名称:确定 作用:确定 内容:自定义
  位置参数变量
    名称:确定 作用:确定 内容:自定义
  预定义变量
    名称:确定 作用:确定 内容:自定义

3、用户自定义变量

  增
  删 unset 变量名
  改
  查
    set 查询环境变量
    -u 如果设定此选项,调用未声明的变量时会报错(默认无任何提示)

4、环境变量

  1)用户自定义环境变量   可以在子shell中调用,用户自定义变量不可以
    设置自定义环境变量 export A=10
    删除 unset A
  2)系统自带环境变量
  1、PATH   系统查找命令的路径 用:分隔
    把/root/sh添加到PATH变量中: PATH="$PATH":/root/sh (变量叠加)
  2、ps1变量   命令提示符
    写在环境变量配置文件/etc/bashrc中

  3、LANG语系变量
    Linux中文支持的条件
      1)安装了中文字体和编码
      2)操作终端必须支持中文编码
    查询Linux支持的语系 locale -a
    默认语系配置文件/etc/sysconfig/i18n

5、位置参数变量

  $n $0命令本身 $1-$9代表第1到第9个参数10以上要用大括号${10}
  $* 保留传入的所有参数(整体) 字符串
  [email protected] 保留传入的所有参数(个体) 列表
  $# 传入参数的个数

6、预定义变量

  $$ 当前进程pid号
  $? 保存上一条命令执行状态
  $! 后台运行的最后一个进程的进程号

7、接受键盘输入read

  -p 指定提示
  -t 超时时间
  -s 隐藏输入的字符
  -n 指定输入的字符数
  例:read -t 30 -p "please input a number:" number

8、shell的运算符

  使用declare声明变量类型
    -: 给变量设定类型属性
    +: 取消变量的类型属性
    -a: 将变量声明为数组型 数组 a[0]=1 调用 echo ${a[*]}
    -i: 将变量声明为整数型(integer)
    -r: 讲变量声明为只读变量。注意,一旦设置为只读变量,既不能修改变量的值,
    也不能删除变量,甚至不能通过+r 取消只读属性
    -x: 将变量声明为环境变量
    -p: 显示指定变量的被声明的类型

  使用expr和let数组运算工具
    c=$(expr $a + $b) +前后必须有空格
    let c=$a+$b
    c=(($a+$b))

9、变量的测试与内容置换

  常用测试一个变量y有没有被赋值(通过x的值判断y是否存在)
           变量 y 没有设置        变量 y 为空值            变量 y 设置值
  x=${y-新值}     x=新值             x为空             x=$y #新值可为任意
  x=${y:?新值}   新值输出到标准错误输出     新值输出到标准错误输出    x=$y

五、环境变量配置文件

1、加载配置文件的命令
  source bash 绝对路径
2、环境变量配置文件
  /etc/profile
  /etc/profile.d/*.sh
  ~/.bash_profile
  ~/.bashrc

用户登录调用环境变量配置文件过程

  注销时生效的环境变量配置文件 ~/.bash_logout

  ~/bash_history 历史命令保存文件

3、shell登录信息

  /etc/issue
    登录tty1-tty6时的终端生效,欢迎信息 (远程登录无法看到)
  /etc/issue.net
    在远处登录时要看到/etc/issue.net的欢迎信息,要修改ssh的配置文件/etc/ssh/sshd_config中加入 Banner /etc/issue.net
  /etc/motd 在用户输入用户名和密码正确登录后显示的欢迎信息

4、快捷键定义

  查询所有快捷键 stty -a
  定义快捷键
    stty 关键字 快捷键

原文地址:https://www.cnblogs.com/baci/p/11410412.html

时间: 2024-08-04 10:04:50

1 shell 基础的相关文章

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

Linux之shell基础

Shell基础 一.shell概述 1) shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序. 我们输入的abc...24个字符是通过shell对照ASCII码翻译成二进制来让计算机识别的.我们从操作界面上输入命令,这个命令回车之后把此命令对照ASCII码翻译成指定的二进制,通过shell翻译成计算机内核能识别的二进制,然后内核调用硬件来处理,处理完之后再通过shell反馈给用户. 2)

【Linux系列】【基础版】第三章 Shell基础知识

3. Shell基础知识     3.1 Shell的由来         3.1.1 Bourne Agin Shell         3.1.2 其他的shell, 有 zsh, ksh等     3.2 查看有没有shell         3.2.1 yum list | grep zsh         3.2.2 ls /root/.bash_history         3.2.3 echo $HISTSIZE -> vi /etc/profile 修改HISTSIZE的值 -

Linux网络配置及SSH和Shell基础

Linux网络配置及SSH和Shell基础 一.Linux网络配置     ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了. 二.hosts文件的作用及修改主机名      Hosts : The static table lookup for host name(主机名查询静态表)       Linux 的/etc/hosts是

shell基础(上)

Shell基础(上) 1.1什么是shell Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的 输入解释给操作系统.井处理各种各样的操作系统的输出结果,输出屏幕返回给用户 这种对话方式可以是 交互的方式:从键盘输入命令,通过/bin/bash的解折,可以立即得到shell的回应 非交互的方式:脚本 Shell执行命令分为两种方式 内置命令:如讲过的cd ,pwd, exit和echo等命令.当用户登录系统后,shell以及内置命令就被系统载入到内存,并且一直运行 一

Shell基础学习小结

0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本身的限制和效率问题,以下情况一般不推荐Shell: 资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等). 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理). 有跨平台(操作系统)移植需求(一般使用C 或Java)

Linux学习 -- Shell基础 -- 概述

Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 -- 支持转义字符串 \e[1;31m xxx  开启颜色 \e[0m    关闭颜色 首行:#!/bin/bash #写好注释 执行方式: 方式1 sh xxx.sh 方式2 chmod 755 xxx.sh  ./xxx.sh 或 绝对路径 Linux学习 -- Shell基础 -- 概述

linux常用命令整理(五):shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

linux常用命令整理(四):软件包管理和shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

Linux学习 -- Shell基础 -- Bash基本功能

历史命令 history -c   clear -w   写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 alias 别名='原命令' 命令执行顺序: 绝对路径或相对路径 > 别名 > Bash的内部命令 > $PATH环境变量中找到的第一个命令(外部命令) 配置文件:/root/.bashrc 删除:unalias 别名 常用快捷键 输入输出重定向 标准输入输出 输出重定向 注意:2和>