继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第8天 shell基础(上)

小白兔1215
关注TA
已关注
手记 55
粉丝 3
获赞 2

课程名称Linux达人养成计划 I
章节名称第9章 Shell基础
讲师名称Tony

课程内容

  • shell 概述
  • 脚本执行方式
  • 别名与快捷键
  • 历史命令

课程收获

shell 概述

shell

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

shell 脚本

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。

shell 环境

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)

  • Bourne Again Shell(/bin/bash)

  • C Shell(/usr/bin/csh)

  • K Shell(/usr/bin/ksh)

  • Shell for Root(/sbin/sh)

  • 等等

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。

#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

echo 命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

echo string

示例:

// 显示普通字符串
echo "It is a test"

// 显示转义字符
echo "\"It is a test\""

//显示变量
#!/bin/sh
read name 
echo "$name It is a test"

//显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"

//显示结果定向至文件
echo "It is a test" > myfile

//原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'

//显示命令执行结果
echo `date` //这里使用的是反引号 `, 而不是单引号 '。

脚本执行方式

1、作为可执行程序
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
/bin/php test.php

别名与快捷键

Linux alias命令用于设置指令的别名。用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。

alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.bshrc中设定指令的别名。

alias[别名]=[指令名称]

Linux unalias命令用于删除别名。unalias为shell内建指令,可删除别名设置。

别名永久生效
//1、写入环境变量配置文件
vi ~/.bashrc
//2、不重启,直接生效
source ~/.bashrc

命令的执行顺序

  • 第一顺位执行用绝对路径或相对路径执行的命令。

  • 第二顺位执行别名。

  • 第三顺位执行Bash的内部命令。

  • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

常用快捷键

快捷键 作用
ctrlt + c 强制终止当前命令
ctrl + l 清屏
ctrlt + a 光标移动到命令行首
ctrlt + e 光标移动到命令行尾
ctrlt + u 从光标所在位置删除到行首
ctrlt + z 把命令放入后台
ctrlt + r 在历史命令中搜索

历史命令

histor y命令来自于英文单词历史,其功能是用于显示与管理历史命令记录。Linux 系统默认会记录用户所执行过的所有命令,可以使用 history 命令查阅它们,也可以对其记录进行修改和删除操作。

# 将本次缓存区信息写入到历史文件中(~/.bash_history)
history -w

# 清空本次缓冲区及历史文件中的信息
history -c 

# 将历史文件中的信息读入到当前缓冲区中
history -r  

# 将本次缓冲区信息追加写入到历史文件中(~/.bash_history)
history -a

# !+关键字  执行最后一条以关键字开头的命令
service network restart
!ser

打卡截图

xTNYyd.md.png

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP