Linux学习笔记(十):bash

在计算机系统中,内核用户管理各硬件的工作,并组织各软件之间的工作关系,因此内核很重要,用户一般不会直接操作,但我们又不得不利用内核做一些事情,因此操作系统的开发者提供了shell来帮助我们与内核进行通信,shel的意思是壳,也即保护内核的一个屏障,bash就是一个经典的shell。

1、bash的功能:命令记忆功能,在~/.bash_history下存有很多上次关机前使用过的1000条命令,并不包含本次使用的命令;命令补全功能,可以使用[tab]补全命令和文件名;alias命令别名设置功能;

2、bash的内置命令:type

type命令可以查看一个命令是内置的还是系统PATH中的或是alias等

3、shell的变量

变量分为环境变量和用户自定义变量,一般环境变量全大写,而用户自定义变量小写显示,环境变量有PATH,HOME,MAIL等

4、使用echo显示一个变量,使用unset注销变量

echo $PATH或者echo ${PATH}都可以将PATH变量打印在终端

要修改变量只需要 变量名=数据 即可,在bash中如果一个变量没有被设置莫认为空,稍后直接等号设置就好;要注意等号的右边,“”双引号可以保留原有的特性,‘’单引号表示的符号就是符号,另外可以使用\转义符将字符转换为纯文本,使用``反单引号可以表示一条命令,如果这个变量要在子进程中使用,就需要使用export命令来声明变量

设置好的变量会被自动记录,即使退出进程也不会注销变量

5、环境变量:用env命令查看环境变量

HOME变量表示用户的主文件夹

SHELL变量表示这个环境中使用的shell是哪个版本

HISIZE表示会存储多少个操作的命令

MAIL表示我们收信时系统会去读取的信箱文件

PATH执行文件目录,在shell下输入命令时系统会自动的去在PATH下寻找可执行文件

LANG语系数据

RANDOM随机数变量,每次调用这个变量会得到一个随机数

使用set显示所有的变量

此时会显示出PS1这个变量,表示命令提示符,通过设置命令提示符可以修改bash每次输入命令前的显示内容

$本身也是一个变量,表示当前shell运行的PID即进程号,

?也是一个变量,表示上一个命令的回传码,0表示正常,若为别的数字则表示不正常

语系变量locale,使用locale -a可以显示所有的语系,根据需求设置不同的语系以显示内容

6、变量的读取、数组和声明

read 变量名可以键盘获取变量内容,declare可以声明一个变量,默认情况下变量是字符串类型,可以使用-i属性声明为整数、-a属性声明为数组,-r属性声明为只读,-x属性声明为外部变量,在bash中无浮点数运算.

在bash中也有数组,但是数组只有一维,操作方法和C++等编程语言类似。

7、变量内容的删除、替换

#表示从最前面开始向右删除,且删除最短的那个,##表示从最前面开始向右删除,且删除最长的那个

%表示从最右面开始向左删除,且删除最短的那个,%%表示从最右面开始向左删除,且删除最长的那个

/旧字符串/新字符串表示替换,且只替换第一个

//旧字符串/新字符串表示替换所有的

8、alias别名与unalias

alias 命令别名 ‘命令’

ualias 命令别名

9、历史命令history

history命令可以调出文件内记录的history记录显示,history的写入方法为覆盖写入,如果一个用户同时打开了很多的bash,在关机时一起关闭这些bash,则最晚关闭的bash记录会把前几个记录覆盖,因此只会记录最晚关闭的一个bash的内容

10、bash查找命令的顺序为:绝对路径、alias、内置命令、PATH查找

11、bash的环境配置文件

在打开bash时,要求我们输入用户名的为login shell,没有要求的为non-login shell;

~/.bash_profile为用户自己的一些设置,可以更改这个文件

12、通配符:*表示无限多个任意字符

?表示一个任意字符

[]表示有一个括号中的字符

[^]表示一定有一个字符且不是括号中的字符

13、数据流重定向

就是把输出数据输出到别的地方,命令行的执行结果有两类,一类是标准输出,一类是标准错误输出,<或<<(表示读到什么地方为止)表示标准输入,>或>>表示标准输出、2>或2>>表示标准错误输出,一个符号与两个符号的区别在于是否覆盖原先的文件或是在原先的文件后面追加;&>表示同时把错误信息和标准输出信息输出到一个文件

双向重定向tee命令,可以既保存一份到文件又输出到终端,但是是管道命令因此只能处理标准输出

在设备中有一个垃圾桶黑洞设备,/dev/null,任何已知错误信息可以输出到这里而不显示在终端

14、命令执行的相互关系:;表示依次执行,&&表示若前一个命令执行正确则执行命令2,||表示若前一个命令执行正确则执行命令2;

15、管道命令:数据流重定向的功能是把数据输出到特定的文件,而管道命令则是将一个命令的输出数据作为另一个命令的输入继续执行另一个命令。使用|这个界限符号,且之后的命令只能接受前一个命令的标准输出而不是错误输出。

cut命令以行为单位处理文件,并输出

grep命令是分析一行信息,若当中有我们需要的讯息时就将一行拿出来

排序命令sort,wc,uniq

spilt命令:如果一个文件特别大,没有一个便携式设备可以装载时,可以使用split命令将文件拆分成小文件,转移,在另一台设备上使用命令cat file* >> newfile进行数据重定向重组

xargs参数代换,将一个命令的输出文件分析并产生下一个命令需要输入参数

16、减号-的作用:一个减号之后只能跟单字符参数且可以跟很多个,而--两个减号之后只能跟完整的参数名且只能跟一个

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值