认识和学习shell

认识和学习shell

Linux使用的shell版本名为“Bourne Again SHell(简称bash)”,这个shell是Bourne SHell的增强版本,也是基于GNU的架构发展来的

bash shell的功能

1.命令记忆功能:他能够记忆使用过的命令,命令记录在主文件夹内的.bash_history中。注意:~/.bash_history记录的是前一次登陆以前所执行的命令,而这一次登陆所执行的命令则暂存在临时内存中。当注销系统后,这些命令才回被记录到.bash_history中。

2.命令与文件补全功能([Tab]键的好处)

3.命令别名设置功能(alias)

设置: alias lm=’ls -al’

4.作业控制,前台,后台控制

5.脚本程序

6.通配符:*

bash shell 的内置命令:type

在我们的bash中已经有许多内置的命令的。例如 cd ,umask等等

那么,我们如何知道这个命令是来自于外部命令还是内部命令呢?这时,我们可以通过type这个命令来查看即可。

type也可以用来作为类似which命令的用途(which:寻找可执行文件)

shell的变量功能

变量的显示与设置:echo,unset

变量的显示:echo eg:echo $variable

echo $PATH

变量的设置:只要用“=”将变量和其内容连接就好了

eg: myname=Droidxin

对于变量的设置,我们必须掌握一些变量的设置规则。

单引号和双引号的区别:双引号仍然可以保有变量的内容,特殊字符 仍保持原本的特性,但单引号仅能是一般符号,而不会有特殊字符。也就是说,使用了单引号,不在是变量的内容,而仅仅是普通字符了。

反单引号的作用:在一串命令中,反单引号内的命令将会先被执行,而其执行出来的结果将作为外部的输入信息

eg:  ls -l `locate wode`

环境变量的功能

首先,我们得知道有多少默认的环境变量?可以通过 env和export两个命令来查阅。

接下来我们看一下一些常见的环境变量

PS1,命令提示符,一个挺有趣的变量

$(关于本shell的PID),这个代表目前这个shell的线程代号,即所谓的PID(Process ID)

?(关于上个执行命令的回传码)一般来说,如果命令执行成功,则会回传一个0值。

变量的操作命令

变量键盘读取,数组与声明:read,array,declare

read:读取来自键盘输入的变量

declare/typeset:声明变量的类型,变量的声明是非常有用的,变量的默认设置为字符串类型。有时候你需要将变量进行运算的话,那么需要将变量的类型设置为整型。

数组变量类型。

ulimit:与文件系统及程序的限制关系,可以限制用户的资源,包括打开的文件数量,可以使用的CPU的时间,使用的内存总量等。

变量内容的删除,替代和替换,详情可参考书本P313

命令别名与历史记录:alias,unalias,history

Bash Shell的操作环境

1.现在我们知道系统里面其实有不少的ls命令,或者是包括内置的echo命令,那么想一想,如果一个命令被执行,到底是哪一个ls被拿来执行呢?基本上,命令运行的顺序是这样 的:

2.bash的登陆与欢迎信息:/etc/issue,/etc/motd

可以自定义一些用户登陆显示信息,例如可以显示一些提示话语之类的信息,对于多用户管理十分的有用。

3.bash的环境配置文件

bash在启动的时候回直接读取bash的环境配置文件,已规划好bash的操作环境。要注意,我们设置的命令别名,自定义的变量在你注销bash后会失效,所以,如果你想要保存你的设置,那么,就需要把这些设置写入配置文件才行。

讲一下login shell 和non-login shell

login shell:取得bash时需要完整的登陆流程。

non-login shell:取得bash接口不需要重复登陆的举动,例如 ,从X的图形界面启动终端机,不需要再次登陆。

login shell 只会读取/etc/profile和~/.bash_profile 或~/.bash_login或~/.profile

/etc/profile:系统整体的设置,最好不要改

~/.bash_profile 或~/.bash_login或~/.profile:用户个人设置,我们需要修改的数据,就是这里

此外,关于bash环境配置文件和如何配置不在多提了

通配符和特殊符号

通配符,让我们利用bash操作更加的简便快捷

bash环境中的特殊符号

数据流重定向

什么是数据流重定向呢?一般来说,如果你要执行一个命令,通常需要这样的过程

