linux图形界面注销时不调用.bash_logout吗,【linux之bash】

bash的发展

1974年 贝尔实验室 Bourne Bourne Shell --> Bsh.sh

1978年 berke bill jey C shell --> Csh tcsh

80年代初,贝尔实验室 Korn korn shell -->Ksh

1983年左右,基于bsh和ksh开发了bourne-again shell --> bash 红帽里面默认使用的shell

查看当前系统支持的shell类型

cat /etc/shells

# List of acceptable shellsfor chpass(1).

# Ftpd will not allow users to connectwhoare not using

# one of these shells./bin/bash/bin/csh/bin/ksh/bin/sh

/bin/tcsh

#/bin/zsh

bash1.命令历史,命令补全2.管道,重定向3.命令别名4.命令行编辑5.命令行的展开6.文件名的通配7.变量的设定8.编程

bash的命令历史记录

每个用户的家目录里面,有一个隐藏文件叫.bash_history

默认情况下,内存中的命令历史不会自动的存放到文件中,除非注销或重启

history 查看命令历史记录

-c:清空命令历史缓冲区

-w:手动的将历史缓冲区保存至文件

!1 :执行曾经执行过的第一条命令

命令补全

TAB键(由于shell中包含的PATH变量才能命令补全)

单击TAB建:补全唯一存在的命令

双击TAB建:命令参数在不唯一情况下为我们提供选择列表

echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

ESC+. 把上一个命令执行的最后一个参数补全(不同时按)

!$ : 把上一个命令执行的最后一个参数补全

ALT+. :在终端上有效。如上功能(同时按下)

管道

连接两个命令的通道,将前面命令的输出结果作为后面命令的执行条件或参数来使用

管道的符号: |

所有参与管道连接的命令一般都必须有输出结果,否则没有意义

命令的别名

自定义命令

alias

定义一个命令的别名;查看当前所有已经定义的别名

unalias

取消一个定义过的命令的别名

在设置命令别名的时候,使用命令来实现的会立即生效,但是注销后失效

alias cp='cp -i'

写入.bashrc,永久生效

开关机

注销: exit ,logout ,ctrl+d

重启: shutdown -r (now,0,+#,12:00) , reboot , init 6

关机: shutdown -h (now,0,+#,12:00), poweroff,halt,init 0

I/O重定向

文件描述符

0:标准输入:从键盘输入

1:标准输出:到显示器上的输出

2:标准错误:到显示器的错误消息

输入重定向

符号:<

输出重定向

符号:> (覆盖输出重定向)

>>(追加输出重定向)

<<:here document>

cat << EOF > test.txt

das

sdas

sadas

EOF

错误重定向 2>, 2>>

/dev/null 黑洞设备

echo $? 用来描述上一条命令是否成功执行,如果成功执行,返回值为0;如果执行失败,返回值为1-127间的正整数。1,2,127被系统保留,其他我们可以自己定义

&>:同时重定向(错误输出重定向)

一个命令在执行之后,有两个返回值,

1.命令执行结果返回值

2.命令执行状态返回值

创建文件

> new.txt

echo > new.txt

BASH中的特殊符号 man 7 glob

1.文件名通配符*:通配绝大多数的多个字符(文件名最开始的.无法通配)。任意多个任意字符

?:通配除了文件名开头的.以外的任意单个字符

[]:通配任意指定范围内的单个字符(不允许包括特殊符号)^:脱字符,取反,不包括,跟中括号配合使用:

[:alpha:]:不区分大小写的字母,大写和小写字母

[:lower:]:小写字母

[:upper:]:大写字母

[:digit:]:数字

[:alnum:]:大写字母、小写字母和数字

[:space:]:空格

[:punct:]:特殊符号ls *[[:space:]]*中间带空格ls *[^[:digit:]]2.各种引号"":弱引用符号,正常进行变量代换'':强引用符号,不进行变量替换

``:shell将反引号引用的内容当作命令优先执行,也叫命令替换 相当于$(命令)3.反斜线

转义字符,将其后一个字符转义为普通字符4.逻辑操作符1) &&-逻辑与

命令1&&命令2

如果命令1的执行状态返回值为假,则命令2不执行

如果命令1的执行状态返回值为真,则命令2执行

只要前面为假,整个结果一定为假

只要前面为真,整个结果取决于后者

只要前面为假,后面不再判断mkdir /bin && cd /bin2)||-逻辑或

只要一个结果为真,整个结果就是真

只要判断一个结果为真,后面不再判断

如果命令1的执行状态返回值为假,则命令2执行rm -rf /china || cd /

3)!-逻辑非

! 命令:将命令的执行状态返回值取反

!ls /china && mkdir /china

注意:!后面必须有空格,若不加空格就是读取命令缓冲区

!改变的是命令的执行状态返回值4) :-并列

变量的设定

bash的环境变量配置文件

从作用生效范围来划分,有两类

全局配置文件

/etc/profile /etc/bashrc /etc/profile.d/*.sh

用户个人配置文件(用户家目录下)

.bash_profile .bashrc

从配置文件的功能来将,有两类

profile类

设置全局变量,执行命令或脚本

bashrc类

设置本地变量,定义命令的别名

登录式shell

①su - | -l | --login USERNAME 的加载顺序

/etc/bashrc-->/etc/profile.d/*.sh

②从终端正常登录配置文件加载顺序:/etc/profile->/etc/profile.d/*.sh->-/.bash_profile->-/.bashrc->/etc/bashrc

非登录式shell

①su USERNAME

②在图形界面中打开的终端窗口

配置文件加载顺序:

/etc/profile->/etc/profile.d/*.sh->-/.bashrc

/etc/profile的作用:

USER变量;

LOGNAME变量;

MAIL变量;

PATH变量;

HOSTNAME变量;

HISTSIZE变量;

umask;

调用/etc/profile.d/*.sh

.bash_profile的作用

调用了.bashrc文件

在PATH变量后面加入了“:$HOME/bin”这个目录

.bashrc的作用

定义默认的别名

调用/etc/bashrc

注销时生效的环境变量配置文件

.bash_logout

历史记录配置文件

.bash_history

shell登录信息

本地终端欢迎信息:/etc/issue

alt + F2 切换终端

远程终端欢迎信息:/etc/issue.net

转义字符不能使用,是否显示此欢迎信息由SSH的配置文件

/etc/ssh/sshd_config决定,加入“Banner /etc/issue.net

才能显示(记得重启SSH服务)

service sshd restart

登陆后欢迎信息:/etc/motd

不管是本地登录,还是远程登录,都可以显示此欢迎信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值