history

历史记录
使用这个可以查看自己之前使用过命令。

输出重定向

语法: 命令 > (可以是绝对路径,也可以是相对路径)普通文件名 代表覆盖
命令 >> (可以是绝对路径,也可以是相对路径)普通文件名 代表追加

> 保存到文件中

  1. 将已经输入过命令保存到 zhangsan.txt 中
    1. history > zhangsan.txt
    image.png

>> 追加到文件内容中

追加文件内容,不会覆盖原有的文件内容

  1. 在/tmp 目录下创建文件 lisi.log
  2. 在lisi.log 文件中添加内容 lisi
  3. 在/tmp 目录下创建文件 zhangsan.log
  4. 在zhangsan.log 文件中输入内容 zhangsan
  5. 使用命令

    1. cat zhangsan.log >> lisi.log
  6. 请问lisi.log文件中的内容是什么?

image.png

将/var/log/messages 文件中的第1000行-第1500行的内容保存到 /tmp/915.log

  1. head -1500 /var/log/messages | cat -n | tail -501 > /tmp/915.log

在查看日志的时候使用的比较多。

  • head -1500 /var/log/messages | cat -n | tail -501 把1000-1500的内容打印出来。
  • /tmp/915.log 将前面的结果直接保存到文件中。

image.png

练习:
1.root下创建fanm目录
2.fanm目录下创建文件wo.log
3.在wo.log中写入30行内容,并查看前15行
4.将fanm的详细列表信息追加到wo.log中

文件上传,下载

sz文件下载

在Linux服务器上的文件下载Windows本地电脑上。
语法: sz 下载的文件路径

  1. 将 /tmp/zhangsan.log 下载到本地。
    1. sz /tmp/zhangsan.log
    image.png选择要保存的文件路径。
    image.png

rz 上传文件

上传是从Windows上上传到服务器。
上传的时候不能上传目录,如果需要上传目录,先将目录压缩,之后再上传。

  1. rz

强制上传:rz -y
image.png

文件查找

忘记了某个文件的路径。

find 查找

语法: find 路径 -参数 ‘关键字’
查找 文件名中文件名后缀 .log 的所有文件。

  1. 切换到 根目录 cd /
  2. 再执行

    1. cd /
    2. find / -name '*.log'

    查找所有 .log 结尾的文件。
    https://linuxcmd.ee-fans.com/c/find.html
    image.png
    * : 代表任意多个字符(通配符)

    查询/目录下,名字为k的文件

    1. find / -name '*k*'

    练习:
    1:在家目录下创建fm1 fm2 fm3目录
    2:在fm1下创建 a.log b.log c.txt 文件
    3:在fm2下创建 aa.log b.txt c.log文件
    4:在fm3下创建 aaa.log e.log 文件
    5:查询root目录下,名字带有a.log的文件

    查询root目录下,以a开头的文件

    1. find ./ -name 'a*'

    通过文件类型查找文件位置
    目录 d 普通文件 f 有且仅有find中普通文件用 f 来代表 链接文件是 l
    语法: find 路径 -type 类型 -name 文件名

以下是延伸内容,了解即可
find 命令 非常强大,还可以根据其他属性来查询文件,需要使用其他参数

  1. 查找大于1500字节的文件
    find ~ -size +1500c
    2. 查找等于1500字节的文件
    find ~ -size 1500c
    3. 查找小于1500字节的文件
    find ~ -size -1500c
    4. 查找大于512k字节的文件
    find ~ -size +512k
    5. 查找等于1M字节的文件
    find ~ -size 1M
    6. 查找小于1G字节的文件
    find ~ -size -1G

ps 查看进程

image.png

  1. 执行 ps -ef 显示所有进程及命令行等信息
    1. ps -ef
    image.png
    ps -ef 可以看到当前系统中所有的进行信息。
    ==每一列的含义==
  • UID :用户ID、但输出的是用户名
  • PID :进程的ID
  • PPID :父进程ID
  • C :进程占用CPU的百分比
  • STIME :进程启动到现在的时间 (运行时间)
  • TTY :该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
  • CMD :进程的名称 或者 命令的名称和参数

ps命令常用的方式2: ps aux

