第一章:shell基础

shell基础(学习总结,自己整理的,如转摘,请注明出处。)查看前需掌控的命令:umask 、chmod、chgrp、chown等

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

连接ln

1硬连接 ln sourcefile targetfile     连接后的target文件大小和source文件一样
2软连接 ln -s sourcefile targetfile  类似于windows的快捷方式

shell script 基本结构

 1#!/bin/bash          --------bash shell开头必须部分
 2# description          --------注释部分(可有可无,为了阅读方便最好加以说明)
 3variable name=value   ---------变量部分,声明变量,赋值
 4control segment       ---------流程控制结构,如判断、循环、顺序
 5
 6例:
 7helloworld.sh
 8#! /bin/bash
 9# hello shell script
10a = "hello world"
11echo $a

shell 特性

 1①别名    alias                eg. alias ll = “ls -l”
 2②管道    a |b                 将a命令的输出作为b命令的输入 eg. ls |sort   将ls列举的项排序
 3③命令替换   a `b`             将b命令的输出作为a命令的输入s \`cat myfile\` 列举出cat myfile的输出项
 4④后台运行   nohup command&    可通过jobs -l查看后台运行的脚本
 5⑤重定向       >,<             可以改变程序运行的输出来源和输入来源
 6⑥变量                         可以用$varname 来调用变量
 7⑦特殊字符
 8? 代表任何单个字符
 9* 代表任何字串(长度可以不等)
10`用来替换命令(反引号,和~符号同一个键)
11''单引号,单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。

由双引号括起来的字符,除$, , ‘和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。
连字符(-)仅在方括号内有效,表示字符范围。例如,[ab-dm]* 当前目录下所有以a、b、c、d、m开头的文件的名称。
用来使shell无法认出其后的特殊字符,使其失去特殊含义

1;允许一行放多个命令
2() 创建成组的命令
3{} 创建命令块

因为后面的章节还会专门讲解特殊符号,这里就不再多作例子说明。