zoukankan      html  css  js  c++  java
  • shell基础之脚本执行,命令别名以及快捷键等

    脚本执行方式

    比如我们在/root/下编写了一个脚本,名字为hello.sh。那么怎么调用执行它呢?有两种办法:

    (1)直接通过bash,如下:

    bash  hello.sh

    注:采用bash执行脚本,不需要赋予执行权限。但是这不符合习惯,一般不推荐使用。

    (2)先赋予权限,然后直接调用:

     

    chmod   755   hello.sh

    /root/hello.sh

    注:上面的第一句就是为脚本赋予权限,第二句就是执行命令。一般推荐这种执行方式。

    ===============================================================================================================

    别名

    在shell中有时候命令很长,也有时候我们想用新的命令覆盖原来的命令,这个时候就会用到命令别名。下面就系统的讲一讲

    这个关于别名的一些知识。

    (1)查看系统中存在的别名

    很简单,一个命令搞定: alias

    例如我的系统中的命令别名都有如下一些:

     

    比如ll是命令“ls  -l  --color=auto”的别名

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    (2)编辑自己的别名

    也很简单,语法就是:

    alias  命令别名 = ‘原命令名’

    注意:是单引号。而且一般命令别名与原来命令名不一样。但是如果你想覆盖原来的命令,就可以命令成一样的。

    比如,我想新增加一个命令别名,让输入命令vi的时候,实际上执行的是vim命令。就可以如下操作:

     

    通过上面,在用alias查看系统中存在的命令别名的时候,多了vi。以后我们再调用命令vi,实际执行就是vim命令。

    但是,请注意,使用alias生成的别名只是临时有效的,即系统退出后再进入就无效。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    那么怎么生成永久的别名呢?

    其实也很简单,比如我们现在的位置在/root/,那么只需要编辑文件/root/.bashrc即可。

    首先我们来看一下这个文件,利用vim /root/.bash.rc命令即可,如下截图:

     

    上面就是当前系统中存在的所有命令别名,现在我们只要将自己的命令别名加入进去即可。比如如下:

     

    可以看到,我新加了vi=’vim’这个命令别名。

    然后再执行source  /root/.bashrc  命令即可立即生成,如果你不想立即生效,可以重启后生效。总之这种

    添加别名的方式是永久的。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    (3)删除别名

    删除别名的也很简单,如下:

    unalias  命令别名

    注意:这种删除方式也是临时有效的,即当前系统中这个别名失效了。如果重启后,这个别名还是有效的。原因就是

          /root/.bashrc中的别名没有真正删除的(如果你在这个文件中编辑了这个别名)。你可以运行alias看一下,发现

          别名已经被删除,但是运行vim /root/.bashrc发现.bashrc中的别名还存在。因此只有删除了.bashrc中的别名,

          才真正删除了这个别名(当然如果你没有在.bashrc中编辑这个别名就无所谓了)

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    (4)命令生效的顺序

    在命令覆盖的时候(即别名和原来的命令名相同),例如我们上例中vi=’vim’就覆盖掉了系统原来的命令vi,你肯定有疑问

    为什么不会再去调用原来的命令了呢?明明都是一样的名字啊。其实这是Linux中规定的命令生效顺序。下面介绍Linux中的

    命令有效的顺序。

    先后顺序如下:

     

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

     

    第二顺位执行别名

     

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

     

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

    我们发现别名的执行级别还是挺高的哈。好了,关于别名的知识就讲到这里。

    ===============================================================================================================

    快捷键

    我们记住下面的常用快捷键即可,没有什么好说的。如下:

     

    ctrl+c      强制终止当前命令

     

    ctrl+l      清屏

     

    ctrl+a     光标移动到命令行首

     

    ctrl+e     光标移动到命令行尾

     

    ctrl+u     从光标所在位置一直删除到行首

     

    ctrl+z     把命令放入后台

     

    ctrl+r     在历史命令中搜索

     

    ===============================================================================================

    历史命令

    history   [选项]    [历史命令保存文件]

    选项:

    -c    清空历史命令

    -w    把缓存中的历史命令写入历史命令保存文件”~/.bash_history”

    如果你在命令行只输入命令history,就是查看当前的所有历史命令(包括你之前登录的和当前登录的)

    如果你在命令行只输入命令history  -c ,则会删除当前登录的所有历史命令。

    如果你输入命令 history -w  ,就会把当前的历史命令写入~/.bash_history文件中。

    注意:.bash_history这个文件只会保存之前登录的历史命令,当前登录只有退出后才会将历史命令

          写入这个文件。因此使用选项 -w可以立即写入。

    =======================================================================================================

    自动补全

    shell中自动补全只要你按下Tab键即可。如果按下去没有自动补全,说明有多种补全方式,你再按一下Tab键,就会

    将多种补全方式显示出来,这样子你就可以选择适合自己的补全方式了。

  • 相关阅读:
    Minimum Depth of Binary Tree leetcode java
    Maximum Depth of Binary Tree leetcode java
    Symmetric Tree leetcode java
    Same Tree leetcode java
    Binary Tree Postorder Traversal leetcode java
    Binary Tree Preorder Traversal leetcode java
    Binary Tree Inorder Traversal leetcode java
    Combinations leetcode java
    一键清除Centos iptables 防火墙所有规则
    阿里云centos7.7x64安装open,并配置ip转发和nat伪装
  • 原文地址:https://www.cnblogs.com/fuly550871915/p/4961903.html
Copyright © 2011-2022 走看看