在/etc/shells中记录了所有合法的shell类型
BASH - LINUX的默认SHELL
1. history,叹号+数字用于快捷调用历史命令,两个叹号用于调用上一命令
2. tab键可命令不全
3. alias设置别名,unalias取消设置
4. 支持通配符的使用
用type指令可以区分内建或者外置命令,还可以显示指令的调用顺序
指令的下达:用反斜线跳转到下一行,用回车执行
变量
LINUX的变量都是“全局变量”
变量赋值:VAR=something
取变量值:$VAR或${VAR}
用双引号括起来的变量可以解析变量值;用单引号括起来的变量不会解析,作为字符串使用
``:优先执行
取消变量的方法:unset VAR(变量名)
用env可以查看环境变量,用set和查看所有变量
特殊系统变量
PS1:可以配置命令提示符的格式
PWD:当前工作目录
LANG:当前语系信息
$$:当前SHELL的PID
$?:上一个程序的执行结果
export命令可以使自定义变量转为环境变量;传递给子程序执行需要使用export关键字是因为子程序仅仅会继承父程序的环境变量,而不会继承自定义变量
子程序执行的同时,父程序处于挂起状态
在/etc/sysconfig/i18n中可以进行整个系统的语系配置
read:读取键盘输入,-t 等待时间,-p 提示字符
declare/typeset:声明变量类型,LINUX的变量默认为字符串类型
ulimit:配置限定值
变量的删除和替换
${VAR#pattern}:从前开始,将符合的最短数据删除
${VAR##pattern}:从前开始,将符合的最长数据删除
${VAR%pattern}:从后开始,将符合的最短数据删除
${VAR%%pattern}:从后开始,将符合的最长数据删除
¥{VAR/old/new}:替换第一个
¥{VAR//old/new}:全部替换
变量的预设值
${VAR-string}:若变量没有设定,则使用预设值
${VAR:-string}:若变量没有设定或设定为空值,则使用预设值
${VAR+string}:若变量有设定或设定为空值,则使用预设值
${VAR:+string}:若变量有设定,则使用预设值
${VAR=string}:若变量没有设定,则使用预设值
${VAR:=string}:若变量没有设定或设定为空值,则使用预设值
${VAR?string}:若变量没有设定,将预设值输出到标准错误输出
${VAR:?string}:若变量没有设定或设定为空值,将预设值输出到标准错误输出
小结:减号和等号貌似是一个作用,冒号用于匹配空值,加号是在有设定的情况下使用,问号用于将信息输出到标准错误输出
在/etc/issue中配置欢迎信息,在/etc/motd中配置提示信息
source或.可以将配置文件读进当前的SHELL环境
login-shell:
1. 读取整体环境配置文件/etc/profile(/etc/profile还会读取其他的配置文件)
2. 读取个人配置文件~/.bash_profile或~/.bash_login或~/.profile(按顺序读取,读到一个就终止)
no-login-shell:只读取~/.bashrc
查询终端配置信息:stty -a(^代表Ctrl)
Ctrl + c:interrupt,中断命令
Ctrl + d:EOF,结束输入
Ctrl + z:suspend,暂停
Ctrl + m:回车
Ctrl + s:暂停屏幕输出
Ctrl + q:恢复屏幕输出
Ctrl + u:删除光标前所有字符
数据流重导向:将命令运行结果进行导向
1. 标准输入,代码为0,使用<或<<或0<或0<<
2. 标准输出,代码为1,使用>或>>或1>或1>>
3. 标准错误输出,代码为2,使用2>或2>>
<的意义:读取后面的文件作为标准输入
<<的意义:读取后面的字符作为标准输入,需要明确定义定界符(EOF)
>的意义:若不存在,新建并写入数据;若存在,清空并写入数据
>>的意义:若不存在,新建并写入数据;若存在,追加数据
标准输出与标准错误输出到同一地方的语法:1>somewhere 2>&1 或 &>somewhere
注意:数字与导向符之间没有空格
垃圾桶:/dev/null
复合命令
cmd1 ; cmd2 - 执行完cmd1再执行cmd2,命令间没有依赖关系
cmd1 && cmd2 - 执行cmd1,若成功,再执行cmd2,否则不执行cmd2
cmd1 || cmd2 - 执行cmd1,若失败,再执行cmd2,否则不执行cmd2
关于cmd1||cmd2&&cmd3的解释:
1. ||与&&没有优先级的概念,谁在前谁先执行
2. ||或&&执行失败不会终止整行命令,只会终止其后的1个参数,处理继续
管线命令 - |
只能处理前面命令的标准输出信息,会忽略标准错误输出
截取命令 - cut,grep
cut -d "delimiter" -f fields-Number:用delimiter将一行数据分为数段,用fields-Number取出指定段数据
cut -c char-Number:以字符为单位,取出char-Number指定的数据
grep:i选项,忽略大小写;v选项,反向选择;F选项,将关键字作为字符串使用;c选项,集计
排序命令:sort,wc,uniq
sort:t选项,设置分隔符;k选项,指定用第几段排序;f选项,忽略大小写;b选项,忽略前置空白;r选项,反向排序;u选项,不显示重复行
uniq:i选项,忽略大小写;c选项,集计
wc:列出行,词,字符;l选项,只显示行;w选项,只显示词;m选项,只显示字符
双向重导向命令:tee,同时将数据流分送到文件和标准输出
字符转换命令
tr:删除或替换字符;默认用第二个参数替换第一个参数;d选项,删除指定字符
col:x选项,将tab键转换成空格;b选项,删除反斜线
join:合并两个文件中有相同数据的行
paste:直接合并两个文件,用tab键分隔
expand:将tab键转换成空格,可以用t选项指定用几个空格转换一个tab键
split:将一个大文件分割称多个小文件;b选项,指定小文件的大小;l选项,指定小文件的行数
xargs:将输入信息转换为参数列表(将一列数据转为一行)
关于减号的使用:指代标准输出里的内容(待验证)
阅读(606) | 评论(0) | 转发(0) |