Linux Shell 脚本编程(1)—Shell脚本基础知识

1.3 shell脚本
 使用shell脚本的原因
 功能强大 脚本文件后缀名为 .sh
 节约时间
 shell脚本基本格式(语法)

!/bin/bash #(第一行是头,不是注释)

shell脚本 #(这一行是注释!!!)

mytext=”hello world”
echo $mytext;

注意初学者易犯错误:
1) 脚本文本头,第一行#!不是注释 其他#都是注释;
2) echo $mytextA;写错现象;
3) 写错现象#!bin/bash 路径/bin/bash告诉当前shell脚本调用bash命令解释器。
4) 脚本如果没有执行权限 chmod 111 01hello.sh,如何办
5) chmod u+x 01hello.sh chmod u-x 01hello.sh

 shell脚本运行方式
./01shell.sh $PATH
如果不能运行(权限不够),则可通过chmod a+x 01shell.sh ,增加执行权限。

1.4shell特性
简介:别名、管道、命令替换、重定向、后台处理、模式匹配、变量、特殊字符
 别名
 alias 查看本用户下的alias配置
[test@localhost ~] aliasaliasl.=lsd.color=ttyaliasll=lslcolor=ttyaliasls=lscolor=ttyaliasvi=vimaliasll=lsl(lllsl)aliaswhich=alias|/usr/bin/whichttyonlyreadaliasshowdotshowtilde[test@localhost ]
 自定义别名: alias ll = ‘ls -alh’
 alias ll = ‘ls –I –color=tty’
 cat $HOME/.bashrc 在这个用户下配置着alias命名的配置
 命令替换
 ls cat myfile –alh 通过单反引号,把’cat myfile’的内容输出 传给ls命名
 注意反单引号,在键盘的~符号的下方。也就是在键盘左上角 ESC键的下边
 后台处理
 什么是后台:
nohup command & 把当前命令(command)真正切换到后台(&是标记)
例如: ./app 该app在前台运行,按enter键,则会导致程序stop.
nohup ./app & 该app将在后台运行,不影响前台程序。
 一个终端可以同时运行多个程序
 nohup tar –cvf 111.tar.gz & 可以同时运行多个大文件压缩
 jobs –l 可以查看后台正在运行的命令
 管道
 把一个命令的输出作为另外一个命令的输入
 ls -l | sort; ls | sort
 ps -aux | grep httpd 从众多进程中查找指定的进程,并显示,这里是查看http进程。
 重定向: < 输入 > 输出
 与管道相关,可以改变程序运行的输入来源和输出地点
 sort< myfile.txt
 sort < myfile.txt > myfile+sort.txt
 ls –l > out.txt 将目录文件信息写入out.txt中
 模式匹配
 显示以txt为扩展的文件或者显示以a开头的文件,这种能力叫做模式匹配
 正则表达式
 特殊字符
 双引号(“”): 用来使shell无法认出空格、制表符和其他大多数特殊字符.
比如:建立一个带空格的文件touch “w b m”,生成一个文件,文件名为 w b m;
touch w b m,则生成三个文件,分别为w、b、m.
 单引号(‘): 用来使shell无法认出所有特殊字符,不进行特殊字符的替换。
VAR = 123 ; echo VAR  #输出123 ;    echo ‘VAR’ #输出$VAR

 反引号(): 用来替换命令,告诉shell,command中command是命令。
echo ls -l 输出ls -l ; echo
ls -l` 执行ls -l命令,输入串目录信息。
 反斜杠(): 用来使shell无法认出的特殊字符,使其后的字符失去了特殊的含义,转义字符。eg:创建带空格文件名 touch my\ file
touch my\text ,不会创建新文件,因为\t是制表符,不符合文件名。
 分号(;): 允许在一行上放多个命令。mv 1.txt 2.txt; mv 2.txt 3.txt;
 &:命令后台执行
 括号( ):创建成组的命令
 大括号{ }:创建命令块。
 竖杠(|): 管道标示符
 < > &:重定向表示符
 * ? [ ] !:表示模式匹配
:,使使
 #: 表示注释(第一行除外)
 空格、制表符、换行符:当作空白

你可能感兴趣的:(LINUX,SHELL,脚本编程)