当前位置: 首页 > news >正文

织梦制作手机网站尚硅谷培训机构官网

织梦制作手机网站,尚硅谷培训机构官网,湖南电子科技网站建设,可信的大连网站建设〇、更新记录 20230926 补充例子2 一、前言 由于Linux系统的shell有许多种:sh、bash、cshell、tcsh、zsh……这些shell以sh为基础对象,在保持兼容性时又各有有创建,形成自己的功能特点,要想让我们编写的shell代码正确、可靠运行…

〇、更新记录

20230926 补充例子2

一、前言

由于Linux系统的shell有许多种:sh、bash、cshell、tcsh、zsh……这些shell以sh为基础对象,在保持兼容性时又各有有创建,形成自己的功能特点,要想让我们编写的shell代码正确、可靠运行,我们首先应该了解我们的目标系统在登陆后默认使用的是哪个shell,也就是我是谁 | whoami?

二、示例约定

从现在开始,我们就要逐步学习在终端中输入和执行linux命令并根据需要进行编程,这与DOS是相似的。

按照DOS下的惯例,我们在命令提示符后通过键盘输入命令并按下Enter来执行。我们输入的的命令将使用下划线标注。

三、who am i?

linux提供了who am i 或 whoami命令,不过命令的功能用来查询当前登陆系统的帐号信息。

所以如果我们要查询当前使用的shell类型,实际上使用的是其它命令和方法。

要查询我们当前使用的shell类型,有很多种方法,有些很直接,一步到位;有些方法则需要绕一些,通过几个命令配合实现,或者不那么直观,有些则不太靠谱。

(一)最直接的方法

要想知道我们当前使用的shell类别,比较好的方法是使用命令:

echo $0

其中$0的含义要看具体应用场合,像上面这样在命令行中使用,它代表的是Shell本身的PID(ProcessID ),(btw,如果是在脚本中使用,$0表示脚本名称或函数名称)。

1.例子1:

[root@localhost ~]# echo $0

sh

 

可以看到我们当前使用的shell是历史最悠久的sh……其中[root@localhost ~]#是Linux系统终端的命令提示符,它的格式内容是可以自定义的,我们将会在以后学习。

2.例子2:

user@myhost:~>echo $0
bash

可以看到我们当前使用的shell是大多数系统默认的bash……其中user@myhost:~>是Linux系统终端的命令提示符,其内容跟例1是不同的,因为它的格式内容是可以自定义的,自定义的方法我们将会在以后学习。

(二)有点绕的办法

之所以说有点绕,是因为我们不能一步到位,需要执行两条命令:

第一条命令:

echo $$

这条命令将显示Shell本身的PID(ProcessID),

1.例子1:

[root@localhost ~]# echo $$

64

在上面这个例子中,我们可以知道当前进程ID是64。 接下来我们执行第二条命令:

ps

 这条命令用于显示当前进程的信息,类似于 Windows 系统中的控制台命令tastlist,例如:

[root@localhost ~]# ps

PID   USER     COMMAND

    1 root     {init} /bin/sh /sbin/init

    2 root     [kthreadd]

    3 root     [kworker/0:0]

    4 root     [kworker/0:0H]

    5 root     [kworker/u2:0]

    6 root     [mm_percpu_wq]

    7 root     [ksoftirqd/0]

    8 root     [kdevtmpfs]

    9 root     [netns]

   10 root     [oom_reaper]

   11 root     [writeback]

   12 root     [crypto]

   13 root     [kblockd]

   14 root     [kswapd0]

   15 root     [kworker/0:1]

   32 root     [khvcd]

   33 root     [kworker/0:2]

   43 root     dhcpcd

   56 root     [kworker/u2:1]

   64 root     sh -l

   66 root     ps

 从ps命令显示的进程信息中,我们可以看到PID等于64的进程信息是:

  64 root     sh -l

这样我们就知道我们现在用的shell是历史最悠久的sh…… 

2.例子2:

 user@myhost:~>echo $$
14559
user@myhost:~>ps
  PID TTY          TIME CMD
 6554 pts/0    00:00:00 ps
14559 pts/0    00:00:00 bash
user@myhost:~>

 

在第2个例子中,我们先查询到当前进程ID是14559,然后我们通过ps命令查询到PID等于14559的进程信息是bash。

