Linux Shell 学习---Shell 简介
什么是Shell
Shell 是kernel的一个外壳,是一个命令解析器,负责用户与内核的交互,shell中可以运行子shell. linux 系统下面可以有多个shell,可以通过/etc/shells文件查看当前系统的可用Shell,用户登录时,init程序为每一个用户启动一个shell用于解析用户输入的命令,通过使用echo $SHELL 显示当前运行的shell。
Shell的特性:
1.别名:通过使用alias命令可以为命令设置别名,提供用户个性设置。如:alias 'll=ls -l'
2.命令替换``。如:执行命令ls `cat myfile` -l 将cat myfile地执行结果传递给ls进行替换
3.后台处理,将任务放在后台进行处理,前台可以继续进行操作。nohup tar -czf filename &将压缩操作放置在后台执行。
4.变量(下一次详细介绍)
5.管道 |。将一个命令的输出作为另一个命令的输入。如:ls -l / |more
6.重定向。使用操作符<>进行输入输出的重定向。
7.模式匹配。通过正则表达式进行模式匹配。
Shell脚本
Shell脚本类似于批处理可以方便的执行大量命令,同时由于Shell脚本是一种程序设计语言,功能非常强大。
一个简单的例子:
#!/bin/bash
#注释,第一行格式固定
#定义变量
printstring="Hello Shell";
#输出变量内容
echo ${printstring};
编写shell脚本存储在文件中,需要设定用户对文件的执行权限,才可以执行,一下简介以下文件权限的设置命令chmod。
chmod命令:
chmod [who] operator [permission] filename
who:用户。主要有:文件拥有者,组用户,其他用户
opeartor:+ ,- 增加或删除
permission: 权限设置 r,w,x(执行) -----T,S位不做介绍
chmod命令有两种模式:绝对模式和符号模式
符号模式:chmod u+x file1 增加拥有者的执行权限
绝对模式:用数字表示权限,三位分别对应文件拥有者,组用户和其他用户。r=4,w=2,x=1。如:chmod 700 file1 设置文件拥有者可读,可写,可执行的权限,其他所有用户无任何权限。
umask
创建文件和目录的时候系统根据umask的值,设定模人的权限。对应入下表所示:
umask 文件 目录
0 6 7
1 5 6
2 4 5
3 3 4
4 2 3
5 1 2
6 0 1
7 0 0
系统在/etc/profile中设定umask值,可以通过umask命令改变默认值。一般为022建议不要改动,影响系统的安全性
下一次简单介绍shell脚本编程的内容。
浙公网安备 33010602011771号