登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 455|回复: 0

Linux底子8-shell脚本之熟悉shell(连载中)

[复制链接]

216

主题

1

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2017-11-22 07:26:11 | 显示全部楼层 |阅读模式 来自 湖南长沙
UNxHXha3GNYrUH75.jpg
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




上一篇:秋裤导致中国人抗寒基因退化?这场“诡计”到底有没有乐成啊 ...
下一篇:学好Shell必备知识
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-16 10:57 , Processed in 0.139349 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表