linux输入特殊符号密码,Linux-shell操作环境和通配符及特殊符号

7.Shell

7.4  Bash Shell的操作环境

7.4.1路径与指令搜寻顺序

n以相对/绝对路径执行指令,例如『 /bin/ls 』或『 ./ls 』;

n由 alias 找到该指令来执行;

n由 bash 内建的 (builtin) 指令来执行;

n透过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。

7.4.2 bash的进站与欢迎讯息: /etc/issue, /etc/motd

1.进站信息/etc/issue(登录前的信息)

[root@localhost Desktop]# cat /etc/issue

\S

Kernel \r on an \m

#实际效果如下:

923331c30a86a39e8a83657c50d4449b.png

#各符号含义如下:

l\d 本地端时间的日期;

l\l 显示第几个终端机接口;

l\m 显示硬件的等级 (i386/i486/i586/i686...);

l\n 显示主机的网络名称;

l\O 显示 domain name;

l\r 操作系统的版本 (相当于 uname -r)

l\t 显示本地端时间的时间;

l\S 操作系统的名称;

l\v 操作系统的版本。

2.欢迎信息/etc/motd(登录后的信息)

4168caf9c58a05dd82bb80c6a91b5b37.png

修改/etc/motd内容。

[root@localhost Desktop]# vim /etc/motd

7ebbdd9f28971345df1690bb2ddd2cb3.png

#保存退出后,再次进文本模式登录。

d6946ee676ef21453f2dc53d159e9b73.png

3.login shell与 non-login shell

nlogin shell:取得 bash 时需要完整的登入流程的,就称为 login shell。举例来说,你要由 tty1 ~ tty6 登入,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰;

nnon-login shell:取得 bash 接口的方法不需要重复登入的举动。

u以 X window 登入 Linux 后,再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。

u在原本的 bash 环境下再次下达 bash 这个指令,同样的也没有输入账号密码,那第二个 bash (子程序) 也是 non-login shell 。

(1)login shell

一般来说,login shell 其实只会读取这两个配置文件:

l/etc/profile:这是系统整体的设定,你最好不要修改这个档案;

l~/.bash_profile或 ~/.bash_login或 ~/.profile:属于使用者个人设定,你要改自己的数据,就写入这里!三个文件按顺序读取找到的第一个。

52fdcef9d64ce9d69e492c72af99456e.png

(2)non-login shell

当你取得 non-login shell 时,该 bash 配置文件仅会读取 ~/.bashrc而已!

4.其他文件

(1)/etc/man_db.conf

档案的内容『规范了使用 man 的时候, man page 的路径到哪里去寻找!』所以说的简单一点,这个档案规定了下达 man 的时候,该去哪里查看数据的路径设定!

(2)~/.bash_history

默认的情况下,我们的历史命令就记录在这里啊!而这个档案能够记录几笔数据,则与 HISTFILESIZE 这个变数有关啊。每次登入 bash 后,bash 会先读取这个档案,将所有的历史指令读入内存,因此,当我们登入 bash 后就可以查知上次使用过哪些指令啰。

(3)~/.bash_logout

这个档案则记录了『当我注销 bash 后,系统再帮我做完什么动作后才离开』的意思。

[root@localhost ~]# vim .bash_logout

#在其中添加如下行:

echo "gun!"

#保存退出。

[calf@localhost ~]$ su -

Last login: Tue Apr 14 05:28:48 EDT 2020 on pts/0

[root@localhost ~]# exit

logout

gun!

7.4.5通配符与特殊符号

1.通配符符号意义

*代表『 0 个到无穷多个』任意字符

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

[ ]同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』

[ - ]若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!

[^ ]若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。

[root@localhost ~]# ls /etc/c*   #显示/etc下以c开头的文件

[root@localhost ~]# ls ??????   #显示当前目录下名字为6个字符的文件

[root@localhost ~]# ls [a-z]*       #显示当前目录下以小写字母开头的文件

[root@localhost ~]# ls /dev/*[0-9]*      #显示/dev下文件名含有数字的文件

[root@localhost ~]# ls [^0-9]*        #显示当前目录下不是以数字开头的文件

2.特殊符号符号内容

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

\跳脱符号:将『特殊字符或通配符』还原成一般字符

|管线 (pipe):分隔两个管线命令的界定(后两节介绍);

;连续指令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)

~用户的家目录

$取用变数前导符:亦即是变量之前需要加的变量取代值

&工作控制 (job control):将指令变成背景下工作

!逻辑运算意义上的『非』 not 的意思!

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

>, >>数据流重导向:输出导向,分别是『取代』与『累加』

' '单引号,不具有变量置换的功能 ($ 变为纯文本)

" "具有变量置换的功能! ($ 可保留相关功能)

` `两个『 ` 』中间为可以先执行的指令,亦可使用 $( )

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值