ps aux :同样是显示所有进程及信息,不过格式略有不同,更详细Linux 第三课 - 图10
==每一列的含义==

  • USER :用户名
  • PID :进程的ID
  • %CPU :进程占用的CPU百分比
  • %MEM :占用内存的百分比
  • VSZ :该进程使用的虚拟內存量(KB)
  • RSS :该进程占用的常驻內存量(KB)
  • TTY : 同 ps -ef 的TTY
  • STAT :进程的状态 (下面有详细解释)
  • START :该进程被触发启动时间
  • TIME :该进程实际使用CPU运行的时间
  • COMMAND :同 ps -ef 的CMD

==STAT 的常见状态及含义== 作为了解就行

  • D:无法中断的休眠状态(通常 IO 的进程);
  • R:正在运行可中在队列中可过行的;
  • S:处于休眠状态;
  • T :停止或被追踪;
  • W:进入内存交换 (从内核2.6开始无效);
  • X :死掉的进程 (基本很少见);
  • Z :僵尸进程;
  • <:优先级高的进程
  • N:优先级较低的进程
  • L:有些页被锁进内存;
  • s:进程的领导者(在它之下有子进程);
  • l :多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
    • :位于后台的进程组;

  • 结合 grep 使用:找到nginx相关的进程信息

    1. ps -ef | grep nginx
    Linux 第三课 - 图11可以看到共找到三条信息,第一个是nginx主进程,第二个是nginx的工作进程,第三个是 grep nginx的进程,也就是ps -ef | grep nginx命令 的进程

匹配出进程中包含”java”的程序
image.png

使用ps aux 结合grep查找nginx进程的相关信息

  1. ps aux | grep nginx

Linux 第三课 - 图13与ps -ef | grep nginx所显示信息差不多,不过多了ps aux命令中的一些信息,如 %CPU ,%MEM等

链接文件 ln

语法:ln -s 被链接的文件名 新文件名(链接文件的名字)
链接文件其实是对真实文件的链接,相当于一个快捷方式
注意:在链接文件中,使用路径需要使用绝对路径

练习:
在root下创建层级目录a/b/c
在c目录下创建文件xs
把xs文件链接到目录a下名为mm 指向xs,并详细查看

  1. ln -s /root/a/b/c/xs /root/a/mm

image.png

字符处理

grep 关键字过滤(重点)

语法:grep 关键字

  1. 查找 /etc/updatedb.conf 文件包中的tmp

image.png
无法就算到低有多少个tmp
grep 一般跟管道符一起使用
查看查看/etc/updatedb.conf 文件中的tmp

  1. cat /etc/updatedb.conf | grep tmp

image.png
实时查看/etc/updatedb.conf 文件中的gfs

  1. tail -f /etc/updatedb.conf | grep gfs

image.png

过滤history中使用过 rm 命令的详细信息

  1. history | grep rm

image.png

top 查看系统运行情况

top 命令 类似于Windows系统中任务管理器。
看cpu使用率
image.png

htop 更专业的查看工具

  1. htop 不是Linux自带的命令。使用 yum 命令在线安装 htop

    1. yum install -y htop

    image.png

  2. 输入 htop 命令可以看到效果

image.png

free 单独查看内存(内存使用率)

free -m 以兆为单位进行查看
性能测试需要用到这个
image.png

查看磁盘
df 查看磁盘的使用情况

  1. df -h

image.png
**作业:

练习文件操作 💎

  1. 清空 /tmp 目录
  2. 将 /var/log/messages 文件中的第503-548行内容提取出来保存到 /tmp/msg.log 文件
  3. 将/etc/man_db.conf 文件中所有内容追加到 /tmp/msg.log 文件
  4. 统计 /tmp/msg.log 文件中共有多少行 多少个单词

image.png
image.png


文件压缩下载 🔐

  1. 将 /tmp目录下的 msg.log 文件,msg.back.log 文件压缩为 msg.tar.gz
  2. 查看 msg.tar.gz 的文件
  3. 将 msg.tar.gz 文件下载到Windows 桌面上。

练习:
1.在root家目录下创建多个目录,fanmao55 fanmao56 fanmao57,并在fanmao57下创建层级目录student/student57
2.在fanmao55下创建普通文件me.txt
3.在fanmao56目录下创建一个目录 xiaosun,再在xiaosun目录下创建两个同级目录,xs xl
4.进入xs后,剪切me.txt至当前目录下
5.向me.txt中追加进程信息
6.返回家目录,创建链接文件mm指向me.txt
7.通过管道符将进程中含有”java”的字符匹配出来
8.查看me.txt文件的第10-20行内容
image.png
image.png