shell界面介绍:
[]
是提示符的分隔符号,没有特殊含义。- gufengchen表示当前登录的用户,我现在使用的是gufengchen用户登录。
@
是分隔符号,没有特殊含义。localhost
表示当前系统的简写主机名(完整主机名是 localhost.localdomain)。- ~代表用户当前所在的目录为主目录(home 目录)。如果用户当前位于主目录下的 bin 目录中,那么这里显示的就是
bin
。 $
是命令提示符。Linux 用这个符号标识登录的用户权限等级:如果是超级用户(root 用户),提示符就是#
;如果是普通用户,提示符就是$
总结起来,Linux Shell 默认的命令提示符的格式为:
[username@host directory]$
或者:
[root@host directory]#
一、echo:
Shell 命令可以同时附带选项和参数
[mozhiyan@localhost ~]$ echo "http://c.biancheng.net/shell/"
http://c.biancheng.net/shell/
[mozhiyan@localhost ~]$ echo -n "http://c.biancheng.net/shell/"
http://c.biancheng.net/shell/[mozhiyan@localhost ~]$
echo 命令用来输出一个字符串,默认输出完成后会换行;给它增加-n
选项,就不会换行了。
但是,当我自己实际尝试之后却不行,不知道是什么原因?
二、read命令:
read 命令用来读取用户输入的数据,并把读取到的数据赋值给一个变量,它通常的用法为:
read str
str 为变量名。
如果我们只是想读取固定长度的字符串,那么可以给 read 命令增加-n
选项。比如读取一个字符作为性别的标志,那么可以这样写:
read -n 1 sex
1
是-n
选项的参数,sex
是 read 命令的参数。-n
选项表示读取固定长度的字符串,那么它后面必然要跟一个数字用来指明长度,否则选项是不完整的。
三、>:
有些命令不能在一行内输入完成,需要换行,这个时候就会看到第二层命令提示符。第二层命令提示符默认为>
,请看下面的例子:
第一个 echo 命令在一行内输入完成,不会出现第二层提示符。第二个 echo 命令需要多行才能输入完成,提示符>
用来告诉用户命令还没输入完成,请继续输入。
echo 命令用来输出一个字符串。字符串是一组由" "
包围起来的字符序列,echo 将第一个"
作为字符串的开端,将第二个"
作为字符串的结尾。对于第二个 echo 命令,我们将字符串分成多行,echo 遇到第一个"
认为是不完整的字符串,所以会继续等待用户输入,直到遇见第二个"
。
四、$$:
每次运行shell脚本时,都会开启一个新进程
Linux 中的每一个进程都有一个唯一的 ID,称为 PID,使用$$
变量就可以获取当前进程的 PID。$$
是 Shell 中的特殊变量
首先编写如下的脚本文件,并命名为 check.sh:
#!/bin/bash
echo $$ #输出当前进程PID
[gufengchen@localhost test]$ vim check.sh
[gufengchen@localhost test]$ bash check.sh
11352 #当前进程的PID
[gufengchen@localhost test]$ echo $$
9102 #当前进程的PID
[gufengchen@localhost test]$ /bin/bash check.sh
11390 #当前进程的PID
[gufengchen@localhost test]$ chmod +x ./check.sh
[gufengchen@localhost test]$ ./check.sh
11416 #当前进程的PID
[gufengchen@localhost test]$
你看,进程的 PID 都不一样,当然就是两个进程了