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创建文件并写入内容
下⾯我们创建⼀个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命令可以创建空⽂件,并且不进⼊⽂件的编辑状态。也可以根据命令后给出的⽂件名列表同时创建多个空⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。