我之前写过完整的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 -htotal 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 -au2 列出所有处于监听状态的 Sockets只显示监听端口 netstat -l只列出所有监听 tcp 端口 netstat -lt只列出所有监听 udp 端口 netstat -lu只列出所有监听 UNIX 端口 netstat -lx3 显示每个协议的统计信息显示所有端口的统计信息 netstat -s显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su4 在 netstat 输出中显示 PID 和进程名称 netstat-pnetstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中, 这样 debugging 的时候可以很方便的发现特定端口运行的程序。5 在 netstat 输出中不显示主机,端口和用户名 (host, port or user)当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。# netstat -an
如果只是不想让这三个名称中的一个被显示,使用以下命令# netsat -a --numeric-ports# netsat -a --numeric-hosts# netsat -a --numeric-users6 持续输出 netstat 信息
netstat 将每隔一秒输出网络信息。# netstat -c7 显示系统不支持的地址族 (Address Families)
netstat --verbose8 显示核心路由信息 netstat -r
# netstat -r
注意: 使用 netstat -rn 显示数字格式,不查询主机名称。[root@localhost ~]# netstat -rnKernel 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=rxchmod 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
压缩文件的例子
解压到当前目录
解压到指定目录;