Linux——(2)


# linux回顾

提示: 一点命令重新回顾一下

shutdown - h now 关机
init 0 关机
init 6 重启

service 服务名称 start 启动服务
service 服务名称 stop 关闭服务
service 服务名称 status 查看服务状态
service 服务名称 restart 重启服务

systemctl start/stop/status/restart 服务名称
friewall-cmd state 查看服务状态
friewall-cmd --list

一、磁盘和文件管理命令

ls / : 根目录 一般不要放文件
在这里插入图片描述

1.系统目录介绍

目录名内容介绍
bin可执行文件 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。贮存用户命令
boot放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/grub。建议单独分区,分区大小100M即可
dev设备存放目录 访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
home用户 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
etc系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
lib64含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。
proc运行情况 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录 process 进程有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
run
lib库文件 /usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
mnt该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/.
media设备默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载.
opt给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
root系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
sbin/usr/sbin:/usr/local/sbin: 放置系统管理员root使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
syssysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
srv服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
tmp临时文件存放目录
usr应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
var可变文件存放目录 置系统执行过程中经常变化的文件,如随时更改的日志文件variable /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录,/var/run: 程序或服务启动

2.命令格式

命令 空格【-选项】空格【参数】
ls -la /目录
打开目录下的所有文件
Ctrl+c是强制中断程序的执行
ls:显示文件和目录列表(list)

3.命令分类和帮助

内部命令:属于Shell解析器的一部分(cd pwd),执行速度会快
内部命令:help + 命令
实例 命令(help cd)

外部目录:独立于Shell解析器之外的文件程序(ls mkdir)
外部命令:man(manual 帮助手册) +命令
命令(man ls)

4.常用文件命令

- pwd 查看单前工作为位置

在这里插入图片描述

- 切换目录

cd = Change the shell working directory 改变当前工作目录
cd ~ 切换当前用户主目录

cd 比较简单

- s 查看文件 stat查看文件的状态信息 du统计文件和目录所占用的空间大小。

-l
-t
-a
在这里插入图片描述
和一起用
在这里插入图片描述
stat
Linux stat 命令用于显示 inode 内容。
stat 以文字的格式来显示 inode 的内容。
在这里插入图片描述

文件: aaa.log
大小: 20949 (字节) 块: 48 IO 块:4096 普通文件
设备: fd00h/64768d Inode: 33930069 硬链接:1
权限:(0644/-rw-r–r–) Uid:( 0/root) Gid:( 0/root)
最近访问时间:
最近更改时间:
最近改动时间:
创建时间:-

WC
wc 将计算指定文件的行数、字数,以及字节数

Linux wc 命令用于计算字数。
使用 wc 指令我们可以计算文件的字节数、字、文件类型则标准数列,如果不指定名称、如果所指定的数字名为“-”,wc 指令会从输入设备读取数据。

  • -c 或–bytes 或–chars 只显示字节数。
  • -l 或–lines 显示行数。
  • -w 或–words 只显示字数。
  • –help 在线帮助。
  • –version 显示版本信息。

du
Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。
du 会显示指定的目录或文件所占用的磁盘空间。
在这里插入图片描述

-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。

- 创建文件夹

mkdir 文件夹名称
在这里插入图片描述
mkdir -p 文件夹/文件夹名
在这里插入图片描述

- 删除空文件夹

rmdir= remove empty directories 删除空目录
rmdir 目录名称

在这里插入图片描述

- 删除空文件夹 or文件

rm =remove files or directories 删除文件或者目录
选项:
-r = recursive 递归
-f = force 强制删除不带提示
在这里插入图片描述
在这里插入图片描述

- 创建文件 或者叫改变文件时间戳
touch=change file timestamps 改变文件时间戳( Update the access and modification times of each FILE to the current time)

A FILE argument that does not exist is created empty = 如果说touch 参数1 参数1不存在,创建一个空文件

以存在的文件时间戳被更新啦
在这里插入图片描述
在这里插入图片描述

- 复制文件夹或者文件
cp =copy files and directories  复制文件和目录 
 
-r =  recursive  递归    copy directories recursively  使用递归复制目录

在这里插入图片描述

-移动/重命名文件或者目录
 mv = move (rename) files   移动(重命名) 文件

重命名
在这里插入图片描述
移动目录
在这里插入图片描述
移动文件
在这里插入图片描述
相同文件覆盖
在这里插入图片描述

- 查看文件内容 and文本写入

:: >写入(覆盖文件原来内容) >> 追加 在文件内容末尾追加内容

cat =concatenate files and print on the standard output 输出多个文件内容到控制台
串联三个文件并显示内容到控制台
在这里插入图片描述
在这里插入图片描述

head output the first part of files 输出文件第一部分
选项:
-n 数字 多少行

date >> tomcat1.log 追加当前时间到tomcat1.log 追加N次 date 当前时间
默认默认显示一个文件的前10行在这里插入图片描述
tail = output the last part of files 输出文件最后部门

