Bash常用快捷键基础(二)

3、输入重定向

#wc[选项] [文件名]

选项:

-c    统计字节数

-w    统计单词数

-l     统计行数

命令<文件    把文件作为命令的输入

10.3.4  Bash基本功能-多命令顺序执行与管道符

1、多命令顺序执行

 

多命令执行符

格式

作用

命令1:命令2

  多个命令顺序执行,命令之间没有任何逻辑联系
 

&&

命令1&&命令2

逻辑与

当命令1正确执行,则命令2才会执行

当命令1执行不正确,则命令2不会执行

 

||

命令1||命令2

逻辑或

当命令1执行不正确,则命令2才会执行

当命令1执行正确,则命令2不会执行

例子:

#ls ; date ; cd /user ;pwd

#dd if=输入文件 of=输出文件 bs=字节数 count=个数

选项:

if=输入文件      指定源文件或源设备

of=输出文件      指定目标文件或目标设备

bs=字节数          指定一次输入/输出多少字节,即把这些字节看做一个数据块

count=个数      指定输入/输出多少个数据块

例子:

#date :dd if=/dev/zero of=/root/testfilebs=1k count=100000 ; date

#ls anaconda-ks.cfg && echo yes

#ls /root/test || echo no

#命令 && echo yes || echo no

2、管道符

命令格式:

#命令1 | 命令2

#命令1的正确输出作为命令2的操作对象

颜色显示

例;

#ll -a /etc/ | more

#netstat -an |grep "ESTABLISGED"

#grep [选项]“搜索内容”文件名

选项:

-i:     忽略大小写

-n:     输出行号

-v:     反向查找

--color=auto   搜索出的关键字用颜色显示

10.3.5 Bash基本功能-通配符和其他特殊符号

1、通配符

 

通配符

作用

?

匹配一个任意字符

*

匹配0个或任意多个字符,也就是可以匹配任何内容

[]

匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。

[-]

匹配中括号中任意一个字符,-代表一个范围。例如[a-z]代表匹配一个小写字母。

[]

逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

#cd /tmp/

#rm -rf

#touchabc

#touch012

#touch0abc

#ls?abc

#ls[0-9]*

#ls[^0-9]*

2、Bash 中其他特殊符号

 

符号

作用

’’

单引号。在单引号中所有的特殊符号,如“$”和“‘”(反引号)都没有特殊含义。

""

双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“‘”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。

‘‘

反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。

$()

和反引号作用一样,用来引用系统命令。

#

在Shell脚本中,#开头的行代表注释。

$

用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

\

转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。

单引号与双引号

#name=sc

#echo‘$name‘

#echo"$name"

#echo‘$(date)‘

#echo"$(date)"

反引号与$()

#echo ‘ls‘

#echo $(date)

10.4.1  Bash变量-用户自定义变量

1、什么是变量

变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或一个数字,就把它存放在一个变量中。每个变量有一个名字,所有很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。

2、变量设置规则

变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。

在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。

变量用等号连接值,等号左右两侧不能有空格。

变量的值如果有空格,需要使用单引号或双引号包括。

在变量的值中,可以使用“\”转义符。

如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包括“$变量名”或用${变量名}包括。

如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包括命令。

环境变量名建议大写,便于区分。

3、变量分类

用户自定义变量

环境变量:这种变量中主要保存的是和系统操作环境相关的数据。

位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。

预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

4、本地变量

变量定义

#name="shen chao"

变量叠加

#aa=123

#aa="$aa"456

#aa=${aa}789

变量调用

#echo $name

变量查看

#set

变量删除

#unset name

10.4.2  Bash变量-环境变量

1、环境变量是什么

用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效

2、设置环境变量

exprot 变量名=变量值

#申明变量

env

#查询变量

unset变量名

#删除变量

PS1:定义系统提示符的变量

\d:显示日期,格式为“星期月 日”

