Shell基础

Shell概述

  • Shell是一个命令行解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序。
  • Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用linux系统命令。

Shell的分类

  • Bourne Shell:从1979起来Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。现在基本不用sh。
  • C Shell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。

补充1:
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh,ksh,Bash,psh,zsh;C家族主要包括csh,tcsh。
现在linxu中的标准Shell是Bash。

补充2:
Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。

脚本执行方式

  • 赋予执行权限,直接运行:
./hello.sh
  • 通过Bash调用执行脚本
bash hello.sh

Bash的基本功能

输出命令:echo

格式:echo [选项] [输出内容]

选项:
-e:支持反斜杠控制的字符转换

实例:

echo -e "\e[1;31m test \e[0m"

分析:
\e:调用颜色
[1;:开启颜色选项
\e[0m:关闭颜色
31m:红色
30m:黑色 31m:红色 32m:绿色 33m:黄色 34m:蓝色 35m:洋红 36m:青色 37m:白色

输入重定向:wc

格式:wc [选项] [文件名]

选项:
-c:统计字节数
-w:统计单词数
-l:统计行数

实例:

$ wc -w detail.js
1614 detail.js
管道符:";"

格式:命令1; 命令2
用途:多个命令顺序执行,命令之间没有任何逻辑联系

管道符:"&&"

格式:命令1 && 命令2

用途:逻辑与
当命令1正确执行,则命令2才会执行
当命令1执行不正确,则命令2不会执行

管道符:"||"

格式:命令1 || 命令2

用途:逻辑或
当命令1执行不正确,则命令2才会执行
当命令1执行正确,则命令2不会执行

管道符:"|"

格式:命令1 | 命令2

用途:
命令1的正确输出作为命令2的操作对象
如果命令1出错,命令2不会执行

通配符

?:匹配一个任意字符
*:匹配0个或任意多个任意字符,也就是匹配任何内容
[]:匹配中括号中任意一个字符。
[-]:匹配中括号中任意一个字符,-代表范围。
[^]:逻辑非,表示匹配不是中括号内的一个字符。

其他特殊符号
''  单引号。在单引号中所有的特殊符号,如"$"和"`"(反引号)都没有特殊含义
""  双引号。在双引号中所有的特殊符号都没有特殊含义,但是"$","`","\"是例外,拥有“调用变量的值”,"引用命令"和"转义符"的特殊含义。
$()  和反引号作用一样,用来引用系统命令
#  注释
$  用于调用变量的值,如需要调用变量name的值是,需要用$name的方式得到变量的值
\  转义符,跟在\之后的特殊符号将会失去特殊含义,变为普通字符。如\$将输出"$"符号,而不当作是变量引用。
快捷键

ctrl + c:强制终止当前命令
ctrl + l:清屏
ctrl + a:光标移动到命令行首
ctrl + e:光标移动到命令行尾
ctrl + u:从光标所在位置删除到行首

应用

  1. 统计当前目录下,js文件的数量
    find . -name "*.js" |wc -l
  2. 统计当前目录下,所有js文件的代码行数
    find . -name "*.js" |xargs cat|wc -l
    xargs cat:会把前面所有的文件内容一次性读取出来
  3. 统计当前目录下,所有js文件代码行数(过滤空行)
    find . -name "*.js" |xargs cat|grep -v ^$|wc -l
  4. 统计当前目录下,所有js文件中包含aaa的代码行数
    find . -name "*.js" |xargs cat|grep aaa|wc -l
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351