什么是Linux的登录shell与非登录shell?

什么是Linux的登录shell与非登录shell?谢谢!... 什么是Linux的登录shell与非登录shell?
谢谢!
展开
 我来答
RenKwang
高粉答主

2020-05-22 · 专注解答想答的问题们
RenKwang
采纳数:172 获赞数:33030

向TA提问 私信TA
展开全部

Linux的登录shell与非登录shell的含义及区别:

1、含义:登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。

登录shell将查找4个不同的启动文件来处理其中的命令,用户登录后,在终端上输入命令,shell立即执行用户提交的命令,当用户退出后,shell也终止了。

非交互式:即shell与用户不存在交互,而是以shellscript的方式执行的,shell读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就终止了。

2、完整度不同:如果启动了一个bash shell而没有登入系统(如在CLI提示符中键入bash),则启动了一个交互式非登录shell。

交互式非登录shell执行/bashrc文件中的命令,在每次执行shell脚本时,都会重新读取这个文件,所以是最完整的。

3、使用情况不同:登录shell的初始化文件(比如.bash_profile)通常会运行这个文件。这样,登录shell和非登录shell都可以使用.bashrc中的命令。

4、登陆方式不同:登录 shell 需要用户名、密码登录后进入的 shell,或者通过 --login 选项生成的 shell 。

非登录 shell 是指不需要输入用户名和密码即可打开的 shell,比如输入命令 bash或者sh 就能进入一个全新的非登录 shell,在 Gnome 或 KDE 中打开一个 “terminal” 窗口,也是一个非登录 shell。

5、数值不同:

查看$0的值,登录shell返回-bash,而非登录shell返回的是bash。

需要注意的是:执行exit命令,退出的shell可以是登录或者非登录shell;执行logout命令,则只能退出登录shell,不能退出非登录shell。

扩展资料:

登陆shell通常指的是:

1、用户通过输入用户名/密码(或证书认证)后启动的shell;

2、通过带有-l|--login参数的bash命令启动的shell。

例如,系统启动、远程登录、使用su-切换用户、通过bash--login命令启动bash等。

而其他情况启动的shell基本上就都是“非登陆shell”了。

例如,从图形界面启动终端、使用su切换用户、通过bash命令启动bash等。

参考资料:百度百科-shell

一米短绳
推荐于2017-10-09 · TA获得超过606个赞
知道答主
回答量:116
采纳率:0%
帮助的人:133万
展开全部
就是说 这个shell是可以用于用户登录使用的,比如
/bin/bash ,/bin/sh ,/bin/csh ……
一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。

非登陆shell ,经典的 /bin/nologin 就是一个非登陆shell,也就是说如果一个用户默认的shell是它的话,这个用户即使登录进Linux也不无法使用Linux。
=================
shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流,“非登陆shell”无法让用户与计算机交流。
==================

关于用户的默认登录shell是在 /etc/passwd 文件中记录的。
“非登陆”shell 有它特定的用途,比如一个用Linux搭建一个ftp服务器,并且创建了很多的ftp用户,那么就可以将这些用户的默认shell改为nologin,这样一来,这些虽然是Linux上的用户可是却无法登录进Linux主机,只能登录ftp服务器了。保证了安全性。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
极品飞车_EA9
2012-03-07
知道答主
回答量:10
采纳率:0%
帮助的人:3.8万
展开全部
An interactive login shell is started after a successful login, using /bin/login, by reading the /etc/passwd file. This shell invocation normally reads /etc/profile and its private equivalent ~/.bash_profile upon startup.

An interactive non-login shell is normally started at the command-line using a shell program (e.g., [prompt]$/bin/bash) or by the /bin/su command. An interactive non-login shell is also started with a terminal program such as xterm or konsole from within a graphical environment. This type of shell invocation normally copies the parent environment and then reads the user's ~/.bashrc file for additional startup configuration instructions.

参考资料: http://bbs.ednchina.com/BLOG_ARTICLE_236581.HTM

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
za479197
2010-08-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9584
采纳率:0%
帮助的人:5811万
展开全部
8. mkdir /home/zzu 8. cd /home/zzu;pwd 8. mkdir cq 8. touch file 8. cp file cq 8. echo $? 8. rm -rf cq 8. chmod 888 file
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linu0001
2020-10-23 · TA获得超过438个赞
知道小有建树答主
回答量:847
采纳率:100%
帮助的人:35.4万
展开全部
就是说 这个shell是可以用于用户登录使用的,比如
/bin/bash ,/bin/sh ,/bin/csh ……
一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。

非登陆shell ,经典的 /bin/nologin 就是一个非登陆shell,也就是说如果一个用户默认的shell是它的话,这个用户即使登录进Linux也不无法使用Linux。
=================
shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流,“非登陆shell”无法让用户与计算机交流。
==================

关于用户的默认登录shell是在 /etc/passwd 文件中记录的。
“非登陆”shell 有它特定的用途,比如一个用Linux搭建一个ftp服务器,并且创建了很多的ftp用户,那么就可以将这些用户的默认shell改为nologin,这样一来,这些虽然是Linux上的用户可是却无法登录进Linux主机,只能登录ftp服务器了。保证了安全性。
可以学一下《Linux就该这么学》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式