\h:显示简写主机名。如默认主机名“localhost”

\t:显示24小时制时间,格式为“HH:MM:SS”

\T:显示12小时制时间,格式为“HH:MM:SS”

\A:显示24小时制时间,格式为“HH:MM”

\u:显示当前用户名

\w:显示当前所在目录的完整名称

\W:显示当前所在目录的最后一个目录

\#:执行的第几个命令

\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”

3、 系统常见环境变量

PATH:系统查找命令的路径

#echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:

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

PATH="$PATH":/root/sh

#PATH变量叠加

举例:

#PS1=‘[\[email protected]\t \w]\$‘

#PS1=‘[\[email protected]\@ \h \# \W]\$‘

#PS1=‘[\[email protected]\h \W]\$

10.4.3  Bash 变量-位置参数变量

1、位置参数变量

 

位置参数变量

作用

$n

N为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}.

$*

这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

[email protected]

这个变量也代表命令行中所有的参数,不过[email protected]把每个参数区分对待

$#

这个变量代表命令行中所有参数的个数

例子1:

#!/bin/bash

num1=$1

num2=$2

sum=$(($sum1+$sum2))

#变量sum的和是num1加num2

echo $sum

#打印变量sum的值

例子2:

#!/bin/bash

echo "A total of $# parameters"

#使用$#代表所有的参数

echo "The parameters is $*"

#使用$*代表所有的参数

echo "The parameters is:[email protected]"

$使用[email protected]也代表所有参数

例子3:

#!/bin/bash

for i in "$*"

#$*中的所有参数看成是一个整体,所以这个for循环只会循环一次

do

echo "The parameters is:$i"

done

x=1

for y in "[email protected]"

#[email protected]中的每个参数都看成是独立的,所以"[email protected]"中有几个参数,就会循环几次

do

echo "The parsmeter$x is:$y"

x=$(( $x +1 ))

done

10.4.4 Bash变量-预定义变量

1、预定义变量

 

预定义变量

作用

$?

最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确支持;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

$$

当前进程的进程号(PID)

$!

后天运行的最后一个进程的进程号(PID)

#!/bin/bash

#Author: shenchao (E-mail:[email protected])

echo "The current process is $$"

#输出当前进程的PID

#这个PID就是variable.sh这个脚本执行时,生成的进程的PID

find /root -name hello.sh &

#使用find命令在root目录下查找hello.sh文件

#符号&的意思是把命令放入后天执行,工作管理我们在系统管理章节

会详细介绍

echo "The last one Daemon process is $!"

#!/bin/bash

#Author: shenchao (E-mail:[email protected])

read -t 30 -p "Please input your name:" name

#提示“请输入姓名”并等待3-秒,把用户的输入保存入变量name中

echo "Name is $name "

read -s -t 30 -p "Please enter your age: " age

#年龄是隐私,所以我们用“-s”选项隐藏输入

echo "Age is $age "

echo -e "-n"

read -n l -t 30 -p "Please select your gender[M/F]: "gender

#使用“-n l”选项只接收一个输入字符就会执行 (都不用输入回车)

echo -e "\n"

echo "Sex is $gender"

2、接收键盘输入

#read [选项] [变量]

选项:

-p“提示信息”: 在等待read输入时,输出提示信息

-t  秒数:       read命令会一直等待用户输入,使用此选项可以指定等待时间

-n字符数:      read命令只接受指定的字符数,就会执行

-s:             隐藏输入的数据,适用于机密信息的输入

10.5.1  数值运算与运算符

1、declare生命变量类型

#declare [+/-][选项] 变量名

选项:

-:   给变量设定类型属性

+:   取消变量的类型属性

-i:   将变量声明为整数型 (integer)

-x:   将变量声明为环境变量

-p:        显示指定变量的被声明的类型

2、数值运算--方法1

#aa=11

#bb=22

#给变量aa和bb赋值

#declare -i cc=$aa+$bb

