bash shell
什么是bash?
用户和Linux内核交互的工具,yong用户通过bash操作内核完成系统的使用和管理。
bash 是shell的一种。
shell 的种类:
/bin/sh(已经被/bin/bash代替)
/bin/bash(默认的shell)
/bin/ksh(源自贝尔实验室,兼容bash)
/bin/tcsh(整合C shell,功能更为强大)
/bin/csh(已经被tcsh取代)
/bin/zsh(源自ksh功能更为强大)
功能类似,语法稍有不同。
bash shell 变量
Linux 有自定义变量(local)和环境变量(environment);
自定义变量和环境变量的作用范围不同;
可以使用一下指令查看所有变量:
set-查看所有变量;set |more 逐行查看
env-查看所有环境变量;
bash shell 设置方式:
1、通过自定义变量设置:
VARIABLE=value设置,eg: num=1,
ehco $VARIABLE 获取变量的值,eg: echo $num
变量不能以数字和特殊字符开头,如果包含空格要用双引号或者单引号括起来;但是如果要进行变量的嵌套引用必须用双引号。单引号只会显示文本。
字符拼接 KEY=$KEY1---
用途:可以设置变量,方便进行目录的切换。
unset VARIABLE释放变量;
常见变量:
HISTFILESIZE:记录历史指令保存的最大值;set |grep HIST
history查看最近命令
COLUMNS:终端窗口显示的宽度
LINES:终端窗口显示的高度;
PS1:设置提示符号前面的内容样式(\d,\h,\t,\u,\w,\!,\$,\l)
2、通过别名(Aliases)设置:
type ll ;ll is aliased to 'ls -l --color=tty'
alias cls='clear
alias查看所有别名; alias cls 查看指定别名
type -a alias 查看
unalias 别名 删除别名
ps -ef | grep adb查看进程
3、通过set指令设置:
set自身查看所有的变量值
设置shell内部的属性值(set -o noclobber, set -o vi)
cal 查看日历
set -o noclobber重定向的时候显示文件冲突
4、通过环境变量设置:
自定义变量只能在当前的shell环境中有效;
环境变量会在整个主机下的shell环境中生效;
使用$export [variable name]来设置
常见变量:
HOME:指向当前用户的家目录
LANG:应用程序使用何种语言来显示界面;
PWD:指向用户当前的工作目录路径;
PATH环境变量:
系统预设的环境变量,执行一些没有指定路径的指令的时候会去该路径中找。
PATH=$PATH.:将隐藏的路径设置到PATH中,会带来安全性问题。所以不要加点
PATH=$PATH:/mysql/bin
which adb 查找命令所在的路径
shell startup scripts :login shell和non-login shell
重定向、管道命令
标准输入输出,错误输出
stdin 代码0,使用<或者<<。默认是键盘;
stout 代码1,使用>或者>>,默认是屏幕;
stderr代码2,使用2>或者2>>,默认屏幕。
ls -la /dev/std*
&>全部【012】
多个指令执行的判断方法:bash1&&bash2(前者执行成功才会执行后者) bash1||bash2(前者执行完毕,并且失败才会执行后者)
mkdir test&&cd test &&touch conf.txt
管道命令:
ls -la | more
能够接受标准输入,如:tail/more/grep
能够接受来自前一个指令的数据正确的输出成为stdin进行处理(前一个正确的输出)
sort指令:排序 sort [-fbknrtu] filename
-f:忽略大小写;-b:忽略最前面的空格; -M:以月份英文名字排序; -n:使用数字排序;-r:逆向排序; -t:分隔符,默认是tab分割; -k:以第几列来排序
ls -l |sort
ls -l |
ls -l |sort -t ' ' -k 5 -n [-r]
wc指令:wc [-lwm] filename ,统计功能。-l:统计行;-w:统计词;-m:统计字符;