Shell基础及变量

Shell的作用 —— 命令解释器,“翻译官”
• shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上
这里写图片描述
命令与文件补全
按“Tab”键就会自动进行补全
命令别名
[root@localhost ~]# alias 别名=’原命令’
设定命令别名
[root@localhost ~]# alias grep=‘grep –color=auto’(注意等号两边不能有空格)alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一Shell或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
删除别名
[root@localhost ~]# unalias别名
多命令顺序执行
&&逻辑与
||逻辑或
管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2
命令1的正确输出作为命令2的操作对象
tee
想个简单的东西,我们由前一节知道 > 会将数据流整个传送给文件或装置,因此我们除非去读取该文件或装置, 否则就无法继续利用这个数据流。万一我想要将这个数据流的处理过程中将段信息存下来,应该怎么做?
这里写图片描述
tee
[root@www ~]# tee [-a] file
选项与参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
[root@www ~]# last | tee last.list | cut -d ” ” -f1
这个范例可以让我们将 last 的输出存一份到 last.list 文件中;
[root@www ~]# ls -l /home | tee ~/homefile | more
这个范例则是将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息!
[root@www ~]# ls -l / | tee -a ~/homefile | more
要注意! tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加

echo输出命令
[root@localhost ~]# echo [选项] [输出内容]
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
Shell脚本的基本元素
(1) #!/bin/bash 必须的,指出shell的类型
(2)# 注释
(3)变量
(4)控制
一个shell脚本
vi datewho.sh
#!/bin/bash
# this is first shell
date; who
常见运行Shell脚本方法
方法1:
方法2:
# sh ./datewho.sh
2016年 12月 16日 星期五 11:05:55 CST
root tty1 2016-12-16 11:03 (:0)
root pts/0 2016-12-16 11:05 (:0.0)
# chmod +x datewho.sh
# ./datewho.sh
2016年 12月 16日 星期五 11:15:55 CST
root tty1 2016-12-16 11:03 (:0)
root pts/0 2016-12-16 11:05 (:0.0)
Shell中的变量
shell 变量 可以保存如路径名、文件名或者一个数字
 变量名称可以由字母、数字和下划线组成,但是不能以
数字开头。如果变量名是“2name”则是错误的。
 在Bash中,变量的默认类型都是字符串型,如果要进
行数值运算,则必修指定变量类型为数值型。
变量分类
 本地变量(用户变量) 局部变量只在创建它们的Shell中使用,可以在shell程序内任意使用和修改它们。
 环境变量 可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创的,其他的则是专用的(比如PATH、HOME)。是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们 。还能在shell中加以修改。
 内部变量 由系统提供的。与环境变量不同,但用户不能修改它们。

 本地变量 在用户现在的shell生命期的脚本中使用
 变量名=值
注意:
 (1)等号两边不可以有空格
 (2)取值包含空格,必须用双引号括起来
 (3)Shell变量可以用大小写字母,区分大小写

变量的声明和使用
(1)变量是弱类型的(不用声明类型)
(2)变量声明及赋值格式
变量=值(等号两边不能有空格)
(3)变量的引用
{变量名}
变量名为1个字符时建议使用方式一,多余一个字符时建议使用方式二
举例: a {abc}

echo显示输出
 echo命令介绍
 功能说明:显示文字。
语 法:echo [-ne][字符串] / echo [–help][–version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参 数:
-n 不要在最后自动换行
-e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以
处理,而不会将它当成一般文字输出:
\t 插入tab;
\ 插入\字符;
-help 显示帮助
-version 显示版本信息
清除变量
unset 变量名
举例:echo n a m e u n s e t n a m e ( n a m e )

环境变量
环境变量用于所有用户进程(通常称为子进程)。登陆进程称为父进程,通过pstree可以查看
环境变量可以用于所有子程序,着包括编辑器、脚本和
应用
举例:vi a.sh
#!/bin/bash
# 检测环境变量
echo “家目录是 H O M E e x p o r t v a r i a b l e n a m e = v a l u e e x p o r t v a r i a b l e n a m e ( ) e n v e c h o 环境变量名 (显示一个变量)
 清除环境变量
unset 环境变量名

HOME : 代表使用者的家目录。cd ~ 去到使用者的家目录 或者利用 cd
就可以直接回到使用者家目录了。
PATH : 就是执行文件搜寻的路径,目录与目录中间以冒号(:)分隔, 由于文件的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的。

永久修改
让环境变量的修改在退出shell再次登录时仍有效,需要在相
关配置文件中修改
Bash的初始化文件有:/etc/profile、~/.bash_profile、
~/.bash_login、~/.profile、~/.bashrc、/etc/bashrc
上述配置文件的作用
1)登录Linux先启动系统配置文件/etc/profile,并从/etc/profile.d目录的配置文件中搜集shell的设置,为系统的每个用户设置环境信息。
2)用户配置文件~/.bash_profile,每个用户专用于自己使用的shell信息,仅用户登录时执行一次!
默认情况下,此文件通过脚本执行同目录下用户的.bashrc文件。
3)~/.bashrc文件包含专用于用户bash shell的bash信
息,登录及每次打开新的shell时都会执行。里面又会调用/etc/bashrc
区别:bash_profile只在会话开始的时候读取一次,而bashrc则每次打开终端时都会读取

内部变量
内部变量是Linux所提供的一种特殊类型的变量,这类变量在
程序中用来作出判断。在shell程序内这类变量的值是不能修
改的。
部分内部变量是:
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/w849593893/article/details/82390916
今日推荐