龙空技术网

Linux基础8-shell脚本之认识shell(连载中)

运维阿文 771

前言:

此刻姐妹们对“centos65删除”大概比较关怀,兄弟们都想要知道一些“centos65删除”的相关内容。那么小编同时在网络上网罗了一些关于“centos65删除””的相关内容,希望兄弟们能喜欢,大家快快来学习一下吧!

1. 建立和运行shell程序

什么是shell程序呢? 简单的说shell程序就是一个包含若干行

shell或者linux命令的文件.

象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.

在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整的程序文件.

执行shell程序文件有三种方法

(1)#chmod +x file

(2)#sh file

(3)# . file

在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#!/bin/bash

Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。

shell脚本的基本元素

#!<命令解释器># --为注示shell命令流程控制(if/for/while/case/function)

为什么使用shell

解决重复操作的作业节约时间,提高工作效率功能强大不需要编译

shell通配符

? 任意单个字符,不能匹配空* 任意零个或多个字符组(不能匹配以点开头的文件)[ab] a或者b[a-z] a到z之间的任意字符,包括端点在内是Shell 而非命令本身处理通配符,命令后的通配符会在命令执行前就被代换了如果需要命令而非Shell处理通配符,请用“\"将通配符转义,跳脱字符

bash中的引号

双引号 “ ” :允许通过$符号引用其他变量值,会把引号的内容当成整体来看待单引号 ‘ ’ :禁止引用其他变量值,shell中特殊符号都被视为普通字符,会把引号的内容当成整体来看待反撇号 `` : 会把命令执行的结果输出$() 在执行命令的过程中会优先执行; 连续执行命令&& 可对一行命令进行分割,在执行过程中考虑上一个命令执行是否是正确的|| 可对一行命令进行分割,在执行过程中不考虑上一个命令执行是否是正确的! 命令历史# echo "This system is "HOSTNAME""This is system is HOSTNAME# echo "This system is "$HISTNAME""This is system is# echo "This system is "$HOSTNAME""This is system is desktop8.example.com# echo 'This system is "$HOSTNAME"'This is system is "$HOSTNAME"[root@desktop8 ~]# echo $5.005.00[root@desktop8 ~]# echo \$5.00$5.00echo `ls`cat aaa.sh ``# 将cmd1执行结果作为cmd2参数,再将cmd2结果作为cmd3的参数echo $(cat $(ls))cmd3 $(cmd2 $(cmd1))echo `cat ddd`ls``ls && cat dddlsa || cat ddd

运算符

 $(()) :运算符 $[]# a=$((1 + 10))# echo $a# a=$[1 + 100]# echo $a[root@vagrant-centos65 data]# aaa=$((10-1))[root@vagrant-centos65 data]# echo $aaa9[root@vagrant-centos65 data]# aaa=$((10*1))[root@vagrant-centos65 data]# echo $aaa10[root@vagrant-centos65 data]# aaa=$((9/3))[root@vagrant-centos65 data]# echo $aaa3[root@vagrant-centos65 data]# aaa=$((9%3))[root@vagrant-centos65 data]# echo $aaa0[root@vagrant-centos65 data]# aaa=$((9**3))[root@vagrant-centos65 data]# echo $aaa729

shell的配置文件(软件+配置文件)

用户加载shell配置流程:

user01-->login-->bash-->/etc/profile-->$HOME/.bash_profile-->$HOME/.bashrc-->/etc/bashrc

全局配置文件

/etc/profile --bash工作环境的配置(环境变量)export i=11/etc/profile.d/*.sh --/etc/profile的扩展配置文件/etc/bashrc --bash的配置文件针对每个用户的配置文件:$HOME/.bash_history --存放命令历史$HOME/.bash_logout --注销/退出shell的时候执行的脚本$HOME/.bash_profile$HOME/.bashrc

常用的几个命令

ctrl + u --删除当前光标至行首内容ctrl + c --中断ctrl + l --清屏ctrl + a --跳到行首 HOMEcrtl + e --路到行尾 ENDctrl + r --快速搜索history命令ctrl + z --转入后台运行 fg bgCtrl + d --退出shell,logout↑(Ctrl+p) 显示上一条命令↓(Ctrl+n) 显示下一条命令

alias --查询系统中所有已经存在的别名

alias 别名=‘真名’unalias --取消系统中的别名unalias 别名unalias -a 删除所有的别名临时: alias la='ls -a'固定:可以写至以下文件,定义完成需要使用source来刷新,或者注销重新登录用户:/etc/profile$HOME/.bash_profile$HOME/.bashrc/etc/bashrc/etc/profile.d/*.sh

历史命令

history 查询当前用户用过的所有命令历史(内存)history -w 同步内存中的命令至硬盘($/HOME/.bash_history) 自动同步:exit/注销echo "" > $HOME/bash_history --清空命令历史调用命令历史: !101 通过编号 !! 调用最后一条命令历史 !vim 调用离我最近一条以vim开头的命令历史 !$ 调用最后一条命令历史中的参数 命令字 + [选项] + 参数 ls -l / ctrl + r 查找命令历史

bash的特殊符号

标准输入 0标准正确输出(屏幕)  1错误输出 (屏幕) 2 > --输出覆盖重定向 >> --输出追加重定向 2> --错误覆盖输出重定向 2>> --错误追加输出重定向 &> --输出正确/错误重定向 &>> --RHEL6可以实现正确和错误追加重定向。 >> --- 2>&1 rhel5# cat /root/a2.txt /root &> a.txt --将正确和错误一起覆盖重定向至a.txtcat /root/a2.txt /root >> a.txt 2>&1 --将正确和错误一起追加重定向至a.txt[root@i ~]# ls /ttttt /etc/passwd- >1.txt 2>2.txt && &>3.txt

标签: #centos65删除