shell与变量的声明的操作
1、给命令起别名:alias
执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息:

还可以用一个别名表示几个命令 的结合:

2、ps:显示当前登录会话的所有活动进程:

3、更改默认shell:chsh
chsh命令没有预安装,执行时,需要先联网安装。
执行chsh命令,过一会儿就会提示该命令找不到,是否要进行安装,输入y,即可下载包进行安装:

命令安装完了之后,再次执行chsh命令,即可为当前用户更改shell,输入新的shell即可实现更改。
查看环境变量SHELL或者查看/ect/passwd文件,即可发现当前用户使用的shell类型已更改:

4、echo命令
echo命令用于在屏幕上显示消息:

Echo命令显示文本,会在文本末尾放置一个新行字符,新行字符会在显示文本后将光标移动到下一行。
使用选项-n可以将光标保持在同一行:

5、创建shell脚本
Shell脚本文件是一个文件,所以可以使用文本编辑器进行操作。
下面我们创建一个shell脚本文件,文件名为hello.sh。在Linux中,文件类型不重要,或者可以说没有文件类型的概念。想要该文件是shell脚本文件,我们只要在文件里书写的是shell命令就可以了。
在命令提示符时候,执行vi hello.sh

打开文件编辑后,编写shell命令:

#! 字符必须是shell脚本的前两个字符,用来告诉系统它后面的参数是用来执行该文件程序。
在shell脚本里,#是注释符号。我们要养成良好的写注释的习惯。
Shell脚本执行有三种方式:
A、sh/bash shell脚本文件名
将文件名作为shell命令sh/bash的参数执行。要执行任何shell脚本,必须对脚本有读的权限。

B、提示符之后直接执行shell脚本,需要先对脚本文件拥有执行权限
默认,创建文件后,文件所有者对文件没有执行权限,所以想要在提示符之后,通过脚本文件的绝对路径名,需要先使用chmod命令先给文件添加执行权限:

因为使用上述方式执行脚本文件时,会在当前shell创建一个新的子shell并在新创建的shell中执行脚本。
C、使用点(.)在当前shell中执行脚本

5、创建变量,引用变量:$
在Bash Shell 中,不必显式声明变量。可以在任何时间通过简单赋值来创建它们。创建变量语法:
<variable_name>=<value>
可以通过赋值运算符右边留空来创建没有值的变量。
声明变量时,赋值运算符(=)的两边都不能有空格。

$符号用来引用变量,$符号引用变量时,一般情况加变量名字可以不用加双引号:

Shell创建的变量一般被视为字符串。

注意上面变量var不是数字变量,而是字符串变量,var包含的是字符1和字符5组成的字符串,而不是数字15.
$变量名来引用变量的值,可以用大括号在界定变量名称,一般情况下{}可以省略。但是当涉及到连接操作时,{}不可以省略:

上面命令中,day变量值为20,如果变量x想要包含day变量值,并在值之后连接字符串th,则day变量在引用时,必须加{},否则就会把day当做普通字符串处理,不会认为是变量名。
6、将值读取到变量:read
read命令允许用户在执行shell脚本期间从键盘将值输入到变量。read命令可以用在shell提示符之后,但通常用在shell脚本中。
需要注意的是,执行read命令后,不会提示用户输入数据,只是进行光标闪烁。

如果要提示用户进行输入,我们必须自己使用echo命令。

上面脚本文件执行后效果:

7、本地和全局shell变量
在shell中创建的变量对于创建它的shell是本地变量,在shell中创建一个新shell。新shell不知道父shell的变量,新shell可以对父shell同名的变量赋新值,而父shell不会知道这一情况。bash命令可以创建新shell,从新shell退回,返回父shell使用exit命令。

有时候可能需要所有的子Shell了解父Shell的变量,所以需要把本地变量导出为全局变量。实现这一操作,可以使用export命令:

使用export命令导出变量后,子shell可以知晓父shell的变量,可以引用该变量,也可以给该变量赋新值。但是退出子shell,返回父shell显示后,父shell的该全局变量的值没有发生改变。也就是子shell修改父shell中创建的变量值,该修改只在子shell生效。
8、环境变量
导出的所有变量都是环境变量。
A、HOME变量
环境变量HOME用于存储用的主目录的位置:

B、PATH变量
PATH变量包含以冒号分隔的目录列表,Shell会通过它定位用户调用的命令。
设置路径时,用户不必转到可执行程序文件所在的目录,不管当前目录是什么,用户都可以执行程序。