(三) 不那么直观的方法

通过cat命令  查看/etc/passwd文件信息

cat /etc/passwd

从而了解用户的登录Shell类型。

1.例子1:

[root@localhost ~]# cat /etc/passwd

cat /etc/passwd

root:x:0:0:root:/root:/bin/sh

daemon:x:1:1:daemon:/usr/sbin:/bin/false

bin:x:2:2:bin:/bin:/bin/false

sys:x:3:3:sys:/dev:/bin/false

sync:x:4:100:sync:/bin:/bin/sync

mail:x:8:8:mail:/var/spool/mail:/bin/false

www-data:x:33:33:www-data:/var/www:/bin/false

operator:x:37:37:Operator:/var:/bin/false

nobody:x:99:99:nobody:/home:/bin/false

从中我们可以看到,root帐户登陆系统后使用的shell是sh。

为了更直观一些,我们可以使用 管道操作 利用grep命令搜索包含字符串root的行,即:

cat /etc/passwd | grep ^root

 例如:

[root@localhost ~]# cat /etc/passwd | grep ^root

cat /etc/passwd | grep ^root

root:x:0:0:root:/root:/bin/sh

命令执行后系统只显示包含字符串root的信息。

2.例子2:

user@myhost:~>cat /etc/passwd | grep ^user
user:x:1002:1002:,,,:/home/user:/bin/bash

 

在这个例子中,我们可以看到当前使用的shell是bash

(四)不那么靠谱的方法

这种办法主要是用环境变量$SHELL。如:

echo $SHELL

$SHELL的值被设置为你的默认 shell 的完整路径,当你在终端中调用不同的 shell时,$SHELL的值并不会随之改变,它始终指向你的默认 shell 的完整路径。

实例:

user@myhost:~>echo $SHELL
/bin/bash
user@myhost:~>exec dash
\u@myhost:\w>echo $0
dash
\u@myhost:\w>echo $SHELL
/bin/bash

在上面的例中,我们首先使用echo $SHELL命令查询到系统默认的shell是bash

然后,我们使用exec dash命令将shell改为dash

接着我们使用echo $0命令证明我们当前使用的shell是dash

但是我们再次使用echo $SHELL命令查询,环境变量$SHELL的值并没有变成dash,仍然是默认的bash。

需要注意的是,$SHELL中的英文字母是大写的。也就是说,linux中的环境变量名称是区分大小英文字母的。$SHELL和$shell是两个环境变量。

http://www.tj-hxxt.cn/news/126112.html

相关文章:

  • 网站建设制作设计seo优化珠海百度竞价是什么意思
  • 有人用dw做网站吗关键词优化课程
  • 在线刷seo单页面网站如何优化
  • 苏州网站建设师引流推广方法
  • 动态网站代做seo去哪里学
  • 美食网站开发目的百度seo优化方法
  • 哪个网站专门做二手电脑手机的企业seo自助建站系统
  • 郑州web网站建设公司比较好的友链平台
  • 外贸b2b网站用什么网站程序做百度快照怎么发布
  • wordpress主题视频站宁波seo推荐推广平台
  • 注册公司网站如何注册网站设计方案
  • 今日中国新闻优化设计官方电子版
  • wordpress主题导致空白杭州网站优化方案
  • 上饶做网站建设免费友情链接交换平台
  • 网站如何做延迟加载百度登陆页面
  • 英迈思网站做不下去可以退款吗哪个平台推广效果最好
  • 电影资源网站开发88个seo网站优化基础知识点
  • 前端设计师主要做什么seo教程自学网
  • 大专学计算机我后悔了优化seo哪家好
  • 新闻网站开发php百度地图轨迹导航
  • 做网站应规避的风险推广营销是什么
  • 企业营销网站建设公司哪家好建站seo推广
  • 日照建站公司淮北seo排名
  • 做网站在阿里云上面买哪个服务seo兼职论坛
  • 买服务器做网站百度网盘官网
  • 江苏优化网站价格百度贴吧的互动社区
  • 开网站的是啥公司福州百度代理
  • 长宁专业网站制作公司360竞价推广
  • 淘宝网站SEO怎么做互动营销成功案例
  • 响应式企业网站建设营销推广文案