打印每个文件的最后10行标准 输出。如果有多个FILE,则在每个With之前 一个给出文件名的头文件。没有文件,或者
当FILE为-时,读取标准输入。

选项
-n 数字
-f follow (output appended data as the file grows;) 动态显示一个文件的尾部
-F -retry 如果日志文件滚动生成 tomcat.log (满10M)->tomcat20211216-01.log
在这里插入图片描述

-f 会动态显示 持续添加的尾部
在这里插入图片描述

more = file perusal filter for crt viewing 分页显示文件内容 直接把文件内容都加载

点space键(空间键) 按页向下移动
点enter键 按行向下移动
ctrl+ f 向下翻页
ctrl+ b 向上翻页
q (quit) 退出
在这里插入图片描述

less opposite of more 分页显示文件内容 异步加载内容。 。。
点space键(空间键) 按页向下移动
点enter键 按行向下移动
ctrl+ f 向下翻页
ctrl+ b 向上翻页
/关键字 按照关键字查找内容
/mirrors 查找远程仓库配置
在这里插入图片描述

- 打印文件内容到控制台

echo = display a line of text 展示一行内容
wc = (print newline, word, and byte counts for each file) 统计一个文件的行数,单词数和字节
-c bytes 字节
-m chars 字符数
-l lines 行数
-w words 单词数

也可以 写一起 -cmlw
wc
在这里插入图片描述

- 创建快捷方式(linux创建软硬连接快捷方式 和副本 )

ln =make links between files 创建文件的连接
选项:
-s symbolic 创建软连接
-d directory 创建硬连接
创建aa的软连接 通过软连接添加内容 可以直接添加到aa
在这里插入图片描述
当原文件删除时报警告 不过在此创建原名字的文件后就不会在报红了
在这里插入图片描述、硬连接原文件的输删除不会影响到副本
在这里插入图片描述

- 按名称查询文件或者目录
 find   查找文件或者目录的名称
 find  -name 'tomcat1.log'  在当前目录查找文件名称为tomcat1.log
 find  -name 'tomcat*' 
 find /etc/   -name '*a*'  在/etc目录下查找名字中含有 a的目录或者文件
 find /etc/   -name '*a*' | wc -l   在/etc目录下查找名字中含有 a的目录或者文件并统计行数   | 管道符,通常连接两个或者多个命令,后一个命令以前面命令的执行为参数
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/92cee90ae5044be088e128272c7ee2bb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATmV0d29yayBwb3J0ZXI=,size_15,color_FFFFFF,t_70,g_se,x_16)

 find /etc/   -name '*locale*'
 find /etc/   -name '*locale*' | wc -l     
  • 在文件中查找内容
    grep = global regular expression print 全局按照正则表达式规则查询并输出结果
    百度百科:Globally search a Regular Expression and Print
    grep a settings.xml
    grep a settings.xml | wc -l
    find /etc/ -name ‘a’ | grep b
    find /etc/ -name ‘a’ | grep b | wc -l
    在这里插入图片描述

在这里插入图片描述

- 压缩文件或者目录,查看压缩包,解压压缩包

前两种只能压缩文件
默认保存在当前操作位置
在这里插入图片描述

gzip 压缩解压文件的命令
gzip 文件名 压缩
gzip -d 文件名 解压
压缩完成后 原文件会清楚
在这里插入图片描述
在这里插入图片描述

bzip2 压缩解压文件的命令 安装工具 yum -y install bzip2
和第一种差不多
在这里插入图片描述
bzip2指令:bzip2是用来取代gzip指令的,就像gzip是取代compress一样,bzip的压缩要比gzip更好,gzip有zcat查看压缩文件,bzip2有bzcat。

tar 可以对文件或者目录都可以

saves many files together into a single tape or disk archive, and can restore individual files from the archive
把许多文件压缩为一个文档保存起来,删除源文件,在需要的解压出来再供我们使用
-c create 创建
-t list 列表文件(查看文件)
-x extract 提取文件(解压)
这3个选项不可以混用
-z gzip 使用gzip方式压缩,查看,解压文件
-j bzip2 使用bzip2方式压缩,查看,解压文件
这2个选项不可以混用

-v verboss 冗余(显示详情) 可选项
-f file 压缩或者解压后面跟文件名称
必写项
前面3个顺序可以混乱 但-f 必须在其他三个之后

-C change 在解压时使用,指定解压目录

在这里插入图片描述
如果解压到当前目录,可以不要第2个参数 或者使用.当前目录
在这里插入图片描述

- 文件或者目录的权限功能

linux 角色四种:
u = user 当前用户
g = group 所属组
o = other 其他用户
a =all 包含前面三种角色

三种权限:
r = read 可读
w=write 可写
x=execute 可执行

chmod 改变目录或者文件不同角色对应的权限
选项: u +/- r w x
g
o
a

