history命令

history 显示的历史命令是本次登录使用的命令

.bash_history 文件内容是 退出登录 后把本次操作的历史命令写入文件中

如果远程登录窗口直接关闭,不会把历史命令写入缓存中

history -w 会把当前登录中缓存的历史命令保存到文件中,默认是是 ~/.bash_history
history -c 清空当前的历史命令

!n 重复执行第n条历史命令

!字串,重复执行最后一条以该字串开头的命令
!$重复执行上一个命令的最后一个参数

如下意思

  1. [root@kylin235 goldwind]# !cd
  2. cd /opt/goldwind
  3. [root@kylin235 goldwind]# !$
  4. /opt/goldwind
  5. -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

  1. [root@kylin235 goldwind]# cat 1.sh|wc -l
  2. 10
  3. [root@kylin235 goldwind]# cat 1.sh|wc -w
  4. 30
  5. [root@kylin235 goldwind]# cat 1.sh|wc -c
  6. 223
  7. [root@kylin235 goldwind]# wc <1.sh
  8. 10 30 223
  9. //qqq 相当于分界符,直到再输入qqq ,把内容中的字节数,单词数,行数统计出来, 这个<<用的很少
  10. [root@kylin235 goldwind]# wc << qqq
  11. > qwe
  12. > wqe
  13. > sda
  14. > c
  15. > qqq
  16. 4 4 14

命令的执行方式


cd ;cd .. ; ls 这三个命令是可以按顺序一起执行的
&& $? 判断命令的执行状态
命令1&& 命令2 命令1正确执行($?=0),命令2才执行。命令1不正确执行($?≠0),命令2 也不执行。生死相依
||
命令1||命令2 命令1执行不正确($?≠0),命令2才执行。命令正确执行($?=0),命令2 则不执行。只能有一个活

  1. [root@kylin235 goldwind]# adasd && cd ..
  2. -bash: adasd: 未找到命令
  3. [root@kylin235 goldwind]# adasd || cd ..
  4. -bash: adasd: 未找到命令

grep 用法

grep命令主要是用来在文件中查找符合条件的字符串,模糊查询需要使用正则表达式

  1. //找出文件中的XEAP 并显示后续的3行
  2. 也可以用head -n 3 但不能找到指定内容后面的三行
  3. [root@kylin235 goldwind]# grep -A 3 "XEAP" EMS-back/Run.sh
  4. #Run XEAP
  5. killall XEAP
  6. killall XEAPWatchDog
  7. killall tcpdump
  8. cd $FAPATH/EMS
  9. nohup ./WatchDog $FAPATH/EMS/XEAP $FAPATH/EMS/boot/main.xml $FAPATH/EMS/cfg/logg
  10. nohup tcpdump tcp port 2404 -i any -s 0 -C 60 -W 100 -Z root -w /opt/goldwind/E
  11. nohup tcpdump tcp port 502 -i any -s 0 -C 60 -W 100 -Z root -w /opt/goldwind/EM
  12. //找出文件中的XEAP 并显示行号
  13. [root@kylin235 goldwind]# grep -n "XEAP" EMS-back/Run.sh
  14. 9:#Run XEAP
  15. 10:killall XEAP
  16. 11:killall XEAPWatchDog
  17. 14:nohup ./WatchDog $FAPATH/EMS/XEAP $FAPATH/EMS/boot/main.xml $FAPATH/EMS/cfg/logger.ini 0 1>/dev/null 2>Error.log &
  18. 找出不包含XEAP的内容
  19. [root@kylin235 goldwind]# grep -v "XEAP" EMS-back/Run.sh

find 用法

find命令主要是用来在系统中查找符合条件的文件,模糊查询需要用到通配符 *

find +路径 -name 名称

find查找时是完全匹配 ,例如

  1. 文件夹汇总有两个文件
  2. [root@kylin235 EMS-back]# ls
  3. Run.sh_bak Run.sh
  4. [root@kylin235 goldwind]# find EMS-back/ -name Run.sh
  5. EMS-back/Run.sh
  6. [root@kylin235 goldwind]# find EMS-back/ -name Run.sh_bak
  7. EMS-back/Run.sh_bak
  8. [root@kylin235 goldwind]# find EMS-back/ -name Run.sh_ //到这里就会找不到名称叫Run.sh_的文件
  9. [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结束

  1. F B 颜色
  2. 30 40 黑色
  3. 31 41 红色
  4. 32 42 绿色
  5. 33 43 黄色
  6. 34 44 蓝色
  7. 35 45 紫红色
  8. 36 46 青蓝色
  9. 37 47 白色
  1. \d :#代表日期,格式为weekday month date,例如:”Mon Aug 1
  2. \H :#完整的主机名称
  3. \h :#仅取主机的第一个名字
  4. \t :#显示时间为24小时格式,如:HHMMSS
  5. \T :#显示时间为12小时格式
  6. \A :#显示时间为24小时格式:HHMM
  7. \u :#当前用户的账号名称
  8. \v :#BASH的版本信息
  9. \w :#完整的工作目录名称
  10. \W :#利用basename取得工作目录名称,所以只会列出最后一个目录
  11. \# :#下达的第几个命令
  12. \$ :#提示字符,如果是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

  1. 加时间显示:
  2. echo 'PS1="[\[\e[31;1m\]\u@\H\[\e[0m\] \[\e[35;1m\]\w\[\e[0m\] \[\e[32;1m\]\t\[\e[0m\]]\\$ "' >>.bashrc
  3. 不含时间显示:
  4. echo 'PS1="[\[\e[35;1m\]\u@\H\[\e[0m\] \[\e[36;1m\]\w\[\e[0m\] ]\\$ "' >>.bashrc