Linux基础 第三章 文本管理类命令详解
查看文本命令
shift+pageup/pagedown 往前/往后翻
cat
cat
:连接并显示
- -n 显示行号
- -E 显示每行的行符
$
- -A 显示所有的内容
tac
从最后一行开始显示,显示到第一行
more
用法跟cat类似
从前往后一页一页显示
- 空格键 向后一屏
- B键 往前一屏
- 回车键 一行一行
less
用法跟more一致
q键退出
head
查看前N行
默认10行
tail
查看后N行
- -n
- -f 等待新内容并且立即显示
文本处理命令
cut
- -d: 指定字段分隔符,默认是空格
# cut -d: -f1 /etc/passwd
- -f :指定要显示的字段
- -f 1,3 显示第一个和第三个字段
- -f 1-3显示第一个到第三个的字段
join
sed
awk
文本排序命令
sort
- -n :按照数值的大小排序
- -r :降序
- -t:字段分隔符
- -k:以哪个字段为关键字进行排序
- -u:排序以后相同的行只显示一次
- -f:忽略字母大小写
uniq
- -d:只显示重复的行
- -D:显示重复的行
- -c:显示每一行重复的次数
wc(word count) 文本统计类命令
依次显示行数 单词数 字符数
- -l 只显示行
- -w 只显示单词数
- -c 只显示字节数
- -L 显示最长的一行包括多少个字符
字符处理命令
tr
用于转换或删除字符
用法tr [OPTION]… SET1 [SET2]
- tr ‘ab’ ‘AB’ 把小写的ab换成大写 如果要全部换可以写成a-z
- -d:删除出现在字符集中的所有字符
bash及其特性
shell
计算机外壳
包括GUI和CLI
GUI:Gnome,KDE,Xfce
CLI:sh,csh,ksh,bash.tcsh
进程跟线程
一个程序就是一个进程
进程:在进程看来,当前主机上只存在内核和当前进程
- 进程是程序的副本,进程是程序执行实例
用户的工作环境
- bash:
#
root用户$
普通用户
shell 与 子shell
- 支持命令历史
- 支持管道、重定向
- 支持命令别名
- 支持命令行编辑
- 支持命令行展开
- 支持文件名统配
- 支持使用变量
- 支持编程
bash特性
- 命令行编辑
- 光标跳转
- ctrl+a:跳到行首
- ctrl+e:跳到行尾
- ctrl-u:删除光标命令行首的内容
- ctrl+k:删除光标命令行位的内容
- ctrl+l:清屏
- 光标跳转
- 命令历史
- 查看命令历史:history
- -c 清空命令历史
- -d 删除指定历史 history -d 500 (删除第500个命令)[往后十个] history -d 500 10(删除第500个开始的10个历史)
- -w 保存命令历史至历史文件中
- 查看命令历史:history
- 环境变量
- PATH:命令搜索路径
- HISTSIZE:命令历史缓冲区大小大小(默认1000条)
- 命令历史的使用技巧
- !+历史记录条数(直接执行该条命令) !n
- !-n:执行命令倒数第几条命令
- !!:执行上一条命令
- !String:执行命令历史中最近一个指定字符串开头的命令
- !$:引用前一个命令的最后一个参数
- ESC点击松开之后按.显示之前命令的参数
- Alt+.引用前一个命令的最后一个参数
- 命令补全、路径补全
- tab键
命令别名
- alias CMDALIS=‘COMMAND [options] [arguments]’(定义的别名只在当前shell的生命周期内有效,关闭之后就无效了:别名的作用范围就是当前shell进程)
- unalias:撤销别名 unalias 别名
命令替换
把命令中某个子命令替换为其执行结果的过程
$(COMMAND)
用命令替换创建文本文件
可以使用反引号
文件名统配,globbing
*:任意长度的任意字符
?:任意单个字符
[]:任意指定范围内的任意单个字符
- [abc],[a-z],[A-Z],[0-9],[a-zA-Z]
- [:space:]所有的空白字符
- [:punct:]所有的标点符号
- [:lower:]小写字母
- [:upper:]大写字母
- [:alpha:]大小写字母
- [:digit:]数字
- [:alnum:]数字和所有字母
[^]:匹配指定范围内之外的的任意单个字符