git bash操作指南_Bash的系统管理员指南

git bash操作指南

每个交易都有最常使用该交易的工具。 对于许多系统管理员来说,该工具就是他们的shell 。 在大多数Linux和其他类似Unix的系统上,默认shell是Bash。

Bash是一个相当古老的程序,它起源于1980年代后期,但是它建立在许多更老的shell之上,例如C shell( csh ),很早就已经十年了。 因为外壳的概念太旧了,所以有大量的奥术知识需要等待使用,以使系统管理员或gal的生活变得更加轻松。

让我们看一些基本知识。

举手

我很确定我们很多人曾经是那个家伙或女孩。 非常痛苦。 这里有一些非常简单的技巧,可以防止您再次撞到那块石头。

使用别名

首先,为指向mv -Irm -I命令mvrm设置别名。 这将确保运行rm -f /boot至少要求您进行确认。 在Red Hat Enterprise Linux中,如果您使用root帐户,则默认情况下会设置这些别名。

如果您也想为普通用户帐户设置这些别名,只需将这两行放在主目录中的.bashrc文件中(它们也将与sudo一起使用):


   
   
alias mv = 'mv -i'
alias rm = 'rm -i'

使您的root提示脱颖而出

可以防止发生意外的另一件事是,确保您在使用root帐户时有所了解。 通常,我可以通过使根提示符与我在日常日常工作中使用的提示符非常好来做到这一点。

如果将以下内容放到root的主目录中的.bashrc文件中,您将看到一个根目录提示,该提示是红色的黑色,这使您(或其他任何人)应谨慎行事。

 export PS1 = "\[ $(tput bold) $(tput setab 0) $(tput setaf 1) \]\u@\h:\w # \[ $(tput sgr0) \]" 

实际上,您应该避免尽可能以root用户身份登录,而是通过sudo运行大多数sysadmin命令,但这是另一回事。

已经实施了一些小技巧来帮助防止使用root帐户的“意外副作用”,让我们看一下Bash在日常工作中可以帮助您完成的一些工作。

控制您的历史

您可能知道,当您按Bash中的向上箭头键时,您可以看到并重复使用以前的所有(很多)命令。 这是因为这些命令已保存到主目录中的.bash_history文件中。 该历史记录文件附带了一堆非常有用的设置和命令。

首先,您可以通过输入history来查看整个最近的命令历史history ,或者可以通过输入history 30来将其限制为最后30条命令。 但这真是香草。 您可以更好地控制Bash保存的内容以及保存方式。

例如,如果将以下内容添加到.bashrc中,则所有以空格开头的命令都不会保存到历史记录列表中:

 HISTCONTROL =ignorespace 

如果您需要以明文形式将密码传递给命令,这将很有用。 (是的,这太可怕了,但仍然会发生。)

如果您不想在历史记录中显示频繁执行的命令,请使用:

 HISTCONTROL =ignorespace:erasedups 

这样,每次使用命令时,所有先前出现的命令都会从历史记录文件中删除,并且只有最后一次调用会保存到历史记录列表中。

我特别喜欢的历史记录设置是HISTTIMEFORMAT设置。 这将在历史记录文件中的所有条目前面加上时间戳。 例如,我使用:

 HISTTIMEFORMAT = "%F %T  " 

当我输入history 5 ,我会得到很好的完整信息,例如:


   
   
1009   2018 -06- 11 22 : 34 : 38   cat / etc / hosts
1010   2018 -06- 11 22 : 34 : 40   echo $foo
1011   2018 -06- 11 22 : 34 : 42   echo $bar
1012   2018 -06- 11 22 : 34 : 44   ssh myhost
1013   2018 -06- 11 22 : 34 : 55   vim .bashrc

这样一来,浏览我的命令历史记录和查找我两天前用来建立到我的家庭实验室的SSH隧道(我一次又一次,一次又一次地忘记了)的SSH通道变得容易得多。

最佳Bash做法