方法2:expr或let数值运算工具

#aa=11

#bb=22

#给变量aa和变量bb赋值

#dd=$(expr $aa + $bb)

#dd的值是aa和bb的和。注意“+”号左右两侧必须有空格

方法3:“$((运算式))”或“$[运算式]”

#aa=11

#bb=22

#ff=$(($aa+$bb))

#gg=$[$aa+$bb]

3、运算符

 

优先级

运算符

说明

13

-,+

单目负、单目正

12

!,~

逻辑非、按位取反或补码

11

*,/,%

乘、除、去模

10

+,-

加、减

9

<<,>>

按位左移、按位右移

8

<  =, > =,  < , >

小于或等于、大于或等于、小于、大于

7

==  , !=

等于、不等于

6

&

按位与

5

  

按位异或

4

|

按位或

3

&&

逻辑与

2

||

逻辑或

1

=,+=,-=,*=,/=,%=,&=,  ^=, |=, <<=,  >>=

赋值、运算且赋值

例子:

#aa=$(( (11+3)*3/2 ))

#虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级

#bb=$(( 14%3 ))

#14不能被3整除,余数是2

#cc=$(( 1 && 0 ))

#逻辑与运算只有想与的两边都是1,与的结果才是1,否则与的结果是0

10.5.2  Bash变量-变量测试与内容替换

 

变量置换方式

变量y没有设置

变量y为空值

变量y设置值

x=${y-新值}

x=新值

x为空

x=$y

x=${y:-新值}

x=新值

x=新值

X=$y

x=${y+新值}

x为空

x=新值

x=新值

x=${y:+新值}

x为空

x 为空

x=新值

x=${y=新值}

x=新值

y=新值

x为空

y值不变

x=$y

y值不变

x=${y:=新值}

x=新值

y=新值

x=新值

y=新值

x=$y

y值不变

x=${y?新值}

新值输出到标准错误输出(就是屏幕)

x为空

x=$y

x=${y:?新值}

新值输出到标准错误输出

新值输出到标准错误输出

x=$y

例子:  测试x=${y-新值}

#unset y

#删除变量y

#x=${y-new}

#进行测试

#echo $x

new

#因为变量y不存在,所以x=new

10.6.1  环境变量配置文件简介

1、source命令

#source 配置文件    或

#. 配置文件

2、环境变量配置文件简介

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH、HISTSIZE、PS1、HOSTNAME等默认环境变量。

/etc/profile-----------是针对所有用户生效

