Linux初识Bash Shell参数详解

操作系统--->shell---->kernel
操作系统OS :  里面包含很多应用程序,和命令,用户输入的命令并不能被内核识别,需要通过shell进行解析并传递给内核
shell(壳) :  作用是解析命令并且传递给内核,然后让内核执行操作
kernel : 执行shell指派的动作

history : 查看内存中的历史纪录,在.bash_ history里面可以查看所有的历史记录信息
history  -c  :  清空内存中的历史纪录
-w 1.txt :  把内存中的历史记录保存到文件1.txt中

bash shell 功能快捷键 :  
ctrl  +  u : 剪切光标前面的所有命令
ctrl  + k : 剪切光标后面的所有命令,与ctrl + u效果相反
ctrl  + w : 剪切光标前面的单词,就是以空格作为分隔符
ctrl  + y : 粘贴前面剪切的命令

bash shell 通配符: 
在[]中只能匹配单个字符
* :  例如ls file* : 匹配0或者多个字符
? :  例如ls file1.tx? : 匹配一个任意字符
[0-9] : ls file[0-9].txt : 匹配0-9里面的任意一位数字
[abc] : ls fil[efg][0-9].txt : 匹配abc中的任意一位字符
[^abc] : ls [^a].txt : 匹配除了a.txt之外的其他的.txt文件 

~: 指向用户的主目录
cat ~/.bast_profile
也可以指向其他用户的主目录
cat ~user1/.bash_history

bash shell命令扩展符:
$(命令)例如 : echo "This system's hostname is $(hostname)" : (hostname)里面的hostname是一个命令,表示把一个命令作为另一个命令的参数,直接输出$(hostname),会把输出结果作为另一个命令 

bash shell大括号扩展{} : 可用于创建多个目录
例如: echo file{1,3,5,2} : 输出file1,file3,file5,file2
echo {1..10} : 输出1到10
 
在bash shell中的变量(程序中保存用户数据的一块内存空间,变量名就是这块内存空间的地址,也就是说变量名不可变,变量的值可以变化)分为本地变量和环境变量
定于本地变量(变量名必须以字母或下划线开头,区分大小写,一般用大写字母比较好) :  
定义方法 : 例如:  A=100,_A=abc,注意在bash shell中不要加空格,因为默认是以空格作为分隔符,以第一个为命令,后一个为选项,调用时用echo $A 
查看变量 : echo $变量名,例如 : echo $A 或者 echo ${A}
取消变量 : unset 变量名
作用范围 : 仅在当前shell中生效,(没开个窗口都是一个新的shell,包括用了bash进入的子shell)在别的窗口的shell无法生效,可用exit退出当前shell
注意 : 用set配合grep可以查看当前定义的本地变量,用pstree可以查看进程树,配合bash也可查看bash的子shell、父shell和新shell

set : 查看在当前shell中生效的所有变量,包含环境变量和本地变量,可以用管道符
env : 查看在当前shell中生效的所有环境变量,可以用管道符
pstree : 查看进程树,可查看目录的结构,以及在第几层shell中

环境变量(主要用作保存系统操作环境相关的数据,例如当前登录用户的家目录,命令提示符等)
定义方法 : export back_dir2=/home/backup 或者export B=100
查看变量 : echo $B,或者echo ${B}
取消变量 : unset 变量名
作用范围 : 只可作用到当前shell和子shell中,父shell中就不行了

系统常见的变量有
PS1 : 提示符变量,就是用户登陆系统的界面[root@wm tmp]#这些提示符,格式为[\u@\h \W]\$
HISTSIZE : 历史记录条目数
PATH : 用户可执行文件或命令所在目录,用户之所以可以执行命令,是因为/usr/bin,/usr/sbin里面的文件写入了环境变量

/etc/profile : 定义系统全局的环境变量,针对所有用户都生效
用source /etc/profile ;  su - user ; 重启系统都可以生效
/etc/bashrc : 定义的全局变量,也是针对所有用户生效的
~/.bash_profile : 定义用户的环境变量,针对用户生效
~/.bashrc :  定义用户的变量,针对用户生效

登录shell(注意,su - 为登录shell,其他都是非登录shell)
图形界面或者字符界面时
su - 切换用户
/etc/profile,~/.bash_profile,/etc/bashrc,~/.bashrc文件都会被读到,都会生效
4个文件的读取顺序 : /etc/profile ----> /etc/bashrc -----> ~/.bash_profile -----> ~/.bashrc ------> /etc/bashrc

非登录shell(只会读取到/etc/bashrc,~/.bashrc,环境变量的shell不会被读取到,注意: 开启的子shell也是会继承当前shell的生效的变量)
1、su 切换用户
2、在图形界面打开一个终端
3、bash
4、执行脚本时
5、其他情况,等等

注意: source file 和 . file 是一样的,都是使变量在当前shell中生效


命令别名alias : 用于命令比较长而且要经常执行的情况下
查看别名 :  alias 
定义别名 :  alias copy='command'
取消别名 :  unalias copy 
定义别名永久生效 : /etc/bashrc和~/.bashrc中用source生效

在shell中\,单引号和双引号
\ : 去掉\后面字符的特殊含义
'' : 去掉引号内所有字符的特殊含义
"" : 去除引号内所有字符的特殊含义,除了以下几种情况不能去除
注意: 要用echo调用
       1、$: 调用变量
       2、$(): 调用命令执行的结果
       3、`` : 调用命令执行的结果,例如:  echo `ls  -a`
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王丨小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值