文本处理命令
cat 链接并显示
-n 显示行号
-E 显示行尾控制符号
linux 显示的行尾的符号 $
windows 行尾符号是 $+回车
Ctrl+c 终止命令
shift + PageUp
shift + PageDown
more 只支持向后翻页
less
space 向后翻页
q 退出
head 查看文件前n行
默认 n=10
tail 查看文件后n行
-f 查看文件尾部,不退出,等待显示后续追加内容
文本处理命令
cut, sed, awk, grep
join
cut 的使用
database : 数据库
关系型数据库:
表:二维表
文本文件:
cut
-d:指定字段分隔符,默认是空格
-f: 指定要显示的字段
-f 1,3
-f 1-3
文本排序
sort 命令
-n 数值排序
-r 降序
-t:字段分隔符
-k:以哪个字段为关键词进行排序
-u:排序后相同的行只显示一次
-f:排序时忽略字符大小写
uniq
显示重复行
相邻的行才计算为重复
-c 显示每一行重复的次数
-d 只显示重复行
wc (word count)
行数 单词数 字节数
-m 字节数
-c 单词数
-l 行数
-L 最长一行包含多少字节
tr 转换或删除字符 字符处理命令
tr ab AB 将小写的字符ab 换成 AB
常于输入重定向
tr 'a-z' 'A-Z' 将小写换成大写
tr -d 删除字符集合中的所有字符
bash 及其特性
shell 外壳程序 bash 遵循开源协定
大部分linux上都是bash
程序:只有一个
进程:可以有多个
linux 允许一个用户登录多个shell
在每个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本
进程是程序执行的实例
用户的工作环境:
bash:
#:管理员
$:用户
shell
子shell
1.命令历史
2.管道 重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名同配
7.变量
8.编程
命令行编辑:
光标跳转:
ctrl+a 跳到命令行首
ctrl+e 跳到命令行尾
ctrl+u 删除光标至命令行首
ctrl+k 删除光标至命令行尾
ctrl+左右箭头可以向左或向右跳一个单词
ctrl+l 清屏
命令历史:
查看命令历史:history
-c 清空命令历史
-d 删除制定位置的命令历史
-w 保存命令历史至历史文件中
环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史大小
命令历史的使用技巧
!n 执行命令历史中的第n条命令
!-n 执行命令历史中倒数第n条命令
!!执行上一条命令
! string :执行命令历史中最近一次以指定字符串开头的命令
!$: 引用前一个命令的最后一个参数
Esc 松开,然后加 . 引用前一个命令的最后一个参数
Alt+. 用前一个命令的最后一个参数(本地才支持)
命令补全
PATH:
PATH路径设置正常,在PATH下搜索补全
路径补全
linux 允许一个用户登陆多次
命令别名
alias
在shell中定义的别名只在当前的shell的生命周期中有效
有效范围为当前shell进程
撤销别名
unalias + 命令别名
命令替换
把命令替换为执行结果
反引号:`` 命令替换
双引号:"" 弱引用,可以实现变量替换
单引号:‘’ 强引号, 不完成变量替换
文件名通配,globbing
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[a-zA-Z] 匹配任意字母
脱字符 [^]: 匹配指定范围之外的任意单个字符
字符集合
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]: 小写字母
[:upper:]:大写字母
[:alpha:]: 大小写字母
[:digit:] :数字
[:alnum:]: 数字和字母