在执行完一条命令之后,都会有回传的信息,如果正确执行了命令,那么就会standard output标准输出,输出命令正确执行的信息,否则就会standard error output标准错误输出,输出命令错误执行的信息

而数据流重定向,就是将这些信息分别传送到其他的文件或设备中去。

数据流重定向十分的重要,同时命令操作也多样化,那么可以参考书本的P329

何时使用数据流重定向

既然我们知道了数据流的重定向,那么什么时候要使用数据流重定向呢?数据流重定向一般应用于:

1、屏幕输出的信息很重要,而且我们需要将它保存下来;

2、后台执行中的程序,不希望它干扰屏幕正常的输出结果;

3、一些系统的例行命令的执行结果,希望它能够保存下来;

4、一些执行命令的可能已知出错信息时,想以“2>/dev/null”将它屏蔽掉;

5、错误信息和正确信息需要分别输出;

命令执行的判断依据

判断依据: ;   &&   ||

;  不考虑命令相关性的连续命令执行

管道命令

管道命令“|”仅能够处理经由前面一个命令传来的正确信息,也就是standard output 的信息,对于standard error 并没有直接处理能力

选取命令:cut,grep

cut:切去信息的一部分

grep:分析一行信息,若有需要,则拿出来

排序命令:sort,wc,uniq

tee:双向重定向

字符转换命令:tr,col,join,paste,expand

split:切割命令,可以将大文件切割

xargs:参数代换

重点回顾

认识和学习shell

时间: 2024-08-01 19:17:09

认识和学习shell的相关文章

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基础 -- 概述

第十三章、学习 Shell Scripts

1. 什么是 Shell Script 1.1 干嘛学习 shell scripts 1.2 第一支 script 的撰写与运行 1.3 撰写 shell script 的良好习惯创建 2. 简单的 shell script 练习 2.1 简单范例: 对谈式脚本, 随日期变化, 数值运算 2.2 script 的运行方式差异 (source, sh script, ./script) 3. 善用判断式 3.1 利用 test 命令的测试功能 3.2 利用判断符号 [ ] 3.3 Shell sc

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

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

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

学习shell脚本之前要掌握的知识

学习SHELL脚本之前的知识 1)记录命令历史 我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令.这些命令保存在用户的家目录中的.bash_history文件中.有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中. 与命令历史有关的有一个有意思的字符那就是"!"了.常用的有这么几个应用:(1)!! (连续两个"!"),表示执行上一条指令:(2)!n(这里的n是数字),

学习shell脚本笔记

1.if 是单分支语句,使用格式如下: if condition ; then statement -.. fi 2.if - else 是双分支语句,使用格式如下: if condition ; then statement -. else statement -. fi 3.if -elif-elif-else 是多分支语句,使用格式如下: if condition ; then statement -. elif condition ; then statement -.. elif co

鸟哥的Linux私房菜——第十六章:学习Shell Scripts

视频链接: 1. 什么是 Shell Script       (shell写的脚本)1.1 干嘛学习 shell scripts? ()1.2 第一支 script 的撰写与执行1.3 撰写 shell script 的良好习惯建立 2. 简单的 shell script 练习: (read -p  date)3. 善用判断式:3.1 利用 test 指令的测试功能3.2 利用判断符号 [ ] 3.3 Shell script 的预设变数($0, $1...)4. 条件判断式:4.1 利用 i

精讲shell基础以及如何高效的学习shell编程

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

linux运维学习shell脚本监控nginx服务

菜鸟学习shell脚本后,动手练手简单小实验,使用shell脚本判断nginx是否正常运行,如果没有运行将nginx服务启动起来. 一.基于进程判断 1.获取nginx进程来判断该服务是否正常启动. ps -ef | grep nginx | grep -v grep | wc -l    输出进程行数 然后判断是否为2 如果不是说明该服务没有启动. grep -v grep  用来排除掉您所使用grep产生的进程. 2.shell 脚本编写 先定义一个变量Web #!/bin/bash Web

学习Shell脚本编程(第4期)_在Shell程序中的使用变量

变量的赋值 变量的访问 变量的输入 4.1 变量的赋值     在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下: 变量名=值  注意: 等号(=)前后没有空格 例如: x=6 a="How are you " 表示把6赋值给变量x,字符串"How are you "赋值给变量a. 4.2 访问变量值 如果要访问变量值,可以在变量前面加一个美元符号"$",例如: [[email protect