不像MS-DOS,在Linux中不会自动搜索当前目录。只会搜索PATH中指定的目录。所以如果要搜索当前目录,必须在PATH中执行。可以通过在PATH中加入一点.(.表示当前目录)或提供一个空路径来指定当前目录:
a. PATH=/bin:/usr/bin: [以下列顺序搜索:/bin、/usr/bin、当前目录]
b. PATH=:/bin:/usr/bin [以下列顺序搜索:当前目录、/bin、/usr/bin]
c. PATH=/bin: :/usr/bin [以下列顺序搜索:/bin、当前目录、/usr/bin]
C、PS1变量
PS1(提示符变量)变量包含Shell提示符:默认为$符号。(Root用户的提示符为#,其他用户提示符为$)。我们可以通过该环境变量修改提示符:

PS1变量中还可以包含特定的预定义提示符字符串。例如:\w提示符字符串用于显示用户的当前工作目录;\u表示当前用户;\h表示主机名。

如果想要重新设置成默认提示符,root用户可以使用:PS1="[\u@\h \W]# ",非root用户可以使用:PS1="[\u@\h \W]# "

D、PS2变量
PS2变量用于设置次提示符的值的环境变量,默认情况为>。当在命令行提供了不完整的目命令时,会显示次提示符。

退出次提示符可以使用ctrl+c或Ctrl+d:

ctrl+c,会显示^C,然后退出;Ctrl+d会显示原因,然后退出
E、LOGNAME变量
LOGNAME变量包含用户的登录名:

F、SHLVL变量
SHLVL变量包含当前工作的Shell层

登录Shell,该变量值被赋为1.无论何时创建一个新的Shell,该变量的值都会加1.
G、SHELL变量
SHELL变量存储用户的默认Shell

9、env命令
env命令可以查看所有导出的环境变量及其各自值的列表:

10、补充:创建空文件,且不进入编辑状态:touch
使用touch命令可以创建空文件,并且不进入文件的编辑状态。也可以根据命令后给出的文件名列表同时创建多个空文件

shell与变量的声明的操作的更多相关文章
- shell编程——变量子串的常用操作
${#字符串} 返回字符串的长度 [root@localhost ~]# a=length [root@localhost ~]# echo ${#a} 6 ${字符串:位置x} 从位置x开始往后截取 ...
- shell 编程 变量
转自:http://blog.csdn.net/qq504196282/article/details/52994249 shell之变量和引用 分类:SHELL编程基础 (470) (0) 举报 ...
- Linux_10------Linux之shell编程------变量
.-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./ ...
- Shell脚本中执行sql语句操作mysql
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- shell之变量与read
环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...
- (转载)shell变量基础—shell自定义变量
(转载)http://see.xidian.edu.cn/cpp/html/1494.html 一.Shell定义变量需要遵循的规则 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下 ...
- Shell中变量的使用
1.变量的声明 name="blacksonny" 注意://变量定义时不加$,变量与等号之间不能有空格 变量命名规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可 ...
- shell基础——变量定义
快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...
- javascript 变量的引入、变量的声明、变量的初始化
变量的引入及声明和初始化: 变量: 操作的数据都是在内存中操作 Js中存储数据使用变量的方式(名称,值--->数据) Js中声明变量都用var--->存储数据,数据应该有对应的数据类型 存 ...
随机推荐
- 数字转换为壹仟贰佰叁拾肆的Java方法
网银转帐时, 填写金额后下方出现的汉字金额, 这是Java下的实现. public static String toRMB(double money) { char[] s1 = {'零', '壹', ...
- 【转】【C#】C# 不常用关键字
1.__arglist 让我们先从__arglist开始. __arglist是用来给方法传送参数.通常我们是通过函数头部指定的参数列表给方法传递参数的.如果我们想要给方法传递一组新的参数,我们需要重 ...
- [C#] 走进异步编程的世界 - 开始接触 async/await(转)
原文链接:http://www.cnblogs.com/liqingwen/p/5831951.html 走进异步编程的世界 - 开始接触 async/await 序 这是学习异步编程的入门篇. 涉及 ...
- 10个鲜为人知的WordPress函数
WordPress功能强大,非常适合开发者使用.说到 WordPress,那么,我们不得不说他的钩子函数.今天,要为大家推荐10个WordPress函数.大多数,都是我们常用的功能,不过,经常不知道如 ...
- 在opencv3中的机器学习算法
在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种: 1.正态贝叶斯:normal Bayessian classifier 我已在另外一篇博文中介 ...
- MANIFEST.INF!JAR规范中
MANIFEST.INF!JAR规范中 META-INF 目录中内容心得.顺带整理了网上资料,提供地址 标签: jarjava产品sunantapache 2012-03-31 17:09 2768人 ...
- 《深入理解计算机系统》深入实践之——vim深入研究
vim 用户手册中,大部分的例子都是在讲 vim 如何高效编写代码,由此可见,vim 是一款面向于程序员的多功能编辑器,即使某些功能 vim 无法直接完成,借助其丰富的插件资源,必定可以达成目标,这就 ...
- Linux第三次实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:201352 姓名:池彬宁 贺邦 学号:20135212 2013520 ...
- 表单验证之validform.js使用方法
一.validform有什么用? 网页上有大量的input需要你进行验证的时候,如果是弹窗的话,需要不停地判断,如果为空,弹窗.如果不是数字,弹窗. 所以要将这么多验证交给一个js去验证. 二.我现在 ...
- 学习Java第一卷--态度的转变
你对自己的未来有什么规划?做了哪些准备? 认真学习,修身养性,做自己感兴趣的,在大学一定学好Java,将自己的专业学好学精. 我觉得未来十几年或几十年是自己无法完全控制的,只有自己朝着自己心中的目标努 ...