一。什么是Shell
1.Shell是核心程序之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言
2.Shell的类型:ash,bash,ksh,csh,tcsh
-/etc/shells
-echo $SHELL显示所运行的Shell
3.程序在Shell中运行
4.Shell中可以运行子Shell
二。存取权限与安全
1.文件和目录的权限(-rwxr--r--)
2.setuid (suid/guid) (chmod u+s,g+s file)
3.chown和chgrp(chown user file/chgrp group file)
4.umask(umask nnn)
5.符号链接(ln -[-s] source-path target-path)
1.(1)chmod [who] operator [permission] filename
who(u,g,o,a)
operator(+,-,=)
permission(r,w,x,s,t)
(2)chmod mode filename
mode r--4 w--2 x--1
chmod 644 myfile
2.chown和chgrp
chown [-R] owner myfile
chown owner.group myfile
chown .group myfile
chgrp [-R] group myfile
3.umask
/etc/profile($HOME/.profile $HOME/.bash_profile))
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
4.符号链接
硬链接
软连接
ln [-s] source-path target-path
三。Shell脚本
1.使用Shell脚本的原因
功能强大
节约时间
2.基本元素
#!/bin/bash第一行
#表示注释
变量
流程控制结构
3.运行方式
列如:helloworld.sh
#!/bin/bash
echo "hello world"
chmod u+x helloword.sh
./helloworld
4.shell特性
(1)别名
alias
alias ll="ls -alh"
$HOME/.bashrc
(2)命令替换
myfile的内容:
parm
findfile
ls `cat myfile` -al
(3)后台处理
什么是后台?
一个终端可以同时运行多个程序
nohup command &
jobs-l
(4)变量
例子:helloworld.sh
#!/bin/bash
printchar="hello world"
echo $printchar
变量用来存储信息
(5)管道(|)
把一个命令的输出链接到另一个命令的输入
ls|sort
(6)重定向(<>)
与管道相关,可以改变程序运行的输入来源和输出地点
sort
sortmyfile_dort.txt
(7)模式匹配
显示以txt为扩展名的文件或显示以a开头的文件,这种能力就称为模式匹配
正则表达式
(8)特殊字符
双引号(“):用来使Shell无法认出空格、制表符和其他大多数特殊字符。
单引号(‘):用来使Shell无法认出所有特殊字符
反引号(`):用来替换命令
反斜杠(\):用来使Shell无法认出其后的特殊字符,使其后的字符失去特殊含义
分号(;):允许在一行上放多个命令
&:命令后台执行
括号():创建成组的命令
大括号{}:创建命令块
竖杠(|):管道标示符
<>&:表示重定向
*?【】!:表示模式匹配
$:变量名的开头
#:表示注释(第一行除外)
空格、制表符、换行符:当做空白
阅读(1157) | 评论(0) | 转发(0) |