Shell 基础

shell程序:解释执行,过程式编程

计算机:二进制指令执行

#!/bin/bash

#!/usr/bin/env python

运程脚本:

chmod +x exp.sh   ./exp.sh

bash exp.sh

&&      a && b 只有第一个正确,第二个才会执行。 第一个失败,第二个也不会执行

||   a|| b  第个正确。第二个不会执行。第一个失败了才会执行第二个

grep:

grep  文本过滤egrep , fgreg

sed   文本编辑器

awk    文本报告生成器

grep -E 等于egrep

--color=auton

-v: 显示不能被匹配到行

-i:忽略大小写

-o:仅显示匹配到的字符串

-q: 静默模式,不输出任何信息

-A # :after ,后#行

-B # : before 前#行

-C # :前后各 # 行

基本正则表达式:

字符匹配

.:任意单个字符

[]:指定范围内的任意单个字符

[^]:指定范围外的任意单个字符

[:digit:]    [:lower:]   [:alpha:] [:alnum:] [:punct:] [:space:]

匹配次数:(默认工作在贪婪模式)

用在要指定次数的字符后面。用于指定前面的字符出现的次数

*:重复任意次

\?:匹配前面的字符0次或1次

\+:匹配前面的字符至少1

.*:任意长度,任意次数

\{n,m\}: 匹配到至少n次,至多m次

位置锚定:

^:行首锚定

$:行尾锚定

^PATTERN$: 用于模式匹配整行:

^$:匹配空行

\< 或 \b:词首锚定。用于单词模式的左侧

\> 或 \b:词尾锚定。用于单词模式的右侧

分组:

\( \): 将一个或多个捆绑在一起当作一个整体进行处理

Note:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中, \1,\2,\3......

\(ab\+\(xy\)*\)

\1:ab\+\(xy\)*

\2:xy

后向引用 :引用前面的分组括号中的模式所匹配字符

扩展的正则表达式

egrep:

a|b :a或者b 例如:babd

(a|b): ab

bash 基础特性

变量类型:

bash变量:

本地变量:生效范围当前shell进行

环境变量:当前shel及其子shell :declare -x name=cbw

局部变量:当前shell进程中某代码片断(通常指函数)

位置变量:  $1, $2,  输入参数的

特殊变量:$?, $0, [email protected], $#

本地变量:

变量赋值:name="value"

变量引用 :直接使用 name =‘usrername‘  变量引用  name=$username  命令引用 :name=‘command‘或者name = $(command)

变量引用 :${name} , $name

"":弱引用  变量名会替换为变量值

‘‘ :强引用   变量名不会替换为变量值

set :显示所有环境变量

销毁变量 unset name

环境变量:

export name =VALUE

declare -x name=VALUE

显示所有环境变量

env, printenv, export

销毁变量unset name

bash有许多内建的环境变量:

PATH: SHELL , UID。 HISTSIZE PWD OLD HISTFILE PS1

declare -r name :readonly ,常量了

位置变量

$1,$2

$0:命令本身。

$*:传递给脚本的所有参数

[email protected]:传递给脚本的所有参数

$#:传入参数的个数

shift #: 换

bash配置文件

全局配置:

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

个人配置:

~/.bash_profile

~/.bashrc

profile类:交互式登录shell的配置(1.输入账号和密码登录2. 使用su  - username)

bashrc类:非交互式登录shell的配置(1.su username  2.图形界面下打开的终端,执行脚本)

bash算术

let n=1+3 输出4

echo $[$n+$m]  n=1,m=2 echo 3

echo $(($n+$m))  n=1,m=2 echo 3

expr $n + $m

$RANDOM 生成随机数 echo $[$RANDOM%60+1]

let c+=1    等于 let c++
        条件测试:

判断某些场景是否满足。

test 表达式

test [表达式]

test [[ 关键字 ]]

数值测试:-gt -ge -lt -le -eq -ne

字符串测试: ==   >   <  != ~=(左侧的字符串是否可以被右边的模式匹配。匹配则为真)        -z "string " 测试字符串是否为真,空则为真

时间: 2024-10-18 10:39:41

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和>