思维导图:
文本查看命令
·······cat 连接并显示文件到标准输出
-n 显示行号,行号只是行号,不是文件内容
不带任何选项时,从标准输入接收输出到标准输出
由于不能分页输出,所以只适用于查看 小文本文件内容。
tac tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。按行逆序显示文件
more 支持向后翻,在没有翻到最后一屏时支持向前翻,空格/k/回车
less 前后翻,用法同man,man手册就是用less命令打开的
head 查看文件前n行,默认是10行
-n 指定多少行
-LINE NUMBER 直接用行数作为选项
tail 查看文件后n行,默认是10行
-n 指定多少行
-f follow,查看文件后并不退出,滚动显示追加内容
文本处理命令
·cut cut命令用于显示每行从开头算起 num1 到 num2 的文字。
文件切割,passwd文件
-d delimiter,自定义分隔符,指定分隔符,默认选项是空格
-f fields,指定字段,与-d一起使用,指定显示哪个区域
-f 1 显示第一字段
-f 1,3 显示第1,3字段
-f 1-3 显示第1到3字段
文本排序命令
·sort sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行
默认根据字符在ASCII码中的升序排序
-n 依照数值的大小排序
-r reverse,逆序排序
-t 指定字段分隔符,指定排序时所用的栏位分隔字符
-k key,指定字段进行排序
-u unique,去重
-f 排序时忽略字符大小写
uniq 等同于sort -u,报告重复的行,注意,重复的行必须相邻
-d 只显示重复的行
-D 显示所有重复的行
-c 显示重复行重复的次数
文本统计命令
·wc
wc命令用于计算字数,利用wc指令我们可以计算文件的byte数、字数、或
不指定文件名称、或是所给予的文件名为“-”,则wc命令会从标准输入设备读取数据。
word count,显示顺序为 行-单词数-字节数
-w words 单词 只显示字数
-c 字节 bytes或chars只显示Bytes数
-l (小写字母l) lines 行 只显示行数
-m 字符 显示一个文件的字符数
-L 显示一个文件中的最长行的长度
bash 用户接口
shell是离用户最近的程序,也是计算机和用户进行交互的程序
广义上的shell包含两类:
GUI Gnome,KDE,Xfce
CLI sh,csh,ksh,bash,tcsh,zsh
系统启动后,shell程序只有一个 ,但是shell进程却可以有很多,linux允许一个用户登录多次,在每个登陆进程看来,当前主机只存在内核和当前进程,以进程号识别进程,进程是程序的副本,进程是程序执行的实例,进程是有生命周期的。
shell自己是外部程序,但是shell有自己的内置命令
用户工作环境可以不一样
shell有子shell,对于父shell来说,子shell只是一个程序
特性:
命令行编辑
Ctrl+a 跳到命令行行首
Ctrl+e 跳到命令行行尾
Ctrl+d 向后删除,类似delete
Ctrl+u 删除光标至行首的内容
Ctrl+k 删除光标至行尾的内容
Ctrl+左右箭头, 在模拟终端中支持按单词跳转
Ctrl+l 清屏,等同于clear
Ctrl+c 取消执行当前命令
命令历史
history 命令历史管理
命令历史文件为~/.bash_history
命令历史大小由环境变量HISTSIZE来指定,默认为1000
变量配置文件为/etc/profile
-c 清空整个命令历史
-d 删除指定命令历史
-w 将缓冲区中的命令历史保存到命令历史文件
使用技巧
!n 执行命令历史中第n条命令
!-n 执行命令历史中倒数第n个命令
!! 执行上一条命令
!KEY 执行最近一次以指定KEY开头的命令
!$ 引用上一个命令中最后一个参数
ESC+. 同上,多次按还可以切换
ALT+. 同上,在远程终端无效?
自动补全
命令补全
在PATH环境变量下搜索补全要输入的命令
路径补全
在输入的字符开始的路径下补全
选项补全
在输入命令之后,可以自动补全选项
命令替换
把命令中某个子命令替换为其执行结果
$()
echo "The current directory is
(
p
w
d
)
.
"
t
o
u
c
h
.
/
f
i
l
e
(pwd)." touch ./file
(pwd)."touch./file(date +%H-%M-%S).txt
echo "The current directory is `pwd`" echo 'The current directory is `pwd`' bash支持的引号
反引号,命令替换
“” 双引号,可以实现变量替换
‘’ 强引用,不完成变量替换
查看帮助
man bash