Linux学习基础之——Shell基础-概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxllynu/article/details/85016254

1、Shell是什么

shell是一个命令行解释器,它为用户提供了一个像Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。

shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令。

注意几个关键词:命令行解释器,编程语言;

2、shell的分类

1)Bourne Shell :从1979起Unix就开始使用Bourne Shell ,Bourne Shell的主文件名为sh;

2)C Shell :C Shell 主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名;

注意:Shell的两种主要语法类型有Bourne 和 C,这两种语法彼此不兼容。

Bourne家族主要包括sh、ksh、Bash、psh、zsh;

C家族主要包括:csh、tcsh;

Bash:Bash 与sh 兼容,现在使用的Linux就是使用Bash作为用户的基本shell,或者说标准的shell;

3、Linux支持的shell

/etc/shells文件中标识了哪些shell是被支持的

[root@localhost ~]# vim /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
~                                                                                       
~                    

也就是说以上shell都是受支持的。

只是当前Linux的标准shell,就是Bourne Shell 中的Bash ,主流shell是Bash,当前默认是bash,

但是

以上都是支持的,也就是说这几种shell之间是可以切换的,只要后面写shell,

即可切换到相应类型的shell,提示符一般都会变,例如:

输入sh,即可从当前默认的bash 切换到sh,通过exit 即可退出,切换到原来的shell类型

提示符变化如下:

[root@localhost ~]# sh
sh-4.1# 
sh-4.1# 
sh-4.1# exit
exit
[root@localhost ~]# 
[root@localhost ~]# csh
[root@localhost ~]# 

当Linux中提到单用户、系统修复模式启动的就是sh等;

另外地,csh和bash的提示符是一样的,但是csh和bash的语法还是有很大区别;

我们当前学习的是Bourne shell 系列的 Bash ;

/sbin/nologin

之前在此处见过,在打开/etc/passwd 文件,发现如下图,

打开该文件发现,最后一列是这个用户登录之后的权限,

能够登录的用户,使用的是Linux的标准shell,登录之后,就可以执行其权限范围之内 

的命令等,比如第一行root,最后一列是/bin/bash

正常的普通用户,可以

但是伪用户,也就是系统用户,无法登录有两类:

一类是,比如sync, /bin/sync  和shut  /sbin/shut这样的,末尾跟“命令”的 ,表示该用户sync或者shut只能执行该命令

一类是比如uucp,其权限是/sbin/nologin, 表示无法登录。但可以执行其他命令的。

[root@localhost ~]# csh
[root@localhost ~]# vim /etc/pa
pam.d/   pango/   passwd   passwd-  
[root@localhost ~]# vim /etc/pass
passwd   passwd-  
[root@localhost ~]# vim /etc/passwd

adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-a

猜你喜欢

转载自blog.csdn.net/zxllynu/article/details/85016254