shell编程基础之认识与学习BASH_linux shell

1、认识Bash

通过Shell将输入的指令与Kernel沟通,让Kernel控制硬件工作
查看Shell:cat /etc/shell
登录后预设的shell类型记录在/etc/passwd中,与账户相关
命令别名:alias lm='ls -al' #注意有无空格
帮助:man bash
命令类型:type

复制代码 代码如下:

type ls # ls is aliased to `ls –color=auto'
type cat # cat is hashed (/bin/cat)
type cd # cd is a shell builtin

命令执行:

\[Enter]:将[Enter]转义,按下后不执行,而是另起一行

2、Shell的变量功能

概念:同一变量,不同用户可以有不同值,所以可以用变量来代表此值,而不用将具体的值 写入程序,如$PATH

复制代码 代码如下:

显示变量:echo $PATH
设定变量:PATH=xxx #注意空格有无
扩充变量:PATH=$PATH:xxx
取消变量:unset MAIL
查看环境变量:env
查看环境变量及自定义变量:set

PS1:提示字符设定
自定义变量转环境变量:export
为什么要转成环境变量:因为子程序会继承父程序的环境变量
语系支持
查看系统支持的语系:locale -a
查看与语系有关的变量:locale
键盘读取用户输入read: read atest #将用户输入读入atest变量
声明变量类型 declare: declare -i sum=100+50

3、命令别名与历史命令

别名

复制代码 代码如下:

alias lm='ls -al | more'
unalias lm

历史命令

复制代码 代码如下:

history

4、Bash shell的操作环境

指令执行时查找顺序
相对/绝对路径 -> alias -> bash内建 -> $PATH
bash配置文件

复制代码 代码如下:

login shell/non-login shell
login shell: 进入shell时需要输入账号密码
non-login shell: 通过图形界面登录,再启动shell时无需输入账号密码

配置文件

复制代码 代码如下:

login shell:
/etc/profile :系统整体设定
以下三个文件按顺序,如果存在,就读取,后面的就不再读取
~/.bash_profile
~/.bash_login
~/.profile

通配符

复制代码 代码如下:

* : 0到无穷个字符
? : 一个字符
[]: [abc] # a or b or c
[-]: [0-9] # 0 到 9
[^]: [^abc] # 不是a,b,c的一个字符

5、数据流重导向

复制代码 代码如下:

> :覆盖
>>:累加
/dev/null:接收信息但不显示
依次执行:cmd1,cmd2,cmd3
根据上一条执行结果确定下一条
cmd1 && cmd2
cmd1 || cmd2

6、管线命令

复制代码 代码如下:

ls | less
cut:同一行数据分割
echo $PATH | cut -d ':' -f 5 #以':'分割,第5个数据
grep:如果一行里有需要的信息,就返回这一行
sort:排序
uniq:重复内容只显示一次
wc:统计单词数
tee:双向重定向
tr:删除或替换数据
col:转化为纯文本
join:将两个文件中相关信息放在一起
paste:将两行并在一起,中间用[Tab]分开
expand:将[Tab]转为空格
split:将大文件传为小文件

时间: 2024-09-18 08:55:38

shell编程基础之认识与学习BASH_linux shell的相关文章

【SHELL 编程基础第一部分】第一个SHELL脚本HELLOSHELL及一些简单的SHELL基础书写与概念;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/759.html 本章节分享Shell 学习篇,那么对于Shell 简单介绍下,对于Shell来说,大家可以理解Shell 是一个命令解释器,类似于DOS下的command.com.它接收用户命令(如ls等),然后调用相应的应用程序.另外一点它可以使用用户的缺省凭证和环境执行 shell.传统意义上的shell指的是命令行式的sh

【SHELL 编程基础第二部分】SHELL里的流程控制、SHELL里的函数及脚本调试方法!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/764.html 对于Shell书写和概念上一篇已经有所介绍,那么本篇继续学习Shell编程一些语法知识: 首先介绍Shell中的流程控制,例如判断语句等等- if语句: 首先了解几个知识: [ -f "somefile" ] :判断是否是一个文件 [ -x "/bin/ls" ] :判断/bin/l

SHELL编程基础之BASH入门

1.了解SHELL 只要能够操作应用程序的接口都能够称shell.shell也是一个应用程序,工作在用户模式,运行为进程.shell进程主要用于提供命令行界面,提供一系列的工作特性,有些特性可以自行的设定.当用户通过多种方式登录到Linux操作系统时,我们就可以认为该用户打开了一个SHELL,从而和系统进行交互. shell在linux系统下的角色如下: 2.为什么要学习shell 命令行界面的shell是很不好的,但是学完之后好处却很多.例如图形化界面像windows xp.win 7每个版本

Linux shell编程基础 三、shell的基本结构

shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本的解释器 #定义一个函数 function my_fun () { echo "Hello, $1,today is $2" } #定义连个变量 name=$1 today=`date` #函数调用 my_fun "$name" "$today" 上面的这个脚本要想运行还需要做一

Linux集群和自动化维2.2 Shell编程基础

2.2 Shell编程基础 Shell是核心程序Kernel之外的命令解析器,是一个程序,同时也是一种命令语言和程序设计语言. 作为一种命令语言Shell可以交互式地解析用户输入的命令. 作为一种程序设计语言Shell定义了各种参数,并且提供了高级语言才有的程序控制结构,虽然它不是Linux核心系统的一部分,但是它调用了Linux核心的大部分功能来执行程序,建立文件并以并行的方式来协调程序的运行. 比如,输入命令ls后,Shell就会解析ls这个命令并且向内核发出请求,内核执行这个命令之后,把结

shell编程基础知识小结_linux shell

1.文件类型介绍linux系统中主要包括以下七种文件类型: d 目录 - 普通文件 l 符号链接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 2.正则表达式正则表达式在shell编程中非常重要. 从一个文件或命令输出中抽取或过滤文本时.可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合. 基本的元字符集:^ 只匹配行首.$ 只匹配行尾.* 一个单字符后紧跟*,匹配0个或多个此单字符.[] 匹配[]内字符,可以是一个单字符,也可以是字符序列.可以使用

Shell编程基础篇-上

1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.1.2 什么是shell

Shell编程基础

本文作者:Leal 授权许可: 创作共享协议 GNU自由文档许可证 编辑人员:FireHare, Dbzhang800 我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用"!/bin/bash"而不是"!/bin/sh",如果使用tc shell改为tcsh,其他类似. 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh

shell编程基础 单引号和双引号的区别_unix linux

下面用一个简单的shell程序要说明一下. debian:~/learn/shell# cat phonebook Alice Chebba 973-555-2015 Barbara Swingle 201-555-9257 Liz Stachiw 212-555-2298 Susan Goldberg 201-555-7776 Susan Topple 212-555-4932 Tony Iannino 973-555-1295 Stromboli Pizza 973-555-9478 deb