bash的基础特性:
1。命令历史
bash自荐功能,会记录此前用
户在shell会话中执行的命令于缓冲
区中;正常退出时,会被记录于当前
用户家目录下隐藏文
件.bash_history中;
有限制的保存数据;
环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:命令历史文件路径
HISTFILESIZE:
history命令:
-c: 清空命令历史
-d: 删除指定历史中的命令
-a: 把当前缓冲区中的历史,手
动追加至文件中。
history #:显示最近的多少条命令。
!#数字:调用过去执行过得命令第#
命令。
!!:执行上一条mingl
!string:调用历史中最近一个以
string开头的命令
调用过去执行过得命令的最后一个参
数:
!$
ESC
ALT+.
2.命令补全功能
bash内建命令
外部命令
命令搜索机制:
PATH环境变量:由冒号分割的路
径 echo $PATH
hash:把此前搜索到的路径缓存
到内存中
kv:key-value 缓存空间
ls --> /bin/ls
6.命令别名
alias
命令的另一个引用符,由bash程序维
护
如果别名同原命令名,想直接执行原
命令,需使用\COMMAND
ualias撤销别名
目录管理类的命令:
mkdir,rmdir,tree
dirname: 父目录名
basename:基名
(1)mkdir 目录创建的命令
-p 创建父目录
-v 显示执行过程
如何创建目录:x_m,x_n,y_m,y_n?
(2)rmdir 删除目录=删除空目录
,有内容则不可删除
(3)tree 显示目录程序结构
-d 只显示层级目录类型的文件
-L level:只显示几个层级;
文本文件查看命令:
cat,tac,more,less,tail,
head。
cat:连接文件并显示到标准输出。
一次性显示多个文件。不太适合查看
较长的文件。
more,less:
more:可支持翻屏查看,来完成内
容查看,翻到尾部不可向前翻,less
可前翻。
more options file
-d 显示翻页有退出提示
Space:向后一屏
Enter:向后一行
b:向前一屏 尾部前;
less option...file...
文本过滤
/KEYWORD
?KEYWORD反向搜索
支持n:下一个
N:前一个
head和tail:
抽取文本留其中一部分数据,查
看一部分数据。
head option...file...
tail option...file...
默认查看前10行或后10行。
-n #显示前多少行或者后多少行
tail专用选项:
-f :跟踪一个文件。监视日志
-c # 指明显示前/后多少个字节
touch:
时间戳管理工具,
每个文件都有三个时间戳:
atime:文件最近一次访问时间
mtime:文件最近一次被修改的
时间
ctime:文件最近一次被改变的
时间
文件数据:
源数据metadata
数 据data: 修改文件data
一定改变metadata,但是metadata改
变 data不一定改变。
touch option...file...
改变文件的时间戳为当前的时间。
更新文件的三个时间戳至当前时间
-a 只更新atime
-m 只更新mtime
同时导致ctime改变
-t STAMP:指定时间更新时间戳
-c 禁止创建文件,如果文件不存在
file 查看文件类型
file file...
文件管理类的命令:
cp,mv,rm
cp copy:复制文件
cp option...-t
cp option...source...directory
cp option...-t directory source
cp SRC DEST:cp 路径 目标
SRC是文件
如果DEST不存在:会新建目标
文件,并将SRC复制到目标文件中
如果DEST存在:
如果DEST是文件,cp会尝
试打开这个文件,并清空该文件内容
,用SRC的内容覆盖到DEST文件中
如果DEST是目录,在DEST
目录中新建一个与原文件同名的文件
,将SRC内容复制到新建同名文件中
cp SRC... DEST:
如果DEST不存在:是错误的提示
,无法复制。
如果DEST存在:
如果DEST是文件:错误
如果DEST是目录:创建并复
制文件。
常用选项:
-r,-R 递归复制。
-a 归档复制
-d 不跟踪符号链接。不跟踪文件
的指向文件。
-a ==-dr --preseve=all
-i 交互式复制,提醒用户是否
覆盖。
-f 强制覆盖文件
-v 显示复制过程
move:移动文件
move option...-t
move option...source...directory
move option...-t directory
source
同目录move操作为文件重命名;
-i 交互式 提醒
-f 强制覆盖
rm:移除文件
rm option...file
默认只能删除文件,删除目录的话需
要使用:
-r: 删除目录
-f:强制删除
-i:交互式 提醒用户
rm -rf file 强制删除目录
尽量使用用户账户登录,以免意外删
除管理员文件。
文本编辑器:
nano:全屏文本编辑器
nano option...file...
bash的基础特性(2)
1.glob
文件名通配机制
* :匹配任意长度的任意字
符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字
符 [0-9]
[^]: 匹配范围外的任意单个字符
。 [^a-b]字母之外的显示 [^0-9]
数字之外的。
字符集合:a[[:lower:]]b小写字母
a[[:upper:]]b大写字母
2.组合键
Ctrl+l 清屏
Ctrl+a 切换至命令行首
等等。
3.IO重定向和命令管道的功能
程序:由 指令+数据 组成的;
读入数据:input
输出数据:output
每一个打开的文件都有一个fd:
文件描述符。
标准输入:keyboard,专用描述
符:0 /dev/stdin
标准输出:monitor,1
/dev/stdout
标准错误输出:monitor,2
/dev/stderr “erro”
I/O重定向:
输入重定向 “
tr:
-d 删除字符
cat >> /path/to/somefile <
输出重定向:
COMMAND> NEW_POS,
COMMAND>>NEW_POS
>覆盖重定向。
>>追加重定向
set -C 关闭覆盖重定向 如果目标
文件存在,禁止执行
set +C 反之
错误重定向
2>覆盖
2>>追加
管道
COMMAND 1 | COMMAND 2 | ...
ls /var | tr 'a-z' 'A-Z'
输出转换为大写;
文件处理工具:
wc,cut,sort,uniq
wc:word counts:对文件内容信息
进行统计。
-l 显示多少行
-w 显示单词数
cut:-d 指明分隔符
-f 指明显示的字段
#:单个字段
#-#:几个字段
#,#:几和几
sort:排序文件。
排序后可逆序显示
-r 逆序
-f 忽略字符大小写
-u 排序后去重,连续切相同的。
-t 指明分隔符
uniq:去重
-c 显示每行重复的次数
-d 显示重复过得行
-u 只显示不重复的行