文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> shell编程技巧点滴(基础篇)

shell编程技巧点滴(基础篇)

时间:2008-04-19  来源:sdccf

作者:tag  出处:bolg.csdn.net   
 
1.       各类shell介绍,主要两个类:

①Bounce shell:bash sh,sh,ksh,zsh.

②C shell:csh,tcsh

2.       不同shell安装地点:

①    Bounce shell → /bin/sh

②    Korn shell → /bin/ksh或/usr/bin/ksh

③    Bounce Again shell → /bin/bash和/bin/sh

④    Z shell → /bin/zsh和/bin/sh

⑤    C shell → /bin/csh

⑥    TENEX/TOPS C shell → /bin/tcsh

3.       在UNIX中,大多数命令存在磁盘上单独的文件里,各个命令都以文件方式存在。

4.       记录是由一些域组成的,每个域之间是由一个冒号“:”区别的。例如:

ranga:x:500:100:Sriranga Veeraraghavan:/home/ranga:/bin/bash

其中,最后一个域存储的是与帐号相关的shelll,倒数第二个域存储的是帐号的主目录。

5.       各个操作系统默认的shell:

①    Solaris → Bourne shell或C shell

②    HP-UX → POSIX shell(它是ksh的一变种)

③    BSD → korn shell或C shell

④    Mac OS X → Z shell或C shell

⑤    Linux → Bourne Again shell

6.       一般情况下,每个shell都会使用/etc目录下默认的或系统配置文件以及主目录下的一系列个人配置文件。

7.       bash初始化过程(相关的初始化文件,即init文件有:/etc/profile、.bash_profile、.bash_login和.profile):

①    bash检查文件/etc/profile是否存在

②    如果存在,bash就读取该文件;否则,跳过。

③    bash检查主目录下的文件.bash_profile是否存在。

④    如果存在,bash就读取该文件;否则,跳过。

⑤    bash检查主目录下的文件.bash_login是否存在。

⑥    如果存在,bash就读取该文件;否则,跳过。

⑦    bash检查主目录下的文件.profile是否存在。

⑧    如果存在,bash就读取该文件;否则,跳过。

8.       shell的初始化文件都了配置一个完整的工作路径。例如,启动文件.profile中放置了你的shell初始化的所有设置,可以添,但是至少要放置①命令的目录列表。②命令手册的目录列表。

9.       初始化文件内容:

①    PATH → 指定shell查找命令的目录。

如,PATH=/bin:/usr/bin(其中用“:”分开不同目录)

②    MANPATH → 指定shell帮助手册的位置

如,MANPATH=/usr/man:/usr/share/man

10.   shell能在两种模型下运行:

①    交互式启动shell

如,$ /bin/basj

②    非交互式启动shell

如,$ /bin/sh filename(filename是包含可执行命令的文件名),用vi编辑filename

11.   shell脚本就是包含一系列命令的文件,为了使shell脚本能够运行必须:

①    把文件标为可执行:chmod a+x filename

②    确保使用了适当的shell来执行脚本:须加入一行“幻行”:

#!shell(其中shell为执行脚本需要的shell名称,如/bin/sh,/bin/ksh等等),添加这一条以后执行此脚本,只要输入filename即可。

12.   shell脚本的注释是“#”

13.   manual page片段:

14.   wc结果格式:文件行数 文件单词数 文件字符数 文件名

15.   管道中的每个命令都是作为一个独立的进程运行的,管道的退出状态就是最后一个命令的退出状态。

16.   文件描述符:是一种机制,用它把一个数字和一文件关联起来,然后使用该数字读写该文件,它也叫文件句柄。

17.   cmd1 | cmd2 | … | cmdN 这是一个管道的例子,管道符号|将一个命令的输出重定向到另一个命令的输入,即把cmd1的标准输出和cmd2的标准输入关联起来。

18.   cmd | tee file 此条语句可以把cmd命令产生的结果既在屏幕上显示又存入file文件中去。

19.   每个命令打开的3个及其相应的文件描述符:

Ø        STDIN 0

Ø        STDOUT 1

Ø        STDERR 2

20.   在输出重定向中”>”与”>>”的区别:前者将覆盖原文件内容,后者是在原文件后追加。

21.   exec命令将任何文件和文件描述符关联起来。

22.   cmd 1>file1 2>file2或cmd >file1 2>file2都表示把标准输出重定向到文件file1中,标准重定向到文件file2中。

23.   文件/dev/null是UNIX中用于丢弃输出信息的特殊文件,有时称为bit bucket,如将一命令的输出重定向到/dev/null,那么输出将被丢弃。

24.   用cat命令显示/dev/null文件内容到一文件,该文件内容将被擦除。

$cat /dev/null >file

执行后文件file仍存在,但大小变为0。

25.   cmd >>file 2>&,此命令把cmd的标准错误和标准输出追加到同一个文件file中。

26.   exec n>-,此命令将关闭文件描述符,此处n是一个打开的文件描述符。

27.   file filename,此命令可以的到更多关于filename文件的信息。

28.   硬连接限制:

①    硬连接不能指向目录,只能指向文件。

②    硬连接和它所指的原文件无法辨别,没有方法可以告知一个特定的文件是硬连接还是它所指向的原文件。

29.   一个文件会有多个硬连接,只删除该文件并不能有效的释放磁盘空间,要将所有硬连接都删除才可以。

30.   符号连接(symbolic link或symlink)是一个存储另一个文件路径的特殊文件。

31.   符号连接即软连接,相当于“快捷方式”。

32.   字符设备文件:是在和设备通信时每次只传输一个字符,通常字符设备代表一个“raw”。

33.   块设备文件:时在设备通信时传递大块大块的数据而不是单个字符。(一般用于访问硬盘和可移动媒体)。

34.   ls –l 字符设备文件,该命令的显示结果中在日期前的两个数字是主/次设备号,用这两个数字来标识和字符设备文件相联系的设备驱动程序。

35.   mkfifo file,命令来创建命名管道文件。

36.   系统的登陆密码存于/etc/shadow文件中。

37.   改变文件的属主和组命令:chown user:group files(其中user表示系统中的用户名或用户ID,group表示系统中的组名或组ID)。

38.   当你指定另一个用户为你所拥有文件的属主时,你不能重新成为该文件的属主,只能该文件的新属主和超级用户能让你再次成为该文件的属主。

39.   在UNIX中,每个进程都会运行一段进程,一段进程时运行一个程序的实例没。在UNIX中,使用了一条命令,它就会开始执行一段进程。

40.   运行后台进程:在命令后加一个”&”符号。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载