moc 发表于 2018-11-15 19:33:50

014-Shell编程之01基础知识

本帖最后由 moc 于 2018-11-15 19:33 编辑

1.什么是Shell
        shell是核心程序kernel之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言。
        shell是命令解析器,它提供一个到操作系统的接口,它收集用户的输入并根据输入来执行相应的程序,当程序执行结束后,他显示程序的输出。
查看当前系统安装的Shell:==>   cat/etc/shells
查看当前用户运行的shell:==>   echo $SHELLs
当前shell中运行其他shell:==>   /bin/sh
linux下默认的shell==> bash
bash特点:快速(上下键);tab键盘自动补齐;自动帮助功能help...
2.Shell代码
使用shell代码的原因: 功能强大、节约时间。
#!/bin/bash
#shell代码
mytext="hello world"
echo $mytext易犯错误:
        1> 第一行#不是注释 其他#都是注释;
        2> shell严格区分大小写
        3> 代码需要添加执行权限==> chmod 775 xxx.sh   ORchmod u+x xxx.sh
        4> 代码运行方式=> ./xxx.sh   <注意:$PATH 环境变量>
3.Shell特性
1> 别名alias
查看本用户下的alias配置==> alias
自定义别名==>alias ll = ‘ls -alh’    (这里是单反引号)
查看用户下alias命名的配置==>cat $HOME/.bashrc
2> 后台处理nohup commond &
将归档程序放入后台执行==>nohup tar –cvf 111.tar.gz &
查看后台正在运行的命令==>jobs –l
3> 管道
把一个命令的输出作为另外一个命令的输入。
如: ls -l| sort;   ls | sort
4> 重定向< 输入   >输出
与管道相关,可以改变程序运行的输入来源和输出地点.
从文件中按行读取数据排序后输出==> sort< myfile.txt
从文件中按行读取数据排序后输出到另一个文件中==>sort<myfile.txt >myfileSort.txt
5> 模式匹配
*?等作为特殊字符匹配字符串等...
正则表达式.
6> 特殊字符
双引号(“”)        ==> 用来使shell无法认出空格、制表符和其他大多数特殊字符,如:建立带空格的文件touch “my file”
单引号(‘)         ==> 用来使shell无法认出所有特殊字符。
反引号(`)        ==> 用来替换命令
反斜杠(\)        ==> 转义字符, 如:创建带空格文件名 touch my\ file
分号(;        ==> 允许在一行上放多个命令:mv 1.txt 2.txt;mv 2.txt 3.txt;
括号()         ==> 创建成组的命令
大括号{}         ==> 创建命令块。
竖杠(|)        ==> 管道标示符
< > &        ==> 重定向表示符
* ? [ ] !           ==> 表示模式匹配
&        ==> 命令后台执行
$        ==>变量名的开头
#        ==> 表示注释(第一行除外)
空格、制表符、换行符==> 当做空白
页: [1]
查看完整版本: 014-Shell编程之01基础知识