history命令
history 显示的历史命令是本次登录使用的命令
.bash_history 文件内容是 退出登录 后把本次操作的历史命令写入文件中
如果远程登录窗口直接关闭,不会把历史命令写入缓存中
history -w 会把当前登录中缓存的历史命令保存到文件中,默认是是 ~/.bash_history
history -c 清空当前的历史命令
!n 重复执行第n条历史命令
!字串,重复执行最后一条以该字串开头的命令
!$重复执行上一个命令的最后一个参数
如下意思
[root@kylin235 goldwind]# !cd
cd /opt/goldwind
[root@kylin235 goldwind]# !$
/opt/goldwind
-bash: /opt/goldwind: 是一个目录
alias命令
已掌握
要点就是别名不能覆盖系统已有的命令
快捷键
ctrl+A把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
ctrl+E把光标移动到命令行结尾。 End
ctrl+L清屏,相当于clear命令。
ctrl+U 删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
ctrl+K 删除或剪切光标之后的内容。
ctrl+Y粘贴ctrl+U或ctrl+K剪切的内容。
ctrl+R在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
输出重定向
Linux中标准输入是通过键盘,输出是到显示器
本来要输出的内容是到显示器,但现在输出到文件中就是输出重定向。
标准输出重定向
命令>文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
命令>>文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中。
标准错误输出重定向,是要带 数字2的
错误命令 2>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。
错误命令 2>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中。
正确输出和错误输出同时保存
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到”禁止输出“的效果。
命令 > 文件 2>&1 覆盖保存
nohup java -jar DafrontSimulator_V1.0.100.0.jar >/dev/null 2>&1 &
这个语句就是把内容覆盖保存到 dev/null文件中
命令 >> 文件 2>&1 追加保存
命令 >&文件 覆盖保存
命令 >>&文件 追加保存
命令 >>文件1 2>>文件2 正确输出到文件1,错误输出到文件2
只要是错误输出 2和>之间不能加空格,正确输出不影响 ll>q,ll > q ,ll >> q都可以
输入重定向 wc
-c 统计字节数
-w统计单词数
-l 统计行数
wc < abc 把abc文件内容传递给wc
[root@kylin235 goldwind]# cat 1.sh|wc -l
10
[root@kylin235 goldwind]# cat 1.sh|wc -w
30
[root@kylin235 goldwind]# cat 1.sh|wc -c
223
[root@kylin235 goldwind]# wc <1.sh
10 30 223
//qqq 相当于分界符,直到再输入qqq ,把内容中的字节数,单词数,行数统计出来, 这个<<用的很少
[root@kylin235 goldwind]# wc << qqq
> qwe
> wqe
> sda
> c
> qqq
4 4 14
命令的执行方式
;
cd ;cd .. ; ls 这三个命令是可以按顺序一起执行的
&& $? 判断命令的执行状态
命令1&& 命令2 命令1正确执行($?=0),命令2才执行。命令1不正确执行($?≠0),命令2 也不执行。生死相依
||
命令1||命令2 命令1执行不正确($?≠0),命令2才执行。命令正确执行($?=0),命令2 则不执行。只能有一个活
[root@kylin235 goldwind]# adasd && cd ..
-bash: adasd: 未找到命令
[root@kylin235 goldwind]# adasd || cd ..
-bash: adasd: 未找到命令
grep 用法
grep命令主要是用来在文件中查找符合条件的字符串,模糊查询需要使用正则表达式
//找出文件中的XEAP 并显示后续的3行
也可以用head -n 3 但不能找到指定内容后面的三行
[root@kylin235 goldwind]# grep -A 3 "XEAP" EMS-back/Run.sh
#Run XEAP
killall XEAP
killall XEAPWatchDog
killall tcpdump
cd $FAPATH/EMS
nohup ./WatchDog $FAPATH/EMS/XEAP $FAPATH/EMS/boot/main.xml $FAPATH/EMS/cfg/logg
nohup tcpdump tcp port 2404 -i any -s 0 -C 60 -W 100 -Z root -w /opt/goldwind/E
nohup tcpdump tcp port 502 -i any -s 0 -C 60 -W 100 -Z root -w /opt/goldwind/EM
//找出文件中的XEAP 并显示行号
[root@kylin235 goldwind]# grep -n "XEAP" EMS-back/Run.sh
9:#Run XEAP
10:killall XEAP
11:killall XEAPWatchDog
14:nohup ./WatchDog $FAPATH/EMS/XEAP $FAPATH/EMS/boot/main.xml $FAPATH/EMS/cfg/logger.ini 0 1>/dev/null 2>Error.log &
找出不包含XEAP的内容
[root@kylin235 goldwind]# grep -v "XEAP" EMS-back/Run.sh
find 用法
find命令主要是用来在系统中查找符合条件的文件,模糊查询需要用到通配符 *
find +路径 -name 名称
find查找时是完全匹配 ,例如
文件夹汇总有两个文件
[root@kylin235 EMS-back]# ls
Run.sh_bak Run.sh
[root@kylin235 goldwind]# find EMS-back/ -name Run.sh
EMS-back/Run.sh
[root@kylin235 goldwind]# find EMS-back/ -name Run.sh_bak
EMS-back/Run.sh_bak
[root@kylin235 goldwind]# find EMS-back/ -name Run.sh_ //到这里就会找不到名称叫Run.sh_的文件
[root@kylin235 goldwind]#
find +路径 -size +单位
c字节,w双字节,一个中文占2个字节,
find . -size 27 = find . -size 27*512c
size后面只有数字没有单位则是 默认 512个字节
k,M,G
按时间搜索
-mtime(Modify time) 修改时间
-atime(Access time) 访问时间
-ctime(Change time) 状态变更时间
find / -amin -30 -ls # 查找在系统中最后30分钟访问的文件
find / -atime -2 -ls # 查找在系统中最后48小时访问的文件
find / -mmin -10 -ls # 查找在系统中最后10分钟里修改过的文件
find / -mtime -1 -ls # 查找在系统中前24小时里修改过的文件
find / -cmin -10 -ls # 查找在系统中最后10分钟里被改变状态的文件
find / -ctime -1 -ls # 查找在系统中最后24小时里被改变状态的文件
按权限搜索
find . -perm +444 表示 ugo中任意一个权限都大于4,则显示这个文件
find . -perm -444 表示ugo中每一个权限都要大于4,则显示这个文件
find . -perm 444 查找 权限为444的文件
按文件所有者和所属组搜索
find . -user root
通配符
?匹配任意一个祝福
*匹配0个或多个字符
[abc] 匹配括号内任意一个字符
[a-z]匹配a-z人一个一个小写字母
[ ^0-9]匹配一个不是数字的字符
echo的使用
echo -e “\“ 输出自己
echo -e “\a” 输出警告音 —-只有用虚拟机或者本机系统是linux才能听见
echo -e “\b” 退格键 也就是向左删除
echo -e “\c” 取消输出行末的换行符
echo -e “\f” 换页
echo -e “\n” 换行
echo -e “\r” 回车
\e[1; 表示开启输出, \e[0m 表示结束输出,是固定格式
echo -e “\e[1;31m abc \e[0m”
更改配色的应用
颜色语法
其中设置颜色的格式为:以[\e[F;Bm],以\e[m结束
F B 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
\d :#代表日期,格式为weekday month date,例如:”Mon Aug 1”
\H :#完整的主机名称
\h :#仅取主机的第一个名字
\t :#显示时间为24小时格式,如:HH:MM:SS
\T :#显示时间为12小时格式
\A :#显示时间为24小时格式:HH:MM
\u :#当前用户的账号名称
\v :#BASH的版本信息
\w :#完整的工作目录名称
\W :#利用basename取得工作目录名称,所以只会列出最后一个目录
\# :#下达的第几个命令
\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$
加时间显示:
echo ‘PS1=”[[\e[31;1m]\u@\H[\e[0m] [\e[35;1m]\w[\e[0m] [\e[32;1m]\t[\e[0m]]\$ “‘ >>.bashrc
拆开来看就是
[\e[31;1m]\u@\H[\e[0m]
[\e[35;1m]\w[\e[0m]
[\e[32;1m]\t[\e[0m]
不含时间显示:
echo ‘PS1=”[[\e[35;1m]\u@\H[\e[0m] [\e[36;1m]\w[\e[0m] ]\$ “‘ >>.bashrc
加时间显示:
echo 'PS1="[\[\e[31;1m\]\u@\H\[\e[0m\] \[\e[35;1m\]\w\[\e[0m\] \[\e[32;1m\]\t\[\e[0m\]]\\$ "' >>.bashrc
不含时间显示:
echo 'PS1="[\[\e[35;1m\]\u@\H\[\e[0m\] \[\e[36;1m\]\w\[\e[0m\] ]\\$ "' >>.bashrc