Linux Bash
【bash与硬件关系】
用户->shell->kernel->硬件
Bash shell的功能
【history】历史命令
【history 10】最近使用的10条命令
【history -c】将目前的shell中的所有history内容全部删掉
【执行完命令查询后,执行!66】执行第六十六条命令
【tab】补全按键
【命令命名】 alias lm='ls -al'
【alias mv='mv -i'】
【unalias mv】
【type [-tpa] name】判断一个指令是否是内建shell
【命令太长,可以使用\换行】
如:
ls \
-al
【变量】
echo $HOME = echo ${HOME}
myname=smallzhang
【echo $myname】打印变量
双引号可以解析变量,单引号不可以,如:
var="lang is $LANG" 则ehco $var = lang is en_US
var='lang is $LANG' 则echo $var = lang is $LANG
$(uname-r) linux版本信息
【export myname】 使变量变成环境变量【export】可以查看所有的全局变量
这样在别的子程序就能使用该变量了,如
【
bash
echo $myname
exit
】
【${变量}累加内容】
PATH="$PATH":/home/bin
PATH=${PATH}:/home/bin
【unset myname】取消变量设置
【version=$(uname -r)】 = 【version=`uname -r`】一般使用前者
【env】可以看见环境变量的值
【HOME】用户目录
【SHELL】当前使用的是哪个SHELL
【HISTSIZE】曾经使用过的命令
【MAIl】邮件地址
【PATH】环境变量地址【执行命令搜索地址】
【LANG】当前使用到的语言【locale】可列出当前语言环境【locale -a】可以看到支持的语言
【RANDOM】随机数
【set】可查看环境变量和自定义变量的值
PS1变量可以设置命令显示规则
PS1='[\u@\h \w \A #\#]'
PS1="[\u@\h \w \A]"
【$?】可以查看上一次指令执行结果,0位正常,其余为错误码
ehco $?
【read [-pt] 变量名】
read -p "please input var in ten seconds" -t 10 myname
如果设置了倒计时,则时间超过了,光标不闪
【declare [-aixr] 变量名】
-a 将变量定义为数组类型
-i将变量定义为整数类型
-x将变量定义为环境变量
-r将变量定义为readonly不允许再改
【
declare -i sum=100+300+50
echo $sum
】
【ulimit -a】可查看系统文件描述符限制大小
【变量操作的一些命令】
【$变量#关键词】从头开始匹配,将符合的最短数据删除
【$变量##关键词】 从头开始匹配,将符合的最长数据删除
【$变量%关键词】 从尾开始匹配,将符合的最短数据删除
【$变量%%关键词】从尾开始匹配,将符合的最长数据删除
【$变量/旧字符串/新字符串】匹配第一个旧字符换,则用新字符串替换
【$变量//旧字符串/新字符串】匹配所有旧字符换,用新字符换替换
【变量设定方式】
var=${str-exp},当str为nil的时候,用exp代替
var=$(str:-exp),当前str为nil或""的时候,用exp代替
【str="oldvar";var=${str?novar}】
【修改/etc/issue内容可以自定义开机画面的显示】
【\d】本地端时间的日期
【\l】显示第几个终端接口
【\m】显示硬件信息(i386...)
【\n】显示主机的网络名称
【\o】显示domain name
【\r】操作系统版本,相当于uname -r
【\t】显示本地端时间
【\s】显示操作系统名称
【\v】显示操作系统版本
【修改/ect/motd当用telnet登录的时候,显示画面】
【ctrl + C】终止目前的命令
【ctrl + D】输入结束【EOF】
【ctrl + M】相当于【Enter】
【ctrl + S】暂停屏幕的输出
【ctrl + Q】恢复屏幕的输出
【ctrl + U】在提示符下,将整行命令删除
【ctrl + Z】暂停目前的命令
一下常用的通配符
【*】代表0个或多个字符
【?】代表一个任意字符
【[]】代表区间中有一个字符
【[-]】代表在区间中
【[^]】带有一个字符,且不属于区间的
使用的特殊字符
【#】注释
【\】连接分开的两行
【|】管线【ls -al | less】
【;】连续指令下达分隔符
【~】用户家目录
【$】变量取值
【&】将指令变成后台工作
【!】非
【/】目录分隔符
【>,>>】输出导向,取代累加
【<,<<】输入导向
【''】不具有变量置换功能
【""】具有变量置换功能
【``】相当于【$()】
【{}】命令区域块
【重导向】
1标准输入 代码0 使用<或<<
2标准输出 代码1 使用>或>>
3标准错误输入 代码2 使用2>或2>>
【执行命令逻辑判断】
【cmd1 && cmd2】成功执行完cmd1后才执行cmd2
【cmd1 || cmd2】只有cmd1执行失败才会执行cmd2
【cut】
【echo $PATH|cut -d ':' -f 5】 以:分割,找到第五个 -f 3,5找到第三与第五个
【echo $pATH|cut -c 12-】返回第12个字符之后的内容
【grep [-acinv]】
【-a】将binary文件以text文件的方式搜寻数据
【-c】计算找到“搜索字符”的次数
【-i】忽略大小写
【-n】输出行号
【-v】反向选择
grep n “shunping” aaa.java
grep "man" abcd.txt n 查找指定文件中出现字符的行号
【last】登录终端信息
【sort [-fbMnrtuk]】
【-f】忽略大小写
【-b】忽略最前面的空格
【-M】以月份名字排序
【-n】纯数字排序,默认是以文字形态来排序
【-r】反向排序
【-u】uniq,剔除掉相同的
【-t】分割符
【-k】以那个区间来排序【cat /etc/passwd|sort -t ':' -k 3】以:分割,以第三栏排序
【uniq [-ic]】
【-i】忽略大小写
【-c】计数
【wc [-lwm]】
【-l】有多少行
【-w】一行有多少字符
【-m】总共有多少字符
【tee双向重导向】
ls -al | tee abc.txt
【ln链接】
ln -s abc newLink 将newLink链接到abc
【find】
find / -name abcd从根目录开始查找文件夹名为abcd的文件
【bash与硬件关系】
用户->shell->kernel->硬件
Bash shell的功能
【history】历史命令
【history 10】最近使用的10条命令
【history -c】将目前的shell中的所有history内容全部删掉
【执行完命令查询后,执行!66】执行第六十六条命令
【tab】补全按键
【命令命名】 alias lm='ls -al'
【alias mv='mv -i'】
【unalias mv】
【type [-tpa] name】判断一个指令是否是内建shell
【命令太长,可以使用\换行】
如:
ls \
-al
【变量】
echo $HOME = echo ${HOME}
myname=smallzhang
【echo $myname】打印变量
双引号可以解析变量,单引号不可以,如:
var="lang is $LANG" 则ehco $var = lang is en_US
var='lang is $LANG' 则echo $var = lang is $LANG
$(uname-r) linux版本信息
【export myname】 使变量变成环境变量【export】可以查看所有的全局变量
这样在别的子程序就能使用该变量了,如
【
bash
echo $myname
exit
】
【${变量}累加内容】
PATH="$PATH":/home/bin
PATH=${PATH}:/home/bin
【unset myname】取消变量设置
【version=$(uname -r)】 = 【version=`uname -r`】一般使用前者
【env】可以看见环境变量的值
【HOME】用户目录
【SHELL】当前使用的是哪个SHELL
【HISTSIZE】曾经使用过的命令
【MAIl】邮件地址
【PATH】环境变量地址【执行命令搜索地址】
【LANG】当前使用到的语言【locale】可列出当前语言环境【locale -a】可以看到支持的语言
【RANDOM】随机数
【set】可查看环境变量和自定义变量的值
PS1变量可以设置命令显示规则
PS1='[\u@\h \w \A #\#]'
PS1="[\u@\h \w \A]"
【$?】可以查看上一次指令执行结果,0位正常,其余为错误码
ehco $?
【read [-pt] 变量名】
read -p "please input var in ten seconds" -t 10 myname
如果设置了倒计时,则时间超过了,光标不闪
【declare [-aixr] 变量名】
-a 将变量定义为数组类型
-i将变量定义为整数类型
-x将变量定义为环境变量
-r将变量定义为readonly不允许再改
【
declare -i sum=100+300+50
echo $sum
】
【ulimit -a】可查看系统文件描述符限制大小
【变量操作的一些命令】
【$变量#关键词】从头开始匹配,将符合的最短数据删除
【$变量##关键词】 从头开始匹配,将符合的最长数据删除
【$变量%关键词】 从尾开始匹配,将符合的最短数据删除
【$变量%%关键词】从尾开始匹配,将符合的最长数据删除
【$变量/旧字符串/新字符串】匹配第一个旧字符换,则用新字符串替换
【$变量//旧字符串/新字符串】匹配所有旧字符换,用新字符换替换
【变量设定方式】
var=${str-exp},当str为nil的时候,用exp代替
var=$(str:-exp),当前str为nil或""的时候,用exp代替
【str="oldvar";var=${str?novar}】
【修改/etc/issue内容可以自定义开机画面的显示】
【\d】本地端时间的日期
【\l】显示第几个终端接口
【\m】显示硬件信息(i386...)
【\n】显示主机的网络名称
【\o】显示domain name
【\r】操作系统版本,相当于uname -r
【\t】显示本地端时间
【\s】显示操作系统名称
【\v】显示操作系统版本
【修改/ect/motd当用telnet登录的时候,显示画面】
【ctrl + C】终止目前的命令
【ctrl + D】输入结束【EOF】
【ctrl + M】相当于【Enter】
【ctrl + S】暂停屏幕的输出
【ctrl + Q】恢复屏幕的输出
【ctrl + U】在提示符下,将整行命令删除
【ctrl + Z】暂停目前的命令
一下常用的通配符
【*】代表0个或多个字符
【?】代表一个任意字符
【[]】代表区间中有一个字符
【[-]】代表在区间中
【[^]】带有一个字符,且不属于区间的
使用的特殊字符
【#】注释
【\】连接分开的两行
【|】管线【ls -al | less】
【;】连续指令下达分隔符
【~】用户家目录
【$】变量取值
【&】将指令变成后台工作
【!】非
【/】目录分隔符
【>,>>】输出导向,取代累加
【<,<<】输入导向
【''】不具有变量置换功能
【""】具有变量置换功能
【``】相当于【$()】
【{}】命令区域块
【重导向】
1标准输入 代码0 使用<或<<
2标准输出 代码1 使用>或>>
3标准错误输入 代码2 使用2>或2>>
【执行命令逻辑判断】
【cmd1 && cmd2】成功执行完cmd1后才执行cmd2
【cmd1 || cmd2】只有cmd1执行失败才会执行cmd2
【cut】
【echo $PATH|cut -d ':' -f 5】 以:分割,找到第五个 -f 3,5找到第三与第五个
【echo $pATH|cut -c 12-】返回第12个字符之后的内容
【grep [-acinv]】
【-a】将binary文件以text文件的方式搜寻数据
【-c】计算找到“搜索字符”的次数
【-i】忽略大小写
【-n】输出行号
【-v】反向选择
grep n “shunping” aaa.java
grep "man" abcd.txt n 查找指定文件中出现字符的行号
【last】登录终端信息
【sort [-fbMnrtuk]】
【-f】忽略大小写
【-b】忽略最前面的空格
【-M】以月份名字排序
【-n】纯数字排序,默认是以文字形态来排序
【-r】反向排序
【-u】uniq,剔除掉相同的
【-t】分割符
【-k】以那个区间来排序【cat /etc/passwd|sort -t ':' -k 3】以:分割,以第三栏排序
【uniq [-ic]】
【-i】忽略大小写
【-c】计数
【wc [-lwm]】
【-l】有多少行
【-w】一行有多少字符
【-m】总共有多少字符
【tee双向重导向】
ls -al | tee abc.txt
【ln链接】
ln -s abc newLink 将newLink链接到abc
【find】
find / -name abcd从根目录开始查找文件夹名为abcd的文件