在编写Bash脚本时,我将以最佳实践(或者至少是良好的;至少我并不要求全知的)的前11名列表进行总结。

  1. Bash脚本可能变得复杂,注释也很便宜。 如果您不确定是否要添加评论,请添加评论。 如果您在周末之后返回,并且不得不花时间弄清楚上周五您想做什么,那么您忘记添加评论了。

  1. 将所有变量名用大括号括起来,例如${myvariable} 。 养成这种习惯可以使${variable}_suffix类的事情${variable}_suffix可能,并提高整个脚本的一致性。
  1. 评估表达式时,请勿使用反引号; 请改用$()语法。 因此使用:
     for  file in $ ( ls ) ; do  
     for  file in ` ls ` ; do  
    前一个选项是可嵌套的,更易于阅读,并且使一般的sysadmin用户满意。 不要使用反引号。
  1. 一致性很好。 选择一种处理方式,并在整个脚本中坚持使用。 显然,如果人们选择$()语法而不是反引号,并将变量包装在花括号中,我会更喜欢。 如果人们使用两个或四个空格(而不是制表符)来缩进,但我宁愿这样做,但即使您选择做错了,也要始终如一地做错。
  1. 为Bash脚本使用适当的shebang。 当我编写Bash脚本时,只打算用Bash执行它们,所以我经常使用#!/usr/bin/bash作为我的工具。 不要使用#!/bin/sh#!/usr/bin/sh 。 您的脚本将执行,但将在兼容模式下运行-可能会带来很多意想不到的副作用。 (当然,除非您需要兼容模式。)
  1. 比较字符串时,最好在if语句中引用变量,因为如果变量为空,则Bash会为以下行引发错误:
    
         
         
    if [ ${myvar} == "foo" ] ; then
      echo "bar"
    fi
    并针对以下行将其评估为false:
    
         
         
    if [ " ${myvar} " == "foo" ] ; then
      echo "bar"
    fi  
    另外,如果不确定变量的内容(例如,在解析用户输入时),请引用变量以防止某些特殊字符的解释,并确保将变量视为单个单词,即使它包含空格也是如此。
  1. 我想这是一个品味问题,但是即使在Bash中比较字符串时,我还是更喜欢使用双等号( == )。 这是一个一致性问题,即使(仅用于字符串比较)单个等号也会起作用,但我立即想到“单个等号是赋值运算符!”
  1. 使用正确的退出代码。 确保如果脚本无法执行某些操作,则向用户显示书面的失败消息(最好是解决问题的方法),并发送非零的退出代码:
    
         
         
    # we have failed
    echo "Process has failed to complete, you need to manually restart the whatchamacallit"
    exit 1
    这样可以更轻松地从另一个脚本中以编程方式调用您的脚本并验证其是否成功完成。
  1. 使用Bash的内置机制为变量提供合理的默认值,如果未定义您期望定义的变量,则抛出错误:
    
         
         
    # this sets the value of $myvar to redhat, and prints 'redhat'
    echo ${myvar:=redhat}
    
         
         
    # this throws an error reading 'The variable myvar is undefined, dear reader' if $myvar is undefined
    ${myvar:?The variable myvar is undefined, dear reader}
  1. 尤其是在编写大型脚本时,尤其是与他人一起使用大型脚本时,请在定义函数内部的变量时考虑使用local关键字。 local关键字将创建一个局部变量,该局部变量仅在该函数中可见。 这限制了冲突变量的可能性。
  1. 每个系统管理员有时都必须这样做:在控制台上调试某些东西,无论是数据中心中的实际设备,还是通过虚拟化平台进行的虚拟设备。 如果必须以这种方式调试脚本,您将感谢您记住这一点:不要将脚本中的行设置得太长!

    在许多系统上,控制台的默认宽度仍为80个字符。 如果您需要在控制台上调试脚本并且该脚本的行很长,那么您将是可悲的熊猫。 此外,具有较短行的脚本(默认仍为80个字符)在普通编辑器中也易于阅读和理解!

我真的很喜欢Bash。 我可以花一些时间来撰写相关文章,或者与其他爱好者交流一些不错的技巧。 确保在评论中删除您的收藏夹!

翻译自: https://opensource.com/article/18/7/admin-guide-bash

git bash操作指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值