《Linux Shell实例精解》读书笔记——第一章 Linux Shell 介绍

2009-11-0617:00:07


--------------------------------------------------------------------------------

大家要尊重俺的劳动成果,转载请注明出处。本文首发自http://blog.youkuaiyun.com/erazy0/archive/2009/11/06/4777230.aspx

俺的百度空间http://hi.baidu.com/erazy0以及俺的ITPUB博客http://space.itpub.net/22666004/spacelist-blog也会同步更新

欢迎共同学习,交流,本人QQ:398467907    邮箱:zhaizhibin@hotmail.com

欢迎交换友情链接~~

===================================华丽的分割线=========================================


一直想系统的学习一下Shell,昨天去图书馆,发现了一本《Linux Shell实例精解》,立马借了回来,正好借此机会学习一下。为方便以后查阅,先记一些笔记在这儿,以后再补充。  

       Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。可以说,shell使用的熟练程度反映了用户对Linux使用的熟练程度。
  

一、什么是shell

   当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序。那么,shell是什么呢?确切一点说,shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。

  当用户使用Linux时是通过命令来完成所需工作的。一个命令就是用户和shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字符串。shell解释用户输入的命令,就象DOS里的command.com所做的一样,所不同的是,在DOS中,command.com只有一个,而在Linux下比较流行的shell有好几个,每个shell都各有千秋。一般的Linux系统都将bash作为默认的shell。

以下命令均在提示符下直接输入:

cat /etc/shells         查看当前linux版本可用的shell

echo $SHELL        查看当前使用的shell

shell_name(如ash,csh tcsh bash 等等)            

转换到别的shell,这里shell_name是你想要尝试使用的 shell 的名称,如ash等。这个命令为用户又启动了一个shell,这个shell在最初登录的那个 shell之后,称为下级的shell 或子shell。使用命令exit可以退出这个子shell。

exec shell_name(如ash,csh tcsh bash 等等)

我们在 BASH (也就是 RedHat Linux 中默认使用的Shell)中要切换到 C Shell下 ,只要直接输入对方Shell的名字csh就可以了。我们用这种方法启动一个新Shell后 ,使用ps命令查看进程就会发现多出了一个新的Shell进程,而这个新进程的ppid(父进程编号) 就是原来Shell的pid(进程编号)。也就是说,新启动的Shell其实是原来Shell的子Shell。使用exit命令可以退出当前Shell。
      如果不希望以启动子 Shell 的方法来进行 Shell 切换的话 , 可以使用如下切换方式:                                exec shell_name
      比如 ,我们在原始 Shell 下要切换到C Shell,就输入 :                                                                          exec csh
     这时我们检查一下进程 ,发现没有多出子 Shell 的进程 ,已经来到了C Shell下 。

ps au                  显示用户的linux系统上运行的进程列表

pstree                  显示进程树

echo $? OR echo $status

根据不同的shell版本,选择这两个命令之一。显示上次或最后一个可执行命令退出时的状态,0为正常退出,其余为不正常,即程序执行时发生了错误。

chmod            

改变目录和文件的访问权限(只有所有者或超级用户才可执行)。例如:

chmod 755 file_name        赋予用户rwx权限,组rx,其他rx

chmod g+w file_name        给组添加w权限

chmod go-rx file_name        给组和其他减去rx权限

chmod a=r file_name        给所有人都赋予r权限

chown

改变文件和目录的所有者和组。例如:

chown root file_name        修改文件所有者为root

chown root:root file_name        修改文件所有者为root,所在 组为root

其他还有

setuid

setgid

umask

等等以后搞明白了再补充。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22666004/viewspace-618310/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22666004/viewspace-618310/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值