一.保存历史命令
(一).history
1.history-c
删除缓存的命令,但不会清除文件里面的历史命令,会清除还没来得及缓存到历史文件里面的命令
2.history-d
删除指定命令
3.history-r
读取历史文件并将内容加载到缓存目录中
4.history-a
将当前缓存在历史列表中的命令(必须是敲的,histroy-a导入的命令不会到里面)加载到历史文件中
5.history-w
将缓存里的命令写入到历史命令文件中
6.history-p
执行这条命令并且不将其写入缓存和历史文件
eg:
history -p ls
7.history -n
从历史文件中读取未被读取的行
8.history -s
将执行结果放于历史命令中,但不放命令条
9.HISTFILE
控制历史命令的路径和文件名
控制路径
10.HISTFILESIZE
控制文件大小
可以用
du -h .bash_history
来看文件有多大
11.HISTTIMEFORMAT
HISTTIMEFORMAT=\'DATE\'
将其放于/etc/profile文件中,就可以在历史命令条前面加上时间戳
HISTSIZE是保存历史条目的数量
改了之后如下
12.HISTCONTROL
用来控制历史条目是否重复,第一个是否为空格
表示忽略连续的重复的命令(history命令后,两个ls只会显示一个)
ignorespace:表示忽略前面是空格的命令(在history命令后,第一个是空格的命令将不显示)
ignoreboth:表示两个都忽略
(二).便捷命令
1.!xxx
表示执行第xxx个命令(也比较麻烦)
2.!ipxxx
比如命令为ipconfig,则! ip就可以将其输出
3.!!
执行上一个命令
4…+esc
取出上一个命令行的参数到本行(如果没有参数的话,就取整条命令)
5.!$
取出上一次命令并执行
6.echo $_
打印出上一条命令的参数(只是打印出参数不会执行)
二.别名
1.alise
创建别名eg
alias ll =ls-l
这样就可以方便简洁的调出所要的命令
2.unalias
取消别名eg
unalias ll
3.\\vimif
还原真实结果
三.变量
本地变量:创建一个文件,只能在这个代码段中有用,如果和全局变量同名,就会被覆盖
全局变量的定义
export xxx=xxx
四.数据流重定向
(一).什么是数据流重定向
1.标准输入
代码为0,使用<或者<<(结束输出字符);
2.标准输出
代码为1,使用>或者>>(默认为1,不用写)
3.标准错误输出
代码为2.使用2>或者2>>
4.eg
ll />~rootfile
会将ll执行的结果放入rootfile文件中,若没有这个文件就会创建一个,如果有就不会把之前的的文件内容覆盖掉,
5.如果不想将之前的内容覆盖掉该怎么办?
可以将代码改为
ll />>~rootprofile
6.如果想将正确和错误的分开放怎么办?
正常情况下会将正确的放入文件中(因为默认为1),如果想将其分开放怎么办?可以修改代码例如
ll /home -name .bashrc >list_right2>list_error
意思是:将查找的正确的放入list_right,错误的放入list_error文件中
7.注意【1>>】和【2>>】中间是没有空格的
8.如果想将正确的和错误的都放入同一个文件中
代码如下:
ls /home-name .bashrc>list 2>&1
或者
&>list
9.黑洞文件夹
如果想将错误信息忽略而不显示或者储存就可以将其放入
/dev/null
文件夹中
10.<将原本有键盘输出的东西改为文件输出
eg
cat >catfile<~/.bashrc
意思是新建一个文件夹catfile,并且将~/.bashrc里面的文件复制到catfile中
11.<<结束输入字符
eg:
cat >catfile <<\"asd\"
在想停止输入的时候输入asd就可以,不用按Ctrl+d来结束
(二).命令执行的判断
同时执行多条命令
;
执行命令有要求
前一个对了才能执行后一个
cmd&&cmd
前一个对了后一个不执行;前一个错了,后一个执行
cmd||cmd
五.管道命令
筛出正确的显示到屏幕前
1.grep “要过滤的代码段” 要在哪个目录下面找
eg
grep \"name\" test.sh
2.进程之间的通信方式——-管道
上一个进程的标准输出作为下一个进程的标准输入
egcat
test.sh | grep \"name\"
从上一个文件test的输出里面过滤含有name的代码段
3.进程之间的通信方式—-共享内存
4.进程之间的通信方式—-消息队列
实现消息队列的软件kafka
5.进程之间的通信方式—-socket
***************常见命令
查看进程
ps
参数:-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
u 以用户为主的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
echo $((123*123))
可以算数
强弱引用
“:解析shell命令
\’\’单引号:所见即所得强引用
“”:弱引用:会解析变量
mkdir:建立新目录 rmdir:删除一个空目录