/etc/profile.d/*.sh--是针对所有用户生效

~/.bash_profile-------是针对与用户的变量

~/.bashrc---------------是针对于用户的变量

/etc/bashrc-------------是针对所有用户生效

时间: 2024-10-11 07:37:42

Bash常用快捷键基础(二)的相关文章

Bash常用快捷键基础(一)

快捷键    作用 ctrl+A  把光标移动定到命令行开头.如果我们输入的命令过长,想要把光标移动到命令行开头时使用 ctrl+E  把光标移动到命令行结尾 ctrl+C  强制终止当前的命令 ctrl+L  清屏,相当于clear命令 ctrl+U  删除或剪切光标之前的命令.我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便 ctrl+K  删除或剪切光标之后的内容 ctrl+Y  粘贴ctrl+U或ctrl+k剪切的内容 ctrl+R  在历史命令中搜索,

Linux:shell基础 :Bash常用快捷键

Bash常用快捷键 Ctrl+C:强制终止. Ctrl+L:清屏.相当于clear命令. Ctrl+U:删除/剪切 光标前的命令.不用再使用删除键,一个字母一个字母的删除了. Ctrl+K:删除/剪切 光标后的命令. Ctrl+V:粘贴 Ctrl+U/K 剪切的内容. Ctrl+R:在历史命令中搜索,按下Ctrl+R后,会出现搜索界面.输入搜索内容,就会在历史命令中进行搜索. Ctrl+D:退出当前终端. Ctrl+A:把光标定位到命令行开头.(也可以直接使用Home按键) Ctrl+E:把光标

bash常用快捷键和命令

在使用Linux的时候,最常见的终端解释器就是bash了.bash下有很多技巧,我知道这么几个: 0.关于按键模式bash默认的按键模式是emacs风格的.你也可以通过set -i vi设定为vi风格.我用默认的emacs风格的,后面的快捷键基本能上都是它的. 1.历史命令的找回比如一个命令输错了,需要该其中一个地方就好:或者想重复执行之前运行的某命令,那么使用方向键的↑和↓是最好的办法.高端一点的,可以输入部分命令的开头几个字母,然后用Ctrl+R结合方向键找到. 2.光标移动到行首和行尾比如

【Linux】一步一步学Linux——Bash常用快捷键(11)

目录 00. 目录 01. 编辑命令 02. 搜索命令 03. 控制命令 04. 其它 05. 参考 00. 目录 @ 生活在 Bash Shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 01. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Alt + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl

Bash常用快捷键

跳转到命令行行首 Ctrl+A 跳转到命令行行尾 Ctrl+E 删除光标之前的所有内容 Ctrl+U 删除光标之后的所有内容 Ctrl+K 清屏,功能与Clear类似 Ctrl+L 自动补全 TAB 自动补全最近一次的路径 先按ESC,再按 . 退格删除 Ctrl+Backspace 换行 Ctrl+M 结束当前运行的命令 Ctrl+C 挂起当前运行的命令 Ctrl+Z 将之前已经清除的文本粘贴回来(主要针对CTRL+U或CTRL+W) Ctrl+Y 撤消操作 Ctrl+/ 在行首和光标两个位置

bash与vi编辑器常用快捷键

说明: 玩Linux,就自己目前的使用情况来说,bash命令行和vi编辑使用几乎是最多了,每一次操作,无论做什么,都离不开这两种操作,因此如果能够熟练地掌握bash与vi编辑器中的快捷键,那显然会大大提高我们的操作效率和工作效率. 1.bash常用快捷键 其实有很多,但就实际中经常用到的.使用频率比较高的,会有下面这些: 快捷键 功能 Ctrl + a 切换到命令行开始 Ctrl + e 切换到命令行末尾 Ctrl + l 清除屏幕内容,效果等同于clear Ctrl + u 清除剪切光标之前的

shell常用快捷键

一. 历史命令 history    #查看历史命令 history -c  #清空历史命令 history -w  #不等退出,直接把缓存中的历史命令写入历史命令保存文件-/.bash_history vim /etc/profile  #默认历史命令保存1000条,可修改HISTSIZE保存条数(无限制),命令保存在 -/.bash_history 文件中 历史命令的调用: 1. 上下箭头调用 2. !n   #执行行号为n行的命令,history显示的命令前面会显示各自行号 3. !his

Shell中Bash的基本功能(二)

1 历史命令 1)历史命令的查看[[email protected] ~]# history [选项] [历史命令保存文件]选项:-c: 清空历史命令-w: 把缓存中的历史命令写入历史命令保存文件.如果不手工指定历史命令保存文件,则放入默认历史命令保存文件~/.bash_history 中 [[email protected] ~]# history 1 systemctl stop firewalld 2 systemctl disable firewalld 3 setenforce 0 4

bash常用功能

1.历史命令 [[email protected] ~]# history [选项] [历史命令保存文件] 选项: -c: 清空历史命令 -w: 把缓存中的历史命令写入历史命令保存文件.如果不手工指定历史命令保存文件,则放入默认历史命令保存文件~/.bash_history 中 2.历史命令使用 使用上.下箭头调用以前的历史命令 使用"!n"重复执行第 n 条历史命令 使用"!!"重复执行上一条命令 使用"!字串"重复执行最后一条以该字串开头的命