第八章Linux shell基础知识预习笔记

8.1 shell介绍

每个用户都有自己bash  /bin/bash

if for while循环 ,特定语法

8.2 命令历史

按向上的方向键查看之前的命令,存放在用户的家目录下

root都存放载这个文件里/root/.bash_history

history 查看之前的命令,最大存1000条

是由环境变量$HISTSIZE配置的

系统内置的环境变量

history  -c 清空历史命令

/root/.bash_history下的命令是不会被删的

只有正常退出终端的时候才会被记录到.bash_history文件里面

修改这个值在/etc/profile配置文件下

修改完以后用souce /etc/profile或退出终端才会生效

更改历史命令格式

HISTTIMEFORMAT="%Y%m%d %H:%M:%S "

Y 年 m月 d日   H小时 M分钟 S秒 最后面有一个空格

永久生效写入到这个文件 /etc/profile 

永久保存命令,加上特殊权限a 只能追加,不能删除

正常退出终端exit  logout      如果没有正常退出的话,命令就保存的不全

!! 两个叹号代表执行最后一条命令

!21 代表执行命令历史中第21条命令(history)

!cha  代表执行命令历史中最近一次以cha开头的命令

8.3 命令补全和别名

tab键可以补全一个命令,文件路径,文件名

centos7 支持参数补全

yum install -y bash-completion 安装bash-completion就支持参数补全了

重启后生效

alias 自定义别名    alias restartnet='systemctl restart network.service'

用户家目录下配置别名的文件~/.bashrc 里面 

其他的别名在/etc/profile.d/下目录下定义的 

 unalias restartnet 取消自定义别名

8.4 通配符

* 通配符 匹配零个或多个字符

?匹配一个字符

ls [0-3].txt  指定一个范围0到3,也可以指定大小写字母a-z A-Z,

ls {1,2,3,4,a}.txt  花括号也可以指定,但是需要逗号分隔

8.5 输入输出重定向

cat 1.txt > 2.txt    一个大于号代表把1.txt的内容重定向到2.txt里面,把2.txt里面原来的内容删除了

cat 1.txt >> 2.txt    两个大于号代表把1.txt的内容追加到2.txt里面,不会删除原来的内容

2> 错误输出重定向   2>> 错误输出追加重定向

&> 是正确和错误输出的结合,把正确和错误的信息输入同一个文件

&>>  同样也支持追加重定向

ls [12].txt aaa.txt > 1.txt 2>a.txt  可以把正确和错误的输出信息重定向到不同的指定文件里面

> 正确  2>错误

wc -l < 1.txt 输入重定向,wc -l 是查看一个文件有多少行,前面必须是一个命令

ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了

ls 1.txt  aaa.txt >a.txt 2>&1  正确和错误输出到同一文件中

对于& 1 更准确的说应该是文件描述符 1,而1标识标准输出,stdout。
对于2 ,表示标准错误,stderr。
2>&1 的意思就是将标准错误重定向到标准输出。

8.6 管道符和作业控制

|  管道符是把前面输出的内容传递给后面的命令

ctrl + z 暂停一个任务

jobs 查看后台的任务

fg 把后台任务调到前台,不加id默认调最后一个任务

bg 把任务调到后台并运行,不加id默认调最后一个任务

命令后面加&符号,可以把命令丢到后台并运行

8.7 shell变量(上)

系统的变量通常是大写的英文字母,变量的值可以是数字或字符串

env 查看系统的常用环境变量

set 不仅可以查看的系统的环境变量,还可以查看用户的自定义变量

变量名规则:数字,字母,下划线 首位不能为数字

变量值有特殊字符的时候用单引号括起来

单引号可以脱意

变量的叠加

多个变量叠加的时候,用双引号引起来

8.8 shell变量(下)

export设置一个全局变量,只能往子shell继承(往下继承),对当前终端生效,新开的终端不起作用

pstree查看当前用户在那个bash下

运行bash进入一个子shell

unset 取消全局变量

全局变量只能往下继承

unset 取消全局变量

8.9 环境变量配置文件

系统层面 /etc/profile /etc/bashrc

用户层面 ~/.bashrc   ~/.bash_profile   ~/.bash_history   ~/.bash_logout 

用户~/.bash_profile   会调用 ~/.bashrc

如果有需求的话,可以编辑用户家目录下的.bashrc .bash_profile,这里只对当前用户生效,全局配置的话要在/etc/profile下配置

  . ~/.bashrc   前面的点等同于 source   加载配置文件里面的一些配置

 

用户~/.bashrc 会调用 /etc/bashrc

猜你喜欢

转载自blog.csdn.net/weixin_37817498/article/details/81607592