Chinaunix首页 | 论坛 | 博客
  • 博客访问: 356706
  • 博文数量: 158
  • 博客积分: 52
  • 博客等级: 民兵
  • 技术积分: 613
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-27 11:58
文章分类

全部博文(158)

文章存档

2017年(1)

2016年(5)

2015年(19)

2014年(8)

2013年(13)

2012年(80)

2011年(32)

分类:

2012-02-28 23:45:47

原文地址:Linux下login/shell 作者:itisthinktime

内容:

    1linux登录;
    2
shell


一、登录
    linux系统完成系统初始(在inittab中相应runlevel service启动成功)之后,即将呈现给用户登陆界面以提示输入用户名以及密码。linux中是通过mingetty提供登陆终端,参见/etc/inittab中不同运行级别对应的终端程序:

1.  44 # Run gettys in standard runlevels

2.  45 1:2345:respawn:/sbin/mingetty tty1

3.  46 2:2345:respawn:/sbin/mingetty tty2

4.  47 3:2345:respawn:/sbin/mingetty tty3

5.  48 4:2345:respawn:/sbin/mingetty tty4

6.  49 5:2345:respawn:/sbin/mingetty tty5

7.  50 6:2345:respawn:/sbin/mingetty tty6

    从上面可以看出在各运行级别中都将以respawn方式运行mingetty程序。mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面(见/etc/issue),该登录界面中会提示用户输入用户名与密码, login程序将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其它信息(例如用户的主目录,登陆的shell等)。其中passwd以及shadow文件格式见: Fedora下用户/用户组管理(三)

    login登陆成功后,向对应的终端输出最近一次登录的信息(通常在/var/log/lastlog),并检查用户是否有新邮件(通常在/usr/spool/mail/用户名下)。之后,开始设置各种环境变量。
     
对于linux,其默认的shellbash。首先系统寻找/etc/profile脚本文件,并执行;然后,若用户主目录中存在.bash_profile文件,则执行之,这些全部完成后,即提示常见的$
提示符。

  1. [admin@localhost ~]$

二、shell

   上面已经说明,当login接收的用户名以及密码经验证是正确的之后:欢迎进入linux的世界!通常CLI模式下遇到的第一个程序:shell
   shell
是一个命令解释器。其相对kernel而言。通过它用户可完成与kernel的交互。主要功能包括,解析用户的输入并解析执行、文件、路径管理、程序启动终止管理、输入输出重定向、shell编程等。
   
常见的shell包括shbashcshksh等。

   sh

        bourne shell/[solaris 
默认]
 bash
 
        bourne again shell/[Linux 
默认]

  ksh
 
        korn shell/[AIX 
默认
]
  csh

        c shell/[FreeBSD
默认]

      
添加用户时(通过useradd -s )可指定特定用户的登陆shell,也可通过usermod -s更改shell。可参见: Fedora下用户/用户组管理(一)。若不指定,则linux下默认为bash,其中/bin/shbash的一个软连接。
     
最近两周时间抽时间看了shell相关的脚本资料,感觉shell功能非常强大。尽管后续的方向不是shell,但是熟悉shell之后再看linux中的一些配置文件会清晰很多。这对于高效率管理自己的linux系统大有裨益。
     
现在对于shell编程不算很熟悉,但整体上已经入门了(现在还没有来的及把相关的学习总结发出到blog)。关于常用的sed\awk\grep\find\xargs\技巧等,在运用中逐步加强吧!




阅读(660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~