美文网首页
Bash 入门(搬运)

Bash 入门(搬运)

作者: lekf123 | 来源:发表于2018-06-18 16:46 被阅读0次
  • 声明:
    内容系搬运自他人文章和自己整理
    不是完整教程,只是用到的几个点的记录
    好坏请自己甄别

参考文章和相关教程

[1]:Shell 入门指南


记录

终端(Bash)基本操作

作为执行 shell 脚本的程序,bash 的交互式版本有的时候甚至比 shell 本身还更常用,毕竟登录到远程服务器,面对的就是一个闪动的光标,也就是 bash 了。我们就先来了解一下 bash 基本的操作,这样在测试命令的时候就会方便许多。

所谓操作,其实就是各类快捷键,这里挑些常用的介绍一下,一句话:熟能生巧(这里为了显示的时候好看,字母都用大写,实际上操作的时候,用小写即可)

  • Tab 能够自动补全,从命令名称到文件夹到路径,多按两下还能出个列表方便我们输入,是居家旅行必备操作,如果只能记住一个快捷键,那么记住 Tab 即可
  • Ctrl+R 用来搜索,按下之后就可以输入搜索的关键词,再按一次 Ctrl+R 可以切换到下一个匹配的结果,如果找到合适的,按下 Enter 就可以执行,按下 → 会把查询结果放到当前行,我们可以进行编辑
  • Ctrl+W 删除该行最后一个单词,至于怎么定义一个单词呢?常见的分隔符有 空格, _, ,, :, - 等等(基本上不是字母和数字就可以认为是分隔符)
  • Ctrl+U 删除整行
  • Ctrl+A 将光标移到行首
  • Ctrl+E 将光标移到行尾
  • Ctrl+K 删除从光标处到行尾的所有内容
  • Ctrl+L 清屏
  • 输入 history 可以查看命令行的历史
  • 输入 !$ 查看最后输入的参数
  • 输入 !! 查看上一条命令
  • 输入 cd - 可以回到上一个工作路径

如果想要设定 bash 的提示文本,需要修改 ~/.bashrc 中的 PS1 环境变量
好!

格式化输出/打印 printf

除了 echo 命令,我们其实还可以用 printf 命令来进行格式化输出,不过需要注意的是这里我们需要自己添加换行符,我们在脚本文件 test.sh 中添加如下三行:

printf "%-5s %-10s %4s\n" No. Name Score
printf "%-5s %-10s %4.2f\n" 1 wdxtub 99.9999
printf "%-5s %-10s %4.2f\n" 43 dawang 66.6566

然后我们执行一下,结果是:

$ ./test.sh
No.   Name       Score
1     wdxtub     100.00
43    dawang     66.66

这里能学到的套路是什么呢?

  • %s, %c, %d, %f 是格式替代符,就是和 C 语言一样的方式
  • %-5s 指明了一个左对齐且宽度为 5 的字符串,如果内容不足 5 个字符,则会以空格填充
  • %4.2f 表示保留两位小数可以看到是默认四舍五入的
  • 最后要加上 \n 才能正确换行

算术比较

条件通常被放置在封闭的中括号内,一定要注意 [ 和 ] 脸变有空格!如果我们需要进行算术比较,就需要使用如下的比较符号

-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-eq 等于
-ne 不等于
-a 逻辑与,例如 [ $var -ne 0 -a $var2 -gt 2 ]
-o 逻辑或,例如 [ $var -ne 0 -o $var2 -gt 2 ]

一个实际的例子:检测是否是超级用户

if [ $UID -ne 0 ]; then
    echo "你不是超级用户(root),请以 root 身份运行"
else
    echo "当前是超级用户"
fi

条件流程

比较常用的就是 if 的套路,格式为

if condition;
then
    commands;
elif condition;
then
    commands;
else
    commands
fi

如果觉得这样写太长,可以利用逻辑操作与短路原理来进行编写

# 如果 condition 为真,则执行 action
[ condition ] && action;  
# 如果 condition 为假,则执行 action
[ condition ] || action;

函数

函数的定义和非常简单,比如

function foo()
{
   echo "Arguments work just like script arguments: $@"
   echo "And: $1 $2..."
   echo "This is a function"
   return 0
}

也可以省略 function 关键词,比如

bar ()
{
   echo "Another way to declare functions!"
   return 0
}

执行的话,直接输入函数名即可,比如

foo
bar
foo hello world

相关文章

  • Bash 入门(搬运)

    声明:内容系搬运自他人文章和自己整理不是完整教程,只是用到的几个点的记录好坏请自己甄别 参考文章和相关教程 [1]...

  • bash入门

    1、设计一个shell脚本,在/userdata目录下建立10个目录,即user1~user50,并设置每个目录的...

  • BASH入门

    1.变量定义 变量=变量内容 如myName=Jocelyn知识点如下: 等号连边不能有空格 变量只能以英文开头,...

  • bash入门

    Bourne-Again SHell; Born Again SHell Introduction 写作“入门”,...

  • git 命令

    bash入门(了解) bash是许多linux系统默认的shell(命令行工具)。 cmd和powershell是...

  • Zsh 入门和介绍

    Zsh 入门和介绍 Zsh 兼容 Bash,据传说 99% 的 Bash 操作 和 Zsh 是相同的 Zsh 官网...

  • Bash脚本编程(2)——编程入门

    @(Bash)[编程入门] 1. Bash中的变量 1.1 变量类型 字符型 数值型 整型 浮点型 语言类型: 强...

  • Bash入门笔记

    本猫工作之前除了基本的cd, ls, cat, less之外,基本上没见过bash。于是开始工作之后果断跪了,当了...

  • 20170805bash学习

    bash学习 参考 Linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)Linux 入门公开课...

  • 1. 在windows环境下安装nodejs

    1)下载nodejs入门级操作工具--git bash git bash:百度搜索即可搜到哦~ link:http...

网友评论

      本文标题:Bash 入门(搬运)

      本文链接:https://www.haomeiwen.com/subject/hhmneftx.html