项目实用linux 操作详解-轻松玩转linux

时间:2024-07-19 18:07:29

我之前写过完整的linux系统详解介绍:
LInux操作详解一:vmware安装linux系统以及网络配置
LInux操作详解二:linux的目录结构
LInux操作详解三:linux实际操作及远程登录
LInux操作详解四:linux的vi和vim编辑器
LInux操作详解五:linux的开机、重启和用户登录注销
LInux操作详解六:linux的用户和组管理
LInux操作详解七:linux实用指令大全
LInux操作详解八:linux组管理和权限管理
LInux操作详解九:linuxcrond任务调度—定时任务
LInux操作详解十: Linux 磁盘分区、挂载
LInux操作详解十一:linux进程管理
LInux操作详解十二:RPM和YUM

但是过于系统,故此在这里进行一个精简。意在为设计项目运用上,为进阶程序员准备
后续也会持续增加

系统以及优化

1:arch 显示机器的处理器架构

[root@root]# arch
x86_64
[root@root]# uname -m
x86_64
[root@root]# uname -r
3.10.0-1062.el7.x86_64

2:uname - 打印系统信息。

  • -a, --all 按顺序打印全部信息,如果 -p 和 -i 的信息是未知,那么省略。
  • -s, --kernel-name 打印内核名称。
  • -n, --nodename 打印网络节点主机名称。
  • -r, --kernel-release 打印内核release。
  • -v, --kernel-version 打印内核版本。
  • -m, --machine 打印机器名称。
  • -p, --processor 打印处理器名称。
  • -i, --hardware-platform 打印硬件平台名称。
  • -o, --operating-system 打印操作系统名称。
  • –help 显示帮助信息并退出。
  • –version 显示版本信息并退出。
# uname -m 显示机器的处理器架构
[root@root]# uname -m
x86_64
#  uname -r 显示正在使用的内核版本 
[root@root]# uname -r
3.10.0-1062.el7.x86_64

3:cat /proc/version 显示内核的版本

4:df-显示磁盘空间使用情况

获取硬盘被占用空间,剩余空间等信息。默认所有当前被挂载的文件系统的可用空间都会显示
默认情况下,磁盘空间以 1KB 为单位进行显示

常用参数:

  • -a 全部文件系统列表
  • -h 以方便阅读的方式显示信息
  • -i 显示inode信息
  • -k 区块为1024字节
  • -l 只显示本地磁盘
  • -T 列出文件系统类型
  • df -h 查看本服务器所有磁盘的占用情况

5:du- 显示每个文件和目录的磁盘使用空间

与 df 命令不同的是 du 命令是对文件和目录磁盘使用的空间的查看
命令格式:du [选项] [文件]
常用参数:

  • -a 显示目录中所有文件大小
  • -k 以kb为单位显示文件大小
  • -m 以MB为单位显示文件大小
  • -g 以GB为单位显示文件大小
  • -h 以易读方式显示文件大小
  • -s 仅显示总计
  • -c 或 --total 除了显示个别目录或文件大小,同时也显示所有的目录或文件的大小总和
  • du -ah --max-depth=1 显示当前目录下各个文件夹大小

6:free - 显示系统内存使用情况,包括物理内存、swap内存和内核cache内存

命令参数:

  • -b 以Byte显示内存使用情况
  • -k 以kb为单位显示内存使用情况
  • -m 以mb为单位显示内存使用情况
  • -g 以gb 为单位显示内存使用情况
  • -s<间隔秒数>持续显示内存
  • -t 显示内存使用总合
