Linux shell编程,系统常用命令,各种服务进程安装视频知识点




@ Linux shell编程部分 @

shell定义:

 操作系统提供给用户的用以访问,管理,控制操作系统的接口。在windows中称为CMD,在Linux中称为shell。这种用户接口(shell,又称外壳)会解释用户输入的指令,并搜索该指令对应存储在磁盘中的二进制可执行程序文件,然后传递给操作系统内核执行。注意:shell本身就是一种程序。

 Linux系统常见的shell有:Bourne Again SHell(Bash),C SHell(Csh),Korn SHell(

Ksh)。添加或创建一个新用户时可以指定shell的种类,若不指定,默认为bash。


etc/passwd 文件内容详解

 用户名:显示为x的密文口令:用户ID:用户组ID:用户账户的描述信息,该字段默认为空:该用户登录系统时的目录:该用户登录系统时所用shell的存储路径

 举例

 yanyb:x:500:500::/home/yanyb:/bin/bash

执行命令 useradd bob -s /bin/csh  回车,再执行命令 exit 回车,查看etc/passwd 文件内容,新增了

 bob:x:501:501::/home/bob:/bin/csh


useradd 命令详解

 useradd [用户名] [参数选项]

可选的参数有  -d [指定该用户登录系统时的工作目录,若不指定,默认为/home/[用户名]]

      -u [指定该用户的用户ID(uid)]

      -g [指定该用户的组ID(gid)]

      -s [指定该用户登录系统所用shell的存储路径,若不指定,默认为/bin/bash]


Linux用户进入shell的流程:

 1 在Linux文本模式的登录提示符下,或者图形用户界面(GUI)的登录对话框中,输入正确的用户名

  和口令,以执行登录(login)操作。

 2 系统将输入的用户名和口令匹配和验证,若这一步正确则进入系统。

 3 系统根据该用户的shell类型,执行一些初始化工作。对于Bash而言,系统将执行.profile文件

 4 系统给出shell的命令提示符。

提示符的形式可以自定义。默认情况下,普通用户的提示符为$,超级(root)用户的提示符为# 。


etc/inittab 文件中

id:3:initdefault: 将以文本模式登录,并给出shell,支持多用户。

id:5:initdefault: 将以GUI模式登录,进入基于X窗口系统第11版(X11)的GUI界面,且只能使用嵌入GUI的shell。

id:1:initdefault: 将以文本模式登录,并给出shell,仅支持单一用户。

id:2:initdefault: 将以文本模式登录,并给出shell,支持多用户,但没有NFS(网络文件系统)功能。


shell在接收(解释)用户输入的命令后,根据环境变量PATH所指定的路径(该路径作为PATH的值)搜索相应命令的二进制可执行程序文件。如果找到就传递给内核执行,如果程序文件不存在则返回错误提示信息。

系统默认已将常用,重要的搜索路径设置到了PATH中。

执行命令  echo $PATH  可以查看当前的搜索路径(目录)都有哪些。

其中, $[环境变量名] 引用该变量的值。

命令的输出包含多个目录,目录之间用:分隔。例如以下输出:

/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin


环境变量 HOME 中保存的是用户的主目录信息,即某个用户登录进系统时的当前工作目录(路径)。

例如,登录系统时的命令提示符为如下形式:

[yamyb@localhost ~]$

其中,yamyb表示当前登录的用户名;localhost表示主机名;~表示当前工作目录为该用户的主目录,其具体的目录信息可以通过 echo $HOME 命令查看。在使用 useradd命令创建新用户时,默认的主目录为/home/用户名。如果将当前工作目录从该用户的主目录切换至其他目录,则~部分会变成相应的目录名称。

在上个例子中,输入 cd /usr/local/ 回车后,登录提示符变为如下形式:

[yamyb@localhost local]$

表明当前工作目录已从用户主目录切换至/usr/local/。必须指出:取决于不同的Linux发布版,不同的shell类型,其显示会稍有差异。在本例中,只显示了当前工作目录的最底层目录。

相反,有些系统会给出完整的当前工作目录“树”信息,包括所有父目录和子目录。

要从任意的当前工作目录回到用户主目录,有两种办法:

√不带任何参数运行cd命令;

√输入 cd $HOME 回车;

要查看当前工作目录的完整“树”信息,只需不带任何参数运行pwd命令即可。