-rw-r–r–. 1 root root 0 12月 17 08:29 aaa.log
-rw- r-- r-- 文件类型 当前用户权限 所属组 其他用户
d 目录
l 软连接
- 文件
文件的开头是类型
在这里插入图片描述

二、系统检测和维护

1.常用命令:

  • fdisk -l 查看当前磁盘的详细信息(结合lsblk)

结果解释: 在Linux 是通过hdx 或 sdx 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 1、
2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储

  • df 显示文件系统磁盘空间的使用情况
    df 默认显示所有当前已挂载文件系统的磁盘空间使用情况
    df -h 以人类可读方式显示
    df -h /bin 显示某一个文件夹所在磁盘的使用情况

  • du 显示指定的文件(目录)已使用的磁盘空间的总
    -h文件大小以K,M,G为单位显示(human-readable)
    -s只显示各档案大小的总合(summarize)

  • free 显示当前内存和交换空间的使用情况

  • netstat 是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
    安装 yum install net-tools -y
    -a 显示所有连接和监听端口
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    在这里插入图片描述
    从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

在这里插入图片描述
Proto显示连接使用的协议,
RefCnt表示连接到本套接口上的进程号,
Types显示套接口的类型,
State显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名。

ip addr 网卡网络配置详解
lo 是回环地址,经常被分配到127.0.0.1地址上,用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
ens33:网卡名
<BROADCAST,,MULTICAST,UP,LOWER_UP> 这个叫作net_device flags,网络设备状态标识。
UP 表示网卡处于启动的状态;
BROADCAST 表示这个网可以发送广播包;
MULTICAST 表示网卡可以发送多播;
LOWER_UP表示网线插着;

MTU1500是指最大传输单元 MTU 为 1500,这是以太网的默认值。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP、HTTP的头。如果放不下,就需要分片来传输。
qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc ( 排队规则 ) 把数据包加入 队列。 最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段 ( band ) 。在每个波段里面,使用先进先出 规则。 三个波段 ( band ) 的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面 有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2之间也是一样。 数据包是按照服务类型 ( Type of Service,TOS ) 被分配多三个波段 ( band ) 里面的。TOS 是 IP 头 里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。 然而这里是mq,还木有搞懂是什么样的队列处理方式。 lo中的fq_codel是多队列处理,每一个数据流都有一个队列处理。

  link/ether:这个是MAC地址,唯一的,一块网卡一个MAC。

2.进程与服务

Linux中的三种进程
(1)交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
(2)批处理进程和终端没有联系,是一个进程序列。
(3)监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。

进程相关命令:
  • top 显示当前系统中耗费资源最多的进程
    用途: 可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高 信息解读
    前五行是系统整体的统计信息。
    在这里插入图片描述
    当前时间 up 系统运行时间 user当前登录用户数 load average: 0.00, 0.01, 0.02 系统负载即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。
内容如下:
Tasks:total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数

Cpu(s):
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬中断(Hardware IRQ)占用CPU的百分比
si 软中断(Software Interrupts)占用CPU的百分比
st (Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。
后两行为内存信息。内容如下:
Mem: total 物理内存总量
used 使用的物理内存总量
free 空闲内存总量
buffers 用作内核缓存的内存量
wap:
total 交换区总量
used 使用的交换区总量
free 空闲交换区总量
cached 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。 相应的内存再次被换出时可不必再对交换区写入。

  • ps 显示瞬间的进程状态
    -e /-A 显示所有进程,环境变量
    -f 全格式

在这里插入图片描述
ps –ef | grep java #表示查看所有进程里 CMD 是 java 的进程信息;
在这里插入图片描述
UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的
IDC :CPU使用的资源百分比
STIME :系统启动时间TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令

查询线程排除本身线程
在这里插入图片描述

  • kill 杀死一个进程
    (1)背景,当程序出错造成死锁,或者内存消耗过大造成卡机,杀;
    (2)格式: kill -9 PID
    (3 ) 示例:kill -9 324,
    (4)使用后一般使用下面命令释放内存:#free

kill命令的改进killall
(1) Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号, 例如:# killall -9 NAME
(2)使用后一般使用下面命令释放内存:#free

定时任务

定时任务格式:
分0-59 小时0-23 日1-31 月1-12 星期0-6
:命令:
“*”代表取值范围内的数字 ,
“/”代表”每”,
“-”代表从某个数字到某个数字, 10-15 * * * * 每一小时的10到15分钟
“,”分开几个离散的数字 10,12,15 * * * * 每一小时的第10,12,15

查看当前定时任务

crontab -l

编辑任务

crontab     -e

取消定时任务

 crontab -r 

*/2 * * * * date >> aaa.log
每格 两分钟想aaa。log添加 tate
在这里插入图片描述
[注:0表示星期天,1表示星期1, 以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

参考文章

作者 菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Network porter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值