Bash shell的使用环境
登录信息提示:/etc/issue /etc/motd
d 本地端时间的日期 l显示第几个终端接口
m 显示硬件等级 n显示主机的网络名称
r 操作系统的版本 t 24小时格式显示时间
s 操作系统的名称 v操作系统的版本
bash shell系统设定值在/etc/profile和/etc/bashrc个人设定值在/root/.bash_profile /root/.bashrc(设定命令别名) /root/.bash_logout 在注销root是bash会做的事
source变量设定文件 就可以将设定档的内容读入一次
source .bashrc == ..bashrc
终端环境的设置
终端环境设置stty
stty -a将当前所有的stty参数列出来
intr给正在运行的程序发送中断信号
quit给正在运行的程序发送退出信号 ctrl
erase 向前删除字符
kill 删除命令行上的文字 ctrl u
eof文件结束,输入结束 ctrl d
start 重启暂停的输出 ctrl q
stop停止当前输出 ctrl s
susp 给正在运行的程序发送一个终端停止信号 ctrl z
rprnt 输入命令时提示使用过的历史命令
werase 删除命令行的最后一个字 ctrl w
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0
stty erase ^H 自定义快捷键将backspace键定义为向前删除(在定义环境变量时)
------------------------------------------------------------------------------------
万能字符与特殊字符
. 万能字符,代表0个或多个字符
? 万能字符,代表一个字母
# 批注,这个最常被使用在script当中,视为说明
跳脱符号
| 分隔两个管道命令的界定
;连续性命令的界定
& 将指令变成背景下工作
! 逻辑运算意义上的非
/分割路径
>,>> 输出导向
' 不具有变量置换的功能
" 具有变量置换的功能
'' 中间为可以先执行的命令
()在中间为子shell的起始与结束
[]中间为字符组合
{}在中间为命令区块的组合
标准输出指的是指令执行所回传的正确信息,而标准错误输出是指。指令执行失败后,所传回的错误信息不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是乱乱的!是否透过某些机制将这两股数据分开呢? 数据流重导向可以将 standard output (简称 stdout) 与 standard error output (简称 stderr) 分别传送到其他的文件或装置去,而分别传送所用的特殊字符则如下所示:
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
tee 将数据流同时输出到屏幕和文件
tee -a file
-a:以累加的方式,将数据加入file中
命令执行的判断依据
commadn1;command2利用分号;来分隔这个分号的意思,代表不论command1执行结果为何,command2都会执行
command1 && command2 如果command1正确才执行command2
command1 || command2如果command1错误才执行command2
----------------------------------------------------------------------------------
管道命令
管道命令| 只能处理通过前面一个命令传来的正确信息,也就是标准输出,对于标准错误,没有处理能力
command1 | command2
选取命令cut和grep
cut -d -f fields
cut -c 字符范围
[root@192 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@192 ~]# echo $PATH | cut -d ':' -f2
/usr/local/bin
[root@192 ~]# echo $PATH | cut -d ':' -f2,4
/usr/local/bin:/usr/bin
[root@192 ~]# echo $PATH | cut -d ':' -f2-4
/usr/local/bin:/usr/sbin:/usr/bin
grep分析一行信息,若其中有需要的信息,就将这一行信息显示出来
grep filename
-a将二进制文件以文本文件的方式搜索数据
-c计算找到搜索字符串的次数
-i忽略大小写的不同,所有大小写视为相同
-n顺便输出行号
-v反向选择,即显示没有搜索字符串的那行
排序命令
sort wc uniq
sort
-f忽略大小写的差异
-b忽略最前面的空格字符部分
-M以月份的名称来排序
-n使用数字排序
-r反向排序
-t 分隔符,默认为tab
-u就是uniq,相同数据,只列出一次
-k按那个字段来进行排序
uniq
-i忽略大小写
-c进行计数
wc
-l仅显示多少行
-w仅显示多少字
-m多少字符
[root@192 ~]# cat 1.txt
统支持的所有变量
I love you
linux
[root@192 ~]# wc 1.txt
4 5 44 1.txt