基础指令
输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
> :覆盖输出,会覆盖掉原先的文件内容-
>> :追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
- 语法:
#正常执行的指令 > / >> 文件的路径
注意:文件可以不存在,不存在则新建
案例:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt
案例:使用追加重定向,保存ls -la的执行结果到ls.txt中
cat 指令
-
作用1:cat有直接打开一个文件的功能。
-
语法1:
#cat 文件的路径
-
作用2:cat还可以对文件进行合并
-
语法2:
#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
将文件 error.log、nginx.pid 合并到 error_ngnix.txt 中:
进阶指令
df 指令
- 作用:查看磁盘的空间
- 语法:
#df -h
-h表示以可读性较高的形式展示大小
free 指令
- 作用:查看内存使用情况
- 语法:
#free -m
-m表示以mb为单位查看
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
head指令
- 作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
- 语法:
#head -n
文件路径 【n表示数字】
tail 指令
- 作用1:查看一个文件的未n行,如果n不指定默认显示后10行
- 语法:
#tail -n 文件的路径
n同样表示数字
- 作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】
- 语法:
#tail -f 文件路径
(该命令一般用于查看系统的日志比较多。)
less指令
- 作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
- 语法:
#less 需要查看的文件路径
在退出的只需要按下q键即可。
wc 指令
- 作用:统计文件内容信息(包含行数、单词数、字节数)
- 语法:
#wc -lwc 需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数
date 指令(重点)
- 作用:表示操作时间日期(读取、设置)
- 语法1:
#date
输出的形式:2021年 3月 26日 星期五 16:02:28
- 语法2:
#date +%F
(等价于#date "+%Y-%m-%d"
) 输出形式:2021-03-26
- 语法3:
#date "+%F %T"
引号表示让“年月日与时分秒”成为一个不可分割的整体,等价操作#date "+%Y-%m-%d %H:%M:%S"
,输出形式:2021-03-26 16:11:26
- 语法4:获取之前或者之后的某个时间(备份)
#date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
cal 指令
- 作用:用来操作日历
- 语法1:
#cal
等价于#cal -1
直接输出当前月份的日历
- 语法2:
#cal -3
表示输出上一个月+本月+下个月的日历
- 语法3:
#cal -y 年份
表示输出某一个年份的日历
管道
管道符:|
- 作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
- 语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
①过滤案例(100%使用):需要通过管道查询出根目录下包含“y”字母的文档名称。
#ls / | grep y
针对上面这个命令说明:
①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
②grep指令:主要用于过滤
②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以#less 路径
现在通过管道还可以这么:#cat 路径|less
③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
答:#ls / | wc -l
高级指令
ps -ef 指令(重点)
- 作用:主要是查看服务器的进程信息
- 选项含义:
- -e:等价于“-A”,表示列出全部的进程
- -f:显示全部的列(显示全字段)
执行结果:
列的含义:
- UID:该进程执行的用户id;
- PID:进程id;
- PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
- C:Cpu的占用率,其形式是百分数;
- STIME:进行的启动时间;
- TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
- TIME:进程的执行时间;
- CMD:该进程的名称或者对应的路径;
案例:在ps的结果中过滤出想要查看的进程状态
#ps -ef | grep "进程名称"
kill 指令(重点)
- 作用:表示杀死进程(当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
案例:需要 kill 掉 redis-server 的进程
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall 进程名称
find 指令
- 作用:用于查找文件(其参数有55个之多)
- 语法:
#find 路径范围 选项 选项的值
- 选项:
- -name:按照文档名称进行搜索(支持模糊搜索)
- -type:按照文档的类型进行搜索
- 文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
案例1:使用 find 搜索 httpd.conf
#find / -name dump-6379.rdb
- 文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
案例2:使用 find 搜索 /root 目录下的所有 .conf 后缀的文件
#find /root -name *.conf
案例3:使用 find 搜索 /root/redis-6.2.1/data 目录下的所有文件
#find /root/redis-6.2.1/data -type f
案例3:使用 find 搜索 /root/redis-6.2.1 目录下的所有文件夹
#find /root/redis-6.2.1 -type d
netstat -tnlp 指令
- 作用:查看网络连接状态
- 语法:
#netstat -tnlp
- 选项说明:
- -t:表示只列出 tcp 协议的连接
- -n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示
- -l:表示过滤出“state(状态)”列中其值为 LISTEM(监听)的连接
- -p:表示显示发起连接的进程 pid 和 进程名称
du -sh指令
- 作用:查看目录的真实大小
- 语法:
#du -sh 目录路径
- 选项含义:
- -s:summaries,只显示汇总的大小
- -h:表示以高可读性的形式进行显示
案例: