shell 操作环境

.路径与命令查找顺序

    命令的运行程序可以这样看:

    1.以相对/绝对的路径执行命令,例/bin/lsls

    2.由alias乍到该命令来执行

    3.由bash内置的(builtin)命令来执行

    4.通过$PATH这个变量的顺序找到的第一个命令来执行

    例如,执行/bin/ls与ls这两个命令来查看,会发现ls由颜色,而/bin/ls没有颜色,因为/bin/ls会直接采用该命令来执行,而ls会因为alias别名而先使用,如果西那个要了解命令查找的顺序,其实通过type -a ls也可以查询

 

.bash的登陆与欢迎信息:/etc/issue,/etc/motd

 

[root@server3 ~]# cat /etc/issue

s

Kernel on an m

 

            issue内的各代码意义

    d      本地端时间的日期

    l      显示地几个终端机接口

    m      显示硬件的等级

          显示主机的网络名称

    o      显示 domain name

          显示操作系统的版本

          显示本地端时间的时间

    s      操作系统的名称

    v      操作系统的版本

 

如果希望用户在登陆时可以获取一些信息,可以将信息加入/etc/motd中

[root@server3 ~]# cat /etc/motd

welcome

 

 

[kiosk@foundation8 ~]$ ssh root@172.25.8.3

root@172.25.8.3's password:

Last login: Mon Jan 14 19:23:32 2019 from 172.25.8.250

welcome

[root@server3 ~]# cat /etc/issue

 

.终端机的环境设置:stty,set

 

stty

格式: stty 【-a】

-a:将目前所有的stty参数列出来

root@server3 ~]# stty -a

speed 38400 baud; rows 15; columns 79; line = 0;

intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;

eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;

werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

......

 

在上面列表中,需要注意的时特殊字体的几个,如果出现^表示【ctrl】的意思。几个重要的代表意义是:

    eof:End of file的意思,代表结束输入

    erase:向后删除字符

    intr:送出一个interrupt(中断)的信号给目前正在运行的程序

    kill:删除目前命令上的所有文字

    quit:送出一个quit的信号给目前正在运行的程序

    start:在某个程序停止后,重新启动它的输出

    stop:停止目前屏幕的输出

    susp:送出一个terminal stop的信号给正在运行的进程

 

例:

*设置用ctrl+h进行字符的删除

    stty erase ^h

 

 

 

set

格式:set 【-uvCHhmBx】

-u:默认不启用,若启用后,当使用未设置变量时,会显示错误信息

-v:默认不启用,若启用后,在讯息被输出前,会显示信息的原是内容

-x:默认不启用,若启用后,在命令被执行前,会显示命令内容(前面由++号)

-h:默认启用,与历史命令有关

-H:默认启用,与历史命令有关

-m:默认启用,与工作管理有关

-B:默认启用,与括号【】的作用有关

-C:默认不启用,使用>等时,若文件存在时,该文件不会被覆盖

 

 

bash默认组合键介绍

 

    组合按键    执行结果

    Ctrl+C          终止目前的命令

    Ctrl+D          输入结束(EOF),例如由检结束的时候

    Ctrl+M          就是Enter

    Ctrl+S          暂停屏幕的输出

    Ctrl+Q          恢复屏幕的输出

    Ctrl+U          在提示符下,将整行命令删除

    Ctrl+Z          暂停目前的命令

 

.通配符与特殊符号

 

常用通配符介绍

    符号        意义

    *           代表0到无穷多各任意字符

    ?          代表一定有一个任意字符

    []          同样代表一定有一个在中括号内的字符(非任意字符)。*1

    [-]         若有减号在中括号内,代表在编码顺序内的所有字符*2

    [^]         若中括号内的第一个字符为指数符号(*),那表示原向选择*3

 

*1:例如[abcd]代表一定有一个字符,可能是a,b,c,d这四个任何一个

*2:例如[0-9]代表0到9之间的所有数字,因为数字的语系编码是联系的

*3:例如[^abc]代表一定有一个字符,只要是非a,b,c的其他字符就接受的意思

 

特殊符号介绍

 

    符号        内容

    #           批注符号,这个最常被使用在script当中,视为说明,其后数                          据均不执行

               转义符号,将特殊字符或通配符还原成一般字符

    |           管道(pipe),分隔两个管道命令的界定

    ;          连续命令执行分隔符,连续性命令的界定

    ~          用户的主文件夹

    $           使用变量前导符,即是变量之前需要加的变量替代值

    &           作业控制,将命令变成背景下工作

    !          逻辑运算意义上的的意思

    /           目录符号,路径分隔的符号

    >,>>        数据流重定向,输出导向,分别是替换追加

    <,<<         数据流重定向,输入导向,

    ''          单引号,不具有变量置换的功能

    ""          双引号,具有变量置换的功能

    ``          两个`中间为可以先执行的命令,也可以使用$()

    ()          中间为子shell的开始与结束

    {}          在中间为命令块的组合

 

原文地址:https://www.cnblogs.com/zhengyipengyou/p/10269371.html