[root@harbor-host ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        3.8G        447M        368M        2.0G        1.7G
Swap:          8.0G        1.2G        6.8G
  • total:#服务器内存总大小:7.6G
  • used:#已经使用了多少内存:3.8G,已用内存总量(used = total-free-buffers-cache,这里没减去shared,我理解是shared是used的其中一部分)
  • free:#未被任何应用使用的真实空闲内存,也叫未被分配出去的内存,(真正尚未被使用的物理内存数)
  • shared:#表示多个进程共享的内存总额。
  • buff/cache: #表示buffers和cache所用总量的总和(buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量),也有人说是表示磁盘缓存的大小。

远程操作

1:ssh- 远程登录服务器

ssh(选项)(参数)

  • -1:强制使用ssh协议版本1;
  • -2:强制使用ssh协议版本2;
  • -4:强制使用IPv4地址;
  • -6:强制使用IPv6地址;
  • -A:开启认证代理连接转发功能;
  • -a:关闭认证代理连接转发功能;
  • -b:使用本机指定地址作为对应连接的源ip地址;
  • -C:请求压缩所有数据;
  • -F:指定ssh指令的配置文件;
  • -f:后台执行ssh指令;
  • -g:允许远程主机连接主机的转发端口;
  • -i:指定身份文件;
  • -l:指定连接远程服务器登录用户名;
  • -N:不执行远程指令;
  • -o:指定配置选项;
  • -p:指定远程服务器上的端口;
  • -q:静默模式;
  • -X:开启X11转发功能;
  • -x:关闭X11转发功能;
  • -y:开启信任X11转发功能。
# ssh 用户名@远程服务器地址
ssh user1@172.24.210.101
# 指定端口
ssh -p 2211 root@140.206.185.170

# ssh 
ssh user@ip -p22 # 默认用户名为当前用户名,默认端口为 22
ssh-keygen # 为当前用户生成 ssh 公钥 + 私钥
ssh-keygen -f keyfile -i -m key_format -e -m key_format # key_format: RFC4716/SSH2(default) PKCS8 PEM
ssh-copy-id user@ip:port # 将当前用户的公钥复制到需要 ssh 的服务器的 ~/.ssh/authorized_keys,之后可以免密登录

2:scp 在本地主机和远程主机之间复制文件

scp(选项)(参数)

  • -1:使用ssh协议版本1;
  • -2:使用ssh协议版本2;
  • -4:使用ipv4;
  • -6:使用ipv6;
  • -B:以批处理模式运行;
  • -C:使用压缩;
  • -F:指定ssh配置文件;
  • -i:identity_file 从指定文件中读取传输时使用的密钥文件(例如亚马逊云pem),此参数直接传递给ssh;
  • -l:指定宽带限制;
  • -o:指定使用的ssh选项;
  • -P:指定远程主机的端口号;
  • -p:保留文件的最后修改时间,最后访问时间和权限模式;
  • -q:不显示复制进度;
  • -r:以递归方式复制。
#从远程机器复制文件到本地指定目录
scp -r root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

#上传本地文件到远程机器指定目录
scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

# 上传本地文件到远程机器指定目录,并指定端口 2222
scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

进程管理

1:ps:显示系统执行的进程

查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux

  • -a:显示当前终端所有进程信息

  • -u:以用户的格式显示进程信息

  • -x:显示后台进程运行的参数
    在这里插入图片描述
    例如指令:ps –aux | grep sshd ,比如我看看有没有 sshd 服务

  • System V 展示风格

  • USER:用户名称

  • PID:进程号

  • %CPU:进程占用 CPU 的百分比

  • %MEM:进程占用物理内存的百分比

  • VSZ:进程占用的虚拟内存大小(单位:KB)

  • RSS:进程占用的物理内存大小(单位:KB)

  • TT:终端名称,缩写 .

  • STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

  • STARTED:进程的启动时间

  • TIME:CPU 时间,即进程使用 CPU 的总时间

  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

2:ps -ef 查看父进程

ps -ef,以全格式显示当前所有的进程,查看进程的父进程。

  • -e 显示所有进程
  • -f 全格式
    在这里插入图片描述
  • UID:用户 ID
  • PID:进程 ID
  • PPID:父进程 ID
  • C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU 时间
  • CMD:启动进程所用的命令和参数

3:top:动态监控进程

介绍;top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程

基本语法:top [参数]

常见参数

  • -b 批处理
  • -c 显示完整的治命令
  • -I 忽略失效过程
  • -s 保密模式
  • -S 累积模式
  • -i<时间> 设置间隔时间
  • -u<用户名> 指定用户名
  • -p<进程号> 指定进程
  • -n<次数> 循环显示的次数

可以在top 页面进行交互操作,说明:

  • P:以CPU使用率排序,默认航是此项
  • M:以内存的使用率排序
  • N:以PID排序
  • Q:退出top
    在这里插入图片描述
实例展示:
top - 00:05:02 up 204 days,  9:56,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  68 total,   1 running,  67 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.7 sy,  0.0 ni, 98.3 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016168 total,    65948 free,   335736 used,   614484 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   517700 avail Mem 
 
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND     
 7110 root      10 -10  130476   9416   6116 S  1.3  0.9 141:26.59 AliYunDun   
15845 root      20   0   47064   4320   2180 S  0.3  0.4   2:51.16 nginx   

前五行是当前系统情况整体的统计信息区

第一行,任务队列信息,同 uptime 命令的执行结果:

  • 00:05:02 — 当前系统时间
  • up 204 days, 9:56 — 系统已经连续运行了 204 天 9 小时 56 分钟未重启
  • 2 users — 当前有 2 个用户登录系统
  • load average: 0.00, 0.01, 0.05 — load average 后面的三个数分别是 0 分钟、1 分钟、5分钟的负载情况,load average 数据是每隔 5 秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行,Tasks — 任务(进程):

  • 系统现在共有 68 个进程,其中处于运行中的有 1 个,休眠中 67 个,停止 0 个,僵死 0个

第三行,cpu状态信息:

  • 0.7 us — 用户空间占用 CPU 的百分比
  • 0.7 sy — 内核空间占用 CPU 的百分比
  • 0.0 ni — 改变过优先级的进程占用 CPU 的百分比
  • 98.3 id — 空闲CPU百分比
  • 0.3 wa — IO 等待占用 CPU 的百分比
  • 0.0 hi — 硬中断(Hardware IRQ)占用 CPU 的百分比
  • 0.0 si — 软中断(Software Interrupts)占用 CPU 的百分比
  • 0.0 st - 虚拟机占用百分比

第四行,内存状态:

  • 1016168 total — 物理内存总量
  • 65948 free — 空闲内存总量
  • 335736 used — 使用中的内存总量
  • 614484 buff/cache — 缓存的内存量

第五行,swap交换分区信息,具体信息说明如下:

  • 0 total — 交换区总量
  • 0 free — 空闲交换区总量
  • 0 used — 使用的交换区总量
  • 517700 avail Mem - 可用内存

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

  • PID — 进程id
  • USER — 进程所有者
  • PR — 进程优先级
  • NI — nice值。负值表示高优先级,正值表示低优先级
  • VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  • SHR — 共享内存大小,单位kb
  • S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU — 上次更新到现在的CPU时间占用百分比
  • %MEM — 进程使用的物理内存百分比
  • TIME+ — 进程使用的CPU时间总计,单位1/100秒
  • COMMAND — 进程名称(命令名/命令行)

4:netstat 查看系统网络情况

netstat 参数:

  • -a或–all:显示所有连线中的Socket;
  • -A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
  • -c或–continuous:持续列出网络状态;
  • -C或–cache:显示路由器配置的快取信息;
  • -e或–extend:显示网络其他相关信息;
  • -F或–fib:显示FIB;
  • -g或–groups:显示多重广播功能群组组员名单;
  • -h或–help:在线帮助;
  • -i或–interfaces:显示网络界面信息表单;
  • -l或–listening:显示监控中的服务器的Socket;
  • -M或–masquerade:显示伪装的网络连线;
  • -n或–numeric:直接使用ip地址,而不通过域名服务器;
  • -N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
  • -o或–timers:显示计时器;
  • -p或–programs:显示正在使用Socket的程序识别码和程序名称;
  • -r或–route:显示Routing Table;
  • -s或–statistice:显示网络工作信息统计表;
  • -t或–tcp:显示TCP传输协议的连线状况;
  • -u或–udp:显示UDP传输协议的连线状况;
  • -v或–verbose:显示指令执行过程;
  • -V或–version:显示版本信息;
  • -w或–raw:显示RAW传输协议的连线状况;
  • -x或–unix:此参数的效果和指定"-A unix"参数相同;

常用命令:

1 列出所有端口 (包括监听和未监听的)
	列出所有端口 netstat -a
	列出所有 tcp 端口 netstat -at
	列出所有 udp 端口 netstat -au
 
2 列出所有处于监听状态的 Sockets
	只显示监听端口 netstat -l
	只列出所有监听 tcp 端口 netstat -lt
	只列出所有监听 udp 端口 netstat -lu
	只列出所有监听 UNIX 端口 netstat -lx
 
3 显示每个协议的统计信息
	显示所有端口的统计信息 netstat -s
	显示 TCP 或 UDP 端口的统计信息 netstat -st-su
 
4netstat 输出中显示 PID 和进程名称 netstat-p
	netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中, 这样 debugging 的时候可以很方便的发现特定端口运行的程序。
 
5netstat 输出中不显示主机,端口和用户名 (host, port or user)
	当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。
	# netstat -an
如果只是不想让这三个名称中的一个被显示,使用以下命令
	# netsat -a --numeric-ports
	# netsat -a --numeric-hosts
	# netsat -a --numeric-users
 
6 持续输出 netstat 信息
netstat 将每隔一秒输出网络信息。
	# netstat -c
 
7 显示系统不支持的地址族 (Address Families)
netstat --verbose
 
8 显示核心路由信息 netstat -r
# netstat -r
注意: 使用 netstat -rn 显示数字格式,不查询主机名称。
 
[root@localhost ~]# netstat -rn

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
80.80.80.0      0.0.0.0         255.255.255.0   U         0 0          0 eth8
10.228.90.0     0.0.0.0         255.255.255.0   U         0 0          0 eth9
1.1.0.0         0.0.0.0         255.255.255.0   U         0 0          0 tap0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth8
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth9
10.0.0.0        10.228.90.1     255.0.0.0       UG        0 0          0 eth9
0.0.0.0         1.1.0.3         0.0.0.0         UG        0 0          0 tap0
 
 
表头说明: 
	Destination:目标网络或者主机。
	Gateway:网关地址,如果没有设置则为*。
	Genmask:目标网络掩码;如果默认路由则用"0.0.0.0"。
	Flags标志说明:
	U Up表示此路由当前为启动状态
	H Host,表示此网关为一主机
	G Gateway,表示此网关为一路由器
	R Reinstate Route,使用动态路由重新初始化的路由
	D Dynamically,此路由是动态性地写入
	M Modified,此路由是由路由守护程序或导向器动态修改! 表示此路由当前为关闭状态
	Iface:对于这个路由,数据包将要发送到那个接口(网卡)。

9 找出程序运行的端口
	并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
	# netstat -ap | grep ssh
 
	找出运行在指定端口的进程
	# netstat -an | grep ':80'

3.10 显示网络接口列表
# netstat -i

显示详细信息,像是ifconfig 使用 netstat-ie
 
[root@localhost ~]# netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth8       1500   0  9150807      0      0      0      128      0      0      0 BMRU
eth9       1500   0  9297220      0      0      0   144187      0      0      0 BMRU
eth12      1500   0   294871      0      0      0        6      0      0      0 BMRU
eth13      1500   0        0      0      0      0        6      0      0      0 BMRU
lo        16436   0 95290843      0      0      0 95290843      0      0      0 LRU
tap0       1500   0        0      0      0      0       48      0      0      0 BRU
tap0:1     1500   0      - no statistics available -                            BRU
 
说明:
    MTU和Met字段表示的是接口的MTU和度量值值;RX和TX这两列表示的是已经准确无误地收发了多少数据包( RX - OK / TX - OK)、产生了多少错误( RX-ERR/TX-ERR)、丢弃了多少包(RX-DRP/TX-DRP),由于误差而遗失了多少包(RX-OVR/TX-OVR);最后一列展示的是为这个接口设置的标记,在利用ifconfig显示接口配置时,这些标记都采用一个字母。它们的说明如下:
 
	B 已经设置了一个广播地址。
	L 该接口是一个回送设备。
	M 接收所有数据包(混乱模式)。
	N 避免跟踪。
	O 在该接口上,禁用A R P。
	P 这是一个点到点链接。
	R 接口正在运行。
	U 接口处于“活动”状态。

文件目录类;

1:pwd指令;显示当前路径;

在这里插入图片描述

2:cd指令;cd 【参数】切换到指定目录;

cd ~或者cd 回到自己的家目录;

  • cd… 回到当前目录的上一级目录;
  • cd …/ 相对路径的上一级.cd …/…/ 上两级
  • cd /root 绝对路径的切换

3:ls指令;查看当前目录的 内容和目录;

ls [选项] 【目录或文件】

  • ls -a 列出目录下所有文件,包含以.开始的隐藏文件
  • ls -A 列出除.及…的其他文件
  • ls -r 文件以反序排列
  • ls -t 文件以修改时间排序
  • ls -S 文件以大小排序
  • ls -h 以易读大小显示
  • ls -l 除了文件名外,还将文件的权限、所有者、文件大小等详细信息显示出来
  • ls -lhrt 按照易读方式按时间反序排序,并显示文件详细信息
  • ls -lrS 按大小反序显示文件详细信息
  • ls -l t* 列出当前目录中所有以“t”开头的目录的详细内容

4:mkdir 创建目录;

mkdir 【选项】 要创建的目录

-p 创建多级目录
在这里插入图片描述

5:rmdir指令;删除空目录

rmdir 【选项】 要删除的空目录

  • rmdir -v 删除时有提示
  • rmdir -p 如果一个目录和子目录皆为空,则在删除子目录时,父目录一并删除
  • rmdir -p a/b/c 等同于rmdir a/b/c a/b a
    在这里插入图片描述

删除有文档的目录
在这里插入图片描述

6:touch指令;创建新的空白文件;

在这里插入图片描述

7:cp指令;拷贝文件到指定的目录;

cp 【选项】 源 目标

常用指令:

  • -i 提示
  • -r 复制目录以及目录内所有的文件
  • -a 复制的文件与原文件时间一样
  • cp -ai a.txt test 复制a.txt文件到test目录下,保持原文件时间,如果test目录中已经存在a.txt文件,提示是否覆盖。
  • cp -s a.txt a_link.txt 为a.txt文件创建一个链接

在这里插入图片描述

在这里插入图片描述

8:rm指令;删除文件或者目录

rm 【选项】 文件或目录

  • rm -f 强制删除,忽略不存在的文件,不给出提示
  • rm -i 交互式删除,删除前给提示
  • rm -r 递归删除目录下文件,以及子目录下的文件
  • rm -i *.log 删除任何.log文件,删除前逐一询问确认
  • rm -rf test 强制删除test目录或文件,无需确认

在这里插入图片描述

9:mv指令;移动文件或者重命名;

  • mv test.txt test2.txt 将文件test.txt重命名为test2.txt
  • mv log.txt log2.txt /log 将log.txt、log2.txt文件移动到/log目录中
  • mv -i log.txt log2.txt 将文件log.txt更名为log2.txt,如果log2.txt已经存在,则询问是否覆盖。
  • mv -f log.txt log2.txt 将文件log.txt更名为log2.txt,如果log2.txt已经存在,直接覆盖。
  • mv * …/ 移动当前文件夹下的所有文件到上一级目录

mv oldfilename newfilename 文件重命名

在这里插入图片描述

mv filename /root/test 文件移动

在这里插入图片描述

10:cat 指令;查看文件内容,只读形式;

cat 【选项】要查看的文件;

-n 显示行号

在这里插入图片描述

11:more 指令;是一个你只的基于vi编译器的文本过滤器;

more 要查看的文件

在这里插入图片描述

12:less指令;分屏查看文件;

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 要查看的文件

less -N fielame 带行号的查看
在这里插入图片描述

13:>指令和>>指令;输出和追加;

  • > 输出重定向,会将原来的文件内容覆盖;

  • >> 不会覆盖文件的内容,会将信息添加到文件末尾;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

14:echo指令;输出内容到控制台;

echo 【选项】 输出内容;

在这里插入图片描述

15:head指令;用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容

  • head 文件;默认显示文件开头10行

  • -n <行数> 显示的行数(行数为复数表示从后向前数)

  • head a.log -n 20 显示a.log文件中前20行数据

  • head -c 20 a.log 显示a.log文件前20字节

  • head -n -10 a.log 显示a.log最后10行数据

在这里插入图片描述

16:tail指令; 默认输出文章尾部10行的内容;

常用参数:

  • -f 循环读取(常用于查看程序执行后递增的日志文件)
  • -n<行数> 显示行数(从后向前)
  • tail -n 100 显示后100行日志文件
  • tail -f log.log 循环读取日志文件逐渐增加的内容
  • tail -200f log.log 循环读取日志文件后200行的内容

17:ln指令;软连接指令;类似于windows的快捷方式;

ln -s 源文件名 软连接名
在这里插入图片描述

18:history指令;查看执行过的指令;

在这里插入图片描述

执行曾经执行过的指令;
在这里插入图片描述

18:chmod 修改文件或目录的权限

该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法
每一文件或目录的访问权限都有三组,每组用三位代号表示:

  • 文件属主的读、写和执行权限
  • 与属主同组的用户的读、写和执行权限
  • 系统中其他用户的读、写和执行权限
常用参数:
	-c 当发生改变时,报告处理信息
	-R 处理指定目录以及其子目录下的所有文件
权限范围:
	u:目录或者文件的当前的用户
	g:目录或者文件的当前的群组
	o:除了目录或者文件的当前用户或者群组之外的用户
	a:所有的用户及群组
 
权限代号:
	r :读权限,用数字4表示
	w :写权限,用数字2表示
	x :执行权限,用数字1表示
	- :删除权限,用数字0表示
	s :特殊权限
例如:chmod -R 755 test.log	 这相当于 u=rwx,g=rx,o=rx
	 chmod a+x test.log  增加文件所有用户组可执行权限

19:chown 修改文件或目录的所有者,操作权限为root用户

  • 用户可以是用户名或者用户 ID
  • 组可以是组名或者组 ID
  • 文件是以空格分开的要改变权限的文件列表,支持通配符
常用参数:
	-c 显示更改部分的信息
	-R 处理指定的目录及子目录
 
chown -c log:log a.txt 改变文件a.txt的拥有者和群组都为log,并显示改变信息
chown -c :log a.txt 改变文件a.txt的群组为log,并显示改变信息
chown -c log a.txt  改变文件a.txt的拥有者为log,并显示改变信息
chown -cR log: log/ 改变文件夹log及子文件、目录属主为log

时间日期类;

1:date指令;显示当前日期;

date 显示当前日期

date +%Y 显示当前年

date +%m 显示当前月

date +%d 显示当前日

date “+%Y-%m-%d %H:%M:%S” 显示当前指定格式的时间

在这里插入图片描述

2:date 指令;设置服务器当前时间;

date -s 时间字符串

3:cal指令;查看当前日历

cal 【选项】

在这里插入图片描述

查看指定年的日历

在这里插入图片描述

搜索查找类的指令;

1:find指令;

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

find 【搜索范围】【选项】文件名

  • -name 按照名字查找

  • -user 按照作者查找

  • -size 按照大小查找,+n 大于 -n 小于 n 等于

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2:locate指令;

locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。

local 搜索文件

由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
在这里插入图片描述

3:grep指令和管道符|

grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

grep [选项] 查找内容 源文件

  • -n 显示匹配行和匹配行号
  • -i 忽略大小写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

压缩与解压缩

1:gzip和gunzip指令;

gzip 压缩文件,只能将文件压缩为*.gz 文件,不能直接压缩目录,当我们使用 gzip 对文件进行压缩后,不会保留原来的文件。

gunzip 解压缩文件

在这里插入图片描述
在这里插入图片描述

2:zip/unzip 指令

zip xxx.zip 源文件 用于压缩文件

-r 递归压缩

-x 排除某个文件
在这里插入图片描述
在这里插入图片描述

unzip 解压后的路径 压缩文件 用于解压的,这个在项目打包发布中很有用的

-d 指定目录

在这里插入图片描述

3:tar指令;tar是打包指令,最后打包的是.tar.gz文件

tar xxx.tar.gz 打包的内容

命令参数:
	-c 建立新的压缩文件
	-f 指定压缩文件
	-r 添加文件到已经压缩文件包中
	-u 添加改了和现有的文件到压缩包中
	-x 从压缩包中抽取文件
	-t 显示压缩文件中的内容
	-z 支持gzip压缩
	-j 支持bzip2压缩
	-Z 支持compress解压文件
	-v 显示操作过程
 
示列:
	tar -cvf log.tar 1.log,2.log 将1.log和2.log文件全部打成tar包
	tar -zcvf /temp/log.tar.gz /log 将/log下所有文件及目录打包到指定的目录,并使用gz压缩
	tar -ztvf /temp/log.tar.gz 查看刚打包的文件内容
	tar -zxvf log.tar.gz 解压这个log.tar.gz文件
	tar --exclude /log/mylog/ -zcvf /tmp/loglog.tar.gz /log   压缩打包/log,排除/log/mylog

压缩文件的例子

在这里插入图片描述
解压到当前目录
在这里插入图片描述

解压到指定目录;

在这里插入图片描述